SPARQL select 具有给定语言标记的文字 When Applicable
SPARQL select literals with a given language tag When Applicable
我正在寻找一个查询,如果适用,它会选择用英语编写的文字。我所说的适用是指如果请求的文字是字符串而不是数字。
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:runtime 将不会返回任何结果,因为数字没有附加语言标签.有没有办法说有没有语言标签,选英文的。
您可以使用像
这样的过滤器
filter (lang(?var) = "" || langMatches(lang(?var), "en"))
如果文字没有语言类型,你会返回“”,但如果有,那么它必须匹配 "en"。如果需要,可以使用数据类型函数获取文字的数据类型,从而对数据类型添加更多检查。
我正在寻找一个查询,如果适用,它会选择用英语编写的文字。我所说的适用是指如果请求的文字是字符串而不是数字。
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:runtime 将不会返回任何结果,因为数字没有附加语言标签.有没有办法说有没有语言标签,选英文的。
您可以使用像
这样的过滤器filter (lang(?var) = "" || langMatches(lang(?var), "en"))
如果文字没有语言类型,你会返回“”,但如果有,那么它必须匹配 "en"。如果需要,可以使用数据类型函数获取文字的数据类型,从而对数据类型添加更多检查。