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 allowedfalse— 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 trainingtrain-genai– Generative model trainingai-use– Use of content as input to a deployed AI model (inference)search– Use in search applications
Values
true— allowedfalse— disallowed
Inheritance and Overrides
The keys all, train-ai, and train-genai are hierarchically nested:
train-aiinherits fromalltrain-genaiinherits fromtrain-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 partysupercede— 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.
Example 4: Full Reservation Including Inference and Search
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-useandsearchare explicitly permitted to ensure downstream use is clearly allowed.
Last updated