Coherence Rule
sdgco:Rule is the class of coherence rules — a single machine-checkable expectation that a document must satisfy to honor the type it claims to be. Where a TypeDefinition once described its instances' shape only in prose, a rule turns one such expectation into something the tooling enforces: a document-spanning diagnostic that tells an author (or an AI collaborator) exactly where a document fails its type.
A Rule is authored as a @rule body construct inside a TypeDefinition and emitted into that type's canonical RDF. Its own IRI is minted <TypeIRI>#<slug> from the @rule<slug> label — the IRI is the id (namespaced, not a RULE-001 code), and it is what sdgco:hasRule links and what a suppression references.
Shape
sdgco:severity—sdgco:Error,sdgco:Warning, orsdgco:Info(an IRI enum, never a string).sdgco:description— human text; the default diagnostic message and the per-rule motivation an AI reads.sdgco:condition— an optional SPARQLASKguard; the rule is skipped unless it returnstrue.sdgco:assertion— the required SPARQLSELECT; each returned row is one violation, an empty result is a pass.
Applicability
The rules a document must satisfy are the union of sdgco:hasRule across its full type closure — every asserted rdf:type plus each of their rdfs:subClassOf ancestors — so a base type can carry universal rules every subtype inherits. Each rule evaluates against the document's own full canonical RDF (toQuads), never the shared topology graph.