论文
CodeGraph:基于维基数据的源代码开放分类知识图
CodeGraph: Open-Taxonomy Knowledge Graph for Source Code with Wikidata Grounding
摘要
公共软件存储库(例如 GitHub 和 Software Heritage Archive)存储了数十亿个文件,但提取其隐含的工程知识(即它们实现的算法、它们遵循的范式、它们实例化的模式以及它们服务的应用程序领域)仍然具有挑战性,因为当前的工具仅限于语法和标记级分析。我们提出了一个使用代码专用大型语言模型构建源代码的开放分类语义注释的管道。提取的实体通过三阶段链接过程扎根于维基数据:确定性 SPARQL 阶段处理明确的实体,深度研究代理解析残留长尾,层次结构汇总阶段导入每个解析的维基数据标识符的父闭包。生成的注释被具体化为特定于源代码的开放分类知识图。我们进一步引入了一种校准的质量保证协议,该协议通过将小型人类黄金集与大语言模型作为法官过滤器相结合来量化注释精度。我们将管道应用于 Stack-Edu 语料库的 1.67 亿个文件,创建了第一个已知的大规模源代码开放分类知识图谱。我们的图名为 CodeGraph,包含大约 1.58 亿个节点,其中包括大约 1.45 亿个文件、大约 63,000 个提取的概念实体(例如算法、范式、设计模式和应用程序域)以及大约 19,800 个已链接到Wikidata的实体。此外,CodeGraph 具有大约 10 亿条类型边,这些边将文件连接到各自的概念,将这些概念链接到其对应的Wikidata标识符,并将它们与其父类别相关联,涵盖 14 种编程语言。