2
我的問題是我如何可以提取所有屬性,並有相應的標籤也呈現在網頁上從wikidata最好通過SPARQL。wikidata獲取標籤和項目的值的所有屬性
以wikidata上的Google條目爲例。對於P414(證券交易所)或P159屬性,有像P969(位於街道地址)的子屬性。他們實際上一旦出現querywbgetentities
就顯示爲合格。 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.
}
}
但問題是如果有一種方法可以將所有內容組合到一個查詢中嗎?