我正在寻找一个查询,如果适用,选择用英语编写的文字。适用时我的意思是,如果请求的文字是字符串而不是数字。
function (String p){
...
query= "select distinct ?o where {
<http://dbpedia.org/resource/Elizabeth:_The_Golden_Age> ?p ?t.
FILTER(langMatches(lang(?t), "EN"))
}
LIMIT 100";
}
问题是,如果 p 是 dbo:运行时,则不会返回任何结果,因为该数字没有附加语言标记。有没有办法说是否有语言标签,选择英文版。
答案 0 :(得分:4)
您可以使用像
这样的过滤器filter (lang(?var) = "" || langMatches(lang(?var), "en"))
如果文字没有语言类型,你会回来&#34;&#34;,但如果确实如此,则必须匹配&#34; en&#34;。如果需要,可以使用数据类型函数来获取文本的数据类型,从而可以对数据类型添加更多检查。