Search code examples
sparqlwikidata

How to query Wikidata items using its labels?


How can I query Wikidata to get all items that have labels contain a word? I tried this but didn't work; it retrieved nothing.

SELECT ?item ?itemLabel WHERE {
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en".
    ?item rdfs:label ?itemLabel.  
  }
FILTER(CONTAINS(LCASE(?itemLabel), "keyword"))
}
LIMIT 1000

Solution

  • Following your question and the useful comments provided, I ended up with this query

    SELECT ?item ?itemLabel
    WHERE { 
      ?item rdfs:label ?itemLabel. 
      FILTER(CONTAINS(LCASE(?itemLabel), "city"@en)). 
    } limit 10
    

    For which I got those results

    item          itemLabel
    wd:Q515       city
    wd:Q7930989   city
    wd:Q15253706  city
    wd:Q532039    The Eternal City
    wd:Q1969820   The Eternal City
    wd:Q3986838   The Eternal City
    wd:Q7732543   The Eternal City
    wd:Q7737016   The Golden City
    wd:Q5119      capital city
    wd:Q1555      Guatemala City
    

    try it here