我做了这个查询:
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
但它总是用英语显示子类别,我需要用阿拉伯语。
答案 0 :(得分:1)
您的查询中没有任何地方将子类别名称限制为阿拉伯语。有两种与语言相关的限制,即:
FILTER langMatches(lang(?abstract), "ar") .
FILTER langMatches(lang(?name), "ar") .
正如您可以通过lang
function的参数看到的那样,它们分别限制了?abstract
和?name
的语言。
请注意,这些仅限 您要检索的标签。您正在检索其IRI的?categoryUri
资源仍然只是来自数据集的“完整”资源,不以任何方式按语言过滤或限定。因此,它可能包含许多语言的标签,例如英文。
如果您还要限制?categoryName
,则必须添加适当的其他过滤器:
FILTER langMatches(lang(?categoryName), "ar") .