You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SPARQL中为变量设置语言标识?

解决SPARQL中变量字面量添加语言标识的问题

你写的?object@en写法在SPARQL里不合法——只有固定字符串字面量才能直接用"内容"@en的格式加语言标识,变量不能这么操作。要把en-gb语言的标签复制为en语言,得先提取变量里的纯文本内容,再给它重新指定语言。

修正后的SPARQL代码有两种等效写法:

写法一:直接为字符串内容添加语言标签

INSERT {
   ?subject skos:prefLabel str(?object)@en
} 

WHERE {
  ?subject skos:prefLabel ?object .
  FILTER (lang(?object) = "en-gb")
} 

写法二:使用STRLANG函数(SPARQL标准推荐写法)

INSERT {
   ?subject skos:prefLabel STRLANG(str(?object), "en")
} 

WHERE {
  ?subject skos:prefLabel ?object .
  FILTER (lang(?object) = "en-gb")
} 

两种写法的核心逻辑一致:先用str(?object)取出en-gb标签对应的纯文本内容,再给这个内容加上en的语言标识,生成符合要求的新标签。

内容的提问来源于stack exchange,提问作者Paul Kelly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:48:11