2017-09-27 4 views
1

Pour une propriété donnée comme 'occupation (P106)', je veux récupérer tous ses alias comme: profession, travail, travail, carrière, emploi, métier. Tout cela est présent sur la page wikidata des propriétés, sous 'Also known as'. Comment puis-je récupérer cela en utilisant SPARQL? J'ai essayé d'utiliser la requête suivante.Récupère les valeurs alias de wikidata pour une propriété donnée?

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

L'OP négligé de créer un lien vers la page contenant class = WikiBase-entitytermsview-alias-alias il veut gratter: https://www.wikidata.org/wiki/Property:P106 –

Répondre

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

ou

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

Ces paragraphes fournissent une explication:


Mise à jour

Vous pouvez toujours utiliser le service Label:

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