SPARQL选择具有给定语言标记的文字适用时

时间:2016-05-22 15:45:53

标签: sparql rdf semantic-web dbpedia

我正在寻找一个查询,如果适用,选择用英语编写的文字。适用时我的意思是,如果请求的文字是字符串而不是数字。

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:运行时,则不会返回任何结果,因为该数字没有附加语言标记。有没有办法说是否有语言标签,选择英文版。

1 个答案:

答案 0 :(得分:4)

您可以使用像

这样的过滤器
filter (lang(?var) = "" || langMatches(lang(?var), "en"))

如果文字没有语言类型,你会回来&#34;&#34;,但如果确实如此,则必须匹配&#34; en&#34;。如果需要,可以使用数据类型函数来获取文本的数据类型,从而可以对数据类型添加更多检查。