gpt4 book ai didi

database - wikidata 获取带有标签和项目值的所有属性

转载 作者:太空狗 更新时间:2023-10-30 01:48:58 25 4
gpt4 key购买 nike

我的问题是如何从 wikidata 最好通过 SPARQL 提取所有属性及其各自的标签,这些标签也在网页上呈现。

Google 为例维基数据上的条目。对于属性 P414(证券交易所)或 P159,有子属性,如 P969(位于街道地址)。一旦你query,它们就会出现wbgetentities 作为限定词。 wbgetentities 的问题是缺少标签。我通过以下 SPARQL 查询获得了所需的输出(例如 wdt:P17 => country => United States of America):

SELECT ?prop_id ?prop_label ?prop_val_label WHERE {
VALUES (?company) {
(wd:Q95)
}
?company ?prop_id ?company_item.
?wd wikibase:directClaim ?prop_id.
?wd rdfs:label ?prop_label.
OPTIONAL {
?company_item rdfs:label ?prop_val.
FILTER((LANG(?prop_val)) = "en")
}
BIND(COALESCE(?prop_val, ?companyItem) AS ?prop_val_label)
FILTER((LANG(?prop_label)) = "en")
}

但是那些“子属性”丢失了,因为它们不在直接声明之下。要提取单个语句限定符,我可以这样做:

SELECT ?company ?hq ?country WHERE {
wd:Q95 p:P159 ?company.
OPTIONAL {
?company ps:P159 ?hq.
?company pq:P17 ?country.
}
}

但问题是是否有一种方法可以将所有内容组合到一个查询中?

最佳答案

关于维基数据模型的有用链接:

你的查询应该是这样的:

SELECT ?wdLabel ?ps_Label ?wdpqLabel ?pq_Label {
VALUES (?company) {(wd:Q95)}

?company ?p ?statement .
?statement ?ps ?ps_ .

?wd wikibase:claim ?p.
?wd wikibase:statementProperty ?ps.

OPTIONAL {
?statement ?pq ?pq_ .
?wdpq wikibase:qualifier ?pq .
}

SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
} ORDER BY ?wd ?statement ?ps_

Try it!

结果中仅包含限定符及其值。既不包括出处引用也不包括值注释(例如时间精度)。如果您需要添加它们,请写评论。

关于database - wikidata 获取带有标签和项目值的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46383784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com