◆徐 岩 浩庆波
适用于搜索引擎的本体构建方法
◆徐 岩 浩庆波
(曲阜师范大学(济宁)网络信息中心 山东 273100)
近年来互联网高速发展,互联网上的信息呈现爆炸式增长的趋势。信息检索是从信息资源集合获得与信息需求相关的信息资源的活动,由此可见信息检索技术研究的重要性。国内外学者一直在研究基于关键词的检索方法,但是目前仍无法克服这些缺点:基于关于关键词的方法没有考虑查询关键词的语义信息;基于本体的检索方法也存在着限定特定领域,检索速度慢等缺点。本文旨在构建一个比较通用的本体库适用于搜索引擎。
信息检索;本体;搜索引擎
国内外学者在无数构建本体经验中总结出了构建本体的基本方法。在构建本体之前,需要确定获取概念、关系的数据库,不同的数据库对于本体的构建工作影响非常大。本体构建的数据源可以分为三大类:叙词表、文本、关系数据库[1],对于不同的数据源有不用的本体构建方法,常用的构建方法有IEEE 1074- 1995[2]、骨架法[3]、TOVE法(评价法)[4]、KACTUS工程法[5]。
本体构建的开发形式主要有两种:一种是可视化的手工构建,另一种则是自动化构建。可视化构建工具比较多,例如Protégé[6]、WebODE[7]等。自动化构建一般是使用Jena[8]工具。相比较而言,Protégé等可视化工具手工构建比较适合用于小规模的本体构建任务,Jena工具包编码半自动形式化适合用于较大规模的本体构建任务。
在语义搜索中非常重要的一项任务就是如何对本体中的节点之间的语义距离进行量化来表示其重要程度,早在19世纪80年代,学者就已经开始对基于树状本体结构的语义相似度进行研究,提出较为代表性的理论方法有基于路径距离。基本思想是根据两个概念在本体模型中的距离长度来衡量概念间的语义距离,其中,具有代表性的方法有:Wu & Palmer法[9]、Leacock & Chodorow[9]法等。
虽然国内外学者一直在研究基于关键词的检索方法,但是目前任无法克服这种缺点:基于关于关键词的方法没有考虑查询关键词的语义信息;基于本体的检索方法也存在着限定特定领域,检索速度慢等缺点。本文旨在构建一个比较通用的本体库适用于搜索引擎。
计算机科学中本体主要用于信息交换和共享,本体的描述语言是面向计算机的。W3C在2014年月25日发布了用于描述本体的Resource Description Framework (RDF)的标准。RDF拓展了Web的链接结构,使用URI来表征两个事物之间的关系以及两个事物本身(资源、属性和陈述),这种结构也通常称为三元组(triple)。RDF优点是使用简单三元组模型,使得不同的应用程序之间能够混合、公开和共享结构化和半构造型数据,但是RDF也有其缺点:对概念之间的推理支持不太好[10]。
W3C在2009年10月27日发布了RDF的改进语言:OWL的预览版,在2012年12月11日正式推出了OWL的标准。OWL旨在表达事物、事物组和事物之间的丰富和复杂的知识关系。OWL有三个版本,它们可以适应各个不同领域的需求。
OWL Full:该语言是最完整的OWL语言,可以最大限度的描述和表达一个对象。包含了OWL定义的所有原语,同时还支持所有原语与RDF或RDFS的组合,以及通过原语间的相互作用重新设定预定义原语的意思。
OWL DL:在一定程度上支持描述逻辑推理,属于OWL Full的子语言,在原语的数量和使用上都受到了限制,不具备OWL Full那么强大的能力,但却是三种语言中表达能力最强的一类,当需要高效推理时可以选用这种语言。
OWL Lite:是更严格地对OWL DL的构造进行了限制的产物,只适用于只有一个分类层次或者简单属性的约束,不支持枚举类、任意基数约束和类不相交陈述,其优点为实现简单、容易上手,目前大多数的本体项目均采用OWL Lite。
随着本体的研究深入,越来越多的学者或者机构开发本体知识库。由于开发一个知识库是一个庞大的信息的组织工程,在开发中遇到了各种各样的问题:如何减少重复劳动、图形化编辑降低开发门槛等。国内外的开发者为了解决以上的问题开发了众多的本体开发工具,例如:Protégé、Jena、OntoEdit、WebOnto、WebODE、和KAON等。本文着重介绍Protégé和Jena。
(1)Protégé
又常常简单地拼写为“Protege”,是一个史丹佛大学开发的本体编辑和知识获取软件。开发语言采用Java,属于开放源码软件。由于其优秀的设计和众多的插件,Protégé已成为目前使用最广泛的本体论编辑器之一。
(2)Jena
Jena是一个由HP公司开发的Java开源工具包,提供了用于本体开发的各种基础功能,例如创建本体、解析、查询、推理等。除此之外,Jena推理可以使用内置的推理引擎,如Generic rule reasoner、OWL reasoner、RDFS rule reasoner等,也可以通过DIG接口连接不同的推理引擎,如pellet、racer、fact等。
搜索引擎的文档数目之多、种类之多以至于很难用一个本体完整地表达出来。图书馆内部的书籍和搜索引擎的文档有几分相似之处,图书馆收藏的书关于世界的方方面面,可谓集天下之大成,然而却总是井井有条。图书馆的书籍之所以多而不乱,其中一个重要原因是使用《中国图书馆分类法》来对这些书籍进行分类。倘如使用《中国图书馆分类法》对搜索引擎的文档进行归类并使用其中的概念作为推理的依据,那么问题就迎刃而解了。
《中国图书馆分类法》(原称《中国图书馆图书分类法》)是我国建国后编制出版的一部具有代表性的大型综合性分类法,是当今国内图书馆使用最广泛的分类法体系,简称《中图法》。《中图法》第四版全面补充新主题、扩充类目体系,使分类法跟上科学技术发展的步伐。同时规范类目,完善参照系统、注释系统,调整类目体系,增修复分表,明显加强类目的扩容性和分类的准确性。《中图法》覆盖各个领域并且是领域专家参与制定的,完全能够适用于搜索引擎。
因此,只需要将《中图法》的分类标准作为本体的概念,分类标准之间的上下级关系作为本体的subclass of关系,即可完成本体的构建。
访问网站http://www.ztflh.com/可以发现,各个网页的DOM结构一致,因此可以使用广度遍历的算法结合jena工具以及网页抽取工具jsoup来自动化的完成本体构建的过程,大大提高效率。
算法流程如下:
算法输入:网站初始链接URL=http://www.ztflh.com/,jena本体模型ontModel
(1)申请抓取队列fetchUrlQueue,将URL入队。
(2)如果抓取队列fetchUrlQueue不为空,从队头出队一个url记为fetchUrl并跳转步骤(3);如果抓取队列fetchUrlQueue为空则跳转(4)。
(3)访问fetchUrl,解析返回结果。找到当前fetchUrl页面的父级分类标准记为C_p,当前页面的子级分类标准记为D={c_1,c_2,c_3,c_4,…c_n}.如果ontModel中不存在资源C_p那么就创建资源C_p。分别给资源C_p添加子类c_1,c_2,c_3,c_4,…c_n。将c_1,c_2,c_3,c_4,…c_n子类的网页的url入队列fetchUrlQueue,并跳转到步骤(2)。
(4)将ontModel输入到文件lib.owl并退出。
算法输出:文件lib.owl
以下是用Java语言实现的算法:
图1 使用Java实现本体自动化构建
运行以上代码,并开发可视化算法,最终得到以下结果(由于分类比较多,只展开了三层):
图2 构建完成的本体可视化展示
本文介绍了构建适用于搜索引擎的本体的思路和方法,并且给出了算法以及实现。最后,根据程序运行的结果得到本体文件。
[1]余凡.领域本体构建方法及实例研究[M].武汉大学出版社,2015.
[2]IEEE Standard for Developing Software Life Cycle Processes[J].IEEE Computer Society,1996.
[3]M. Fernández López,OverviewOfMethodologies For Building Ontolo-gies[J].Proceedings of the IJCAI- 99 workshoponOntologiesand Problem-SolvingMethods(KRR5) Stockholm,1999.
[4]M. Grǜninger,M. S. Fox. Methodology for the Design and Evaluation of Ontologies[J]. Workshop on Basic Ontological Issues in Knowledge Sharing,1995.
[5]A. Bemaras, et al. Building and reusing ontologies for electrical net-work applications[J].In:Proc. of the European Conf on Artificial Intelligence. Budapest,Hungary: John Wiley and Sons,1996.
[6]Protégé [EB/OL].http://protege.stanford.edu/.
[7]Arpírez J C,Corcho O,Fernández-López M, et al. WebODE:a scalable workbench for ontological engineering[C]//Proceedings of the 1st international conference on Knowledge capture.ACM,2001.
[8]Jena [EB/OL].https://jena.apache.org/.
[9]Courtney Corley,Rada Mihalcea.Measuring the semantic similarity of texts.In Proceedings of the ACL Workshop on Empirical Modeling of Semantic Equivalence and Entailment (EMSEE '05).Association for Computational Linguistics,2005.
[10]于娟,马金平,李永.基于Web本体语言OWL的知识表示[J].计算机工程与设计,2006.