Sparql 即使数据存在,结果也会被过滤掉

Sparql 即使数据存在,结果也会被过滤掉,sparql,dbpedia,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:/

我的问题是:

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)
前缀rdfs:
前缀rdf:
前缀foaf:
前缀:
前缀xsd:
选择不同的?资源?父项或父项
何处{
?资源a dbo:特许权使用费;
rdfs:标签?标签;
dbo:父母?父母;
dbo:出生日期?bd;
出生地?英国石油公司。
英国石油公司dbo:isPartOf:英格兰。
过滤器(?bd<'1900-01-01'^^xsd:dateTime)。
过滤器(?bd>'1800-01-01'^^xsd:dateTime)。
过滤器(LANGMATCHES(LANG(?标签),'en'))。
{?资源dbo:parent?parentOrSpouse}联合{?资源dbo:party?parentOrSpouse}
?父母出生地:出生地?psbp。
psbp dbo:isPartOf:英格兰。
}
订货人(?bd)
这将搜索1800年至1900年间出生在英国且配偶或父母出生在英国的所有王室成员

在结果列表中,我得到
与列为配偶,但不是列为特克的玛丽,而乔治显然出生在英国


玛丽为什么失踪了?当我查看数据时,有很多其他人正在消失,这应该清楚地列在列表上。

因此,解决玛丽没有出现的问题的方法是使用
dbo:parent | dbo:party/dbo:wikiPageRedirects?
,因为玛丽通过重定向引用乔治

另一个问题是
dbo:birthPlace/dbo:location?/dbo:isPartOf dbr:England
抛出的错误可能与编译器中的错误有关。使用
?父母推荐dbo:出生地| dbo:出生地/dbo:位置/dbo:isPartOf:英格兰。
似乎效果不错


归功于@AKSW。

我可以问一下,您为什么删除之前的问题吗?这显然不是Stackoverflow的想法,或者如果问题解决后每个人都删除了问题,那么其他人怎么能搜索类似的问题……关于查询,结果看起来很奇怪。删除最后两个三重模式将返回结果。查询可以简化为
?资源dbo:parent | dbo:party?parentOrSpouse.
使用此简化查询
选择不同的?资源?parentOrSpouse?psbp,其中{values?资源{dbr:Mary_of_Teck}资源a dbo:Royalty.?资源dbo:parent | dbo:party?parentOrSpouse.可选{parentOrSpouse dbo:birthouse?psbp.}
显示George_V没有出生地-事实上,DBpedia中有一个出生地。哦,我发现了问题:被重定向到。这就是为什么
选择不同的?资源?父项在这里使用{资源a dbo:Royalty;rdfs:label?label;dbo:parent?parent;dbo:birthDate?bd;dbo:birthPlace?bp。?bp dbo:isPartOf dbr:England.FILTER(?bd<'1900-01-01'^^xsd:dateTime)。FILTER(?bd>'1800-01-01'^^xsd:dateTime)。FILTER(LANGMATCHES(LANG(?label),'en')).?资源dbo:parent | dbo:party/dbo:wikiPageRedirects??parentOrSpouse。?parentOrSpouse dbo:出生地?psbp。?psbp dbo:isPartOf dbr:England。}订购人(?bd)