开源开放 | DeepOnto: 基于深度学习和语言模型的本体工程Python软件包

GitHub链接:

https://github.com/KRR-Oxford/DeepOnto

OpenKG链接:

http://old.openkg.cn/tool/deeponto-python

文档地址:https://krr-oxford.github.io/DeepOnto/

开放许可协议:Apache-2.0 license

项目参与人员:何源,陈矫彦,董行,Ian Horrocks

参与单位:牛津大学计算机系,曼彻斯特大学计算系


1、引言

本体用于对特定领域范围内的知识进行正式、明确地规范。它提供了概念和属性的词汇,可以促进人类和机器之间语义的共享理解,在生物信息学、信息系统和语义网等许多领域都有广泛的应用。我们这里主要介绍使用最为广泛,表达能力最为系统化的基于W3C标准,如Resource Description Framework (RDF),RDF Schema 和 Web Ontology Language (OWL)定义的本体。这些本体和我们一般认为的由事实构成的知识图谱有着千丝万缕的联系:本体能表达更复杂的逻辑关系和领域知识,是知识表达能力更强的知识图谱,而知识图谱通常有更大规模的事实数据。我们在日常的数字化生活和工作中,经常直接或者间接享受到了本体技术带来的便利。比如,大量的医疗信息系统使用了SNOMED CT本体(一种医学术语系统),ICD本体(一种国际疾病分类系统),ORDO本体(罕见疾病)等。本体更是各个领域的从业人员之间,计算机系统之间,从业人员和计算机系统之间进行知识共享和知识编辑的载体,比如食品和农业领域的FoodOn本体,生物信息领域的Gene本体(GO),环境领域的ENVO本体等。

本体工程是知识工程的一个子领域,支撑着本体开发的各个阶段,包括本体设计、构建、策展、评估和维护等。本体工程的具体任务包括:(1)定义实体,表达实体之间的关系,构建组成本体的逻辑公理;(2)验证和确保本体的质量(例如知识的完整性和正确性),(3)提取并且插入新的知识,(4)整合来自异构知识源的不同本体,等等。目前,这些任务很大程度上依赖于人工来完成,极大限制了本体的发展。尽管我们已经有研发了大量的知识推理算法(比如描述逻辑推理器HermiT),开发了很多辅助工具(比如大名鼎鼎的本体管理平台Protégé及其众多插件),也应用了不少机器学习和自然语言技术,但上述本体工程任务的自动化还是需要极大的提升。

最近5-10年,深度学习,特别是Transformer,预训练技术和大语言模型(LLM)得到了突破性的发展,它们在理解和处理以图片和语言为载体的人类知识上取得了巨大的成功。我们意识到这为本体工程的自动化带来了一个新的契机(注:我们不认为这些神经网络和学习技术的出现,符号化的知识表达,包括数据库、知识图谱和本体,就不再需要了。相反,我们觉得这是它们更能体现出自身价值的时代,变得更加重要了[2]。而最近一年基于检索的生成(RAG)的流行,正是验证了这一点)。然后,要使用这些深度学习和语言模型来帮助我们开发本体工程工具,还有很多问题需要解决:

1.目前最可靠是本体处理API和工具,由于开发时代的原因,主要基于Java,比如Java OWL API和Protégé。相反,目前深度学习和语言模型的库主要是基于Python。我们需要 Python 的本体处理接口,使得本体工程软件能更方便地结合深度学习和语言模型的算法库。

2.以往本体处理关注形式化知识,比如描述逻辑的推理,而缺少对于支持深度学习算法的知识和数据预告处理(比如把抽取图信息以更好使用图神经网络,抽取文本信息以更好应用语言模型)。我们需要开发便捷的本体处理 API ,从而能让开发和研究人员更加直接、更加灵活地把那些深度学习和语言模型算法应用到本体工程。

3.目前已经有一些使用深度学习和语言模型的研究工和算法,但缺少可靠的代码。我们需要更多、更有效的、可用性更强的本体工程工具和开发资源。

2、软件框架

针对上面提出的三个问题,我们开发了DeepOnto这个软件包。其架构如图1所示。它使用了JAVA OWL API作为基础的本体处理API,以提供高可靠性,同时使用jpype来调用这些API并且向上提供Python接口。DeepOnto包括一个本体处理模块作为基础,可以支持诸如加载、保存、检索实体、查询祖先/后代、修改实体和公理等基本操作,以及更高级的功能,如推理、语言化、规范化和投影。基于这个基础模块,DeepOnto构建了一套本体工程工具和资源集合,旨在进行本体对齐、完善和基于本体的LM探测。DeepOnto为进一步的实现提供了相当灵活和可扩展的接口。这包括我们正在进行的本体表示学习算法,本体实体补全算法,以及其他可以促进本体构建和策展的典型工作。这些新工具和资源的整合可能需要将其他基本功能集成到核心本体处理模块中,进一步增强其功能和健壮性。通过这种积极的发展循环,我们期待DeepOnto能够成为OpenKG等相关社区的强大工具包,为该领域提供普遍支持,并促进创新。

图 1 DeepOnto软件的架构

以下简单列举了DeepOnto的本体处理API和本体工程工具。它们的具体算法和使用请参考[1]和DeepOnto文档。

  • Pruning: 用于删除一些实体,以用于如基于Masking的evaluation场景。

  • Reasoning: 支持符号化推理,如调用HermiT推理器。

  • Verbalisation:使用本体的文本属性,如rdfs:label等,生成实体,表达式等知识的自然语言描述。

  • Normalisation: 把本体的复杂表达式转化成等价的,更简单的基本表达式。

  • Projection:把本体(近似地)转化成图表示。

  • Taxonomy: 从本体中提取class hierarchies,即最基本的概念分类。

  • BERTMap[3]: 一个基于BERT的本体对齐工具。

  • BERTSubs[4]: 一个基于BERT和templates的概念间包含关系预测工具。

  • Bio-ML[5]: 一系列针对基于机器学习的本体对齐系统的评估资源。

  • OntoLama[6]: 一个使用本体来对语言模型的知识和推理能力进行探测的工具。

3、参与/招聘

我们非常欢迎社区研究人员和开发人员使用DeepOnto,提出建议,测试结果,贡献代码。我们也提供了博士生和博士后职位,欢迎志同道合的同行一起进行Ontology Embedding, Knowledge Engineering, Ontology and/or Knowledge Graph-based RAG/LLM等方向的研究和开发。

曼大博士后职位: Research Associate in Neural-symbolic Knowledge Representation and Reasoning (enquiry: jiaoyan.chen@manchester.ac.uk

申请链接:

https://www.jobs.manchester.ac.uk/Job/JobDetail?JobId=27858

参考文献

[1] He, Y., Chen, J., Dong, H., Horrocks, I., Allocca, C., Kim, T., & Sapkota, B. (2023). DeepOnto: A Python package for ontology engineering with deep learning. arXiv preprint arXiv:2307.03067.

[2] Pan, J., Razniewski, S., Kalo, J. C., Singhania, S., Chen, J., Dietze, S., ... & Graux, D. (2023). Large Language Models and Knowledge Graphs: Opportunities and Challenges.Transactions on Graph Data and Knowledge.

[3] He, Y., Chen, J., Antonyrajah, D., & Horrocks, I. (2022, June). BERTMap: a BERT-based ontology alignment system. InProceedings of the AAAI Conference on Artificial Intelligence (Vol. 36, No. 5, pp. 5684-5691).

[4] Chen, J., He, Y., Geng, Y., Jiménez-Ruiz, E., Dong, H., & Horrocks, I. (2023). Contextual semantic embeddings for ontology subsumption prediction.World Wide Web, 1-23.

[5] He, Y., Chen, J., Dong, H., Jiménez-Ruiz, E., Hadian, A., & Horrocks, I. (2022, October). Machine learning-friendly biomedical datasets for equivalence and subsumption ontology matching. InInternational Semantic Web Conference (pp. 575-591). Cham: Springer International Publishing.


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

点击阅读原文 ,进入 OpenKG 网站。

相关推荐
Srlua1 分钟前
周期性移动模式地铁乘客流量预测
python·数据分析
易辰君3 分钟前
【Python爬虫实战】深入解析 Scrapy:从阻塞与非阻塞到高效爬取的实战指南
开发语言·python
Elastic 中国社区官方博客9 分钟前
Elasticsearch:Retrievers 介绍
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
python收藏家18 分钟前
如何在Python中进行数学建模?
python
&黄昏的乐师33 分钟前
Opencv+ROS实现颜色识别应用
人工智能·opencv·学习·计算机视觉
小馒头学python1 小时前
深度学习中的卷积神经网络:原理、结构与应用
人工智能·深度学习·cnn
2zcode1 小时前
基于YOLOv8深度学习的脑肿瘤智能检测系统设计与实现(PyQt5界面+数据集+训练代码)
人工智能·深度学习·yolo
龙虎榜小红牛系统1 小时前
WordCloud参数的用法:
python·wordcloud
Sunrisepeak1 小时前
xlings: 跨平台一键安装功能设计与思考 - 多编程环境搭建、工具软件安装、项目依赖管理
程序员·开源·github
fhf1 小时前
感觉根本等不到35岁AI就把我裁了
前端·人工智能·程序员