2016-11-14 27 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