次の SPARQL クエリを使用して、フランスのローヌ県を検索しようとしています。
SELECT * WHERE {
?x rdfs:label "Rhone"@en.
?x rdf:type dbpedia-owl:Place.
?x dbpedia-owl:abstract ?abstract.
FILTER (LANGMATCHES(LANG(?abstract), 'en'))
}
DBPEDIA リソースは次のとおりです: http://dbpedia.org/page/Rh%C3%B4ne_ (部門)
問題は、部門 (または州) ではなく、ローヌ川を検索し続けることです。rdf:type を PopulatedPlace または Settlement に変更すると、検索で何も見つかりません。
「*」または「?」を使用することは可能ですか? 次のような文字を使用して、検索文字列を広げます。
「*ローヌ*」
次のように:
SELECT * WHERE {
?x rdfs:label "*Rhone*"@en.
?x rdf:type dbpedia-owl:Settlement.
?x dbpedia-owl:abstract ?abstract.
FILTER (LANGMATCHES(LANG(?abstract), 'en'))
}
次に、次のように、1 つのクエリで複数のフィルターを使用しても問題ないと思います。
SELECT * WHERE {
?x rdfs:label "Rhone"@en.
?x rdf:type dbpedia-owl:Place.
?x rdf:type dbpedia-owl:PopulatedPlace.
?x rdf:type dbpedia-owl:Settlement.
?x dbpedia-owl:abstract ?abstract.
FILTER (LANGMATCHES(LANG(?abstract), 'en'))
}