-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