SPARQL个人查询Pizza本体

时间:2017-02-08 01:11:29

标签: semantic-web owl ontology protege

我写了这个查询,但它不起作用。任何人都知道这是什么问题。

PREFIX : <http://www.semanticweb.org/ontologies/2009/pizza.owl#>
SELECT ?X ?Y
        WHERE {?X :hasCountryOfOrigin "Italy".
               ?Y :hasCalorificValue "400"}

1 个答案:

答案 0 :(得分:2)

根据Pizza本体教程here,您的查询存在两个主要问题:

  1. hasCountryOfOrigin是一个对象属性,因此,值不能是文字。意大利是个人,因此,您必须使用正确的URI,可能是http://www.semanticweb.org/ontologies/2009/pizza.owl#Italy
  2. 数据属性hasCalorificValue具有整数类型的值,即文字应该像"400"^^xsd:integer一样使用(或者xsd:int,取决于您在Protege中选择的内容)
  3. 查询中的三个模式都没有连接,即没有共享变量。我没有看到您的查询目标。
  4. PREFIX : <http://www.semanticweb.org/ontologies/2009/pizza.owl#>
    SELECT ?X ?Y
            WHERE {?X :hasCountryOfOrigin :Italy.
                   ?Y :hasCalorificValue "400"^^xsd:integer}