3

SPARQLステートメントでOPTIONAL句を使用する際に問題が発生しました。私がこのようにdbpediaを調べているとき:

CONSTRUCT { ?guitarist rdfs:label ?name . ?guitarist rdfs:comment ?desc . ?guitarist dbpprop:placeOfBirth ?placebirth }
WHERE {
  ?guitarist dbpprop:wikiPageUsesTemplate <http://dbpedia.org/resource/Template:Infobox_musical_artist> . 
  ?guitarist rdfs:label ?name .
  ?guitarist rdfs:comment ?desc .
  ?guitarist dbpprop:placeOfBirth ?placebirth .
  FILTER ( lang(?name) = "en" && lang(?desc) = "en" )
} 

ロジャーウォーターズの出生地とその他のデータが返されます。しかし、これに目を向けると、すべてのRoger_Watersレコードが欠落しています。

CONSTRUCT { ?guitarist rdfs:label ?name . ?guitarist rdfs:comment ?desc . ?guitarist dbpprop:placeOfBirth ?placebirth }
WHERE {
  ?guitarist dbpprop:wikiPageUsesTemplate <http://dbpedia.org/resource/Template:Infobox_musical_artist> . 
  ?guitarist rdfs:label ?name .
  ?guitarist rdfs:comment ?desc .
  OPTIONAL { ?guitarist dbpprop:placeOfBirth ?placebirth }
  FILTER ( lang(?name) = "en" && lang(?desc) = "en" )
}

私が間違っていること-OPTIONALを適用した後、完全なレコードが欠落していないと思います...

4

1 に答える 1

4
于 2012-03-21T20:13:12.717 に答える