有人可以帮助我理解为什么最后一条记录的?sEnd属性为空吗?
SELECT ?sLabel ?sStart ?sEnd
WHERE {
BIND(wd:Q32522 as ?p).
?s wdt:P26 ?p .
OPTIONAL { ?s p:P26 [pq:P580 ?sStart] }
OPTIONAL { ?s p:P26 [pq:P582 ?sEnd] }
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' }
}
基本上,我想检索的是詹妮弗·安妮斯顿的配偶,婚姻的开始和结束日期。
提前致谢!
问题似乎是您要查询詹妮弗·安妮斯顿(Jennifer Aniston)的配偶的结婚日期,而不是直接询问她的配偶。
您的查询返回一些奇怪的结果,原因有两个:
1.布拉德·皮特第二次嫁给安吉丽娜·朱莉(2014-19)。因此,您的查询也会返回这些日期。
2.Justin Theroux和Jennifer Aniston的数据不一致(这是Wikidata问题)。特别是,正如@UninformedUser指出的,贾斯汀的页面没有结婚的结束日期。珍妮弗·安妮斯顿(Jennifer Aniston)与贾斯汀(Justin)结婚的数据比他的数据更为具体,并且有开始日期和结束日期。
推理是可以用来处理此类问题的东西,某些三重存储库中也有推理。
尽管如此,您需要的查询仍然是:
SELECT ?spouseLabel ?sStart ?sEnd
WHERE {
BIND(wd:Q32522 as ?person).
?person p:P26 ?marriage .
?marriage pq:P580 ?sStart ;
ps:P26 ?spouse .
OPTIONAL{?marriage pq:P582 ?sEnd}
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' }
}
这给出了所需的结果。请注意,婚礼属性的名称空间根据对象的不同而改变。看到这里更多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句