OWL 2 rolification

在描述逻辑中,有一个叫做“rolification”的概念( OWL and Rules,Sec 3.2 )。 它将概念(类)转换为angular色(属性)。 例如,当我们boostR(x) ,我们得到r(x,x) 。 这种技术对于在DL中expression一些规则是有用的。

我们如何在OWL 2中做到这一点? 在OWL 2规范中似乎没有直接的支持。

您链接的论文的第3.2节说:

把这个规则翻译成OWL 2确实是可能的 – 但是这涉及到一个我们称之为“循环”(rolification)的转换:概念A的循环是一个由公理A定义的(新)angular色R A。 现在我们可以用公理来expression规则(1)…

OWL2不支持像Elephant(x)&Wedge这样的公理; 鼠标(y)→大(x,y)直接。 据我所知,你手动使用本文描述的rolification过程来产生一个新的公理,可以用OWL2直接expression。

Rolification

至于具体的过程,如果你想expression像大象(x)&楔形; 鼠标(y)→largerThan(x,y) ,你先滚动ElephantMouse类。 这意味着你引入了新的angular色(属性) R ElephantR Mouse (但是你不要删除ElephantMouse类)。 这些新angular色是R (x,x)当且仅当大象(x) 。 这通过添加公理来强制执行

大象≡R∃ 大象。自己

鼠标≡∃RMouse .Self

每个都可以在OWL2中expression。 用这两个公理,你最后加上子属性链公理

R 大象 &子弹; topObjectProperty• R Mouse ⊑ biggerThan

这在OWL2中也是可以expression的。 因为对于任何大象和任何鼠标,我们都有

R 大象 (e,e)

topObjectProperty(E,M)

R (m,m)

那么通过子属性链公理,我们就有了这个

biggerThan(E,M)

这正是我们想要expression的。

公理语法

在Protege接受的input语法中,这些公理如下所示。

大象等同于 R_Elephant 一些自我
鼠标等同于 R_Mouse 一些自我
R_Elephant o topObjectProperty o R_mouse SubPropertyOf largerThan

在Protege中,它们显示如下。

大象rolification公理小鼠rolification公理子属性链公理

在N3:

 @prefix : <http://www.example.org/rolification#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . :Elephant a owl:Class ; owl:equivalentClass [ a owl:Restriction ; owl:hasSelf "true"^^xsd:boolean ; owl:onProperty :R_Elephant ] . :R_Elephant a owl:ObjectProperty . :biggerThan a owl:ObjectProperty ; owl:propertyChainAxiom (:R_Elephant owl:topObjectProperty :R_Mouse) . :Mouse a owl:Class ; owl:equivalentClass [ a owl:Restriction ; owl:hasSelf "true"^^xsd:boolean ; owl:onProperty :R_Mouse ] . <http://www.example.org/rolification> a owl:Ontology . :R_Mouse a owl:ObjectProperty . 

在RDF / XML中:

 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns="http://www.example.org/rolification#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <owl:Ontology rdf:about="http://www.example.org/rolification"/> <owl:Class rdf:about="http://www.example.org/rolification#Elephant"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty rdf:about="http://www.example.org/rolification#R_Elephant"/> </owl:onProperty> <owl:hasSelf rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean" >true</owl:hasSelf> </owl:Restriction> </owl:equivalentClass> </owl:Class> <owl:Class rdf:about="http://www.example.org/rolification#Mouse"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty> <owl:ObjectProperty rdf:about="http://www.example.org/rolification#R_Mouse"/> </owl:onProperty> <owl:hasSelf rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean" >true</owl:hasSelf> </owl:Restriction> </owl:equivalentClass> </owl:Class> <owl:ObjectProperty rdf:about="http://www.example.org/rolification#biggerThan"> <owl:propertyChainAxiom rdf:parseType="Collection"> <owl:ObjectProperty rdf:about="http://www.example.org/rolification#R_Elephant"/> <rdf:Description rdf:about="http://www.w3.org/2002/07/owl#topObjectProperty"/> <owl:ObjectProperty rdf:about="http://www.example.org/rolification#R_Mouse"/> </owl:propertyChainAxiom> </owl:ObjectProperty> </rdf:RDF> 
Interesting Posts