人工智能和知识图谱五:著名的开源和商业知识图谱工具

愤怒的蜗牛

人工智能和知识图谱五:著名的开源和商业知识图谱工具

一、开源工具

RDFLib:RDFLib是一个用于处理RDF的纯Python库。它被开发人员广泛用于中小型项目或数据科学领域。RDFLib允许您创建图表、解析RDF文件(Turtle、XML等)以及执行SPARQL查询(它有一个基于Python的SPARQL1.1引擎)。它还在一定范围内支持OWLRL推理。RDFLib的优势在于其简单易用——在Python脚本或Jupyter笔记本中,即可加载三元组并快速进行查询。它非常适合原型设计或将知识图谱(KG)功能嵌入到应用程序中。例如,获取一些数据、添加一些本体语义并进行查询——所有这些都在内存中完成。然而,它并不适用于处理大型图表,在RDFLib中处理数百万个三元组是可行的,但与专门的存储相比,速度和内存效率都不是很高。它也是单线程的,本身不是一个服务器,尽管可以围绕它构建一个WebAPI。RDFLib在语义网开发者社区中的采用率很高,尤其是在数据ETL、查询小型知识库或本体单元测试等任务中。缺点:性能和可扩展性有限,而且由于它是Python语言,长时间运行的进程可能会受到GIL的限制。但就易用性而言,它非常出色。社区采用率:在处理RDF的Python用户中非常高;它实际上是该领域的首选库。

GraphDB(Ontotext):GraphDB是由Ontotext(以前也称为OWLIM)开发的RDF三元组存储。它是一款商业产品,但Ontotext为小型数据集提供了免费版本(之前有一个开源“GraphDBLite”版本)。我们将其包含在这里,因为它通常被视为一个平台,但请注意,它是商业的,具有完整功能。GraphDB以强大的OWL推理支持和复杂查询的高性能而闻名。它具有类似lucene的全文搜索集成,可以无缝处理RDF和SPARQL1.1堆栈,并带有一个用于探索数据的漂亮工作台UI。在可扩展性方面,GraphDB可以在集群设置上处理数十亿个三元组,并且针对加载和查询大型语义数据集进行了优化。例如,英国议会的数据平台使用GraphDB来提供立法知识,大型出版商将其用于内容元数据。其优势在于成熟度:Ontotext十多年来一直在不断改进,因此它稳定且经过优化。GraphDB的企业级功能包括高可用性集群、LDAP安全性以及用于相似性搜索等功能的插件。其关键用例是任何需要深度推理或本体一致性的场景——例如,欧洲机构使用它来将数据与丰富的本体(EuroVoc等)集成。其劣势在于,由于它仅支持RDF,因此某些图算法或原生图遍历可能不太直观(与属性图数据库相比)。此外,由于是商业版本,其免费版本存在一些限制(例如数据大小上限或不支持集群)。然而,它在语义网社区和需要可靠RDF存储的企业中得到了广泛的采用。(优势:高性能推理器;劣势:完整版许可证、新手学习RDF的难度较高。)

Virtuoso:OpenLinkVirtuoso是一种混合数据库,可充当RDF存储、关系存储等。Virtuoso的开源版本已被广泛使用,DBpedia的SPARQL端点就基于Virtuoso。Virtuoso支持SPARQL(包括一些扩展),也可以执行常规SQL。它的独特之处在于可以在一个系统中同时托管关系数据和图形数据。Virtuoso的优势在于其对某些工作负载的SPARQL查询速度极快,并且能够支持大量并发用户,这对于像DBpedia这样的公共端点至关重要。它内置了对某些推理(主要是RDFS+)的支持。Virtuoso还经常因其开箱即用的分面浏览器界面而用于数据探索。在可扩展性方面,Virtuoso可以利用大内存和多核的多线程引擎垂直扩展,并且在最新版本中可以水平扩展(市面上有“集群”版本)。Virtuoso功能强大,但管理起来可能比较复杂。一些开发人员发现它的错误消息或行为有些晦涩难懂。此外,某些SPARQL1.1功能在旧版本中存在滞后或异常。尽管如此,它仍然是一个久经考验且历史悠久的系统。其优势:高性能、多功能性(既可以用作三元组存储,也可以用作标准SQL数据库,甚至可以用作Web服务的中间件)。劣势:架构略显过时(它是一个自定义的C/C++系统,必须使用配置文件进行调优),并且社区版本与商业版本相比可能未启用所有优化功能。尽管如此,作为一个开放工具,它在托管开放数据方面很受欢迎——例如,许多关联开放数据(LinkedOpenData)数据集可以通过公共Virtuoso端点访问。(社区采用率:在开放数据/LOD云领域意义重大。)

JanusGraph:一个开源分布式图数据库,最初源于Thinkaurelius开源的TitanDB,现由Linux基金会以及IBM、Amazon等其他机构维护。JanusGraph使用可扩展的后端(例如ApacheCassandra、ScyllaDB或HBase)来存储图,并支持TinkerPopGremlin堆栈。它是一种属性图模型(而非RDF),非常适合需要水平扩展的大规模图。优势:它可以通过向Cassandra集群添加更多节点等方式进行扩展,这对于处理海量图(例如物联网网络、社交网络)非常有用。它还支持实时查询和分析查询(例如与Spark集成)。JanusGraph的模式是可选的,可以为约束和索引定义顶点/边的模式,但它非常灵活。它对于非常大的图性能良好,但由于是分布式系统,跨分区遍历的延迟可能比Neo4j等单节点系统更高。它的缺点是需要维护一个复杂的技术栈(Cassandra+Janus+可能需要Elasticsearch用于全文索引等)。它不像Neo4j那样即插即用,但对于经验丰富的大数据工程师来说,它是一个强大的解决方案。应用场景:需要大规模图谱的本地或开源公司。例如,需要绘制拓扑结构的网络公司正在使用,或者在JanusGraph后端构建了万亿边知识图谱的中国搜索引擎。

TigerGraph(开发者版/开放):TigerGraph虽然是商业版本,但也提供免费的开发者版和云试用,并一直在向开发者社区推广。它是一个高性能并行图数据库(属性图),以快速深度链接分析而闻名。TigerGraph采用编译查询方法:其GSQL查询会被编译为C++执行,从而在多跳查询中表现出色。它还支持分布式横向扩展。其主要优势在于能够快速处理超大型图——它的数据加载速度比竞争对手快几个数量级,并且由于其并行引擎,可以高效地运行多跳查询(例如3跳以上)。TigerGraph广泛应用于欺诈检测、客户360和供应链——任何需要在大型网络上进行多跳推理的用例(例如,在银行网络中查找距离最远为4的欺诈环)。其算法库和对用户定义函数的支持允许实现自定义遍历和分析。缺点:TigerGraph的GSQL需要学习另一种语言(虽然它类似于SQL,但仍需要一些学习)。该平台虽然提供免费的本地实例,但主要用于商业生产,其生态系统比Neo4j的规模更小。企业(尤其是那些已达到Neo4j极限并需要进一步扩展的企业)的社区采用率正在不断增长,但在开源爱好者中,它有时会受到谨慎对待,因为它并非完全开源(核心引擎是专有的)。TigerGraph现在也提供云服务,以方便使用。(优势:原始性能和可扩展性;劣势:专有核心、社区规模小于Neo4j、分布式系统复杂)。

PoolParty:PoolParty由语义网公司开发,是一款开源/免费且使用受限的分类法和本体管理工具,常用于构建受控词汇表和简单的知识图谱。它更像是基于三元组存储的图形用户界面和工作流。Protégé我们之前提到过的是开源的,也是本体编辑的关键。此外,还有TopBraidComposer(用于编辑本体的商业版本)和TopBraidEDG(企业数据治理,商业版本)。Gephi(开源)是一款图形可视化和分析工具(适合以可视化方式探索知识图谱,但并非服务器或数据库)。

二、商业工具

Ontotext(GraphDB):Ontotext公司提供GraphDB(如上所述)及相关产品。他们将自己定位为提供企业知识图谱解决方案,通常专注于内容管理(媒体、出版)和数据集成。GraphDB的优势在于其推理和文本挖掘集成。Ontotext还在其图技术的基础上构建了面向生命科学的产品,例如TargetDiscovery。该公司在标准合规性和性能方面投入了大量资金(其GraphDB8.7增加了使用向量进行概念标记等功能)。劣势:许可证成本以及对RDF专业知识的需求,尽管他们提供培训。Ontotext在欧洲语义技术社区中占有重要地位,GraphDB与Stardog一起被认为是领先的RDF存储库,尤其对于那些需要推理功能的用户而言。

TigerGraph:(商业版)——如上所述,TigerGraph是商业产品,但由于其独特的功能,经常被单独提及。当组织需要一个真正大规模、具有支持和企业级功能的生产级图分析平台时,TigerGraph是理想之选。它提供安全功能、高可用性集群,并与机器学习集成(支持嵌入生成,并拥有类似于Neo4j的图数据科学库)。许多金融机构选择TigerGraph进行反欺诈,因为它在交易网络中的遍历速度很快。TigerGraph的市场营销经常宣称它是“最快且唯一可扩展的企业级图数据库”——这有点夸张,但它体现了他们对性能的关注。优势:与之前一样,性能和处理复杂分析的能力(例如计算最短路径或在非常大的图上进行中心性计算)。劣势:供应商锁定(专有查询语言和数据库,但可以导出数据),以及内置可视化工具较少(您可能需要第三方工具或自定义开发来可视化结果;而Neo4j拥有Bloom等)。但TigerGraph正在建设自己的社区——他们有一个活跃的开发者论坛并举办图表竞赛来鼓励使用。

Metaphactory(由metaphacts开发):metaphactory是一个有趣的商业平台——它本质上是知识图谱数据库的顶层,提供端到端工具来构建知识图谱驱动的应用程序。它与存储无关,但通常与GraphDB、Blazegraph或Neptune等RDF存储一起使用。Metaphactory提供的功能包括用于搜索、表单和知识图谱可视化的直观UI组件,一个可让您在知识图谱上快速创建仪表板或门户的应用程序构建器,以及对语义知识建模的支持(它利用本体来驱动UI生成)。它还集成了AI功能——最近添加了使用大型语言模型与知识图谱交互的功能。metaphacts(该公司)强调知识民主化,这意味着他们的目标是让非技术用户通过友好的界面与知识图谱交互[48]。例如,一家使用metaphactory的制药公司可以让研究人员通过直观的过滤器和上下文突出显示来浏览药物发现知识图谱,而无需编写SPARQL。优势:加速知识图谱应用程序的开发,提供开箱即用的组件(地图、时间线、图形可视化等),并遵守开放标准(所有数据都保留在您的三元组存储库中,元工厂只需查询它并呈现结果)。它已经部署在工程(西门子)、汽车、生命科学、文化遗产(链接数据的博物馆)等行业。劣势:它是商业性的(每个服务器的许可证等),你在某种程度上受制于他们的做事方式(尽管你随时可以在需要时编写自定义SPARQL或代码)。然而,它大大缩短了构建知识图谱UI的时间,这通常是知识图谱项目中的一个巨大差距。该平台对开发人员友好(具有SPARQL编辑器等),但也旨在为最终用户提供服务。(采用情况:尤其在欧洲知名,拥有忠实的客户群;在一般开发世界中并不广为人知,但在语义网领域备受推崇)。

其他商业平台:Stardog–GraphDB的竞争对手,我们已经在工具中讨论过,但需要详细说明的是:它以其知识图谱工作室界面和虚拟图形功能而闻名(可以通过映射查询其他数据源,就像KG的一部分一样)。在数据虚拟化和企业控制方面很强大。Neo4jEnterprise–Neo4j的付费版本增加了诸如聚类(用于HA的因果聚类)、高级安全性(基于角色的访问)以及图形数据科学和Bloom可视化(商业附加组件)等功能。Neo4j可以说是全球采用最多的图形数据库,拥有庞大的社区,但作为属性图,它不进行OWL推理(尽管它的neosemantics插件可以导入RDF并进行基本推理)。Anzo(CambridgeSemantics)–使用图形的企业数据集成平台。AmazonNeptune它本身是作为AWS的一部分进行商业化的,但我们在超大规模器下介绍过它。Diffbot–商业KG-as-a-service(他们爬取网络以获取大量知识图谱并提供API来查询它;不完全是您运行的工具,而是一种资源)。IBM’stools–例如用于构建自定义注释器(从文本中提取KG三元组)的WatsonKnowledgeStudio,以及知识加速器解决方案(行业特定的本体+内容包)。

三、优势与劣势回顾

RDFLib、Neo4jCommunity、JanusGraph、Protégé等开源工具使任何人都可以无需许可费用即可开始构建知识图谱,从而促进了实验和社区贡献。它们的缺点可能是扩展限制(对于单机环境)或需要大量设置(对于分布式环境)。但它们的一大优势是透明性和可扩展性——例如,人们可以扩展RDFLib或为JanusGraph做出贡献。

商业工具提供强大的支持、精美的用户界面和企业集成(安全性、合规性)。它们通常具有更好的性能优化和额外功能(例如Stardog/GraphDB中的推理功能,或Metaphactory中的应用程序构建功能)。然而,它们也带来了供应商锁定和成本问题。此外,一些商业宣传需要仔细审查——例如,某家供应商可能声称自己是“唯一的实时可扩展图”,这可能只是夸大其词;选择合适的产品需要进行真正的基准测试和试验。

四、社区与用例

Neo4j(开源核心)拥有可以说是最大的社区——众多开发者、聚会、在线课程等等。RDFLib和Protégé是学术界和语义网领域的主流工具。GraphDB和Stardog等工具在特定领域(政府、出版、生命科学)的企业级应用非常广泛。TigerGraph虽然成立较晚,但凭借其专业功能,正在金融服务和电信领域取得进展。Metaphactory独树一帜,深受发现它的项目的喜爱,因为它节省了大量的开发工作;它的社区规模较小,但用户往往热情高涨,因为它解决了知识图谱前端开发的痛点。

用例:每个工具通常与某些用例相一致:

RDFLib用于快速脚本或原型研究想法(例如通过在Python中快速查询数据来试验新的KG嵌入方法)。

Neo4j适用于推荐引擎、知识驱动的应用程序等应用程序,这些应用程序注重开发人员的生产力和可视化(例如,一家初创公司构建音乐艺术家知识图谱来支持推荐,可能会选择Neo4j来提高开发速度和插件生态系统)。

GraphDB/Stardog用于企业知识集成-例如,一家银行创建了所有客户数据和关系的知识图谱来检测风险和法规遵从性,他们可能更喜欢用它们进行推理(应用复杂的策略)和对各种来源进行SPARQL联合查询。

TigerGraph用于大规模图形分析——例如,大规模银行欺诈检测(如上所述,Intuit使用TigerGraph识别财务数据中的复杂欺诈团伙,其他案例研究展示了JLR的供应链优化)。

Metaphactory适用于具有复杂领域知识但IT资源有限的场景,用于构建自定义应用程序-例如,文化遗产机构使用它来链接和探索跨博物馆的艺术品数据,或制药公司使研究人员能够通过模板而不是编写SPARQL来查询药物发现KG。

总而言之,没有放之四海而皆准的工具,但好消息是存在一个丰富的工具箱,有免费的,也有付费的。开源确保即使是个人或小型组织也可以利用知识图谱(像RDFLib或Neo4jCommunity这样的工具足以开始甚至运行中等的解决方案)。商业产品确保在需要关键任务、生产级功能时,有支持的产品可供选择。知识图谱社区受益于两者:开放式创新和稳定的投资。我们看到这些工具的社区持续增长,表明采用率很高——例如,GraphDB和Neo4j出现在Gartner魔力象限中,TigerGraph筹集了大量资金并不断扩展,甚至出现了新的参与者(如开源时间图存储TerminusDB或Blazegraph的衍生产品),显示了生态系统的活力。


您需要 登录账户 后才能发表评论

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,9人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码