查询 "property constraint" 的维基数据
Querying wikidata for "property constraint"
TL;DR
如何查询 (sparql) 属性?
的属性
或者..
因此,作为我项目的一部分,我需要在维基数据中找到具有任何时间限制的属性,具体来说 "start time" 和 "end time"。
我试过这个查询:
SELECT DISTINCT ?prop WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?person wdt:P31 wd:Q5.
?person ?prop ?statement.
?statement pq:P580 ?starttime.
?statement pq:P582 ?endtime.
}
LIMIT 200
**是的,这些属性应该与人类有关
无论如何,我确实得到了一些不错的结果,例如:
http://www.wikidata.org/prop/P26
http://www.wikidata.org/prop/P39
但是我也得到了其他一些肯定是错误的属性。
所以,基本上我想要做的是获取具有 属性 约束 (P2302) 的属性列表 - 允许的限定符约束 (Q21510851) 以及开始时间 (P580) 和结束时间 (P582)
这甚至可能吗:
我尝试了一些查询,例如:
SELECT DISTINCT ?property ?propertyLabel ?propertyDescription ?subpTypeOf ?subpTypeOfLabel
WHERE
{
?property rdf:type wikibase:Property .
?property wdt:P2302 ?subpTypeOf.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
但没有得到我想要的结果。
甚至可以查询这种东西吗?
谢谢
Qualifiers 也用于 属性 页。您的第二个查询应该是:
SELECT DISTINCT ?prop ?propLabel {
?prop p:P2302 [ ps:P2302 wd:Q21510851 ; pq:P2306 wd:P580, wd:P582 ] ;
p:P2302 [ ps:P2302 wd:Q21503250 ; pq:P2308 wd:Q5 ; pq:P2309 wd:Q21503252 ] .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
} ORDER BY ASC(xsd:integer(strafter(str(?prop), concat(str(wd:), "P"))))
您的第一个查询是正确的,但请注意,这是一个 'as-is' 查询。例如,wd:P410 does not have respective constraints, but look at wd:Q83855.
TL;DR
如何查询 (sparql) 属性?
或者..
因此,作为我项目的一部分,我需要在维基数据中找到具有任何时间限制的属性,具体来说 "start time" 和 "end time"。
我试过这个查询:
SELECT DISTINCT ?prop WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?person wdt:P31 wd:Q5.
?person ?prop ?statement.
?statement pq:P580 ?starttime.
?statement pq:P582 ?endtime.
}
LIMIT 200
**是的,这些属性应该与人类有关
无论如何,我确实得到了一些不错的结果,例如:
http://www.wikidata.org/prop/P26
http://www.wikidata.org/prop/P39
但是我也得到了其他一些肯定是错误的属性。
所以,基本上我想要做的是获取具有 属性 约束 (P2302) 的属性列表 - 允许的限定符约束 (Q21510851) 以及开始时间 (P580) 和结束时间 (P582) 这甚至可能吗: 我尝试了一些查询,例如:
SELECT DISTINCT ?property ?propertyLabel ?propertyDescription ?subpTypeOf ?subpTypeOfLabel
WHERE
{
?property rdf:type wikibase:Property .
?property wdt:P2302 ?subpTypeOf.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
但没有得到我想要的结果。 甚至可以查询这种东西吗?
谢谢
Qualifiers 也用于 属性 页。您的第二个查询应该是:
SELECT DISTINCT ?prop ?propLabel {
?prop p:P2302 [ ps:P2302 wd:Q21510851 ; pq:P2306 wd:P580, wd:P582 ] ;
p:P2302 [ ps:P2302 wd:Q21503250 ; pq:P2308 wd:Q5 ; pq:P2309 wd:Q21503252 ] .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
} ORDER BY ASC(xsd:integer(strafter(str(?prop), concat(str(wd:), "P"))))
您的第一个查询是正确的,但请注意,这是一个 'as-is' 查询。例如,wd:P410 does not have respective constraints, but look at wd:Q83855.