Post Oak Labs · Integration Guide · 2026

Profile Conformance with dct:conformsTo

How an OpenChainGraph artifact or Graph-Index node declares which semantic profile it conforms to, the v0.3.1 way: a dereferenceable profile URI declared via dct:conformsTo (W3C Profiles Vocabulary), with the short semantic_profile token retained as a registered alias (W3C Content Negotiation by Profile). Fully additive: the execution_hash preimage is unchanged.

Section 1

Why profiles, not strings

v0.3 introduced ISO 20022 alignment via a single inline string, semantic_profile: "iso20022:pacs.008-subset". That is a useful discovery hint but not a standards-grade conformance assertion: the string is opaque, resolves to nothing, and a consumer cannot fetch a machine-readable description of what it means.

v0.3.1 follows the W3C Profiles Vocabulary (PROF) and Content Negotiation by Profile: a profile is a dct:Standard published at a persistent, dereferenceable URI, and a resource declares conformance with dct:conformsTo. The short token is kept as a registered alias: conneg-by-profile explicitly allows a token alongside the mandatory URI.

Uniform mechanism, truthful claims

Every node declares conformance the same way (dct:conformsTo) but only declares what it truthfully conforms to. ISO 20022 profiles apply only to nodes with the matching payload; a VaR engine, Basel RWA modeller, or DORA classifier carries no ISO 20022 profile. "Uniform" means a uniform mechanism, never a false conformance claim.

Section 2

The published profiles

Token (alias)Profile URIApplies to
iso20022:pacs.008-subset/profiles/iso20022/pacs008-subset.jsonldPayment/settlement payloads: amount + parties + agents. e.g. x402 settlement, VoP, ISO 20022 address.
iso20022:party-identification (new)/profiles/iso20022/party-identificationParty / issuer / legal-entity identity without a transaction (party_name + lei). Named after the ISO 20022 PartyIdentification element used in the REDA / ACMT families.

Each URI dereferences to a PROF prof:Profile document that points at its schema resource (the v0.3 ISO 20022 JSON-LD context) and a human guidance resource. The authoritative token→URI map is profiles/registry.json.

Section 3

Declaring conformance

On an emitted artifact and on a Graph-Index node, add dct:conformsTo (the authoritative URI) and keep ocg:semantic_profile (the alias):

JSON · v0.3.1 conformance▲ dct:conformsTo new; token retained
{
  "@context": [
    "https://ainumbers.co/chaingraph/context/v0.3/context.jsonld",
    "https://ainumbers.co/chaingraph/context/v0.3/iso20022-context.jsonld"
  ],
  "chaingraph_version": "0.3.1",
  "ocg:semantic_profile": "iso20022:pacs.008-subset",         // alias (retained)
  "dct:conformsTo": ["https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld"]   // authoritative
}

An agent resolving the token looks it up in profiles/registry.json; a crawler filters the Graph Index on dct:conformsTo or ocg:semantic_profile. Both work.

Section 4

Hash preimage is unchanged

The execution_hash preimage remains the sorted-key SHA-256 over {"policy_parameters": …, "output_payload": …} only, identical to v0.1/v0.2/v0.3. The @context array, ocg:semantic_profile, and dct:conformsTo are all JSON-LD framing, outside the preimage. A verifier that was correct for earlier versions computes the same hash for a v0.3.1 artifact with no code changes.

Migration acceptance

(1) Re-emit a known artifact pre/post migration → identical execution_hash. (2) Every profile URI resolves (no 404) and every registry token maps to a resolvable URI. (3) No non-payment / non-party node carries an iso20022: profile. (4) v0.1/v0.2/v0.3 artifacts without dct:conformsTo still validate.