维基数据 SPARQL 查询。结果中并非所有属性
Wikidata SPARQL Query. Not all properties in the result
谁能帮我理解为什么这里最后一条记录的 ?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 的配偶以及婚姻开始和结束日期。
提前致谢!
问题似乎是您查询的是詹妮弗·安妮斯顿配偶的结婚日期,而不是直接查询她的结婚日期。
您的查询 returns 一些奇怪的结果,原因有两个:
1.Brad 皮特第二次结婚,嫁给了安吉丽娜·朱莉 (2014-19)。
因此,您的查询也会返回这些日期。
2.The Justin Theroux 和 Jennifer Aniston 的数据不一致(这是维基数据问题)。特别是,正如@UninformedUser 指出的那样,贾斯汀的页面没有他们婚姻的结束日期。
詹妮弗安妮斯顿关于她与贾斯汀婚姻的数据比他的数据更具体,并且有开始和结束日期。
推理就是可以用来处理这类问题的东西,有些三元组有。
尽管如此,您需要的查询是:
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' }
}
这给出了所需的结果。请注意,婚礼属性的名称空间会根据对象的不同而变化。
有关更多信息,请参阅 。
谁能帮我理解为什么这里最后一条记录的 ?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 的配偶以及婚姻开始和结束日期。
提前致谢!
问题似乎是您查询的是詹妮弗·安妮斯顿配偶的结婚日期,而不是直接查询她的结婚日期。
您的查询 returns 一些奇怪的结果,原因有两个:
1.Brad 皮特第二次结婚,嫁给了安吉丽娜·朱莉 (2014-19)。 因此,您的查询也会返回这些日期。
2.The Justin Theroux 和 Jennifer Aniston 的数据不一致(这是维基数据问题)。特别是,正如@UninformedUser 指出的那样,贾斯汀的页面没有他们婚姻的结束日期。 詹妮弗安妮斯顿关于她与贾斯汀婚姻的数据比他的数据更具体,并且有开始和结束日期。
推理就是可以用来处理这类问题的东西,有些三元组有。
尽管如此,您需要的查询是:
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' }
}
这给出了所需的结果。请注意,婚礼属性的名称空间会根据对象的不同而变化。
有关更多信息,请参阅