需要非英语的cetegory

时间:2015-05-07 08:08:45

标签: sparql dbpedia

我做了这个查询:

SELECT DISTINCT *
WHERE { 
    [ rdfs:label ?name ;
      dbpedia-owl:abstract ?abstract
      dcterms:subject ?categoryUri ] .
    ?categoryUri rdfs:label ?categoryName .
    FILTER langMatches(lang(?abstract), "ar").
    FILTER langMatches(lang(?name), "ar")
}
LIMIT 100

但它总是用英语显示子类别,我需要用阿拉伯语。

1 个答案:

答案 0 :(得分:1)

您的查询中没有任何地方将子类别名称限制为阿拉伯语。有两种与语言相关的限制,即:

FILTER langMatches(lang(?abstract), "ar") .
FILTER langMatches(lang(?name), "ar") .

正如您可以通过lang function的参数看到的那样,它们分别限制了?abstract?name的语言。

请注意,这些仅限 您要检索的标签。您正在检索其IRI的?categoryUri资源仍然只是来自数据集的“完整”资源,以任何方式按语言过滤或限定。因此,它可能包含许多语言的标签,例如英文。

如果您还要限制?categoryName,则必须添加适当的其他过滤器:

FILTER langMatches(lang(?categoryName), "ar") .