针对Pizza本体的SPARQL查询

时间:2010-01-15 22:56:20

标签: sparql

我必须使用ROWLKit http://www.dis.uniroma1.it/quonto/?q=node/30

(1)有人可以为Pizza.owl建议两个sparql查询吗?


(2)这个查询有效吗?

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX pizza: <http://www.co-ode.org/ontologies/pizza/pizza.owl#>
SELECT * 
WHERE { ?p rdf:type pizza:Pizza;
           pizza:hasTopping ?t.
        ?t rdf:type pizza:TomatoTopping }

(3)如果是有效查询,那么:响应是空结果吗?

3 个答案:

答案 0 :(得分:3)

SELECT DISTINCT *
WHERE { 
 ?NombrePizza ?Relacion pizza:MushroomTopping .
 ?Relacion owl:inverseOf pizza:isToppingOf .
 OPTIONAL { 
  ?NombrePizza2 ?Relacion2 pizza:HamTopping .
  ?Relacion2 owl:inverseOf pizza:isToppingOf . 
 }
 FILTER(?NombrePizza2 = ?NombrePizza)
}

答案 1 :(得分:2)

  

(1)有人可以为Pizza.owl建议两个sparql查询吗?

以下是两个例子:

SELECT * WHERE { ?s ?p ?o }

SELECT ?class WHERE { ?class  a  owl:Class }
  

(2)这个查询有效吗?

  

(3)如果是有效查询,那么:响应是空结果吗?

我认为你的意思是“如果我查询序列化披萨本体的RDF文档,那么响应是否为空结果?”。答案是

答案 2 :(得分:1)

(2)似乎是一个有效的查询

我不明白你问题的第(3)部分。 (2)无法与布尔值进行比较,因为它返回一个结果集,如果你想要一个布尔结果,那么你需要使用ASK查询。如果ASK查询返回true,则表示您正在查询的数据中存在查询解决方案,因此它不会是空结果。