SPARQL クエリを使用して DBpedia リソース (Person) に関する情報を取得しようとしています。リソース URI をパラメーター化することで、同じクエリを使用して任意の Person に関するデータを取得したいと考えています。特定のリソースには一部の属性が存在しない可能性があるため、OPTIONAL
ステートメントを利用しています。これが私のクエリです:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbpprop: <http://dbpedia.org/property/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?label ?abstract ?placeOfBirth
?birthPlace ?birthDate ?deathDate ?page ?thumbnail
WHERE {
<http://dbpedia.org/resource/Neil_Simon> rdfs:label ?label ;
dbo:abstract ?abstract ;
foaf:page ?page .
OPTIONAL {
<http://dbpedia.org/resource/Neil_Simon> dbpprop:placeOfBirth ?placeOfBirth ;
dbpprop:birthPlace ?birthPlace ;
dbo:birthDate ?birthDate ;
dbo:deathdate ?deathDate ;
dbo:thumbnail ?thumbnail .
}
FILTER (LANG(?label) = 'en')
FILTER (LANG(?abstract) = 'en')
}
LIMIT 1
label、abstract、page 以外はすべて に残しましたOPTIONAL
。別の人に同じクエリを使用すると、それらのプロパティがない可能性があるためです。問題は、これらのオプションの属性が結果に表示されないことです。Neil Simon の場合、http://dbpedia.org/resource/Neil_SimonbirthDate
に、 、birthPlace
およびの値があることがわかります。ただし、クエリを実行すると、これらの値は表示されません: DBpedia SPARQL query。私は何を間違っていますか?オプションでそれらのプロパティを取得するにはどうすればよいですか?thumbnail