我正在尝试使用以下 SPARQL 查询来查找法国的 Rhône 部门。
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_(department )
问题是它一直在寻找罗纳河,而不是部门(或州)。如果我将 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'))
}
其次,我认为在一个查询中使用多个过滤器是可以的,例如:
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'))
}