透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具

osgraph,github · 浏览次数 : 58

小编点评

OSGraph是一个开源的图谱关系洞察工具,它基于GitHub的全量数据全域图谱,为开发者、项目Owner、开源布道师和社区运营者提供简洁直观的开源数据视图。OSGraph能够帮助他们分析开发者行为、项目社区生态,并制作专属的开源名片、寻找合适的开发伙伴和挖掘社区价值。 OSGraph的主要功能包括: 1. 项目贡献图谱:发现项目核心贡献者,了解项目的主要开发者。 2. 项目生态图谱:洞察项目生态伙伴,提取项目间的开发活动、组织等关键信息。 3. 项目社区图谱:分析项目社区分布,了解项目开发人员的地理分布和组织分布。 4. 开发活动图谱:展示个人开源贡献,了解社区开发者的背景。 5. 开源伙伴图谱:寻找个人开源伙伴,构建开发者之间的关系视图。 6. 开源兴趣图谱:挖掘个人开源兴趣,了解开发者的技术领域与兴趣。 OSGraph的部署流程包括: 1. 拉取镜像:从Docker Hub上拉取所需的镜像,包括MySQL、Elasticsearch和Tugraph-DB组件。 2. 启动容器:启动OSGraph依赖组件和编译、运行容器。 3. 修改配置:在容器内修改配置文件,如TUMAKER_DB_HOST、ES_HOST、TUGRAPHDB_HOST等。 4. 启动系统:在指定目录下执行启动脚本,启动OSGraph系统。 5. 浏览器访问:通过浏览器访问OSGraph的Web界面。 OSGraph以图谱的方式重新思考GitHub数据,提供了一种全新的数据可视化分析方法,相较于其他开源分析工具,它具有更强的关联性数据分析能力和更丰富的功能。

正文

"透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具

OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具,基于GitHub开源数据全域图谱,实现开发者行为、项目社区生态的分析洞察。可以为开发者、项目Owner、开源布道师、社区运营等提供简洁直观的开源数据视图,帮助你和你的项目制作专属的开源名片、寻求契合的开发伙伴、挖掘深度的社区价值。

  • 简而言之:OSGraph获取了GitHub的全量数据,并以图谱的形式做了可视化分析。

0. 前言

为何使用OSGraph?

既然说到GitHub数据可视化分析,为何不使用现有工具而要重新建设OSGraph?

  • 这里列举了几个主流的开源分析工具的特点:
    • StarHistory:展示开源项目的star历史曲线,产品功能简洁,“秀肌肉”专用,分析指标丰富度不足。
    • OSSInsight:基于传统BI报表的理念设计了开发者/项目的报表大盘,功能丰富,满足大多数基础的洞察诉求,但部分复杂维度的报表组件直观度不够,关联性数据的下钻和洞察能力不足。
    • OpenHub:支持开发者/项目/组织的排行榜(类Gitstar Ranking)和快速检索,关联性分析能力不足。

可以看到,主流的开源分析工具还是围绕着传统BI报表的思路建设的,图表丰富度可以根据产品功能设计补充改进,但是基于二维表的思考方式在关联性数据分析能力表达上存在先天不足。

OSGraph以图谱的方式重新思考GitHub数据:既然GitHub维护了开发者和项目的行为轨迹和活动记录,涉及了大量的人与人、人与项目、项目与项目的交互关系,为何不以天然最适合描述万物联系的Graph数据结构对底层数据建模,既而实现直观的图可视化分析呢?

OSGraph能做什么?

当前产品默认提供了6张开源数据图谱供大家体验,包含项目类图谱3个(贡献、生态、社区)、开发类3个(活动、伙伴、兴趣)。

图谱名称 功能 描述
项目贡献图谱 发现项目核心贡献 根据项目开发者开发活动信息(Issue、PR、Commit、CR 等),找到项目核心贡献者。
项目生态图谱 洞察项目生态伙伴 提取项目间的开发活动、组织等关键信息,构建项目核心生态关系。
项目社区图谱 分析项目社区分布 根据项目的开发活动、开发者组织等信息,提取项目核心开发者社区分布。
开发活动图谱 展示个人开源贡献 根据开发者开发活动信息(Issue、PR、Commit、CR 等),找到参与的核心项目。
开源伙伴图谱 寻找个人开源伙伴 找到开发者在开源社区中,与之协作紧密的其他开发者。
开源兴趣图谱 挖掘个人开源兴趣 根据参与的项目主题、标签等信息,分析开发者技术领域与兴趣。

为了更直观地表述图数据结构在开源数据洞察的优势,我们结合具体的场景案例说明。面对GitHub数据,我们多多少少会遇到如下类似的问题,这些问题可以通过上述的6类图谱很好的直观展现。

1.功能介绍

1.1 项目贡献图谱

发现项目核心贡献:根据项目开发者研发活动信息(Issue、PR、Commit、CR等),找到项目核心贡献者。

Q:我想看看给Apache Spark项目写代码的都有谁?

A:选择“项目贡献图谱” - 搜索spark - 选择apache/spark。可以看到HyukjinKwon、dongjoon-hyun等核心贡献者,另外还一不小心捉到两个“显眼包”,AmplabJenkins、SparkQA这两个只参与CodeReview的机器人账号。

项目贡献图谱可以帮助我们更好地发掘项目的关键开发者,尤其是我们不够熟悉的开源项目,可以快速地定位到关键贡献人,帮助技术运营发起合作申请和活动邀请。

1.2 项目生态图谱

洞察项目生态伙伴:提取项目间的开发活动、组织等关联信息,构建项目核心生态关系。

Q:最近很火的开源大模型Llama3周边生态大致是什么样的?

A:选择“项目生态图谱” - 搜索llama3 - 选择meta-llama3/llama3。可以看到pytorch、tensorflow、transformers等知名AI项目,当然还有上科技头条的llama.cpp。比较惊喜的发现是ray竟然和llama3有不少公共开发者,可以深度挖掘一下。

项目生态图谱让开源项目的挖掘变得更加轻松,我们通过分析两个开源项目的公共Stargazers和PR/CR等信息,挖掘潜在的项目关联关系,这可以帮助开发者快速熟悉开源项目的周边生态,并能做很好的技术延展探索。未来,通过引入项目间的代码依赖关系,甚至项目与科研论文的引用关系,可以帮助开发者和科研人员更快地熟悉未知的技术领域。

1.3 项目社区图谱

分析项目社区分布:根据项目的开发活动、开发者组织等信息,提取项目核心开发者社区分布。

Q:大数据引擎Flink发展这么多年后的社区现状如何?

A:选择“项目社区图谱” - 搜索flink - 选择apache/flink。可以看到项目关注者主要来自中、美、德三国,而Alibaba组织是代码贡献的中坚力量。

项目社区图谱目前从国家和组织的维度对核心开发者进行了分组展示,可以帮助我们快速了解一个项目开发人员的地理分布和组织分布,指导开源布道师和技术运营做更优的公共关系资源配置。

1.4 开发活动图谱

展示个人开源贡献:根据开发者研发活动信息(Issue、PR、Commit、CR等),找到参与的核心项目。

Q:大神Linus Torvalds最近在参与哪些开源项目?

A:选择“开发活动图谱” - 搜索torvalds。果然linux项目是torvalds的主要工作,不过llvm、mody、libgit2也有所参与,同时也看到他在subsurface这种“潜水日志管理工具”上的大量贡献,果然大佬的爱好都很广泛。

开发活动图谱让了解一个社区开发者的背景变得更加直观,过去我们只能在开发者的GitHub个人页面上查看“贡献雷达图”作粗粒度的了解,而开发活动图谱在统计粒度和信息展示间找到了很好的平衡点。在个人主页上使用这样的开源个人名片不失为一种更时髦的选择。

1.5 开源伙伴图谱

寻找个人开源伙伴:找到开发者在开源社区中,与之协作紧密的其他开发者。

Q:我想知道在开源社区有没有和我志同道合的人?

A:选择“开发伙伴图谱” - 搜索我的ID。让我震惊的是有那么多陌生人和我关注了同一批项目,这不得找机会认识一下,说不定就能找到新朋友了。而和我合作PR的人基本上都是我认识的朋友和同事,继续探索一下朋友们的开源伙伴,开源社区的“六度人脉”不就来了么。

开源伙伴图谱构建了一种“人-人”关系视图,GitHub原生数据并不存在基于账户的“好友/粉丝”数据,我们通过两个人共同Star的项目以及参与的PR/CR等开发活动数据,构造了开发者之间的关系视图。通过此视图,可以发掘很多“志同道合”但未曾谋面的朋友,或许下一个合作PR就在这次“会面”之后发生。

1.6 开源兴趣图谱

挖掘个人开源兴趣:根据参与的项目主题、标签等信息,分析开发者技术领域与兴趣。

Q:GitHub上最活跃的开发者对什么技术感兴趣?

A:选择“开源兴趣图谱” - 搜索sindresorhus(GitHub用户榜 No.1)。整体来看sindresorhus对node、npm、js很感兴趣,另外他发起的awesome项目足足30W星,令人咋舌!当前的开源兴趣数据主要来自项目有限的标签信息,后续借助AI技术可能会有更好的展现。

开源兴趣图谱是对开发者技术背景的另一种形式的探索尝试,我们都知道开源项目一般都会有一些标签标注其技术领域和使用的关键技术,通过将开发者参与的项目按照标签分组汇总,得到个人的技术兴趣图谱,通过它可以快速地了解一个开发者的技术领域和视野。当然,基于项目现有的标签数据并不能做到精准的领域分类(不少项目没有标注标签数据),因此未来我们希望结合NLP技术做到更好的项目领域识别和分类。

1.7 更多功能

未来将会有更多有趣的图谱和功能加入到OSGraph:

  • 简单灵活的API设计,让图谱无限扩展。
  • 自由高效的画布交互,无限探索数据价值。
  • 图谱URL支持嵌入Markdown,制作我的开源名片。
  • 基于AI技术的项目主题标签分析。
  • 多人多项目联合分析,图谱洞察一键可达。
  • 更丰富的数据展示与多维分析。

2.OSGraph部署流程

2.1 拉取镜像

dockerhub上拉取所需的2个镜像

#此镜像含 mysql、elasticsearch、tugraph-DB 组件
docker pull tugraph/tugraph-db-osgraph:4.4.0
#系统编译镜像
docker pull registry.cn-chengdu.aliyuncs.com/nextgraph/webbuild:202405.2

2.2. 启动容器

#启动osgraph依赖组件容器
docker run -d --privileged --net host --name tugraph tugraph/tugraph-db-osgraph:4.4.0
#启动osgraph编译、运行容器
docker run --name=build -p 80:80 -itd registry.cn-chengdu.aliyuncs.com/nextgraph/webbuild:202405.2

2.3. 在build容器内编译、启动OSGraph

2.3.1 在build容器内拉取osgraph代码,编译

docker exec -it build bash
cd /home/admin/app
git clone https://github.com/TuGraph-family/OSGraph.git
cd OSGraph/
bash bin/build-osgraph.sh

2.3.2 在build容器内修改配置、启动

vi bin/osgraph-env
#修改 TUMAKER_DB_HOST、ES_HOST、TUGRAPHDB_HOST 为服务器本机的IP
#TUGRAPHDB_USER修改为admin TUGRAPHDB_PASSWORD修改为73@TuGraph
#剩余其他配置项不用修改

export LANG=zh_CN.UTF-8
export TUMAKER_DB_HOST=127.0.0.1
export TUMAKER_DB_PORT=3306
export TUMAKER_DB_USER=root
export TUMAKER_DB_PASSWORD=tuMaker0520@
export ES_HOST=127.0.0.1
export ES_PORT=9200
export ES_USERNAME=elastic
export ES_PASSWORD=es
export TUGRAPHDB_HOST=127.0.0.1
export TUGRAPHDB_PORT=7687
export TUGRAPHDB_USER=admin
export TUGRAPHDB_PASSWORD=73@TuGraph
export TUGRAPHDB_NAME=default

#修改保存 /bin/osgraph-env后,执行
source bin/osgraph-env

#启动系统(注意要在/home/admin/app/OSGraph 此目录下执行下面启动脚本)
bash bin/startup-osgraph.sh

2.4.浏览器访问

在浏览器中访问http://服务器IP

  • 备注:内置ES测试数据

  • 可通过name进行搜索

{"index":{"_index":"github_repo","_id":"528766495"}}
{"id":528766495,"name":"TuGraph-family/tugraph-db","star":1026}
{"index":{"_index":"github_repo","_id":"81810486"}}
{"id":81810486,"name":"antvis/G6","star":10748}
{"index":{"_index":"github_user","_id":"827205"}}
{"id":827205,"name":"DanielRuf"}
{"index":{"_index":"github_user","_id":"2311313"}}
{"id":2311313,"name":"fanzhidongyzby"}
{"index":{"_index":"github_user","_id":"1132769"}}
{"id":1132769,"name":"hjk41"}

更多优质内容请关注公号:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。

与透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具相似的内容:

透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具

"透视开源生态,OSGraph——GitHub全域数据图谱的智能洞察工具 OSGraph (Open Source Graph) 是一个开源图谱关系洞察工具,基于GitHub开源数据全域图谱,实现开发者行为、项目社区生态的分析洞察。可以为开发者、项目Owner、开源布道师、社区运营等提供简洁直观的开

FastJson不成想还有个版本2啊:序列化大字符串报错

# 背景 发现陷入了一个怪圈,写文章的话,感觉只有大bug或比较值得写的内容才会写,每次一写就是几千字,争取写得透彻一些,但这样,我也挺费时间,读者也未必有这么多时间看。 我想着,日常遇到的小bug、平时工作中的一些小的心得体会,都还是可以写写,这样也才是最贴近咱们作为一线开发生活的,也不必非得是个

Dubbo3应用开发—XML形式的Dubbo应用开发和SpringBoot整合Dubbo开发

Dubbo3程序的初步开发 Dubbo3升级的核心内容 易⽤性 开箱即⽤,易⽤性⾼,如 Java 版本的⾯向接⼝代理特性能实现本地透明调⽤功能丰富,基于原⽣库或轻量扩展即可实现绝⼤多数的 微服务治理能⼒。更加完善了多语言支持(GO PYTHON RUST) 超⼤规模微服务实践 ⾼性能通信(Tripl

利用代码生成工具快速生成基于SqlSugar框架的Winform界面项目

我们接触一个新事物的时候,如果一个事物能够给我们带来非常直观的感官认识,那么我们就很容易接受,反之可能需要很长时间的潜移默化的了解认识才能接受。万物化繁为简,透过本质看表象,往往也是一个认知迭代深入的过程。在我介绍很多篇随笔《SqlSugar开发框架》,能够看完的肯定不会是一开始就学习的人员,毕竟技术的陈述是比较枯燥无味的,而最好的认识来自于一些快速的项目演示,本篇随笔介绍利用《代码生成工具Dat

[转帖]中国开源软件:出口管制对其影响及未来展望

https://www.allbrightlaw.com/CN/10475/d7cf06afe8d07a36.aspx 著名Linux基金会在其出版物中提到,“开源发展的最大优势之一是它实现了跨边界的协作;开源协作透明、公开且能跨越组织边界,促使世界各地的开发人员、学者和工作人员一同成就比个人力量所

透视华为云云原生数据库的前世今生及未来演进,能给行业带来哪些启发?

摘要:通过云服务形式提供数据库功能的云数据库应运而生,但这还仅仅是数据库变革的开端。 本文分享自华为云社区《透视华为云云原生数据库的前世今生及未来演进,能给行业带来哪些启发?》,作者:万佳。 自云计算出现后,风云变幻十余载,硬件、软件行业都经历了重构变革所带来的机遇与激荡。企业 IT 基础设施逐渐云

DevOps|乱谈开源社区、开源项目与企业内部开源

之前的一篇文章《从特拉斯辞职风波到研发效能中的荒唐事》中关于企业内源的内容在研发效能群内引起了大家的热烈讨论。有的小伙伴不同意,有的小伙伴非常不同意,我觉得这都是非常正常的反馈,话不说不透,理不辩不明,我还是特别希望能和大家一起把这个问题弄明白。这篇文章就是那篇文章的后续,本文主要讨论开源社区、开源

你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

在实践中,很多团队对于DevOps 流水线没有很透彻的理解,要不就创建一大堆流水线,要不就一个流水线通吃。实际上,流水线的设计和写代码一样,需要基于“业务场景”进行一定的设计编排,特别是很多通过“开源工具”搭建的流水线,更需要如此(商业的一体化平台大部分已经把设计思想融入自己产品里了)。 - **流

如何使用Java创建数据透视表并导出为PDF

摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 数据透视分析是一种强大的工具,可以帮助我们从大量数据中提取有用信息并进行深入分析。而在Java开发中,可以借助PivotTable,通过数据透视分析揭示数据中的隐藏

5分钟理透LangChain的Chain

LangChain几乎是LLM应用开发的第一选择,它的野心也比较大,它致力于将自己打造成LLM应用开发的最大社区。而LangChain最核心的部分非 Chain 莫属。