我正在查询DBpedia,仅提供英文地名的标题和摘要。该查询有效,但它以七种语言返回结果。
这是我的疑问:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?wikipedia_data_field_name ?wikipedia_data_field_abstract
WHERE {
?wikipedia_data foaf:name "Ballyhaunis"@en; foaf:name
?wikipedia_data_field_name; dbpedia-owl:abstract ?wikipedia_data_field_abstract.
}
我尝试使用
的各种排列添加过滤器FILTER (LANGMATCHES(LANG(?abstract), 'en'))
然后查询没有返回任何结果。我在相应的页面(http://dbpedia.org/page/Ballyhaunis)中看不到我可以过滤的任何其他属性。如何限制结果仅显示英文摘要?
答案 0 :(得分:4)
感谢@Joshua Taylor提供有关比较语言标签的正确方法的建议,这里有一个更好的答案。
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?wikipedia_data_field_name ?wikipedia_data_field_abstract
WHERE {
?wikipedia_data foaf:name "Ballyhaunis"@en; foaf:name
?wikipedia_data_field_name; dbpedia-owl:abstract ?wikipedia_data_field_abstract.
FILTER langMatches(lang(?wikipedia_data_field_abstract),'en')
}