Open pchampin opened 1 year ago
We should probably be using logic from JCS for dividing these different forms.
Sorry, what do you mean by "JCS"?
JSON Canonicalization, which we use when serializing JSON literals
JSON Canonicalization, which we use when serializing JSON literals
ah... thanks
JCS Appendix D. Dealing with Big Numbers says
numbers that do not have a natural place in the current JSON ecosystem MUST be wrapped using the JSON string type.
This is aligned with my suggestion above: whenever a literal can not be mapped to a JSON number, ignore useNativeType
and keep it as a value object with explicit @value
(as a string) and @type
.
I tried to cover this with a PR: https://github.com/w3c/json-ld-api/pull/619
I don't think I can assign this issue to me though :thinking:
I believe that the RDF to object conversion, step 2.4.3, has a blind spot. This is in the case
useNativeTypes
is used:The problem is: some valid literals of these datatypes may fail to convert to JSON numbers, e.g.
"+INF"^^xsd:double
, or very large integers.The spec is currently silent about that. We should either specify that an error must be raised, or that
useNativeType
should be ignored in that case, and a regular value object should be generated. I personally prefer the 2nd option.