JSON Format for Usage Declarations
2025-11-04
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