JSON Format for Usage Declarations

2025-11-04

Note on Alignment with IETF Drafts and Current Status

This specification on the Usage Preferences Vocabulary for the TDM·AI Protocol currently aligns with version 02 of the draft‑ietf‑aipref‑vocab‑02 published by the Internet Engineering Task Force (IETF) as of July 21 2025. datatracker.ietf.org+2datatracker.ietf.org+2 It is important to note that the IETF work on the “AI Preferences” vocabulary remains a work in progress. The draft is still under discussion, subject to change, and does not yet constitute a finalized standard. datatracker.ietf.org+1 We have chosen to use this particular draft version as a reference point to illustrate how a domain-based attachment mechanism (as proposed by the IETF) can be translated into a registry-based system — that is, how preference declarations can be persistently and verifiably associated with individual digital assets via a registry rather than relying solely on domain- or location-based signaling. As the IETF draft evolves, we expect to revisit and update our alignment accordingly. Until then, this documentation should be regarded as preliminary guidance, not a definitive implementation.

This section defines the JSON format used to express opt-out and permission declarations under the TDM·AI Protocol. The format enables machine-readable communication of rights regarding the use of digital content for:

  • Automated Processing (all)

  • AI Training (train-ai)

  • Generative AI Training (train-genai)

  • AI Use / Inference (ai-use)

  • Search (search)

The structure follows the IETF AI Preferences Vocabulary and Attachment Mechanisms, using compact single-byte tokens defined in Section 3.3.4:

  • true — explicitly allowed

  • false — explicitly disallowed

Declaration Format

Each declaration consists of a flat key-value structure where usage types are associated with a value:

{
  "all": "false",
  "ai-use": "true",
  "search": "true"
}

In this example:

  • Automated processing and AI-training and Generative AI Training are disallowed

  • AI inference and search are permitted

Keys

  • all – General automated processing (formerly TDM)

  • train-ai – AI model training

  • train-genai – Generative model training

  • ai-use – Use of content as input to a deployed AI model (inference)

  • search – Use in search applications

Values

  • true — allowed

  • false — disallowed

Inheritance and Overrides

The keys all, train-ai, and train-genai are hierarchically nested:

  • train-ai inherits from all

  • train-genai inherits from train-ai

Subordinate values inherit from parent values unless explicitly overridden. Other keys (ai-use, search) are independent and must be declared directly.

Example:

→ All processing is allowed except generative AI training, which is explicitly disallowed.

Required and Optional Fields

Each declaration MUST include:

  • iscc: A unique content identifier based on the ISCC standard, representing the specific asset to which the usage preferences apply.

Each declaration MAY include the following optional top-level fields:

  • intent: A short code indicating the purpose of the declaration. Valid values are:

    • activate — for initial registration (default if omitted)

    • update — for a revision or change by the original declaring party

    • supercede — for an automatic update triggered by dependency or policy changes

  • summary: A brief human-readable explanation of the declared usage rights, such as the scope of opt-out or permission. (optional)

  • policy: A human-readable reference to relevant legal or regulatory frameworks that inform the declaration, e.g., EU AI Act, CDSM Directive, national copyright laws. (optional)

These optional fields provide additional context but do not affect the machine-readable enforcement of the core usage preferences.

Example Use Cases for Opt-Out Declarations

Example 1: Full Reservation of Automated Processing (TDM)

This declaration opts out of all usage categories—automated processing, AI training, and generative AI training – by setting the top-level category (all) to n. No overrides are needed for subordinate categories.

This compact structure uses the all category to disallow all subordinate types of use (train-ai, train-genai) through hierarchical inheritance.

Example 2: AI Training Reserved

This declaration permits general automated processing (e.g. indexing, or non-AI analytical uses) while explicitly disallowing AI training. Since train-genai is a subset of train-ai, it is also implicitly disallowed and does not need to be stated separately.

Example 3: Generative AI Training Reserved

This declaration allows general automated processing and AI training for non-generative purposes, while explicitly disallowing generative AI training by overriding the inherited permission.

This declaration reserves all forms of automated processing, AI training, generative training, and downstream usage for inference and search.

In this example, train-ai and train-genai are implicitly restricted by all: "false", and ai-use and search are explicitly disallowed.

Example 5: Inference and Search Permitted, Generative Training Reserved

This declaration permits general processing, non-generative AI training, inference, and search—but disallows generative AI training.

In this case:

  • all: "true" permits all uses by default.

  • train-genai: "false" overrides the default for generative training.

  • ai-use and search are explicitly permitted to ensure downstream use is clearly allowed.

Last updated