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