我正在尝试使用'更新'将数据插入到blazegraph中。 blazegraph工作台的选项卡。以下是示例代码段:
INSERT DATA
{
ns:MyNode ns:hasValue "MyValue"@en_us
}
我用@符号指定语言标记。但是,它抛出以下异常:
org.openrdf.query.MalformedQueryException:第8行的词法错误, 第49栏。遇到:"你" (117),之后:" _"
似乎它不允许下划线作为语言标记的一部分。如果只是尝试使用' en'它工作正常。
为什么会这样?在这里强调一个特殊的角色?如果是这样,逃脱它的方法是什么?
答案 0 :(得分:3)
语言标记的语法由RFC定义,现在在RFC5646中进行了修订。语言标签的注册由IANA控制。
子标签由" -
";只有A-Z,0-9
在子标签中是合法的。
当采用RDF语法(N3,SPARQL,Turtle等)时,采用的语法模式是一种折衷的语法,与RFC很弱地匹配。 '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)*
没有详细说明。子标签分隔符是" -
"。 " _
"不允许使用语言标记。