Skip to content

What machines see

On the canonical page of any entity with a resolved disclosure, the module adds two things to the document head: a schema.org JSON-LD block and a <meta name="ai-disclosure"> tag. Both are on by default and each has its own checkbox on the Output tab.

The JSON-LD block

The block carries digitalSourceType, the schema.org property whose values echo the IPTC digital source type vocabulary. A grade stores the IPTC URI. The module translates that URI into the matching schema.org enumeration member, which is the form Google's structured data documentation asks for. Three IPTC terms have no schema.org member yet, and those come out as the IPTC URI itself.

Those URIs start with http://. The IPTC vocabulary declares its own identifiers that way, and schema.org repeats the same http:// URIs in its skos:exactMatch statements. Changing the scheme would name a different resource.

The @type is Article for nodes. A media entity gets ImageObject, VideoObject or AudioObject when the module maps its source plugin, and MediaObject when it does not. Everything else gets CreativeWork. A site that needs another type replaces the ai_disclosure.machine_readable service through a ServiceProvider; see For Developers.

The meta tag

The tag carries the grade, the verdict and the icon:

<meta name="ai-disclosure" content="ai_summarized; required=undetermined; icon=ai_generated">

required is one of required, not-required or undetermined, spelled out rather than reduced to 0 or 1. A consumer reading a zero could not tell "assessed and out of scope" from "not assessed", and that is the distinction the assessment exists to make. Where an evidently artistic work limits the manner of the disclosure, modality=unobtrusive is appended.

Sites reading the previous required=0 / required=1 form need to be told: this is a published format that changed.

Media

Media only get the marking where media entities have a canonical page of their own. Drupal ships media.settings.standalone_url disabled, which leaves /media/1 without a page to mark.

Scope

This marking is a page-level signal for crawlers and aggregators. Article 50(2) asks a provider to mark the file itself, and a JSON-LD block does not survive someone saving the image. C2PA and watermark embedding stay out of scope for 1.0.