在 Turtle 中处理 NaN (xsd:double)

Handling NaN (xsd:double) in Turtle

NaN的特殊值在xsd:double的值space中,在Turtle中可以简写,Jena 4.4.0(riot --sink)说 Unrecognized keyword: NaN。 这是 Jena 的规格吗?

  1. https://www.w3.org/TR/rdf11-concepts/#xsd-datatypes
  2. https://www.w3.org/TR/turtle/#grammar-production-DOUBLE

Turtle 中的完整形式的文字是 lexicalform ^^ datatype .

"1.234e0"^^xsd:double

所以 NaN 作为双精度数是:

"NaN"^^xsd:double

有一个允许大多数双打的缩写形式,例如 1.234e0

[21]    DOUBLE  ::=     [+-]? ( [0-9]+ '.' [0-9]* EXPONENT   |
                                '.' [0-9]+ EXPONENT          |
                                [0-9]+ EXPONENT
                              )

这种缩写形式不包括 NaN,因此不能按照标准定义在 Turtle 中缩写。

可以写成完整的形式

:s :p "NaN"^^xsd:double .

Apache Jena 解析。