2017-09-27 59 views
1

對於像'occupation (P106)'這樣的特定屬性,我想要檢索所有別名,例如:職業,工作,工作,職業,工作,工藝。所有這些都出現在屬性wikidata頁面的'也稱爲'下。我怎樣才能使用SPARQL來檢索這個? 我嘗試使用以下查詢。從wikidata獲取給定屬性的別名值?

SELECT ?predicate ?object WHERE { 
    wdt:P106 wdt:P1449 ?predicate . //Nickname 
    wdt:P106 wdt:P734 ?predicate . //Family Name 
    wdt:P106 wdt:P735 ?predicate . //Given Name 
    wdt:P106 skos:altLabel ?predicate . 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } 
} 
+1

忽略鏈接到包含類= wikibase-entitytermsview-別名,別名頁的OP說他想刮:https://www.wikidata.org/wiki/Property:P106 –

回答

4
SELECT ?altLabel 
{ 
VALUES (?wd) {(wd:P106)} 
?wd skos:altLabel ?altLabel . 
FILTER (lang(?altLabel) = "en") 
} 

SELECT ?altLabel 
{ 
VALUES (?wdt) {(wdt:P106)} 
?wd wikibase:directClaim ?wdt . 
?wd skos:altLabel ?altLabel . 
FILTER (lang(?altLabel) = "en") 
} 

這些段落提供了一些解釋:


更新

你仍然可以使用標籤服務:

SELECT ?wdAltLabel 
{ 
VALUES (?wdt) {(wdt:P106)} 
?wd wikibase:directClaim ?wdt . 
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } 
}