2016-11-14 28 views
2

我試圖從維基數據中檢索一些信息,並且發現有趣的是收集聲音的別名。對於例子托蒂也被稱爲金正日卡皮塔諾或ER Pupone: wikidata of Francesco Totti如何從wikidata中檢索別名

我試圖檢索與此SPARQL查詢所有意甲的足球運動員:

SELECT ?subject ?nomeLabel ?cognomeLabel ?subjectLabel WHERE { 
    ?subject wdt:P31 wd:Q5. 

    ?subject p:P54 ?team . 
    ?team ps:P54 wd:""" + team_code +""" . 
    FILTER NOT EXISTS { ?team pq:P582 ?end 
    } 
OPTIONAL{ 
    ?subject wdt:P735 ?nome . 
    ?subject wdt:P734 ?cognome . 
    } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "it". } 
} 
ORDER BY (?cognomeLabel) 

我如何修改我的查詢也採取別名? 謝謝

回答

6

我試圖用各種標籤查詢。這裏只是羅馬:

SELECT distinct ?subject ?subjectLabel ?nomeLabel ?cognomeLabel ?nickname ?alternative ?subjectAltLabel WHERE { 
    ?subject wdt:P31 wd:Q5. 
    ?subject p:P54 ?team . 
    ?team ps:P54 wd:Q2739 . 
    FILTER NOT EXISTS { ?team pq:P582 ?end . } 
    OPTIONAL { ?subject wdt:P735 ?nome . } 
    OPTIONAL { ?subject wdt:P734 ?cognome . } 
    OPTIONAL { ?subject wdt:P1449 ?nickname . } 
    OPTIONAL { ?subject skos:altLabel ?alternative . } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en,fr". } 
} 
ORDER BY (?cognomeLabel) 

我相信P1449屬性應該是最合適的屬性來存儲的別名/暱稱,但它似乎並沒有使用那麼多的足球運動員。我剛剛將「il Capitano」添加到了Francesco Totti。除此之外,羅馬球員似乎沒有其他綽號。

「也稱爲」標籤(在右欄中)不一定是暱稱,但可以是拼寫變體。

+0

它的工作原理!很長時間以來,我一直試圖尋找解決方案。非常感謝芬蘭人! – Lupanoide

0

更多的東西通用的,如果有人有興趣的所有屬性,將只有英文also known as返回:

SELECT ?property ?propertyLabel ?propertyDescription (GROUP_CONCAT(DISTINCT(?altLabel); separator = ", ") AS ?altLabel_list) WHERE { 
    ?property a wikibase:Property . 
    OPTIONAL { ?property skos:altLabel ?altLabel . FILTER (lang(?altLabel) = "en") } 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" .} 
} 
GROUP BY ?property ?propertyLabel ?propertyDescription 
LIMIT 5000