我的问题是如何从wikidata(最好是通过SPARQL)中提取网页上呈现的所有属性及其各自的标签。
Google
query
wbgetentities
作为限定符。问题在于
就是标签不见了。我得到了期望的输出(例如。
wdt:P17 => country => United States of America
)使用以下SPARQL查询:
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.
}
}