我的SPARQL查询无法在DBpedia.org上运行

时间:2017-05-26 10:09:54

标签: sparql owl ontology protege

这是我的SPARQL查询,不能用于dbpedia.org

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX uni: http://www.semanticweb.org/admin/ontologies/2017/4/untitled ontology-19#
SELECT ?property ?subject ?prop ?object 
    WHERE {
               uni:Product ?property ?subject .
                  OPTIONAL {
                               ?subject ?prop ?object
                           }
          }

2 个答案:

答案 0 :(得分:0)

您的语法是非法的。我通过用下划线替换uni:definition中的非法空格字符来“修复”它。毫不奇怪,修改后的查询运行但返回0结果。

您确定DBpedia中有实体甚至是远程的任何路径,例如<http://www.semanticweb.org/admin/ontologies/2017/4/untitled_ontology-19#>吗?您是在尝试查询您创建的数据,还是查询公共DBpedia数据集中的数据?如果您创建了以<http://www.semanticweb.org/admin/ontologies/2017/4/untitled_ontology-19#>开头的实体,那么它们将无法在DBpedia SPARQL端点上使用。

# all prefix expansions were missing angle brackets
PREFIX  xsd:  <http://www.w3.org/2001/XMLSchema#>
# replaced whitespace with underscore
PREFIX  uni:  <http://www.semanticweb.org/admin/ontologies/2017/4/untitled_ontology-19#>
PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX  owl:  <http://www.w3.org/2002/07/owl#>

SELECT  ?property ?subject ?prop ?object
WHERE
  { uni:Product  ?property  ?subject
    OPTIONAL
      { ?subject  ?prop  ?object }
  }

答案 1 :(得分:0)

正如Mark所说,首先查询中的非法字符会阻止其运行。其次,如果您在<http://www.semanticweb.org/admin/ontologies/2017/4/untitled_ontology-19#>下创建了数据,则它将无法在DBpedia中使用。如果您愿意整合<http://www.semanticweb.org/admin/ontologies/2017/4/untitled_ontology-19#>DBpedia的结果,您有两种选择:

  1. 如果资源uni:Product在DBpedia上有URI,请使用它。
  2. 如果您的数据具有本地SPARQL端点,则可以使用SPARQL SERVICE QUERY通过其端点访问多个数据集。