kyahikaru/scholarly-knowledge-graph
End-to-end NLP engineering pipeline that extracts entities and relations from research papers and constructs a Neo4j knowledge graph with evaluation and link prediction.
What's novel
End-to-end NLP engineering pipeline that extracts entities and relations from research papers and constructs a Neo4j knowledge graph with evaluation and link prediction.
Code Analysis
25 files read · 5 roundsA linear pipeline that extracts text from PDFs, runs NER (rule-based or transformer), normalizes entities by frequency, creates co-occurrence relations, writes them to Neo4j with a hardcoded edge type, and reports fake link prediction scores (always 1.0) while computing Node2Vec embeddings that are
Strengths
Clean dataclass-based data model and a well-organized modular pipeline with factory patterns for swapping NER/relation backends. The code is readable, well-logged with timing, and the overall stage-by-stage structure is easy to follow.
Weaknesses
The link prediction evaluation is a hardcoded stub that always returns perfect scores, the Node2Vec embeddings are computed but never consumed, the Neo4j writer ignores actual relation types and hardcodes 'USED_ON', the transformer relation extractor would crash at runtime, and there are zero tests. The README describes a sophisticated ML pipeline with graph analytics that the code does not actually implement.
Score Breakdown
Signal breakdown
Innovation
Craft
Traction
Scope
Evidence
Commits
145
Contributors
1
Files
54
Active weeks
4
Repository
Language
Python
Stars
2
Forks
0
License
—