在我的本体,我有一个类型的两个个体abc:Invention
:
abc:InventionA rdf:type abc:Invention .
abc:InventionB rdf:type abc:Invention .
和2个个体类型的abc:MarketSector
,与对象属性链接abc:includedIn
:
abc:MrktSctrA rdf:type abc:MarketSector .
abc:MrktSctrB rdf:type abc:MarketSector .
abc:MrktSctrB abc:includedIn MrktSctrA .
目前,InventionA和InventionB是通过对象属性链接,分别MrktSctrA和MrktSctrB abc:targets
:
abc:InventionA abc:targets abc:MrktSctrA .
abc:InventionB abc:targets abc:MrktSctrB .
是否有可能创建一个对象的属性abc:commonObjectivesWith
相当于下面的语句?
如果一项发明靶向MarketSector,另一个发明的对象的另一个MarketSector,以及任何这些的MarketSectors被包括在其他MarketSector,那么这两个发明具有共同的目标 。
然后,如果我开始对这个本体我的推理,就可以推断出
abc:InventionA abc:commonObjectivesWith abc:InventionB
这可能吗 ? 谢谢咨询
你可以用SWRL规则做到这一点,如图在你的答案 ,但是这需要一个推理,可以使用SWRL规则。 您还可以使用子属性链为此在OWL 2 DL。 你有这种情况,其中实线箭头是在你的数据关系,而虚线箭头是要推断出:
可以用以下形式的OWL DL 2子属性链公理(第一抽象用所得本体,然后在门徒新)来表示:
靶向O包括ø 逆 (目标)SubPropertyOf共同
@prefix : <https://stackoverflow.com/q/24569317/1281433/paths#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
<https://stackoverflow.com/q/24569317/1281433/paths> aowl:Ontology .
:includesClassification a owl:ObjectProperty .
:targets a owl:ObjectProperty .
:commonObjectivesWith
a owl:ObjectProperty ;
owl:propertyChainAxiom ( :targets :includesClassification [ owl:inverseOf :targets ] ) .
好吧,我找出如何:在门徒新4,我点击窗口 - >查看 - >本体论视图 - >规则。 在规则窗格,我添加了规则:
includesClassification(?mA, ?mB), targets(?invA, ?mA), targets(?invB, ?mB) -> commonObjectives(?invA, ?invB)