Wikidata SPARQL - 配偶开始时间和结束时间的重复结果
Wikidata SPARQL - Duplicate results for spouse start time and end time
我正在尝试构建一个查询 return 演员及其配偶的列表,同时包括每对夫妇的结婚和离婚日期。所以我希望看到每个参与者都与新关系的每个实例重复......但是当我尝试在查询中包含开始时间和结束时间属性时,我得到了重复的结果。我怀疑这是因为配偶的“姓名”和“姓名”存储在不同的维基数据前缀中,我没有正确分组。
这是一个示例查询:
SELECT ?person ?personLabel ?spouse ?spouseLabel ?starttime ?endtime
WHERE
{
?person wdt:P106 wd:Q33999, wd:Q2526255, wd:Q28389, wd:Q3282637;
wdt:P26 ?spouse.
?person p:P26 [pq:P580 ?starttime; pq:P582 ?endtime].
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(UCASE(str(?personLabel)))
LIMIT 10
screencap of duped results
您查询的问题是配偶和他们的婚姻声明之间没有link。
因此,对于每个演员,您要归还他们的所有配偶,以及他们结婚的所有 start/end 日期,无论他们是否与特定配偶有关。
您需要做的是使用 ps:
命名空间,如下所示:
SELECT ?person ?personLabel ?spouse ?spouseLabel ?starttime ?endtime
WHERE
{
?person wdt:P106 wd:Q33999, wd:Q2526255, wd:Q28389, wd:Q3282637 .
?person p:P26 [ ps:P26 ?spouse ; #This is the necessary change.
pq:P580 ?starttime;
pq:P582 ?endtime ].
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(?personLabel)
LIMIT 10
通常,wdt:
命名空间直接用于 linking 实体,p:
命名空间 link 是声明的实体,ps:
link 是对实体的声明,pq:
告诉我们关于该声明的一些信息。
我正在尝试构建一个查询 return 演员及其配偶的列表,同时包括每对夫妇的结婚和离婚日期。所以我希望看到每个参与者都与新关系的每个实例重复......但是当我尝试在查询中包含开始时间和结束时间属性时,我得到了重复的结果。我怀疑这是因为配偶的“姓名”和“姓名”存储在不同的维基数据前缀中,我没有正确分组。
这是一个示例查询:
SELECT ?person ?personLabel ?spouse ?spouseLabel ?starttime ?endtime
WHERE
{
?person wdt:P106 wd:Q33999, wd:Q2526255, wd:Q28389, wd:Q3282637;
wdt:P26 ?spouse.
?person p:P26 [pq:P580 ?starttime; pq:P582 ?endtime].
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(UCASE(str(?personLabel)))
LIMIT 10
screencap of duped results
您查询的问题是配偶和他们的婚姻声明之间没有link。
因此,对于每个演员,您要归还他们的所有配偶,以及他们结婚的所有 start/end 日期,无论他们是否与特定配偶有关。
您需要做的是使用 ps:
命名空间,如下所示:
SELECT ?person ?personLabel ?spouse ?spouseLabel ?starttime ?endtime
WHERE
{
?person wdt:P106 wd:Q33999, wd:Q2526255, wd:Q28389, wd:Q3282637 .
?person p:P26 [ ps:P26 ?spouse ; #This is the necessary change.
pq:P580 ?starttime;
pq:P582 ?endtime ].
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ASC(?personLabel)
LIMIT 10
通常,wdt:
命名空间直接用于 linking 实体,p:
命名空间 link 是声明的实体,ps:
link 是对实体的声明,pq:
告诉我们关于该声明的一些信息。