diff --git a/spec/index.html b/spec/index.html index 7b4a369..8387ad5 100644 --- a/spec/index.html +++ b/spec/index.html @@ -1842,65 +1842,34 @@

The rdf:JSON Datatype

is the smallest set containing strings, numbers (xsd:double), - maps - (mapping strings to values in the value space where the order of map entries is not significant), + finite unordered maps + mapping strings to values in the value space, lists - (of values in the value space), and + of values in the value space, and literal values (`true`, `false`, and `null`) from [[[INFRA]]] [[INFRA]] and [[[XMLSCHEMA11-2]]] [[XMLSCHEMA11-2]]. -

The value space of maps +

The value space of finite unordered maps and lists does not include values having themselves as members, which cannot be represented in JSON.

-

Two values (|a| and |b|) are considered equal if any of the following are true: -

+

Two values are considered equal if and only if they are the same element of the value space.

The lexical-to-value mapping
maps every element of the lexical space to the result of parsing it into a string, number (xsd:double), - map, + finite unordered map, list, or literal value (`true`, `false`, and `null`).
-

The issue refers to the use - of ordered map - from [[INFRA]] for describing the value space of JSON Objects - and suggests defining a new datatype for unordered maps.

+

+ The finite unordered maps can be implemented with ordered maps [[INFRA]] + by systematically sorting key-value pairs by key (using Unicode code point order). + This ensures that lexical forms that differ only in the order of object members (e.g., {"a": "b", "c": "d"} and {"c": "d", "a": "b"}) are mapped to the same value. +