SPARQL查询找不到应该存在的页面

时间:2018-06-08 14:15:40

标签: sparql dbpedia

我正在DBpedia live http://dbpedia-live.openlinksw.com/sparql/中写一个查询来返回知名人士的详细信息。作为一个测试用例,我知道在http://dbpedia.org/page/Nero存在一个罗马皇帝Nero的页面,但我的查询并没有为他返回一行。我的SPARQL查询是:

# Runs in live (http://dbpedia-live.openlinksw.com/sparql/)
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT ?x0 ?name2 ?dob 
WHERE {
  ?x0 rdf:type foaf:Person.
  ?x0 rdfs:label ?name.
  ?x0 dbo:birthDate ?dob.
  FILTER REGEX(?name,"^Ner.*","i").
  BIND (str(?name) AS ?name2)
} ORDER BY ?name2 LIMIT 100

我检查了页面http://dbpedia.org/page/Nero,它在我的查询中引用了rdf:type,rdfs.label和dbo.birthDate属性。当我运行上面的查询时,它使用不区分大小写的REGEX版本返回名称以“Ner”开头的100个其他人。

所以我的问题是:为什么上述查询不会在结果列表中返回Nero?

1 个答案:

答案 0 :(得分:2)

首先,请注意,在DBpedia上,Nero(当前)位于result rows 109 and 110,因此您需要至少110行才能看到他。

现在,请注意Nero的说明on DBpedia-Liveon DBpedia不同 - 并且两者都不正确。

特别需要注意的是,在DBpedia-Live上看到,Nero的http://dbpedia.org/ property /birthDate有一个值 - {{1} } - 在DBpedia上,1937-12-15 (xsd:date) http://dbpedia.org/ ontology有两个值 - /birthDate0037-12-15 (xsd:date)

另请注意,在DBpedia-Live上,Nero没有1937-12-15 (xsd:date) http://dbpedia.org/ ontology值 - 而在DBpedia上,/birthDate http://dbpedia.org/ property没有任何价值。

您应该对这些结果感兴趣 - DBpediaDBpedia-Live