2

RDF N-Triplesの仕様では、文字列リテラルをエンコードする必要があると述べています。

https://www.w3.org/TR/n-triples/#grammar-production-STRING_LITERAL_QUOTE

この「エンコーディング」には、プログラミング言語で使用するために検索できる名前がありますか? そうでない場合、実際にはどういう意味ですか?

4

3 に答える 3

4

必要な文法生成は、リンク先のドキュメントにあります。

[9] STRING_LITERAL_QUOTE    ::= '"' ([^#x22#x5C#xA#xD] | ECHAR | UCHAR)* '"'
[141s]  BLANK_NODE_LABEL    ::= '_:' (PN_CHARS_U | [0-9]) ((PN_CHARS | '.')* PN_CHARS)?
[10]    UCHAR   ::= '\u' HEX HEX HEX HEX | '\U' HEX HEX HEX HEX HEX HEX HEX HEX
[153s]  ECHAR   ::= '\' [tbnrf"'\]

これは、文字列リテラルが二重引用符 (") で始まり、二重引用符 (") で終わることを意味します。二重引用符の内側には、次のものを含めることができます。

  • #x22、#x5C、#xA、#xD を除く任意の文字。オフハンドで、それらのそれぞれが何であるかはわかりませんが、エスケープで覆われたスペース文字であると思います。
  • \u に続く 4 つの 16 進数、または \U に続く 8 つの 16 進数で表される Unicode 文字。また
  • \ の後に t、b、n、r、f、"、'、および \ のいずれかが続き、さまざまな文字を表すエスケープ文字。
于 2016-11-27T22:21:25.677 に答える
3

Literal#n3()を使用できます

例えば

# pip install rdflib

>>> from rdflib import Literal
>>> lit = Literal('This "Literal" needs escaping!')
>>> s = lit.n3()
>>> print(s)
"This \"Literal\" needs escaping!"
于 2019-11-09T22:55:41.910 に答える