我正在运行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
}
我得到一个空结果集是什么?
答案 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#>