2017-11-17 122 views
1

我試圖使用blazegraph工作臺的「更新」選項卡插入數據到blazegraph中。以下是示例代碼片段:SPARQL更新:語言標記中不允許下劃線

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

我使用@符號指定語言標記。然而,它拋出以下異常:

org.openrdf.query.MalformedQueryException:在第8行詞彙錯誤, 柱49遇到: 「U」(117),後: 「_」

它似乎不允許將下劃線作爲語言標記的一部分。如果試試'en'就可以。

這是爲什麼?在這裏強調一個特殊字符?如果是這樣,那麼逃避它的方法是什麼?

回答

3

語言標記的語法由RFC定義,現在在RFC5646中進行了修訂。語言標籤的註冊由IANA控制。

分標籤由「-」分隔;只有A-Z,0-9在子標籤中是合法的。

當被採納用於RDF語法(N3,SPARQL,Turtle等)時,採用的語法模式是一種折衷的語法,與RFC的弱匹配。沒有考慮所有的細節。子標籤分隔符是「-」。語言標籤中不允許使用「_」。