SPARQL更新:语言标记

时间:2017-11-17 22:12:04

标签: sparql rdf blazegraph

我正在尝试使用'更新'将数据插入到blazegraph中。 blazegraph工作台的选项卡。以下是示例代码段:

INSERT DATA
{
  ns:MyNode ns:hasValue "MyValue"@en_us
}

我用@符号指定语言标记。但是,它抛出以下异常:

  

org.openrdf.query.MalformedQueryException:第8行的词法错误,   第49栏。遇到:"你" (117),之后:" _"

似乎它不允许下划线作为语言标记的一部分。如果只是尝试使用' en'它工作正常。

为什么会这样?在这里强调一个特殊的角色?如果是这样,逃脱它的方法是什么?

1 个答案:

答案 0 :(得分:3)

语言标记的语法由RFC定义,现在在RFC5646中进行了修订。语言标签的注册由IANA控制。

子标签由" -";只有A-Z,0-9在子标签中是合法的。

当采用RDF语法(N3,SPARQL,Turtle等)时,采用的语法模式是一种折衷的语法,与RFC很弱地匹配。 '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)*没有详细说明。子标签分隔符是" -"。 " _"不允许使用语言标记。