比较语言标签

SPARQL 函数 langMatches 可用于比较 SPARQL 查询中 RDF 文字的语言标记。简单等于运算符 = 可用于比较精确的字符串匹配,但不会正确考虑区域变量。例如,?str 的四个可能值 :

values ?str { "color"@en-US "color"@en "colour"@en "colour"@en-GB }

是所有英语语言字符串,但其中两个具有区域规范。这意味着

select ?str { 
  values ?str { "color"@en-US "color"@en "colour"@en "colour"@en-GB }
  filter (lang(?str) = 'en')
}

将仅返回两个结果,因为只有两个值**?str** 具有 en 作为语言标记。然而,

select ?str { 
  values ?str { "color"@en-US "color"@en "colour"@en "colour"@en-GB }
  filter langMatches(lang(?str), 'en')
}

将返回所有四个值。