CodeGraph builds a large knowledge graph linking source code to real-world concepts
CodeGraph: Open-Taxonomy Knowledge Graph for Source Code with Wikidata Grounding
Software EngineeringComputation and LanguageInformation Retrieval
Summary
Source code stored in huge public collections is hard to understand because it’s mostly analyzed by looking at syntax or text alone. The authors created a new tool that uses a large AI language model specialized for coding to identify meaningful programming concepts within code files. They match these concepts to real-world knowledge in Wikidata, organizing everything into a big graph that connects code files with programming ideas and categories. This graph covers many programming languages and could help people explore and understand code more deeply.
What this means in practice
- •For software engineering teams: Access a massive linked knowledge graph to quickly identify algorithms, patterns, and paradigms used in large codebases for better code understanding and reuse.
- •For software repository managers: Enhance code search and categorization by linking source files to standardized Wikidata concepts across multiple programming languages in huge repositories.
Authors
Federico Pennino, Andrea Gurioli, Stefano Zacchiroli, Maurizio Gabbrielli, Paolo Ferragina
Abstract
Public software repositories, like GitHub and Software Heritage Archive, store billions of files, yet extracting their implicit engineering knowledge ---i.e., the algorithms they implement, the paradigms they follow, the patterns they instantiate, and the application domains they serve--- remains challenging, as current tools are constrained to syntactic and token-level analysis. We present a pipeline for building an open-taxonomy semantic annotation of source code using a code-specialised Large Language Model. The extracted entities are grounded in Wikidata through a three-stage linking procedure: a deterministic SPARQL stage handles unambiguous entities, a Deep Research Agent resolves the residual long tail, and a hierarchy-rollup stage imports the parent-of closure of each resolved Wikidata identifier. The resulting annotations are materialised as a source-code-specific open-taxonomy knowledge graph. We further introduce a calibrated quality-assurance protocol that quantifies annotation precision by combining a small human gold set with an LLM-as-a-judge filter. We applied our pipeline to the 167 million files of the Stack-Edu corpus, creating the first known large-scale open-taxonomy knowledge graph for source code. Our graph, named CodeGraph, contains approximately 158 million nodes, which include around 145 million files, about 63,000 extracted concept entities (such as algorithms, paradigms, design patterns, and application domains), and roughly 19,800 grounded Wikidata entities. Furthermore, CodeGraph features approximately 1 billion typed edges that connect files to their respective concepts, link these concepts to their grounded Wikidata identifiers, and relate them to their parent categories, covering 14 programming languages.