-1
此ontology有這些classes和這個數字triples。爲了完整性,這裏是triples。SPARQL查詢失敗
該查詢按預期工作:
PREFIX pizza: <http://www.ncl.ac.uk/pizza#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT ?p
FROM <http://homepages.cs.ncl.ac.uk/phillip.lord/scratch/pizza.rdf>
WHERE {
?p rdfs:subClassOf pizza:PizzaTopping
}
如圖所示here。
但是,此查詢不產生預期的結果:
PREFIX pizza: <http://www.ncl.ac.uk/pizza#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT DISTINCT *
FROM <http://homepages.cs.ncl.ac.uk/phillip.lord/scratch/pizza.rdf>
WHERE {
?Name ?Relation pizza:MushroomTopping .
?Relation owl:inverseOf pizza:isToppingOf .
OPTIONAL {
?Name2 ?Relation2 pizza:HamTopping .
?Relations2 owl:inverseOf pizza:isToppingOf .
}
FILTER(?Name2 = ?PizzaName)
}
的簡化版本也將失敗:
PREFIX pizza: <http://www.ncl.ac.uk/pizza#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
FROM <http://homepages.cs.ncl.ac.uk/phillip.lord/scratch/pizza.rdf>
WHERE {
?Name ?Relation pizza:NonVegetarianPizza .
}
這些所需的查詢可能共享同一個錯誤:
PREFIX pizza: <http://www.ncl.ac.uk/pizza#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT *
FROM <http://homepages.cs.ncl.ac.uk/phillip.lord/scratch/pizza.rdf>
WHERE { ?p rdf:type pizza:Pizza;
pizza:hasTopping ?t.
?t rdf:type pizza:TomatoTopping
}
and
PREFIX pizza: <http://www.ncl.ac.uk/pizza#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
FROM <http://homepages.cs.ncl.ac.uk/phillip.lord/scratch/pizza.rdf>
WHERE
{
?pizza rdfs:subClassof [
owl:onProperty pizza:hasTopping;
owl:someValuesFrom pizza:MushroomTopping ] .
}
和
PREFIX pizza: <http://www.ncl.ac.uk/pizza#>
PREFIX owl:<http://www.w3.org/2002/07/owl#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT *
FROM <http://homepages.cs.ncl.ac.uk/phillip.lord/scratch/pizza.rdf>
WHERE
{
?pizza rdfs:subClassOf [
owl:onProperty pizza:hasTopping;
owl:someValuesFrom pizza:MozzarellaTopping ] .
?pizza rdfs:subClassof [
owl:onProperty pizza:hasTopping;
owl:someValuesFrom pizza:PeperonSausageTopping ] .
?pizza rdfs:subClassof [
owl:onProperty pizza:hasTopping;
owl:someValuesFrom pizza:TomatoTopping ] .
}
我在做什麼錯?
我的目標是確定與NonVegetarianPizza有關的頂部。其他查詢有類似的目標。我應該如何重新編寫來產生這些結果? – 2014-09-06 16:55:30
您需要首先明確「與......相關」的含義。 – 2014-09-06 16:57:39
我會再看一遍,回到你身邊: http://rhizomik.net/redefer-services/render?rdf=http://homepages.cs.ncl.ac.uk/phillip.lord/ scratch/pizza.rdf&format = RDF/XML&mode = svg&rules = http://rhizomik.net:8080/html/redefer/rdf2svg/showclasshierarchy.jrule – 2014-09-06 17:12:44