薛晓莉,段跃兴
(太原理工大学 计算机科学与技术学院,山西 太原030024)
目前,RDF数据推理技术[1,2]主要分为3 类:本体与描述逻辑相结合、本体与规则相结合以及本体与推理机相结合[3]。这些推理往往都是在单一领域内进行研究,使用最多的方法是将本体与规则或者本体与推理机结合起来进行单领域的前向推理。例如钟秀琴等[4]通过将本体和Prolog规则结合实现了在平面几何领域的知识推理,Raimond等[5]通过将音乐领域内的多个数据集进行关联实现了音乐领域的知识推理;Saleem 等[6]通过将本体和推理机结合实现了在生物制药领域的知识推理。然而现有的RDF数据推理方法,往往集中在单一领域内进行前向推理,由于涉及的领域范围太窄导致发现的信息量较少,且由于推理处于单一方向导致推理的效率较低。为了发现不同领域信息间隐含的知识,提高推理的速度,本文提出了一种将多个领域的RDF数据关联起来进行混合推理的方法,该方法通过建立关联规则来将旅游、交通、金融3 个领域的RDF数据集关联起来,并且在前向规则的基础上增加了混合规则,将现有的基于单一领域进行前向推理的方法改进为基于多个领域进行混合推理的方法。本方法克服了传统方法中涉及领域范围狭窄导致隐含信息发现率低的问题,提高了推理的速度,最后在实际数据上进行实验,验证了方法的有效性。
RDF (resource description framework)[7],是W3C 推荐的资源描述标准,用于描述语义Web资源的通用框架,由主体 (subject)、谓词 (predicate)、客体 (object)三元组构成。RDF这样的三元组结构,可以方便地描述对象或者资源以及它们之间的关系。本体 (Ontology)[8]是共享概念模型的形式化规范说明,能够很好地解决语义层次上Web信息的共享与交换。所以我们通过构建本体以及添加实例的方式来建立RDF数据集。
描述逻辑[9],是基于概念的知识表达形式,具有正式的基于逻辑的语义和很强的表达能力。所以文中通过采用基于描述逻辑的本体表达方式来构建本体。下面详细描述基于描述逻辑的本体知识表示以及具体领域本体的构建过程,建立单领域RDF数据集。
在描述逻辑里,知识库 (knowledge base,KB)被分成两个部分KB (T,A)=<TBox,ABox>。TBox (terminology box)是描述概念、概念间的关系,以及关系与关系之间的公理集合。ABox (assertion box)是断言集合,分为两类:概念断言和关系断言。
用描述逻辑的一个五元组来表示Tourism _System(旅游本体)=<OInfoS,OInfoCS,OInfoRS,OInfoXS,OInfoIS>,其中OInfoS表示本体的构造算子集;OInfoCS表示本体中的类,如游客类 “Visitor”;OInfoRS表示本体中的对象属性以及数据属性,如游览属性 “visit”,年龄属性 “age_is”;OInfoXS表示本体描述逻辑知识库TBox中概念和关系的公理集,如概念描述学生游客 “StudentVisitor≡Visitor∩(-hasCard.StudentCard)”,古典园林景观“ClassicalGardensTourismLandscape≡ScenicAreas∩(-has-Scenic.ClassicalGardens)”;OInfoIS表示本体描述逻辑知识库ABox中概念和关系的断言集,如描述实例游客Lizi且参观景点PalaceMuseum,为 “StudentVisitor (Lizi)”、“ClassicalGardensTourismLandscape (PalaceMuseum )”、“visit(Lizi,PalaceMuseum)”。
构建本体的意义,在于将物理地址上分散的各种信息,按照人类的逻辑思维将它们关联起来,形成一个用形式化定义的知识库,实现领域知识的共享和重用。下面用描述逻辑的形式语言来描述Tourism_System (旅游本体)中的几个重要的概念。
Visitor≡Person∩ (-visit.ScenicAreas)“至少参观一个景点”,AdultVisitor≡Visitor∩greaterThan (age,18)“大于18 岁的游客”,StudentVisitor≡Visitor∩ (-has-Card.StudentCard)“拥有学生证的游客”,CollegeVisitor≡StudentVisitor∩CollegeCard (StudentCard) “学生证件是大学的学生游客”,TeacherVisitor≡AdultVisitor∩ (≥1 jobIs.Teaching) “至少有一个工作是教书的成年游客”。ScenicAreas≡HumanLandscape∪NaturalLandscape “景点包括人文景点和自然景点”,HumanLandscape≡ScenicAreas∩ (≥1hasScenic.HumanScenic) “至少有一个景点是属于人文的景点”。
表1为Tourism_System (旅游本体)中的部分属性。
表1 部分属性结构及其设置
图1 为旅游本体的部分结构。其中,上半部分为Tbox,虚箭头表示类的属性,实箭头表示子类和父类的关系;下半部分为Abox,实箭头表示实例已定义的属性,虚箭头表示系统推理出的属性。主要有游客、景点、地点等类和实例的部分信息。
采用上述的方法一并构建了交通、金融领域的本体。下面用OWL语句描述交通本体中部分类、属性、实例等信息。
图1 旅游本体部分结构
将多领域RDF数据集进行关联,本质上就是将多个领域的本体进行对准。本体对准,是指建立两个本体之间的连接和关联的过程。本文通过将旅游领域、交通领域以及金融领域的本体进行对准,来建立3个领域的RDF数据集之间的联系,从而为之后的推理做基础。
关于本体对准的方法有很多,如基于本体分割的方法[10]、属性权重的方法[11]、SWRL规则的方法[12]等。
规则使用的灵活性,使得它可以在具体的领域按照需要来添加,所以本文将OWL 和SWRL 规则结合起来进行本体的对准,这样可以灵活地按照需要建立旅游、交通、金融3个领域本体之间的映射关系。下面简要介绍SWRL规则语言的形式以及详细描述如何通过OWL 和SWRL 规则进行本体的对准。
SWRL[13](semantic web rule language),是W3C 推荐的规则语言,它是在OWL 1DL和OWL Lite的基础上,采用了规则标记语言 (Rule Markup Language,RuleML)的一个仅包含一元和二元谓词的子集。SWRL规则由前提和结论组成,若前提被满足则结论为真。SWRL 规则的一般性形式化描述如式 (1)所示
上述式 (1)包含的语义是:若变量x是类A 和类B的实例,那么能推出它是类C的实例。
我们采取OWL 和SWRL 规则相结合的方法来对本体进行对准。首先,将3个本体中的概念和属性,采用owl:SameAs进行关联;其次,采取基于SWRL规则的方法将3个本体中的有关联的概念和属性建立关联映射。具体步骤如下:
(1)将旅游领域的游客类、交通领域的乘客类以及金融领域的储户类用owl:SameAs进行对准。如下所示:
tourism:Visitor equivalentClass transport:Passenge;
对准游客类和乘客类
tourism:Visitor equivalentClass finance:Depositor;
对准游客类和储户类
(2)通过设置一定的SWRL 规则,将3个领域本体里的部分类和属性建立起一定的关联映射,表2 为部分SWRL规则。
表2 部分SWRL对准规则
Rule-1 表达的语义是:将旅游本体中的 “游客”类(变量?x 表示游客的实例)、“乘坐”属性 (take)、“景点”类 (变量?y 表示景点的实例)和交通本体中的 “交通工具”类 (变量?b表示交通工具的实例)关联起来。
Rule-2表达的语义是:将旅游本体中的 “游客”类(变量?x 表示游客的实例)和金融本体中的 “剩余资金”属性 (has)关联起来。
Rule-3表达的语义是:将旅游本体中的 “游客”类(变量?x 表示游客的实例)和交通本体中的 “路线”属性(Line)关联起来。
图2为旅游、交通、金融3个本体对准的简单关系图,椭圆代表类,箭头代表属性,虚线箭头代表由规则推导出来的映射关系。
图2 游客类、乘客类、储户类对准
按照推理过程进行的方式,推理分为正向推理、反向推理和混合推理,每种方式因其推理方向不同而各有特点。正向推理是从已知的信息出发,向前推理寻找推理结果。正向推理的优势是可以很快地对查找的信息做出响应,缺点是执行的目的性不强,可能会执行很多不需要的操作,在时间和空间上比较浪费。反向推理是从假设目标开始向事实方向进行推理,寻找相应的已知事实来证实目标。反向推理明显的优点是不会搜索与假设目标无关的信息,从而提高了计算的效率。但是这也带来了缺陷,如果假设目标不成立,那么就会导致推理求解失败,浪费时间。
因为正向和反向推理都有优缺点,所以本文采用混合推理方式,即将正向推理和反向推理结合起来,当新的规则添加到推理机或新的陈述添加到模型中时采用正向推理,当在模型上进行查询时使用反向推理。下面详细介绍混合规则引擎以及在具体领域内混合规则的构造过程。
混合规则引擎将正向推理和反向推理结合起来,先进行数据的正向推理,再将正向推理后的数据加入反向规则进行反向推理,流程如图3所示。
图3 混合规则引擎
混合推理比单纯的正向或者反向推理性能要更优,下面看一个简单的例子。
前向规则: (?prdfs:subPropertyOf?q), (?a?p ?b)→ (?a?q?b)。
无论查询有没有涉及到子属性,每次查询推理机都会执行该条前向规则,这样在时间上效率比较低。
把上述前向规则写成后向规则: (?a?q?b)← (?p rdfs:subPropertyOf?q),(?a?p?b)。
这条后向规则也能推出想要的结果,但是执行每一个查询都要动态查看是否存在要查询属性的子属性,这、同样在时间上效率很低。
我们将上面的规则改成混合规则如下:(?prdfs:sub-PropertyOf?q),notEqual(?p,?q)→ [(?a ?q?b)←(?a?p?b)]。
推理机预先将所有的子属性关系编译出来,进行查询时,只有当查询中有相关子属性才会进行下一步推理,否则将不会做任何工作。相比前向规则和后向规则,混合规则在时间上效率更高。
根据对旅游领域、交通领域以及金融领域的研究,借助于国内外各大旅游网站,汲取了别人在这方面的成果,通过深入探讨自己和身边人的旅游经历以及需要的旅游方面的帮助,分析了下面几种情况,并且设计了相应的混合规则,具体规则描述如下:
Rule1:locate_in (?x,?m),locate_in (?y,?n)→[visit(?x,?y)←has_time (?x,?a),start(?b,?m),terminal (?b,?n),cost _time (?b,?c), Morethan(?a,?c)]
规则1:推理机先将所有满足条件的景点编译出来,如果查询涉及游客要游览的景点,就将交通领域的交通工具结合起来进行查询,如果有满足条件的景点就推出来。这样,如果游客只有限定的几天假期可以游玩,那么可以推理出他可以去哪些景点游览。
Rule2:visit(?x,?y),ticket(?y,?m),ticket(?b,?n)→ [take (?x,?b) ←has (?x,?a), Morethan(?a,?m+?n)]
规则2:结合规则1,判断满足条件后,如果查询涉及游客要乘坐的交通工具,就进行反向推理。这样,如果某游客想去某景点旅游,可以推理出他能选择的旅游线路是什么。
Rule3:StudentVisitor(?x),visit(?x,?y)→ [pay(?x,?a/2)←ticket(?y,?a)]
规则3:结合规则1,判断满足游客是学生以及该游客游览某景点的条件后,再进行反向推理,如果是学生游客,参观景点应付半价门票。
Rule4:StudentVisitor(?x),take (?x,?b)→ [pay(?x,?a/2)←ticket(?b,?a)]
规则4:结合规则2,判断满足游客是学生以及该游客乘坐某交通工具的条件后,再进行反向推理,如果是学生游客,在假期可以享受半价学生票。
Rule5:visit(?x,?y)→ [take(?x,train)←weather(?y,rain)]
规则5:结合规则1,判断满足条件后,再进行反向推理,若满足景点天气是雨天,则游客乘坐火车去;若当天是晴天,则乘坐飞机去。
Rule6:visit(?x,?y)→ [take(?x,plane)←weather(?y,sunny)]
规则6:结合规则1,判断满足条件后,再进行反向推理,若满足景点天气是晴天,则游客乘坐飞机。
本实验在Windows 8.1 操作系统下进行,CPU 是i5-4200U,内存是4 G,基于x64 处理器。使用软件Protégé4.3、jena 2.12.0以及Eclipse平台进行开发。
现给出多领域RDF 数据集上的混合推理的详细流程,具体实验流程如图4所示。
图4 实验方案
(1)构建旅游本体、交通本体以及金融本体;
(2)设置SWRL规则将3个领域的本体进行对准;
(3)进行前向规则、后向规则以及混合规则的构造;
(4)将3个本体、对准规则以及混合规则导入jena推理机,为推理提供事实基础和规则基础;
(5)用户进行查询;
(6)运行jena推理机进行推理,并且返回结果。
本文采用由斯坦福大学的医学信息研究组开发的Protégé(版本为4.3)作为旅游本体、交通本体以及金融本体的开发工具,惠普实验室开发的jena[14]推理机进行推理,在Eclipse平台上编写java代码进行实验。程序中的部分代码如下:
本实验在Eclipse的控制台界面进行查询。用户输入对旅行的要求,系统便可以返回不同程度上满足用户要求的查询结果。下面给出两个实例来验证推理过程:
(1)假设有一个游客曹越,她现在身处太原,有两天时间可以玩耍,那么系统可以推理出她可以去的景点有哪些,并且景点所在的地方,以及去该景点可以乘坐什么车,景点的门票以及车票等情况,推理结果如图5所示。
图5 推理实例1
由图5可以看出,系统既可以推出具体可以去的景点(属于旅游领域),又可以推荐可以乘坐哪些车 (属于交通领域)。比在单一旅游领域推理出来的信息要丰富的多。
(2)假设有一个游客栗子,她是一名学生,目前住在太原。她正好有3天时间可以玩耍,那么推理机可以推理出她去的景点,景点所在的地方,以及去该景点可以乘坐什么车,景点的门票以及车票等情况。推理结果如图6所示。
图6 推理实例2
观察图5和图6:游客曹越只有两天时间可以玩耍,所以系统推荐出的景点只有大同浑源的 “悬空寺”、 “恒山”以及 “五台山”和 “平遥”这几个景点;而游客栗子有3天时间,所以系统不仅推荐了上面几个景点,另外推荐了北京的 “故宫”、 “颐和园”景点。由于游客栗子是学生,所以系统自动推理出的景点门票价都是半价。而且系统可以自动推出去该景点可以乘坐的车次,由此可以看出,这样的推理结果既准确又人性化,它可以针对不同的游客不同的需求推理出适合他们的旅游线路。由于推理涉及到了交通领域的交通工具等详细信息,所以这在单一旅游领域内是推理不出来的。
通过在推理机中单独添加前向规则、后向规则以及混合规则,对上述两个实例以及另外的5个潜在游客的实例进行查询推理,5名潜在游客的大概情况见表3,系统得到推理结果消耗的时间见表4。
表3 5个潜在游客基本情况
表4 消耗时间对比
由表4可以发现,7个实例中有5个实例的混合规则要比前向规则和后向规则在时间上消耗的少,可以看出混合推理要比前向或者后向推理效率更高。
因此,在多个领域的数据集上进行知识的混合推理,明显要比单一领域进行知识推理丰富得多,强大的多。
传统的基于单一领域数据集的规则推理,推理出来的知识比较单一有限。本文尝试将旅游领域、交通领域、金融领域3个领域的本体进行对准,加入混合规则,借助jena推理机进行混合推理,推理出来的知识既准确又人性化,可以针对游客不同的需求推理出相应的旅行线路。如果仅在单一领域内不可能推出很全面的知识,本文在多领域推理方面做了一个大胆的尝试,事实验证了其正确性。
然而由于领域知识的多样性以及变化性,既需要不断地添加新的类、属性,又需要不断地更新设置本体对准以及规则。所以仍需要开展更多的应用研究。
目前,数据如此丰富,信息资源遍地都是。在这数据的海洋里,能够自动推理出人们需要的东西是相当有应用价值的。所以,把多个领域的数据集关联起来进行推理,是一个很好的方向。在接下来的工作中,按照此思路,可以开发一个旅游方面的成熟的应用型系统。
[1]Berners-Lee T,Hendler J,Lassila O.The semantic web [J].Scientific American,2001,284 (5):28-37.
[2]MENG Qingyi,FENG Zhiyong,RAO Guozheng.Facing huge amounts of RDF data redundancy terms set partition method[J].Huazhong University of Sci &Tech (Natural Science Edition),2013,41 (2):42-47 (in Chinese). [孟庆义,冯志勇,饶国政.面向海量RDF数据的术语集冗余划分方法 [J].华中科技大学学报 (自然科学版),2013,41 (2):42-47.]
[3]JIN Yan,WANG Zhihua.Semantic retrieval model based on reasoning and the key technology research [J].Computer Engineering and Design,2013,34 (7):2585-2589 (in Chinese).[金燕,王志华.基于推理的语义网检索模型及关键技术研究[J]. 计算机工程与设计,2013,34 (7):2585-2589.]
[4]ZHONG Xiuqin,LIU Zhong,DING Panping.Based on the construction of knowledge base and application of hybrid reasoning study [J].Journal of Computers,2012,35 (4):761-766 (in Chinese).[钟秀琴,刘忠,丁盘苹.基于混合推理的知识库的构建及其应用研究 [J].计算机学报,2012,35(4):761-766.]
[5]Raimond Y,Sutton C,Sandler MB.Automatic interlinking of music datasets on the semantic web [C]//LDOW,2008.
[6]Saleem M,Kamdar MR,Iqbal A.Fostering serendipity through big linked data [C]//Semantic Web Challenge at ISWC,2013.
[7]World-wide web consortium:Resource description framework[EB/OL].http://www.w3.org/RDF.
[8]Bechhofer S.OWL:Web ontology language [M]//Encyclopedia of Database Systems.Springer US,2009.
[9]The description logic handbook:Theory,implementation,and applications[M].Cambridge University Press,2003.
[10]LI Zhiming,LI Shanping,YANG Chaohui,et al.Based on the ontology of ontology mapping algorithm [J].Journal of Pattern Recognition and Artificial Intelligence,2011,24 (2):243-248 (in Chinese).[李志明,李善平,杨朝晖,等.基于本体分割的本体映射算法 [J].模式识别与人工智能,2011,24 (2):243-248.]
[11]ZHANG Xiaohui,JIANG Haihua,DI Ruihua.Based on the data link of attribute weights were refers to the relationship between building [J].Journal of Computer Science,2013,40(2):40-43 (in Chinese).[张晓辉,蒋海华,邸瑞华.基于属性权重的链接数据共指关系构建 [J].计算机科学,2013,40 (2):40-43.]
[12]WANG Ruomei,PENG Liyi,WANG Zhong,et al.Based on the simple SWRL rules peer research and implementation of ontology correlation method [J].Journal of Computer Science,2009,36 (3):126-128 (in Chinese).[王若梅,彭丽仪,王众,等.基于SWRL规则的简单对等本体关联方法研究与实现 [J].计算机科学,2009,36 (3):126-128.]
[13]Horrocks I,Patel-Schneider PF,Boley H,et al.SWRL:A semantic web rule language combining OWL and RuleML [J].W3C Member Submission,2004,21:79.
[14]Jena2-A semantic web framework for Java[EB/OL].[2006-05-04].http://jena.sourceforge.net/index.html.