即使有数据,结果也会被过滤掉

时间:2018-11-15 20:35:17

标签: sparql dbpedia

这是我的查询:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX : <http://dbpedia.org/resource/> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

SELECT DISTINCT ?resource ?parentOrSpouse
WHERE { 
?resource a dbo:Royalty ; 
rdfs:label ?label ; 
dbo:parent ?parent ; 
dbo:birthDate ?bd ; 
dbo:birthPlace ?bp . 
?bp dbo:isPartOf :England . 
FILTER(?bd < '1900-01-01'^^xsd:dateTime) . 
FILTER(?bd > '1800-01-01'^^xsd:dateTime) . 
FILTER(LANGMATCHES(LANG(?label), 'en')) . 
{ ?resource dbo:parent ?parentOrSpouse } UNION { ?resource dbo:spouse ?parentOrSpouse }
?parentOrSpouse dbo:birthPlace ?psbp .
?psbp dbo:isPartOf :England . 
}
ORDER BY(?bd)

此搜索所有在1800年至1900年之间在英国出生的,有配偶或父母在英国出生的皇室成员。

Result

在结果列表中,我得到
http://dbpedia.org/page/George_Vhttp://dbpedia.org/page/Mary_of_Teck被列为配偶,但乔治显然出生于英格兰时未列出Mary_of_Teck。

玛丽为什么失踪?当我查看数据时,还有很多其他人正在消失,这些人显然应该在列表中。

1 个答案:

答案 0 :(得分:1)

因为玛丽是通过重定向来引用乔治的,所以解决玛丽不出现的方法是使用dbo:parent|dbo:spouse/dbo:wikiPageRedirects?

另一个问题是dbo:birthPlace/dbo:location?/dbo:isPartOf dbr:England抛出一个可能与编译器中的错误有关的错误。相反,使用?parentOrSpouse dbo:birthPlace|dbo:birthPlace/dbo:location/dbo:isPartOf :England .似乎可以正常工作。

信贷转到@AKSW。