2014-07-04 90 views
1

在我的本體,我有abc:Invention型的兩個人:abc:MarketSector類型的貓頭鷹:OBJECTPROPERTY和推理

abc:InventionA rdf:type abc:Invention . 
abc:InventionB rdf:type abc:Invention . 

和2個人,有一個對象屬性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等效於以下語句?

如果發明靶向任何這些MarketSectors的被包括在其他MarketSector 一個MarketSector,和另一個發明 目標另一個MarketSector,和,那麼這兩個發明具有 共同目標

然後,如果我開始對這個本體我的推理,就可以推斷出

abc:InventionA abc:commonObjectivesWith abc:InventionB 

這可能嗎?感謝您的建議

回答

1

可以如圖your answer與SWRL規則做到這一點,但是這需要一個推理,可以使用SWRL規則。您也可以使用子屬性鏈在OWL 2 DL中執行此操作。你有這種情況,其中實線箭頭是在你的數據關係,而虛線箭頭是要推斷出:

image of graph (see revision history for ASCII art)

你可以用的OWL 2 DL子屬性鏈公理表示此形式(第一抽象,然後在門徒新用所得本體):

目標ö包括ö(目標)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 ]) . 
+0

謝謝,極好的解決方案 –

1

好的我發現如何: 在Protégé4上,我單擊了窗口 - >視圖 - >本體視圖 - >規則。 在規則窗格,我添加了此規則:

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