Term and Type Maps Generated with JSON-LD Expansion

Hi,

I’d like to share the latest experiments with JSON-LD processing. Term and
Type maps, which are a side product of the standard JSON-LD 1.1 expansion
algorithm, augmented with a few hooks to collect data for these maps.

The shapes of the Term and Type maps mirror the input structure and
preserve the original key names (the compacted form), complementing it
rather than replacing. The Term map provides a bridge between the compacted
and fully expanded forms, showing what was, or was not, expanded and to
what. The Type map offers a simple overview of the datatypes to which the
original values are mapped.

The main use cases are validation and preprocessing at the JSON level,
using the original JSON structure together with the Term map, Type map, or
both. The Type map is currently used together with the Iridium CBOR-LD [3]
implementation.

Term and Type maps are released in Titanitum 2.0.0-M2 [1] as a preview, and
the Term map is fully covered by the updated standard JSON-LD expansion
tests [2].

An example. Both maps use simple mappings. JSON Pointers pointing to an
expanded term or to a datatype:
compacted form
<https://github.com/filip26/titanium-json-ld/blob/feat/v2-m2/src/test/resources/com/apicatalog/jsonld/test/vc-utopia.jsonld>
term map
<https://github.com/filip26/titanium-json-ld/blob/feat/v2-m2/src/test/resources/com/apicatalog/jsonld/test/vc-utopia-termmap.json>
type map
<https://github.com/filip26/titanium-json-ld/blob/feat/v2-m2/src/test/resources/com/apicatalog/jsonld/test/vc-utopia-typemap.json>

I’m curious to hear your thoughts.

Best,
Filip
https://www.linkedin.com/in/filipkolarik/

[1] https://github.com/filip26/titanium-json-ld
[2]
https://github.com/filip26/titanium-json-ld/tree/main/src/test/resources/com/apicatalog/jsonld/termmap
[3] https://github.com/filip26/iridium-cbor-ld

Received on Tuesday, 18 November 2025 17:56:44 UTC