妙用 OSGraph:发掘 GitHub 知识图谱上的开源故事
![妙用OSGraph:发掘GitHub知识图谱上的开源故事](https://static001.geekbang.org/infoq/70/70e9b028eb1c065aec3df64bd0c592bc.png)
作者:范志东
1. 何为 OSGraph?
OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具,基于 GitHub 开源数据全域图谱,实现开发者行为、项目社区生态的分析洞察。可以为开发者、项目 Owner、开源布道师、社区运营等提供简洁直观的开源数据视图,帮助你和你的项目制作专属的开源名片、寻求契合的开发伙伴、挖掘深度的社区价值。
简而言之:OSGraph 获取了 GitHub 的全量数据,并以图谱的形式做了可视化分析。
![](https://static001.geekbang.org/infoq/5e/5eba6b808cfbf50c8ca8e51eb64a136a.png)
2. 为何 OSGraph?
既然说到 GitHub 数据可视化分析,为何不使用现有工具而要重新建设 OSGraph?
![](https://static001.geekbang.org/infoq/98/9895184c6b00a3db0a988a804be809b9.png)
这里列举了几个主流的开源分析工具的特点:
StarHistory:展示开源项目的 star 历史曲线,产品功能简洁,“秀肌肉”专用,分析指标丰富度不足。
OSSInsight:基于传统 BI 报表的理念设计了开发者/项目的报表大盘,功能丰富,满足大多数基础的洞察诉求,但部分复杂维度的报表组件直观度不够,关联性数据的下钻和洞察能力不足。
OpenHub:支持开发者/项目/组织的排行榜(类 Gitstar Ranking)和快速检索,关联性分析能力不足。
可以看到,主流的开源分析工具还是围绕着传统 BI 报表的思路建设的,图表丰富度可以根据产品功能设计补充改进,但是基于二维表的思考方式在关联性数据分析能力表达上存在先天不足。
OSGraph 以图谱的方式重新思考 GitHub 数据:既然 GitHub 维护了开发者和项目的行为轨迹和活动记录,涉及了大量的人与人、人与项目、项目与项目的交互关系,为何不以天然最适合描述万物联系的 Graph 数据结构对底层数据建模,既而实现直观的图可视化分析呢?
![](https://static001.geekbang.org/infoq/f3/f32dbe15af809c067d6506f4604d022b.png)
3. OSGraph 能做什么?
OSGraph 官网(https://osgraph.com)目前提供了 6 张典型的开源图谱供大家使用,分别从项目和开发者维度洞察贡献、伙伴、兴趣、社区、生态。
为了更直观地表述图数据结构在开源数据洞察的优势,我们结合具体的场景案例说明。面对 GitHub 数据,我们多多少少会遇到如下类似的问题,这些问题可以通过上述的 6 类图谱很好的直观展现。
![](https://static001.geekbang.org/infoq/39/393fe897e24622dc25bd9886f50d28a9.png)
3.1 项目贡献图谱
发现项目核心贡献:根据项目开发者研发活动信息(Issue、PR、Commit、CR 等),找到项目核心贡献者。
Q:我想看看给 Apache Spark 项目写代码的都有谁?A:选择“项目贡献图谱” - 搜索 spark - 选择 apache/spark。可以看到 HyukjinKwon、dongjoon-hyun 等核心贡献者,另外还一不小心捉到两个“显眼包”,AmplabJenkins、SparkQA 这两个只参与 CodeReview 的机器人账号。
![](https://static001.geekbang.org/infoq/14/14d6772162814cbf24055dc22f8c46de.png)
项目贡献图谱可以帮助我们更好地发掘项目的关键开发者,尤其是我们不够熟悉的开源项目,可以快速地定位到关键贡献人,帮助技术运营发起合作申请和活动邀请。
3.2 项目生态图谱
洞察项目生态伙伴:提取项目间的开发活动、组织等关联信息,构建项目核心生态关系。
Q:最近很火的开源大模型 Llama3 周边生态大致是什么样的?A:选择“项目生态图谱” - 搜索 llama3 - 选择 meta-llama3/llama3。可以看到 pytorch、tensorflow、transformers 等知名 AI 项目,当然还有上科技头条的 llama.cpp。比较惊喜的发现是 ray 竟然和 llama3 有不少公共开发者,可以深度挖掘一下。
![](https://static001.geekbang.org/infoq/ba/bae8d3eeac644311d3b8c4d26afb89ff.png)
项目生态图谱让开源项目的挖掘变得更加轻松,我们通过分析两个开源项目的公共 Stargazers 和 PR/CR 等信息,挖掘潜在的项目关联关系,这可以帮助开发者快速熟悉开源项目的周边生态,并能做很好的技术延展探索。未来,通过引入项目间的代码依赖关系,甚至项目与科研论文的引用关系,可以帮助开发者和科研人员更快地熟悉未知的技术领域。
3.3 项目社区图谱
分析项目社区分布:根据项目的开发活动、开发者组织等信息,提取项目核心开发者社区分布。
Q:大数据引擎 Flink 发展这么多年后的社区现状如何?A:选择“项目社区图谱” - 搜索 flink - 选择 apache/flink。可以看到项目关注者主要来自中、美、德三国,而 Alibaba 组织是代码贡献的中坚力量。
![](https://static001.geekbang.org/infoq/c6/c6162807ee11ec009a0e6fced1dd60a6.png)
项目社区图谱目前从国家和组织的维度对核心开发者进行了分组展示,可以帮助我们快速了解一个项目开发人员的地理分布和组织分布,指导开源布道师和技术运营做更优的公共关系资源配置。
3.4 开发活动图谱
展示个人开源贡献:根据开发者研发活动信息(Issue、PR、Commit、CR 等),找到参与的核心项目。
Q:大神 Linus Torvalds 最近在参与哪些开源项目?A:选择“开发活动图谱” - 搜索 torvalds。果然 linux 项目是 torvalds 的主要工作,不过 llvm、mody、libgit2 也有所参与,同时也看到他在 subsurface 这种“潜水日志管理工具”上的大量贡献,果然大佬的爱好都很广泛。
![](https://static001.geekbang.org/infoq/ef/ef1483548f9fd745a5e2ea8915771d03.png)
开发活动图谱让了解一个社区开发者的背景变得更加直观,过去我们只能在开发者的 GitHub 个人页面上查看“贡献雷达图”作粗粒度的了解,而开发活动图谱在统计粒度和信息展示间找到了很好的平衡点。在个人主页上使用这样的开源个人名片不失为一种更时髦的选择。
3.5 开源伙伴图谱
寻找个人开源伙伴:找到开发者在开源社区中,与之协作紧密的其他开发者。
Q:我想知道在开源社区有没有和我志同道合的人?A:选择“开发伙伴图谱” - 搜索我的 ID。让我震惊的是有那么多陌生人和我关注了同一批项目,这不得找机会认识一下,说不定就能找到新朋友了。而和我合作 PR 的人基本上都是我认识的朋友和同事,继续探索一下朋友们的开源伙伴,开源社区的“六度人脉”不就来了么。
![](https://static001.geekbang.org/infoq/21/211930d16215a6bd40ca53c5de258da7.png)
开源伙伴图谱构建了一种“人-人”关系视图,GitHub 原生数据并不存在基于账户的“好友/粉丝”数据,我们通过两个人共同 Star 的项目以及参与的 PR/CR 等开发活动数据,构造了开发者之间的关系视图。通过此视图,可以发掘很多“志同道合”但未曾谋面的朋友,或许下一个合作 PR 就在这次“会面”之后发生。
3.6 开源兴趣图谱
挖掘个人开源兴趣:根据参与的项目主题、标签等信息,分析开发者技术领域与兴趣。
Q:GitHub 上最活跃的开发者对什么技术感兴趣?A:选择“开源兴趣图谱” - 搜索 sindresorhus(GitHub用户榜 No.1)。整体来看 sindresorhus 对 node、npm、js 很感兴趣,另外他发起的 awesome 项目足足 30W 星,令人咋舌!当前的开源兴趣数据主要来自项目有限的标签信息,后续借助 AI 技术可能会有更好的展现。
![](https://static001.geekbang.org/infoq/be/beb8e3afa8f5ab75f5e5106b1550344e.png)
开源兴趣图谱是对开发者技术背景的另一种形式的探索尝试,我们都知道开源项目一般都会有一些标签标注其技术领域和使用的关键技术,通过将开发者参与的项目按照标签分组汇总,得到个人的技术兴趣图谱,通过它可以快速地了解一个开发者的技术领域和视野。当然,基于项目现有的标签数据并不能做到精准的领域分类(不少项目没有标注标签数据),因此未来我们希望结合 NLP 技术做到更好的项目领域识别和分类。
4. 未来规划
当下 OSGraph 初版的功能还比较单一,未来我们想做更多有意思的事情:
简单灵活的 API 设计,让图谱无限扩展。
自由高效的画布交互,无限探索数据价值。
图谱 URL 支持嵌入 Markdown,制作我的开源名片。
基于 AI 技术的项目主题标签分析、图谱总结、检索增强对话等。
多人多项目联合分析,图谱洞察一键可达。
更丰富的数据展示与多维分析。
更丰富的数据来源和标签数据。
5. 合作贡献
OSGraph 是蚂蚁集团的 TuGraph 团队、AntV 团队、OSPO 联合华东师范大学 X-Lab 实验室发起的开源生态项目,旨在通过图谱的方式赋能 GitHub 开源数据分析,提供更优的开源数据洞察体验,让图计算的价值惠及到社区。作为开源项目,我们后续会打通从社区贡献到生产化部署的自动化链路,让您的贡献所见即所得……
我们正在积极筹备 OSGraph 的源代码开放,您可以 Star 本项目保持关注,我们非常期待的您的加入与贡献,也欢迎提交 Issue 提供建议和问题反馈,未来我们开源图谱上见!
OSGraph 项目地址:https://github.com/TuGraph-family/OSGraph
评论