2010-01-15 56 views
1

我必须使用ROWLKit http://www.dis.uniroma1.it/quonto/?q=node/30SPARQL查询比萨饼本体

(1)任何人可以提出该Pizza.owl 2个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)如果是则有效的查询:是响应空的结果?

+0

你能不能给更详细,特别是为什么你需要(1)你是什么意思(3) – RobV 2010-01-21 11:41:13

回答

1

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

我不明白你的问题(3)的一部分。 (2)不能与布尔值比较,因为它返回一个结果集,如果你想要一个布尔结果,那么你需要使用一个ASK查询。如果一个ASK查询返回true,那么这意味着在查询的数据中有对查询的解决方案,所以它不会是空的结果。

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) 
} 
2

(1)任何人可以提出该Pizza.owl 2个SPARQL查询?

下面是两个例子:

SELECT * WHERE { ?s ?p ?o } 

和:

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

(2)是该查询是否有效?

是的。

(3)如果它是一个有效的查询,那么:响应是否为空结果?

我假设你的意思是“如果我查询将比萨饼本体序列化的RDF文档,响应是否为空结果?”。答案是