我有一個OWL文件,其中包含一個分類層次結構,我想寫一個查詢,其答案包括每個人及其直接分類父代。這裏有一個例子(完整的查詢比較混亂)。在SPARQL中刪除不需要的超類答案
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http:://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <urn:ex:> .
:fido rdf:type :Dog .
:Dog rdfs:subClassOf :Mammal .
:Mammal rdfs:subClassOf :Vertebrate .
:Vertebrate rdfs:subClassOf :Animal .
:fido :hasToy :bone
:kitty rdf:type :Cat .
:Cat rdfs:subClassOf :Mammal .
:kitty :hasToy :catnipMouse .
而這個查詢做我想要的。
prefix rdf: <http:://www.w3.org/1999/02/22-rdf-syntax-ns#> .
prefix : <urn:ex:> .
SELECT ?individual ?type
WHERE {
?individual :hasToy :bone .
?individual rdf:type ?type .
}
的問題是,我寧願使用一個合理的,在OWL文件,其中包括意料之中附加聲明的版本:
:fido rdf:type :Mammal .
:fido rdf:type :Vertebrate .
:fido rdf:type :Animal .
:kitty rdf:type :Mammal .
:kitty rdf:type :Vertebrate .
:kitty rdf:type :Animal .
現在約菲多是附加的答案查詢結果哺乳動物等。我可以放棄使用合理版本的文件,或者,由於SPARQL查詢是從java調用的,我可以做一堆附加查詢來查找出現的最小包含類型。我的問題是,是否有合理的純SPARQL解決方案只返回Dog解決方案。
您可能會在http://stackoverflow.com/q/19632992/1281433找到足夠的答案。 –