The 'all cities' part of your query seems strange. If you replace it with a simple 'instance of city' - ?x wdt:P31 wd:Q515 . it returns 145 results in 341ms. http://tinyurl.com/m4ffatg Why would you ask for things that have 'occupation' or 'position' with value city?
Also, I'm not familiar with the use of the '/' in that line of the query. My experience with that is as a mathematical operator. What is it supposed to be doing? On Wed, Apr 5, 2017 at 10:00 AM, Anatoly Zelenin <[email protected]> wrote: > Hi all, > I am building a Question Answering System for Wikidata (I will put the > demo live in May) and would like to be able to ask quesitons like "Give > me the cities in Alaska". To query Wikidata I am using the Wikidata > SPARQL endpoint. > > The SPARQL query for this question looks the following way [0]: > > SELECT DISTINCT ?x ?xLabel > { > # All things in Alaska > ?x (wdt:P131+ | wdt:P276) wd:Q797 . > # All cities > ?x ((wdt:P106 | wdt:P39 | wdt:P31) / wdt:P279*) wd:Q515 . > SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } > } > > As it needs to join over two very large sets (the set of all cities and > the set of all things in Alaska) the query times out. Do you have an > idea how I could write the query without getting a timeout? > Thank you ;) > > [0] > https://query.wikidata.org/#SELECT%20DISTINCT%20%3Fx%20% > 3FxLabel%0A%7B%0A%3Fx%20%28wdt%3AP131%2B%20%7C%20wdt% > 3AP276%29%20wd%3AQ797%20.%0A%3Fx%20%28%28wdt%3AP106%20%7C% > 20wdt%3AP39%20%7C%20wdt%3AP31%29%20%2F%20wdt%3AP279%2a%29% > 20wd%3AQ515%20.%0ASERVICE%20wikibase%3Alabel%20%7B%0Abd% > 3AserviceParam%20wikibase%3Alanguage%20%22en%22%20.%0A%7D%0A%7D > > > -- > Best, > Anatoly Zelenin > > > > _______________________________________________ > Wikidata mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/wikidata >
_______________________________________________ Wikidata mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikidata
