owl:ObjectProperty和推理

时间:2014-07-04 07:54:16

标签: rdf owl ontology protege inference

在我的本体论中,我有两个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分别通过对象属性abc:targets与MrktSctrA和MrktSctrB链接:

abc:InventionA abc:targets abc:MrktSctrA .
abc:InventionB abc:targets abc:MrktSctrB .

是否可以创建与以下语句等效的对象属性abc:commonObjectivesWith

  

如果发明针对的是MarketSector ,还有其他发明   目标是另一个MarketSector 任何这些MarketSectors都是   包含在另一个MarketSector 中,然后这两个发明有   共同目标

然后,如果我在这个本体论上启动我的推理器,它可以推断出

abc:InventionA abc:commonObjectivesWith abc:InventionB

这可能吗?谢谢你的建议

2 个答案:

答案 0 :(得分:1)

好的,我知道如何: 在Protégé4上,我点击了Window - >意见 - >本体视图 - >规则。 在“规则”窗格中,我添加了规则:

includesClassification(?mA, ?mB), targets(?invA, ?mA), targets(?invB, ?mB) -> commonObjectives(?invA, ?invB)

答案 1 :(得分:1)

您可以使用SWRL规则执行此操作,如your answer所示,但这需要一个可以使用SWRL规则的推理器。您也可以使用子属性链在OWL 2 DL中执行此操作。你有这种情况,实线箭头是数据中的关系,虚线箭头是你想要推断的:

image of graph (see revision history for ASCII art)

您可以使用表格的OWL 2 DL子属性链公理来表示这一点(第一个摘要,然后是Protégé中的结果本体):

  

目标 o 包括 o 反向(目标) SubPropertyOf 常见

protégé screenshot

@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 ] ) .