Thanks, all! I ran each query separately and reassembled the results in a spreadsheet, so I think I got what I was after. Brand new to SPARQL, so I'll try and figure out your correct query above. Thanks again, d
On Fri, Nov 6, 2015 at 5:40 PM, James Heald j.heald@ucl.ac.uk wrote:
Hi David,
I think the issue with your query was with the line
OPTIONAL {?nat rdfs:label ?nat_label filter (lang(?nat_label) = "en") .}
The problem was that if the photographer didn't have a P27, so ?nat wasn't bound in the previous OPTIONAL line, then when it gets to the line above, with ?nat unbound, it will then be a directive to start binding labels for the *entire database* ... which is why it is just as well that Stas turns over an egg timer for each query. :-)
The way around this is to nest the two OPTIONAL clauses, one inside the other:
OPTIONAL {?photographer wdt:P27 ?nat . OPTIONAL {?nat rdfs:label ?nat_label filter (lang(?nat_label) = "en") .} }
This should now run fine. (Provided you remember to remove the old OPTIONAL line).
All best,
James.
On 06/11/2015 19:38, David Lowe wrote:
Might this be affecting our searches? The following query times out very quickly on Chrome, and runs forever in Firefox before crashing the whole browser (or is there a problem with my query?)
PREFIX wd: http://www.wikidata.org/entity/ PREFIX wdt: http://www.wikidata.org/prop/direct/ PREFIX wikibase: http://wikiba.se/ontology# PREFIX p: http://www.wikidata.org/prop/ PREFIX v: http://www.wikidata.org/prop/statement/ PREFIX q: http://www.wikidata.org/prop/qualifier/ PREFIX rdfs: http://www.w3.org/2000/01/rdf-schema#
SELECT ?photographer ?photographer_label ?nat ?nat_label ?dob ?dod WHERE { ?photographer wdt:P106 wd:Q33231 . # find items that have "occupation (P106): photographer (Q33231) " OPTIONAL {?photographer wdt:P27 ?nat .} # with a P19 (place of birth) claim OPTIONAL {?photographer wdt:P569 ?dob .} # ... where the pob has a Country OPTIONAL {?photographer wdt:P570 ?dod ;} #where the pob has a state
OPTIONAL {?photographer rdfs:label ?photographer_label filter
(lang(?photographer_label) = "en") .} OPTIONAL {?nat rdfs:label ?nat_label filter (lang(?nat_label) = "en") .} #OPTIONAL {?cob rdfs:label ?cob_label filter (lang(?cob_label) = "en") .} #OPTIONAL {?state rdfs:label ?state_label filter (lang(?state_label) = "en") .} }
Wikidata mailing list Wikidata@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata