【问题标题】:How to restrict DBpedia abstract result to English only如何将 DBpedia 摘要结果限制为仅英文
【发布时间】:2015-04-11 11:07:05
【问题描述】:

我正在 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) 中看不到我可能能够过滤的任何其他属性。如何限制结果只显示英文摘要?

【问题讨论】:

  • 您不应将语言标签与= 进行比较,而应与langMatches 进行比较。也就是说,您将使用 filter langMatches(lang(?abstract),'en'),就像您在第一个查询中所做的那样。
  • 但是,如果您找到了解决方案,请将其作为问题的答案发布,并将其标记为已接受。

标签: sparql dbpedia


【解决方案1】:

感谢@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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多