How can I get the labels in English or any other language in Wikidata by ID using SPARQL endpoint?
How to get Wikidata labels by ID using SPARQL?
Asked Answered
this is how to use REST API: opendata.stackexchange.com/questions/5248/… Not sure how to do this using SPARQL –
Giron
Suppose wd:Q146190 is your wikidata entity ID
get the label in a specific language of your specific entity ID:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wd: <http://www.wikidata.org/entity/>
SELECT *
WHERE {
wd:Q146190 rdfs:label ?label .
FILTER (langMatches( lang(?label), "EN" ) )
}
LIMIT 1
get all the labels in any language of your specific entity ID:
SELECT * WHERE {
wd:Q146190 rdfs:label ?label
}
here the link to the live try press on play to run the query then you could download a full JSON and get such a rensponse ..only a trunk copied here:
{
"head": {
"vars": [
"label"
]
},
"results": {
"bindings": [
{
"label": {
"xml:lang": "ar",
"type": "literal",
"value": "دوار الشمس الدرني"
}
},
{
"label": {
"xml:lang": "az",
"type": "literal",
"value": "Kökyumrulu günəbaxan"
}
},
..etc,etc.
get labels for each entity ID in a response resultset with multiple id
in this case you should use the Label service
SELECT ?p ?pLabel ?w ?wLabel WHERE {
wd:Q30 p:P6/ps:P6 ?p .
?p wdt:P26 ?w .
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
to use this service add Label
to the variable ( ie: for ?p
label you must use ?pLabel
then add
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
to the WHERE
block
© 2022 - 2024 — McMap. All rights reserved.