如何将DBpedia抽象结果限制为仅限英语

时间:2015-04-11 11:07:05

标签: sparql dbpedia

我正在查询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.
  }   

SPARQL result

我尝试使用

的各种排列添加过滤器
FILTER (LANGMATCHES(LANG(?abstract), 'en'))

然后查询没有返回任何结果。我在相应的页面(http://dbpedia.org/page/Ballyhaunis)中看不到我可以过滤的任何其他属性。如何限制结果仅显示英文摘要?

1 个答案:

答案 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')
      }

SPARQL result