1. Abstract
Publish a machine-readable text and data mining reservation declaration and verifiable ODRL policy when the site needs one.
TDMRep is a W3C Community Group protocol and IANA-registered well-known URI for declaring text and data mining reservation policy on applicable content.
2. Classification
- Check ID
- tdmrep
- Check version
- 1.0.0
- Package path
- lib/checks/tdmrep/versions/1.0.0
- Category
- AI Discoverability
- Subcategory
- Bot Access Control
- Check group
- Bot Policy
- Check group ID
- bot-policy
- Maturity
- Emerging recommendation
- Scope
- site
- Check weight
- 1
3. Input And Output Contracts
- Input
- [email protected]
- Output
- [email protected]
- Resources inspected
- /.well-known/tdmrep.json, tdm-reservation header, tdm-reservation meta, tdm-policy
4. Scoring Semantics
| Step ID | Title | Weight | Description |
|---|---|---|---|
fetch-tdmrep | Fetch TDMRep declaration | 0.25 | Fetch /.well-known/tdmrep.json as the origin-level TDM declaration. |
resource-declarations | Inspect resource-level declarations | 0.2 | Inspect page HTTP headers and HTML metadata for TDM declarations. |
validate-declarations | Validate TDM declarations | 0.25 | Validate reservation values, policy URLs, and declaration consistency. |
verify-policy | Verify TDM policy | 0.3 | Fetch declared TDM policies and validate TDMRep/ODRL semantics. |
5. Package Documentation
TDMRep Check v1.0.0
Status
- Version:
1.0.0 - Check identifier:
tdmrep - Input contract:
[email protected] - Output contract:
[email protected] - Scope: site
Abstract
This check validates Text and Data Mining Reservation Protocol declarations and linked TDM policy documents. Version 1.0.0 recognizes the well-known /.well-known/tdmrep.json file plus resource-level tdm-reservation and tdm-policy declarations in HTTP headers and HTML metadata.
When TDM rights are reserved and a tdm-policy URL is declared, this version fetches the policy. JSON and JSON-LD policies receive full ODRL/TDMRep semantic validation. HTML policies are treated as human-readable policy evidence because TDMRep defines text/html for human-readable policies, not for machine-readable ODRL validation.
Motivation
TDMRep lets rightsholders declare whether text and data mining rights are reserved for applicable content. It is a rights and usage policy signal, not a generic crawl access rule and not a content-quality signal.
The declaration is only useful when machines can discover and validate both the reservation value and the policy terms for reserved content.
Normative Model
This version recognizes these declaration surfaces:
/.well-known/tdmrep.json.tdm-reservationHTTP response header.tdm-policyHTTP response header.<meta name="tdm-reservation" content="...">.<meta name="tdm-policy" content="...">.
tdm-reservation values:
1: TDM rights are reserved.0: TDM rights are not reserved.
tdm-policy values must resolve to HTTP(S) URLs. Origin-relative paths are accepted and resolved against the scanned origin.
TDM policy documents can be served in these TDMRep-recognized forms:
application/jsonorapplication/ld+jsonfor machine-readable policy data.text/htmlfor human-readable policy pages.
Only JSON and JSON-LD policy bodies are semantically validated as ODRL/TDMRep policy data in this version. RDFa, Microdata, and embedded JSON-LD inside HTML may be reported as non-standard structured evidence, but they do not satisfy the machine-readable ODRL validation gate.
Applicability
The check applies to every scanned site. It looks for TDMRep declarations in the well-known file, response headers, and HTML metadata.
If no declaration is present and /.well-known/tdmrep.json is not found, the result is warning.
Pass Criteria
- At least one TDMRep declaration exists.
- All declared reservation values are
0or1. - Declared policy URLs are valid HTTP(S) URLs or origin-relative paths.
- If
tdm-reservationis1andtdm-policyis declared, every fetched JSON
or JSON-LD policy passes ODRL/TDMRep semantic validation.
Warning Criteria
- No TDMRep declaration is found at
/.well-known/tdmrep.json, in response
headers, or in HTML metadata.
tdm-reservationis1but notdm-policyURL is declared.- Multiple declaration surfaces disagree on reservation values.
- A declared
tdm-policyURL resolves to a meaningful human-readable HTML
policy page instead of machine-readable JSON/JSON-LD policy data.
- A semantically valid ODRL policy omits non-fatal publisher/license details
such as assigner, duty, or constraint.
tdm-policyis present withtdm-reservation: 0, because the policy is
ignored for non-reserved content.
Failure Criteria
/.well-known/tdmrep.jsonis reachable but not parseable JSON./.well-known/tdmrep.jsonis reachable but is not served with a JSON-compatible
Content-Type, such as application/json, application/ld+json, or another +json type.
- The well-known file is not a JSON array of rule objects.
- A rule is missing
locationortdm-reservation. tdm-reservationis not0or1.tdm-policyis malformed.- A declared policy URL is unreachable, empty, or served as an unsupported
content type.
- A JSON/JSON-LD policy is not parseable JSON.
- A JSON/JSON-LD policy lacks a semantically valid ODRL/TDMRep policy.
- An HTML policy page is reachable but too thin to be useful as human-readable
policy evidence.
Evidence Model
The result emits:
- Well-known fetch status, content type, length, and parsed declarations.
- Header and HTML metadata declarations.
- Declaration validation errors and warnings.
- Linked policy fetch status, content type, format, and semantic validation
output.
- JSON/JSON-LD policy candidates with ODRL type, id, profile, and rule presence
summaries.
- Non-standard HTML structured evidence signals, when present, such as embedded
JSON-LD, RDFa attributes, or Microdata attributes.
Validation And Scoring Steps
| Step | Weight | Purpose |
|---|---|---|
fetch-tdmrep | 0.25 | Fetch /.well-known/tdmrep.json. |
resource-declarations | 0.20 | Inspect response headers and HTML metadata. |
validate-declarations | 0.25 | Validate reservation values, policy URLs, and cross-surface consistency. |
verify-policy | 0.30 | Fetch tdm-policy URLs and validate ODRL/TDMRep semantics. |
Standard Behavior
For reserved TDM content, publish a TDMRep declaration with tdm-reservation: 1 and a tdm-policy URL. The policy should be a structured ODRL/TDMRep JSON or JSON-LD policy with:
- An ODRL policy type such as
Offer,Agreement,Set, orPolicy. uidor@id.- The TDMRep profile or vocabulary.
- At least one
permission,prohibition,obligation, orduty. - A rule with action
tdm:mine. - Valid duties and constraints when present.
Non-Standard And Real-World Behavior
This version accepts reachable, meaningful HTML policy pages as human-readable TDM policy evidence and reports them with a warning because the scanner cannot machine-validate their ODRL semantics. RDFa, Microdata, or embedded JSON-LD in HTML are reported only as non-standard evidence; they are not TDMRep-specified machine-readable policy formats.
Non-Goals And Limitations
- This check does not decide legal enforceability.
- This check does not verify crawler compliance.
- This check does not validate EPUB or PDF embedded TDM metadata.
- This check does not replace robots.txt crawl access checks.
- This check does not consume sibling check output from Content Signal, ai.txt,
RSL, Web Bot Auth, or AI bot rules.
References
Source: lib/checks/tdmrep/versions/1.0.0/docs.md
6. Version Changelog
tdmrep v1.0.0 Changelog
Initial versioned package for tdmrep.
Migrated v1.0.0 runtime ownership into the versioned package. The check now validates TDMRep well-known declarations, resource-level headers and HTML metadata, linked tdm-policy reachability, JSON/JSON-LD ODRL/TDMRep policy semantics, and human-readable HTML policy evidence.
Source: lib/checks/tdmrep/versions/1.0.0/changelog.md