SPARQL语句未返回正确的结果

时间:2013-11-16 12:44:45

标签: rdf sparql owl

我正在运行SPARQL语句,但它没有返回正确的结果。我正在使用TopBraid Composer来对抗my OWL file (in RDF/XML)。首先,以下SPARQL为我提供了结果rdf:type

PREFIX rdf:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX wo:<http://purl.org/ontology/wo/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT * where {
    <http://www.bbc.co.uk/nature/life/Animal#kingdom> ?type wo:Kingdom
}

当我运行此查询时,我希望获得<http://www.bbc.co.uk/nature/life/Animal#kingdom>,但我得到一个空的结果集:

PREFIX rdf:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX wo:<http://purl.org/ontology/wo/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
SELECT * where {
    ?x rdf:type wo:Kingdom
}

我得到一个空结果集是什么?

1 个答案:

答案 0 :(得分:3)

说这句话并不准确:

  

首先,[first] SPARQL为我提供了结果rdf:type

你应该(而且我希望你)得到

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

获得该结果。但是,由于您以不寻常的方式定义了rdf:前缀,rdf:type(根据您的前缀定义)将是:

http://www.w3.org/2000/01/rdf-schema#type

那些明显不同的IRI。问题是您已将rdf:rdfs:设为相同:

PREFIX rdf:<http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>

假设您需要标准定义,则应为:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>