私はSPARQLステートメントでOPTIONAL句を使うことに問題があります。私がこのようなdbpediaを動かしているとき:紛らわしいOPTIONAL - 消えているレコード
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")
}
何を - 私はオプション適用した後に失われていない完全な記録を想定...
まあ、私は、ギタリストdbpprop:shortDescription "British Musician"を追加して結果を制限しようとしました。 constarintをWHERE句に追加しますが、空のセットが返されます(http://dbpedia.org/page/Roger_Watersに従って返される必要があります) – deha