five

Software Heritage Graph Dataset

收藏
arXiv2020-11-16 更新2024-06-21 收录
下载链接:
https://annex.softwareheritage.org/public/dataset/graph/2018-09-25/
下载链接
链接失效反馈
官方服务:
资源简介:
Software Heritage Graph Dataset是由法国国家信息与自动化研究所创建的大型公共软件开发历史数据集,包含超过110亿个软件开发相关的数据条目。该数据集通过从GitHub、GitLab等主要协作开发平台和包仓库中收集数据,采用统一的表示方法,将源代码文件、目录、提交和版本控制系统仓库的完整快照链接起来。创建过程涉及定期爬取和存储,旨在解决软件开发历史的长期保存和分析问题,支持跨仓库和跨版本控制系统的历史分析,为软件开发研究提供全面的数据支持。

The Software Heritage Graph Dataset is a large public historical dataset for software development, created by the French National Institute for Research in Computer Science and Automation (INRIA). It contains over 11 billion data entries related to software development. This dataset collects data from major collaborative development platforms and package repositories such as GitHub and GitLab, and adopts a unified representation schema to link complete snapshots of source code files, directories, commits, and version control system (VCS) repositories. Its creation involves regular crawling and storage operations, aiming to address the challenges of long-term preservation and analysis of software development history, and supports cross-repository and cross-version control system historical analysis to provide comprehensive data support for software development research.
提供机构:
法国国家信息与自动化研究所
创建时间:
2020-11-16
搜集汇总
数据集介绍
main_image_url
构建方式
在软件工程研究领域,全面获取和分析公共软件开发历史数据一直面临挑战。Software Heritage Graph Dataset的构建方法基于对多个主要协作开发平台和软件包仓库的系统性爬取,包括GitHub、GitLab、Debian、PyPI等。通过定期抓取,该数据集将源代码文件、目录、提交记录和版本控制系统仓库的快照统一表示为去重化的Merkle有向无环图。这种结构不仅整合了超过50亿个唯一源代码文件和10亿次提交,还通过密码学哈希标识符实现了跨项目的隐式去重,从而高效地追踪软件构件在不同宿主和项目间的复用情况。
使用方法
研究人员可通过多种方式利用该数据集探索软件开发的长尾现象。数据集支持直接使用SQL查询进行初步分析,例如统计文件命名规律或提交行为模式。对于更复杂的图结构分析,用户可借助Apache Spark和GraphFrames库执行连通分量计算或度分布统计。数据集已在Amazon Athena和Azure Databricks等云平台上预配置,允许研究者直接运行分布式查询。通过采样技术可处理大规模表连接操作,而用户定义函数则为定制化分析提供了灵活性。这种多层次的使用方法使得从宏观统计到微观图挖掘的各种研究成为可能。
背景与挑战
背景概述
在软件工程研究领域,对公共软件开发历史的系统性分析长期受限于数据源的分散性与异构性。Software Heritage Graph Dataset 由法国国家信息与自动化研究所(Inria)等机构的 Antoine Pietri、Diomidis Spinellis 和 Stefano Zacchiroli 等学者于 2020 年正式发布,旨在构建一个统一、去重的大规模图结构数据集,以捕捉全球公共软件源代码及其演化历史的完整图景。该数据集整合了来自 GitHub、GitLab、PyPI、Debian 等超过 80 万个项目的 50 亿个唯一源代码文件和 11 亿个提交记录,通过 Merkle 有向无环图实现跨仓库、跨版本控制系统的标准化表示,为探索长尾软件演化、代码复用模式及跨生态系统的开发行为提供了前所未有的数据基础。
当前挑战
该数据集致力于解决软件挖掘领域中对大规模、异构软件开发历史进行整体分析的挑战,其核心问题在于如何突破传统研究中仅关注高星标仓库的局限,实现对公共软件全域的覆盖与关联分析。在构建过程中,面临多重工程挑战:首先,数据规模极其庞大,需设计高效的分布式存储与计算架构以处理万亿级别的图节点和边;其次,异构数据源的集成要求开发版本控制无关的统一数据模型,并实现跨平台的去重机制;此外,数据集的可用性与查询性能需平衡,既要支持复杂图算法分析,又要提供友好的 SQL 接口以降低研究门槛。这些挑战共同推动了软件遗产存档与大规模图数据处理技术的交叉创新。
常用场景
经典使用场景
在软件工程与开源生态研究领域,Software Heritage Graph Dataset 为大规模公共软件开发历史的分析提供了前所未有的数据基础。该数据集通过统一的Merkle有向无环图结构,整合了来自GitHub、GitLab、PyPI等平台的超过80万个项目的源代码文件、目录、提交记录与版本快照,使得研究者能够跨越代码托管平台与版本控制系统的界限,探索软件开发的长尾分布与演化模式。其经典使用场景包括对代码复用、项目分叉、跨仓库依赖等宏观现象的量化分析,为理解开源软件生态的复杂网络结构提供了关键支撑。
解决学术问题
该数据集有效解决了传统软件挖掘研究中常见的局限性问题。以往研究多集中于少数高星标仓库,难以反映公共软件开发的整体面貌;而Software Heritage Graph Dataset 通过去重化的图表示,实现了对海量异构软件资产的统一建模。这使得研究者能够系统探究代码克隆检测、跨版本控制系统演化一致性、开发活动时间模式等基础学术问题,同时为构建语言无关的代码嵌入模型、分析软件供应链风险等前沿课题提供了数据保障,推动了软件工程领域从局部观察到全局洞察的范式转变。
实际应用
在实际应用层面,该数据集为软件供应链安全、代码质量评估与开发者行为分析提供了重要工具。企业可利用其追踪特定代码片段在数百万项目中的传播路径,识别潜在许可证冲突或安全漏洞扩散风险;教育机构能够基于真实的开发历史数据,设计软件工程课程案例;开源社区管理者则可借助跨仓库分析功能,洞察项目分叉模式与社区协作健康度。此外,数据集提供的云平台就绪格式(如Amazon Athena、Azure Databricks)大幅降低了海量代码数据分析的技术门槛,使产业界能够高效开展实证研究。
数据集最近研究
最新研究方向
在软件工程与开源生态领域,Software Heritage Graph Dataset 作为全球最大的公共软件源代码存档图谱,正推动着对软件开发历史的大规模分析研究。该数据集通过统一的Merkle有向无环图结构,整合了超过50亿个源代码文件和10亿次提交,覆盖了GitHub、GitLab、PyPI等平台的8000余万个项目,为探索软件演化的长尾现象提供了前所未有的数据基础。当前的前沿研究聚焦于跨仓库与跨版本控制系统的分析,例如利用图谱的重复数据删除特性追踪代码克隆与分支模式,以评估软件健康度与社区协作动态。同时,研究者正借助分布式计算框架(如Apache Spark)处理海量图谱数据,开发无需先验知识的代码嵌入模型,并探究不同编程语言间的代码复用规律。这些工作不仅深化了对开源软件演化机制的理解,也为软件供应链安全、代码遗产保护等热点议题提供了关键支持,标志着软件挖掘研究从局部分析向全局系统性洞察的重要转变。
相关研究论文
  • 1
    The Software Heritage Graph Dataset: Large-scale Analysis of Public Software Development History法国国家信息与自动化研究所 · 2020年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作