2013-10-15 98 views
1

我想在Protege中編寫嵌套的DL查詢。我可以運行一個簡單的查詢,如:如何編寫嵌套的DL查詢

人與hasFather價值的人物

它檢索他的父親是PERSONA所有的人的名字。但我想這種生活價值還應該從一些查詢檢索像

人與hasFather值(Person和哈森值PersonB)

它是表示門生語法錯誤。請以正確的格式幫助我。

回答

1

之所以

Person and hasFather value (Person and hasSon value PersonB) 

是一個語法錯誤不在於它的「嵌套」,但value需要個人,但(Person and hasSon value PersonB)類。如果您使用

Person and hasFather some (Person and hasSon value PersonB) 

改爲,您應該全部設置。該查詢請求具有父親是人並且具有人B作爲兒子的人的個人。也就是說,它要求人B的兄弟姐妹,即人B的父親的其他孩子。

例如,這裏有一個關於辛普森家庭中,巴特和麗莎各有荷馬作爲他們的父親查詢,荷馬有他們每個人作爲一個孩子:

simpsons query

的數據是:

@prefix :  <http://www.example.org/families#> . 
@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#> . 
@prefix families: <http://www.example.org/families#> . 

<http://www.example.org/families> 
     a  owl:Ontology . 

families:Person a owl:Class . 

families:hasFather a owl:ObjectProperty . 

families:hasChild a owl:ObjectProperty . 

families:Bart a   owl:NamedIndividual , families:Person ; 
     families:hasFather families:Homer . 

families:Lisa a   owl:NamedIndividual , families:Person ; 
     families:hasFather families:Homer . 

families:Homer a   owl:NamedIndividual , families:Person ; 
     families:hasChild families:Bart , families:Lisa . 

families:Milhouse a owl:NamedIndividual , families:Person .