Rdf SPARQL查询失败

Rdf SPARQL查询失败,rdf,sparql,owl,linked-data,Rdf,Sparql,Owl,Linked Data,这个有这些,还有这个数量的。为了完整起见,以下是示例 此查询按预期工作: 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 rdf

这个有这些,还有这个数量的。为了完整起见,以下是示例

此查询按预期工作:

 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
 }
前缀比萨饼:
前缀rdfs:
选择?p
从…起
在哪里{
?p RDF:比萨子类:比萨面层
}
如图所示

但是,此查询不会产生预期结果:

 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)
 }
前缀比萨饼:
前缀rdf:
前缀owl:
选择不同的*
从…起
何处{
?名称?关系比萨饼:蘑菇面。
?关系猫头鹰:比萨饼的倒数:isToppingOf。
可选{
?名称2?关系2比萨饼:火腿面。
关系2猫头鹰:比萨饼的反面:isToppingOf。
}
过滤器(?名称2=?比萨名称)
}
简化版本也会失败:

 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 .
 }
前缀比萨饼:
前缀rdf:
前缀owl:
挑选*
从…起
何处{
?名称?关系比萨饼:非素食比萨饼。
}
这些所需的查询可能具有相同的错误:

 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
       }
前缀比萨饼:
前缀rdf:
挑选*
从…起
式中{?p rdf:type pizza:pizza;
比萨饼:有浇头吗。
?t rdf:比萨饼类型:番茄酱
}

前缀比萨饼:
前缀rdf:
前缀rdfs:
前缀owl:
挑选*
从…起
哪里
{
?比萨饼RDF:子类[
猫头鹰:onProperty比萨饼:hasTopping;
猫头鹰:比萨饼的一些价值:蘑菇面]。
}

前缀比萨饼:
前缀owl:
前缀rdfs:
挑选*
从…起
哪里
{
?比萨饼RDF:子类[
猫头鹰:onProperty比萨饼:hasTopping;
猫头鹰:来自比萨饼的一些价值:Mozzarellating]。
?比萨饼RDF:子类[
猫头鹰:onProperty比萨饼:hasTopping;
猫头鹰:比萨饼的一些价值:Peperon香肠顶部]。
?比萨饼RDF:子类[
猫头鹰:onProperty比萨饼:hasTopping;
猫头鹰:比萨饼的一些价值:西红柿。
}
我做错了什么?

您的简化查询:

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 .
 }
前缀比萨饼:
前缀rdf:
前缀owl:
挑选*
从…起
何处{
?名称?关系比萨饼:非素食比萨饼。
}

我不应该归还任何东西。在链接到的数据中,
pizza:non-egerationarpzza
仅显示为主题,而不是对象。您是否有理由期望此查询返回一些结果?

我的目标是确定与非素食比萨饼相关的顶部。其他查询也有类似的目标。我应该如何重新编写以产生这些结果?首先,你需要明确你所说的“相关”是什么意思。我会再看一遍,然后再回来问你:你认为有解决方案是什么意思?有甜椒面和帕尔玛干酪的比萨不一定是非素食比萨或非素食比萨;这取决于比萨饼上还有什么。为了得到这类事情的结果,你无论如何都需要进行猫头鹰推理。您可以使用SPARQL查询执行一些有限类型的OWL推理,但不能执行任意OWL推理。请注意(从最接近的原因):“寻求调试帮助的问题”(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者来说是没有用处的。“我认为你需要确定一些你期望得到的具体结果。”。只有到那时,我们才能帮助你解释为什么你没有得到它们,以及你能做些什么来得到它们。
 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 ] .
 }
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 .
 }