2017-11-17 6 views
1

Ich versuche, Daten in Blazegraph mit dem 'Update' Registerkarte von Blazegraph Werkbank einfügen. Unten ist ein Beispiel Code-Ausschnitt:SPARQL Update: Underscore nicht erlaubt in Sprache tag

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

Ich spreche Sprache Tag mit @ Symbol. Allerdings wirft es folgende Ausnahme:

org.openrdf.query.MalformedQueryException: lexikalische Fehler in Zeile 8, Spalte 49. Encountered: "u" (117), nach dem: "_"

Es scheint, dass es keine Unterstreichung als Teil des Sprach-Tags erlaubt. Wenn es nur mit 'en' versucht, funktioniert es gut.

Warum ist das so? Wird hier ein Sonderzeichen unterstrichen? Wenn ja, wie kann man dem entkommen?

Antwort

3

Die Syntax für Sprach-Tags wird durch einen RFC definiert, der jetzt in RFC5646 revidiert wird. Die Registrierung von Sprach-Tags wird von IANA gesteuert.

Untertags sind durch "-" getrennt; Nur A-Z,0-9 sind legal in Subtags.

Bei Verwendung für RDF-Syntaxen (N3, SPARQL, Turtle usw.) war das angenommene Grammatikmuster eine Kompromiss-Syntax, die dem RFC nur schwach entspricht. '@' [a-zA-Z]+ ('-' [a-zA-Z0-9]+)* ohne alle Details zu nehmen. Das Unter-Tag-Trennzeichen ist "". "_" ist in einem Sprach-Tag nicht erlaubt.

Verwandte Themen