これは(有効推論なしで)働きます
PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
SELECT ?X ?topping WHERE {
?X rdfs:subClassOf ?Y .
?Y owl:someValuesFrom ?topping .
?topping rdfs:subClassOf* pizza:CheeseTopping
}
ORDER BY ?X
複数のCheeseToppingを含む可能性があるため、いくつかは複数回リストされています。重複を削除するには:あなたが推論を有効にした場合
PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
SELECT DISTINCT ?X WHERE {
?X rdfs:subClassOf ?Y .
?Y owl:someValuesFrom ?topping .
?topping rdfs:subClassOf* pizza:CheeseTopping
}
ORDER BY ?X
これは動作します:
PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
SELECT DISTINCT ?X WHERE {
?X rdfs:subClassOf pizza:CheeseyPizza
}
参考:ここからピザのオントロジーを使用し :http://protege.stanford.edu/ontologies/pizza/pizza.owl間違ったクエリをだ
。データを見て、ピザを選んでデータを照合してみてください。例えば 'CheesyPizza'のように、データを見てください。推論を有効にしないと一致しません。さらに、クエリは、「CheeseTopping」のサブクラスとして定義されたトッピングで結果を返しません – AKSW