# The model's ontology: kinds, relationships, bands, foundations, commitments, checks, cited works.
# Generated by scripts/build_from_ground.py from the ground it names; do not edit.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix umi: <https://umi-graph.com/ns#> .

<https://umi-graph.com/#ontology>
  a owl:Ontology ;
  rdfs:label "Marketing Intelligence Graph" ;
  rdfs:comment "A map of consumer-marketing knowledge you can walk" ;
  owl:versionInfo "2026-10-03, built from ground 41e5ae2789c5" ;
  dcterms:modified "2026-10-03" ;
  prov:wasDerivedFrom <https://umi-graph.com/#ground> .

umi:prefix
  a owl:AnnotationProperty ;
  rdfs:label "prefix" ;
  rdfs:comment "The identifier prefix a kind's rows carry." .

umi:shape
  a owl:AnnotationProperty ;
  rdfs:label "shape" ;
  rdfs:comment "Registry or Vocabulary." .

umi:evidenceClass
  a owl:AnnotationProperty ;
  rdfs:label "evidenceClass" ;
  rdfs:comment "What admits a row of the kind." .

umi:band
  a owl:AnnotationProperty ;
  rdfs:label "band" ;
  rdfs:comment "The band a kind sits in." .

umi:colour
  a owl:AnnotationProperty ;
  rdfs:label "colour" ;
  rdfs:comment "A band's colour." .

umi:claim
  a owl:AnnotationProperty ;
  rdfs:label "claim" ;
  rdfs:comment "The kind of claim a relationship makes." .

umi:relationKind
  a owl:AnnotationProperty ;
  rdfs:label "relationKind" ;
  rdfs:comment "Association, Typing, Hierarchy or Grounding." .

umi:terminal
  a owl:AnnotationProperty ;
  rdfs:label "terminal" ;
  rdfs:comment "Whether a walk stops at the relationship's target." .

umi:acyclic
  a owl:AnnotationProperty ;
  rdfs:label "acyclic" ;
  rdfs:comment "Whether the relationship is held free of cycles." .

umi:cardinality
  a owl:AnnotationProperty ;
  rdfs:label "cardinality" ;
  rdfs:comment "How many targets one source row states." .

umi:grain
  a owl:AnnotationProperty ;
  rdfs:label "grain" ;
  rdfs:comment "Whether a relationship is a fact about the kinds' rows or one only an instance carries." .

umi:exemplar
  a owl:AnnotationProperty ;
  rdfs:label "exemplar" ;
  rdfs:comment "Whether a row is the one canonical representative of its kind." .

umi:contractStatus
  a owl:AnnotationProperty ;
  rdfs:label "contractStatus" ;
  rdfs:comment "What a measure says when its source does not yet exist." .

umi:layer
  a owl:AnnotationProperty ;
  rdfs:label "layer" ;
  rdfs:comment "A foundation's layer." .

umi:asks
  a owl:AnnotationProperty ;
  rdfs:label "asks" ;
  rdfs:comment "The question a foundation asks." .

umi:here
  a owl:AnnotationProperty ;
  rdfs:label "here" ;
  rdfs:comment "This model's answer to a foundation." .

umi:answeredBy
  a owl:AnnotationProperty ;
  rdfs:label "answeredBy" ;
  rdfs:comment "The commitments that answer a foundation." .

umi:statement
  a owl:AnnotationProperty ;
  rdfs:label "statement" ;
  rdfs:comment "What a commitment holds." .

umi:why
  a owl:AnnotationProperty ;
  rdfs:label "why" ;
  rdfs:comment "What goes wrong without a commitment." .

umi:status
  a owl:AnnotationProperty ;
  rdfs:label "status" ;
  rdfs:comment "Whether a commitment is adopted, proposed or deferred." .

umi:enforcement
  a owl:AnnotationProperty ;
  rdfs:label "enforcement" ;
  rdfs:comment "Whether a build check proves a commitment." .

umi:licenses
  a owl:AnnotationProperty ;
  rdfs:label "licenses" ;
  rdfs:comment "A kind or relationship a commitment licenses." .

umi:provedBy
  a owl:AnnotationProperty ;
  rdfs:label "provedBy" ;
  rdfs:comment "The checks that prove a commitment." .

umi:runs
  a owl:AnnotationProperty ;
  rdfs:label "runs" ;
  rdfs:comment "Which integrity a check runs in." .

umi:sha256
  a owl:AnnotationProperty ;
  rdfs:label "sha256" ;
  rdfs:comment "The digest of the ground the graph is a function of." .

umi:Commitment
  a owl:Class ;
  rdfs:label "Commitment" ;
  rdfs:comment "An ontological commitment: what must hold for the shapes to mean anything." .

umi:Check
  a owl:Class ;
  rdfs:label "Check" ;
  rdfs:comment "A check the build runs on every build." .

umi:Question
  a owl:Class ;
  rdfs:label "Question" ;
  rdfs:comment "A question the graph is declared to answer." .

umi:Pattern
  a owl:Class ;
  rdfs:label "Pattern" ;
  rdfs:comment "A shape over the model: roles bound to kinds, held together by declared relationships." .

umi:View
  a owl:Class ;
  rdfs:label "View" ;
  rdfs:comment "A pattern applied: declared patterns bound from one kind, drawn as a table or from a row." .

umi:Deliverable
  a owl:Class ;
  rdfs:label "Deliverable" ;
  rdfs:comment "What the model hands over: a named bundle of views with an address of its own." .

umi:composes
  a owl:ObjectProperty ;
  rdfs:label "composes" ;
  rdfs:comment "A view composes patterns; a deliverable composes views." .

umi:touches
  a owl:ObjectProperty ;
  rdfs:label "touches" ;
  rdfs:comment "A pattern, a view or a deliverable touches the kinds its roles name." .

<https://umi-graph.com/bands/identity-and-scope/>
  a skos:OrderedCollection ;
  skos:prefLabel "Identity & scope" ;
  umi:colour "#566372" ;
  skos:memberList ( <https://umi-graph.com/entities/#set> <https://umi-graph.com/time-windows/#set> <https://umi-graph.com/geographies/#set> <https://umi-graph.com/identity-levels/#set> <https://umi-graph.com/external-terms/#set> ) .

<https://umi-graph.com/bands/consumer-journey/>
  a skos:OrderedCollection ;
  skos:prefLabel "Consumer journey" ;
  umi:colour "#3d4c8f" ;
  skos:memberList ( <https://umi-graph.com/journeys/#set> <https://umi-graph.com/lifecycle-stages/#set> <https://umi-graph.com/consumer-states/#set> <https://umi-graph.com/journey-states/#set> <https://umi-graph.com/journey-transitions/#set> ) .

<https://umi-graph.com/bands/creative-system/>
  a skos:OrderedCollection ;
  skos:prefLabel "Creative system" ;
  umi:colour "#55701c" ;
  skos:memberList ( <https://umi-graph.com/content-types/#set> <https://umi-graph.com/creative-formats/#set> <https://umi-graph.com/creative-assets/#set> <https://umi-graph.com/creative-size-specifications/#set> ) .

<https://umi-graph.com/bands/distribution/>
  a skos:OrderedCollection ;
  skos:prefLabel "Distribution" ;
  umi:colour "#1c6a98" ;
  skos:memberList ( <https://umi-graph.com/channel/#set> <https://umi-graph.com/surface/#set> <https://umi-graph.com/technology-platforms/#set> <https://umi-graph.com/vendor/#set> ) .

<https://umi-graph.com/bands/eligibility-and-permission/>
  a skos:OrderedCollection ;
  skos:prefLabel "Eligibility & permission" ;
  umi:colour "#b0393f" ;
  skos:memberList ( <https://umi-graph.com/audience-segments/#set> <https://umi-graph.com/preference-types/#set> <https://umi-graph.com/preferences/#set> <https://umi-graph.com/lawful-bases/#set> <https://umi-graph.com/processing-purposes/#set> <https://umi-graph.com/permission-bases/#set> ) .

<https://umi-graph.com/bands/activation/>
  a skos:OrderedCollection ;
  skos:prefLabel "Activation" ;
  umi:colour "#6f3fb0" ;
  skos:memberList ( <https://umi-graph.com/campaign-purpose/#set> <https://umi-graph.com/campaign/#set> <https://umi-graph.com/tactics/#set> <https://umi-graph.com/actions/#set> <https://umi-graph.com/offers/#set> ) .

<https://umi-graph.com/bands/measurement-and-evidence/>
  a skos:OrderedCollection ;
  skos:prefLabel "Measurement & evidence" ;
  umi:colour "#9c5a12" ;
  skos:memberList ( <https://umi-graph.com/events/#set> <https://umi-graph.com/signals/#set> <https://umi-graph.com/intelligence/#set> <https://umi-graph.com/attribution-models/#set> <https://umi-graph.com/evidence-designs/#set> <https://umi-graph.com/parameters/#set> <https://umi-graph.com/setting-bases/#set> <https://umi-graph.com/event-grain/#set> <https://umi-graph.com/measure-direction/#set> <https://umi-graph.com/measure-form/#set> <https://umi-graph.com/units/#set> <https://umi-graph.com/metrics/#set> <https://umi-graph.com/goals/#set> <https://umi-graph.com/kpis/#set> <https://umi-graph.com/targets/#set> <https://umi-graph.com/metric-formulas/#set> ) .

<https://umi-graph.com/entities/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Entities" ;
  skos:definition "An entity is a kind of thing in the world that everything else is ultimately about: a consumer, a campaign, an asset, an event, a place, a measure." ;
  umi:prefix "ENT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/identity-and-scope/> .

<https://umi-graph.com/time-windows/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Time Windows" ;
  skos:definition "A time window is an interval with an explicit boundary, a time basis and a stated use. It scopes validity or evaluation; it is not an open-ended calendar label." ;
  umi:prefix "TMW" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/identity-and-scope/> .

<https://umi-graph.com/geographies/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Geographies" ;
  skos:definition "A geography is a market or place carrying a durable geographic reference. It scopes eligibility or delivery; it is not a free-text location." ;
  umi:prefix "GEO" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/identity-and-scope/> .

<https://umi-graph.com/identity-levels/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Identity Levels" ;
  skos:definition "An identity level is how far an instrument resolves the person behind what it observes: whether it cannot tell one person from another, can tell them apart without knowing who they are, or knows who they are. It is the instrument's, never the event's; the same visit is anonymous to one instrument and pseudonymous to another." ;
  umi:prefix "IDL" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/identity-and-scope/> .

<https://umi-graph.com/journeys/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Journeys" ;
  skos:definition "A journey is a named path of states a person moves through in their relationship with the brand." ;
  umi:prefix "JRN" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/consumer-journey/> .

<https://umi-graph.com/lifecycle-stages/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Lifecycle Stages" ;
  skos:definition "A lifecycle stage is one position on the ordered ladder a consumer moves along from first contact to advocacy. A stage is reached by holding a state that sits in it, and is the coarse frame those finer states are read against." ;
  umi:prefix "LCS" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/consumer-journey/> .

<https://umi-graph.com/consumer-states/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Consumer States" ;
  skos:definition "A consumer state is a state a consumer can be in with respect to the brand, independent of any single journey." ;
  umi:prefix "CST" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/consumer-journey/> .

<https://umi-graph.com/journey-states/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Journey States" ;
  skos:definition "A journey state is one state a consumer can occupy inside one journey." ;
  umi:prefix "JST" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/consumer-journey/> .

<https://umi-graph.com/journey-transitions/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Journey Transitions" ;
  skos:definition "A journey transition is one legal move between two states of a journey, and what triggers it." ;
  umi:prefix "JTR" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/consumer-journey/> .

<https://umi-graph.com/content-types/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Content Types" ;
  skos:definition "A content type is a content template: a base type of page, asset or message, delivered in a place." ;
  umi:prefix "CT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/creative-system/> .

<https://umi-graph.com/creative-formats/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Creative Formats" ;
  skos:definition "A creative format is the base shape of a creative asset, independent of channel." ;
  umi:prefix "FMT" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/creative-system/> .

<https://umi-graph.com/creative-assets/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Creative Assets" ;
  skos:definition "A creative asset is one finished creative that exists at an address in a source system — a file, a module, or a rendition that source distinguishes. What it is made from, what it looks like and where it fits are all described separately." ;
  umi:prefix "CRA" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/creative-system/> .

<https://umi-graph.com/creative-size-specifications/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Creative Size Specifications" ;
  skos:definition "A size specification is a delivery geometry: the aspect ratio and size range a surface will accept." ;
  umi:prefix "SIZ" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/creative-system/> .

<https://umi-graph.com/channel/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Channel" ;
  skos:definition "A channel is the manner in which a consumer arrived, named once so that every system reporting on it means the same thing." ;
  umi:prefix "CHN" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/distribution/> .

<https://umi-graph.com/surface/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Surface" ;
  skos:definition "A surface is a place an experience is delivered: where a consumer meets the brand and who has custody of it." ;
  umi:prefix "SRF" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/distribution/> .

<https://umi-graph.com/technology-platforms/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Technology Platforms" ;
  skos:definition "A platform is a system in the marketing stack: what job it does and which signals it carries." ;
  umi:prefix "PLT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "world_record" ;
  umi:band <https://umi-graph.com/bands/distribution/> .

<https://umi-graph.com/vendor/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Vendor" ;
  skos:definition "A vendor is a company the marketing operation buys media, data or services from." ;
  umi:prefix "VND" ;
  umi:shape "Registry" ;
  umi:evidenceClass "world_record" ;
  umi:band <https://umi-graph.com/bands/distribution/> .

<https://umi-graph.com/audience-segments/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Audience Segments" ;
  skos:definition "An audience segment is an addressable eligibility segment with a durable identity in the system that builds it. It is not a Consumer State, a persona label, or proof that anyone may be contacted." ;
  umi:prefix "AUD" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/eligibility-and-permission/> .

<https://umi-graph.com/preference-types/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Preference Types" ;
  skos:definition "A preference type is a kind of choice a person can state about how they are contacted. It names what a choice is about; the choice itself, and the person who made it, are records. A stated choice is not a lawful ground, and honouring one is not the same as being permitted." ;
  umi:prefix "PRT" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/eligibility-and-permission/> .

<https://umi-graph.com/preferences/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Preferences" ;
  skos:definition "A preference is a choice a consumer has stated about how they are contacted, which an activation must honour. It is not consent, and not any other permission basis." ;
  umi:prefix "PRF" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/eligibility-and-permission/> .

<https://umi-graph.com/lawful-bases/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Lawful Bases" ;
  skos:definition "A lawful basis is a ground in law on which a person's data may be processed for a stated purpose. It is the condition that makes processing permitted at all. It is not a choice the person made about being contacted, and holding one says nothing about how they wish to hear from anyone." ;
  umi:prefix "LWB" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/eligibility-and-permission/> .

<https://umi-graph.com/processing-purposes/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Processing Purposes" ;
  skos:definition "A processing purpose is a stated reason a person's data is processed. A lawful ground is always a ground for a purpose, so the same person, the same data and the same ground do not carry from one purpose to another. It is not a campaign's objective." ;
  umi:prefix "PRP" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/eligibility-and-permission/> .

<https://umi-graph.com/permission-bases/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Permission Bases" ;
  skos:definition "A permission basis is a permission or other lawful basis for a stated purpose in a stated jurisdiction. It is not a consumer preference, and it is not the receipt recording one person's consent." ;
  umi:prefix "PMB" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/eligibility-and-permission/> .

<https://umi-graph.com/campaign-purpose/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Campaign Purpose" ;
  skos:definition "A campaign purpose is the primary intended change a campaign exists to create. It classifies a campaign; it is not a hierarchy level or an execution record." ;
  umi:prefix "CMP" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/activation/> .

<https://umi-graph.com/campaign/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Campaign" ;
  skos:definition "A campaign is a time-bounded, accountable marketing initiative: one purpose, one scope, and one set of outcomes it answers for. A Campaign may name a parent Campaign for roll-up, which is why no second hierarchy is needed." ;
  umi:prefix "CAM" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/activation/> .

<https://umi-graph.com/tactics/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Tactics" ;
  skos:definition "A tactic is an executable approach within a Campaign — the level at which channel, creative and delivery are actually chosen, and at which performance is read." ;
  umi:prefix "TAC" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/activation/> .

<https://umi-graph.com/actions/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Actions" ;
  skos:definition "An action is an executable delivery or interaction step within a Tactic. An Action triggers recorded Events; it does not by itself prove a consumer outcome or causal effect." ;
  umi:prefix "ACT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/activation/> .

<https://umi-graph.com/offers/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Offers" ;
  skos:definition "An offer is a value exchange presented to a consumer, with terms, eligibility and a validity window. It is not a campaign, a tactic, a creative asset, or the message that carries it." ;
  umi:prefix "OFF" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/activation/> .

<https://umi-graph.com/events/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Events" ;
  skos:definition "An event is a kind of thing that happens, at one grain: the business process a fact is built around." ;
  umi:prefix "EVT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/signals/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Signals" ;
  skos:definition "A signal is one instrument configured to watch something: a tag, a tracked property, a platform conversion, a report setting." ;
  umi:prefix "SIG" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/intelligence/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Intelligence" ;
  skos:definition "A question area is a family of questions the measurement chain exists to answer. It stands between a goal and the metrics that serve it." ;
  umi:prefix "INT" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/attribution-models/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Attribution Models" ;
  skos:definition "An attribution model is a rule for dividing credit for an outcome across the exposures that came before it. It governs how credit is shared, not whether the outcome happened, so the same outcome measured under two rules gives two different numbers and neither of them is wrong." ;
  umi:prefix "ATM" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/evidence-designs/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Evidence Designs" ;
  skos:definition "An evidence design is the way a reading's cause is established: by assigning who or where receives the activity and comparing, by modelling an outcome over time against the activity, or by dividing observed credit among the exposures that preceded an outcome. A reading names the design it is read by, and the attribution rules are one design among five." ;
  umi:prefix "EVD" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/parameters/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Parameters" ;
  skos:definition "A parameter is a value a plan has to fix before a reading, a rule, an instrument or a move can be computed: a window, a threshold, a share or a cap, named once so every system that applies it applies the same one. The parameter is the slot and is governed here; the number in it belongs to the business and is a record, set over a window on a stated basis. Each parameter says what it is a parameter of, a metric, an attribution model, an evidence design, an instrument or a processing purpose, or which tactic it constrains." ;
  umi:prefix "PRM" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/setting-bases/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Setting Bases" ;
  skos:definition "A setting basis is where the value in a parameter came from: a public standard that fixes it, a benchmark that supplies it, an experiment that established it, or a decision that chose it. A setting names its basis so a reader knows how far to trust the number and what would change it." ;
  umi:prefix "STB" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/event-grain/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Event Grain" ;
  skos:definition "An event grain is the grain an event is recorded at: what one occurrence of the event is one of. It fixes whether the fact can be resolved to a single person, and if it cannot, what stands in the way, because a count of events is a count of people only when each event is one person's." ;
  umi:prefix "EGR" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/measure-direction/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Measure Direction" ;
  skos:definition "A measure direction is which way a reading has to move to be a better result. It says nothing about what the reading measures or how it is built, only which direction counts as improvement, because a number rising is not news until someone says whether rising is the point." ;
  umi:prefix "MDR" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/measure-form/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Measure Form" ;
  skos:definition "A measure form is the arithmetic form a reading takes: what kind of number it is before anyone asks what it is about. It governs how two readings may be compared and what a change in one of them can mean, because a count and a share that move by the same amount have not moved by the same amount." ;
  umi:prefix "MFM" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/units/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Units" ;
  skos:definition "A unit is what a reading is expressed in: what the number is a number of. A count, a percent and a currency amount that print the same figure have said different things, so the unit is part of the calculation rather than a presentation choice. Each unit declares which arithmetic forms it fits, which is what lets a check refuse a rate measured in a count." ;
  umi:prefix "UNT" ;
  umi:shape "Vocabulary" ;
  umi:evidenceClass "governed_term" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/metrics/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Metrics" ;
  skos:definition "A metric is a performance calculation: what is counted or divided, and at what grain. It names its Signal or Metric inputs directly, or points to one versioned Formula that names them; it is never the evidence itself." ;
  umi:prefix "MTR" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/goals/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Goals" ;
  skos:definition "A goal is a durable outcome the marketing effort exists to advance. It is served by KPIs rather than measured directly." ;
  umi:prefix "GOL" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/kpis/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "KPIs" ;
  skos:definition "A KPI is a performance indicator chosen because it tells whether a Goal is advancing, and measured by one or more Metrics. A number nobody would act on is not one." ;
  umi:prefix "KPI" ;
  umi:shape "Registry" ;
  umi:evidenceClass "design_construct" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/targets/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Targets" ;
  skos:definition "A target is a level a reading is committed to reach within a window: a quantified, time-boxed commitment on one KPI, made in service of one goal and pursued by the initiative that is judged against it. It is neither the goal, which is the outcome wanted, nor the KPI, which is how the outcome is read; it is the promise that joins them. Its direction and unit are not restated here: they are the KPI's direction and the Metric's unit." ;
  umi:prefix "TGT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/metric-formulas/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "Metric Formulas" ;
  skos:definition "A metric formula is a versioned calculation method for a Metric, naming its inputs, grain, evaluation rules and validity. It is not the Metric it computes, and not the evidence either." ;
  umi:prefix "FRM" ;
  umi:shape "Registry" ;
  umi:evidenceClass "source_backed" ;
  umi:band <https://umi-graph.com/bands/measurement-and-evidence/> .

<https://umi-graph.com/external-terms/#set>
  a owl:Class, skos:ConceptScheme ;
  rdfs:label "External Terms" ;
  skos:definition "An external term is a term in a published vocabulary governed by someone else, named by the identifier that vocabulary gives it: what a locally governed term can be said to correspond to, so a comparison is possible without either vocabulary taking the other over." ;
  umi:prefix "EXT" ;
  umi:shape "Registry" ;
  umi:evidenceClass "world_record" ;
  umi:band <https://umi-graph.com/bands/identity-and-scope/> .

<https://umi-graph.com/relationships/#journeys-begins-at>
  a owl:ObjectProperty ;
  rdfs:label "begins at" ;
  rdfs:domain <https://umi-graph.com/journeys/#set> ;
  rdfs:range <https://umi-graph.com/journey-states/#set> ;
  umi:relationKind "Hierarchy" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journeys-begins-at-inverse>
  a owl:ObjectProperty ;
  rdfs:label "opens" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journeys-begins-at> .

<https://umi-graph.com/relationships/#journeys-times-out-after>
  a owl:ObjectProperty ;
  rdfs:label "times out after" ;
  rdfs:domain <https://umi-graph.com/journeys/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journeys-times-out-after-inverse>
  a owl:ObjectProperty ;
  rdfs:label "bounds inactivity in" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journeys-times-out-after> .

<https://umi-graph.com/relationships/#lifecycle-stages-precedes>
  a owl:ObjectProperty, owl:IrreflexiveProperty ;
  rdfs:label "precedes" ;
  rdfs:domain <https://umi-graph.com/lifecycle-stages/#set> ;
  rdfs:range <https://umi-graph.com/lifecycle-stages/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic true .

<https://umi-graph.com/relationships/#lifecycle-stages-precedes-inverse>
  a owl:ObjectProperty ;
  rdfs:label "follows" ;
  owl:inverseOf <https://umi-graph.com/relationships/#lifecycle-stages-precedes> .

<https://umi-graph.com/relationships/#consumer-states-sits-in-stage>
  a owl:ObjectProperty ;
  rdfs:label "sits in stage" ;
  rdfs:domain <https://umi-graph.com/consumer-states/#set> ;
  rdfs:range <https://umi-graph.com/lifecycle-stages/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#consumer-states-sits-in-stage-inverse>
  a owl:ObjectProperty ;
  rdfs:label "holds state" ;
  owl:inverseOf <https://umi-graph.com/relationships/#consumer-states-sits-in-stage> .

<https://umi-graph.com/relationships/#journey-states-belongs-to-journey>
  a owl:ObjectProperty ;
  rdfs:label "belongs to journey" ;
  rdfs:domain <https://umi-graph.com/journey-states/#set> ;
  rdfs:range <https://umi-graph.com/journeys/#set> ;
  umi:relationKind "Hierarchy" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-states-belongs-to-journey-inverse>
  a owl:ObjectProperty ;
  rdfs:label "has state" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-states-belongs-to-journey> .

<https://umi-graph.com/relationships/#journey-states-realizes-consumer-state>
  a owl:ObjectProperty ;
  rdfs:label "realizes consumer state" ;
  rdfs:domain <https://umi-graph.com/journey-states/#set> ;
  rdfs:range <https://umi-graph.com/consumer-states/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-states-realizes-consumer-state-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is realized by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-states-realizes-consumer-state> .

<https://umi-graph.com/relationships/#journey-transitions-belongs-to-journey>
  a owl:ObjectProperty ;
  rdfs:label "belongs to journey" ;
  rdfs:domain <https://umi-graph.com/journey-transitions/#set> ;
  rdfs:range <https://umi-graph.com/journeys/#set> ;
  umi:relationKind "Hierarchy" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-transitions-belongs-to-journey-inverse>
  a owl:ObjectProperty ;
  rdfs:label "has transition" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-transitions-belongs-to-journey> .

<https://umi-graph.com/relationships/#journey-transitions-from-state>
  a owl:ObjectProperty ;
  rdfs:label "from state" ;
  rdfs:domain <https://umi-graph.com/journey-transitions/#set> ;
  rdfs:range <https://umi-graph.com/journey-states/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-transitions-from-state-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is left by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-transitions-from-state> .

<https://umi-graph.com/relationships/#journey-transitions-to-state>
  a owl:ObjectProperty ;
  rdfs:label "to state" ;
  rdfs:domain <https://umi-graph.com/journey-transitions/#set> ;
  rdfs:range <https://umi-graph.com/journey-states/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-transitions-to-state-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is reached by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-transitions-to-state> .

<https://umi-graph.com/relationships/#journey-transitions-triggered-by>
  a owl:ObjectProperty ;
  rdfs:label "triggered by" ;
  rdfs:domain <https://umi-graph.com/journey-transitions/#set> ;
  rdfs:range <https://umi-graph.com/events/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-transitions-triggered-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "triggers transition" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-transitions-triggered-by> .

<https://umi-graph.com/relationships/#content-types-delivered-on>
  a owl:ObjectProperty ;
  rdfs:label "delivered on" ;
  rdfs:domain <https://umi-graph.com/content-types/#set> ;
  rdfs:range <https://umi-graph.com/surface/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#content-types-delivered-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "carries content type" ;
  owl:inverseOf <https://umi-graph.com/relationships/#content-types-delivered-on> .

<https://umi-graph.com/relationships/#content-types-may-be-expressed-as>
  a owl:ObjectProperty ;
  rdfs:label "may be expressed as" ;
  rdfs:domain <https://umi-graph.com/content-types/#set> ;
  rdfs:range <https://umi-graph.com/creative-formats/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#content-types-may-be-expressed-as-inverse>
  a owl:ObjectProperty ;
  rdfs:label "may express" ;
  owl:inverseOf <https://umi-graph.com/relationships/#content-types-may-be-expressed-as> .

<https://umi-graph.com/relationships/#creative-formats-delivered-on>
  a owl:ObjectProperty ;
  rdfs:label "delivered on" ;
  rdfs:domain <https://umi-graph.com/creative-formats/#set> ;
  rdfs:range <https://umi-graph.com/surface/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-formats-delivered-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "carries format" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-formats-delivered-on> .

<https://umi-graph.com/relationships/#creative-assets-is-templated-by>
  a owl:ObjectProperty ;
  rdfs:label "is templated by" ;
  rdfs:domain <https://umi-graph.com/creative-assets/#set> ;
  rdfs:range <https://umi-graph.com/content-types/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-assets-is-templated-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "templates" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-assets-is-templated-by> .

<https://umi-graph.com/relationships/#creative-assets-renders-as>
  a owl:ObjectProperty ;
  rdfs:label "renders as" ;
  rdfs:domain <https://umi-graph.com/creative-assets/#set> ;
  rdfs:range <https://umi-graph.com/creative-formats/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-assets-renders-as-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is rendered by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-assets-renders-as> .

<https://umi-graph.com/relationships/#creative-assets-is-delivered-in-geometry>
  a owl:ObjectProperty ;
  rdfs:label "is delivered in geometry" ;
  rdfs:domain <https://umi-graph.com/creative-assets/#set> ;
  rdfs:range <https://umi-graph.com/creative-size-specifications/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-assets-is-delivered-in-geometry-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the geometry of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-assets-is-delivered-in-geometry> .

<https://umi-graph.com/relationships/#creative-size-specifications-is-supported-on>
  a owl:ObjectProperty ;
  rdfs:label "is supported on" ;
  rdfs:domain <https://umi-graph.com/creative-size-specifications/#set> ;
  rdfs:range <https://umi-graph.com/surface/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-size-specifications-is-supported-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "supports geometry" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-size-specifications-is-supported-on> .

<https://umi-graph.com/relationships/#channel-includes-surface>
  a owl:ObjectProperty ;
  rdfs:label "includes surface" ;
  rdfs:domain <https://umi-graph.com/channel/#set> ;
  rdfs:range <https://umi-graph.com/surface/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#channel-includes-surface-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is included in channel" ;
  owl:inverseOf <https://umi-graph.com/relationships/#channel-includes-surface> .

<https://umi-graph.com/relationships/#surface-runs-on>
  a owl:ObjectProperty ;
  rdfs:label "runs on" ;
  rdfs:domain <https://umi-graph.com/surface/#set> ;
  rdfs:range <https://umi-graph.com/technology-platforms/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#surface-runs-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "runs surface" ;
  owl:inverseOf <https://umi-graph.com/relationships/#surface-runs-on> .

<https://umi-graph.com/relationships/#surface-provided-by>
  a owl:ObjectProperty ;
  rdfs:label "provided by" ;
  rdfs:domain <https://umi-graph.com/surface/#set> ;
  rdfs:range <https://umi-graph.com/vendor/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#surface-provided-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "provides surface" ;
  owl:inverseOf <https://umi-graph.com/relationships/#surface-provided-by> .

<https://umi-graph.com/relationships/#technology-platforms-supplied-by>
  a owl:ObjectProperty ;
  rdfs:label "supplied by" ;
  rdfs:domain <https://umi-graph.com/technology-platforms/#set> ;
  rdfs:range <https://umi-graph.com/vendor/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#technology-platforms-supplied-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "supplies" ;
  owl:inverseOf <https://umi-graph.com/relationships/#technology-platforms-supplied-by> .

<https://umi-graph.com/relationships/#vendor-delivers-in>
  a owl:ObjectProperty ;
  rdfs:label "delivers in" ;
  rdfs:domain <https://umi-graph.com/vendor/#set> ;
  rdfs:range <https://umi-graph.com/channel/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#vendor-delivers-in-inverse>
  a owl:ObjectProperty ;
  rdfs:label "has inventory from" ;
  owl:inverseOf <https://umi-graph.com/relationships/#vendor-delivers-in> .

<https://umi-graph.com/relationships/#preferences-is-of-type>
  a owl:ObjectProperty ;
  rdfs:label "is of type" ;
  rdfs:domain <https://umi-graph.com/preferences/#set> ;
  rdfs:range <https://umi-graph.com/preference-types/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#preferences-is-of-type-inverse>
  a owl:ObjectProperty ;
  rdfs:label "types preference" ;
  owl:inverseOf <https://umi-graph.com/relationships/#preferences-is-of-type> .

<https://umi-graph.com/relationships/#processing-purposes-typically-rests-on>
  a owl:ObjectProperty ;
  rdfs:label "typically rests on" ;
  rdfs:domain <https://umi-graph.com/processing-purposes/#set> ;
  rdfs:range <https://umi-graph.com/lawful-bases/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#processing-purposes-typically-rests-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "typically grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#processing-purposes-typically-rests-on> .

<https://umi-graph.com/relationships/#permission-bases-rests-on>
  a owl:ObjectProperty ;
  rdfs:label "rests on" ;
  rdfs:domain <https://umi-graph.com/permission-bases/#set> ;
  rdfs:range <https://umi-graph.com/lawful-bases/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#permission-bases-rests-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is ground for" ;
  owl:inverseOf <https://umi-graph.com/relationships/#permission-bases-rests-on> .

<https://umi-graph.com/relationships/#permission-bases-permits-purpose>
  a owl:ObjectProperty ;
  rdfs:label "permits purpose" ;
  rdfs:domain <https://umi-graph.com/permission-bases/#set> ;
  rdfs:range <https://umi-graph.com/processing-purposes/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#permission-bases-permits-purpose-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is permitted by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#permission-bases-permits-purpose> .

<https://umi-graph.com/relationships/#campaign-parent-campaign>
  a owl:ObjectProperty, owl:IrreflexiveProperty ;
  rdfs:label "parent campaign" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/campaign/#set> ;
  umi:relationKind "Hierarchy" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..1" ;
  umi:terminal true ;
  umi:acyclic true .

<https://umi-graph.com/relationships/#campaign-parent-campaign-inverse>
  a owl:ObjectProperty ;
  rdfs:label "has child campaign" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-parent-campaign> .

<https://umi-graph.com/relationships/#campaign-measured-by>
  a owl:ObjectProperty ;
  rdfs:label "measured by" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/kpis/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-measured-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "measures" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-measured-by> .

<https://umi-graph.com/relationships/#campaign-has-purpose>
  a owl:ObjectProperty ;
  rdfs:label "has purpose" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/campaign-purpose/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-has-purpose-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is purpose of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-has-purpose> .

<https://umi-graph.com/relationships/#campaign-targets-state>
  a owl:ObjectProperty ;
  rdfs:label "targets state" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/consumer-states/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-targets-state-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is addressed by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-targets-state> .

<https://umi-graph.com/relationships/#campaign-contains-tactic>
  a owl:ObjectProperty ;
  rdfs:label "contains tactic" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/tactics/#set> ;
  umi:relationKind "Hierarchy" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-contains-tactic-inverse>
  a owl:ObjectProperty ;
  rdfs:label "belongs to campaign" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-contains-tactic> .

<https://umi-graph.com/relationships/#campaign-supports-goal>
  a owl:ObjectProperty ;
  rdfs:label "supports goal" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/goals/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-supports-goal-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is supported by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-supports-goal> .

<https://umi-graph.com/relationships/#campaign-valid-during>
  a owl:ObjectProperty ;
  rdfs:label "valid during" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-valid-during-inverse>
  a owl:ObjectProperty ;
  rdfs:label "bounds campaign" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-valid-during> .

<https://umi-graph.com/relationships/#campaign-scoped-to-geography>
  a owl:ObjectProperty ;
  rdfs:label "scoped to geography" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/geographies/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-scoped-to-geography-inverse>
  a owl:ObjectProperty ;
  rdfs:label "scopes campaign" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-scoped-to-geography> .

<https://umi-graph.com/relationships/#campaign-targets-audience>
  a owl:ObjectProperty ;
  rdfs:label "targets audience" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/audience-segments/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-targets-audience-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is targeted by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-targets-audience> .

<https://umi-graph.com/relationships/#campaign-respects-preference>
  a owl:ObjectProperty ;
  rdfs:label "respects preference" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/preferences/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-respects-preference-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is respected by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-respects-preference> .

<https://umi-graph.com/relationships/#campaign-requires-permission-basis>
  a owl:ObjectProperty ;
  rdfs:label "requires permission basis" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/permission-bases/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-requires-permission-basis-inverse>
  a owl:ObjectProperty ;
  rdfs:label "permits" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-requires-permission-basis> .

<https://umi-graph.com/relationships/#campaign-sets-offer>
  a owl:ObjectProperty ;
  rdfs:label "sets offer" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/offers/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-sets-offer-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is set by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-sets-offer> .

<https://umi-graph.com/relationships/#campaign-pursues-target>
  a owl:ObjectProperty ;
  rdfs:label "pursues target" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/targets/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-pursues-target-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is pursued by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-pursues-target> .

<https://umi-graph.com/relationships/#tactics-uses-channel>
  a owl:ObjectProperty ;
  rdfs:label "uses channel" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/channel/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-uses-channel-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is used by tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-uses-channel> .

<https://umi-graph.com/relationships/#tactics-uses-surface>
  a owl:ObjectProperty ;
  rdfs:label "uses surface" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/surface/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-uses-surface-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is used by tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-uses-surface> .

<https://umi-graph.com/relationships/#tactics-uses-content-type>
  a owl:ObjectProperty ;
  rdfs:label "uses content type" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/content-types/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-uses-content-type-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is used by tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-uses-content-type> .

<https://umi-graph.com/relationships/#tactics-valid-during>
  a owl:ObjectProperty ;
  rdfs:label "valid during" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-valid-during-inverse>
  a owl:ObjectProperty ;
  rdfs:label "bounds tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-valid-during> .

<https://umi-graph.com/relationships/#tactics-scoped-to-geography>
  a owl:ObjectProperty ;
  rdfs:label "scoped to geography" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/geographies/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-scoped-to-geography-inverse>
  a owl:ObjectProperty ;
  rdfs:label "scopes tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-scoped-to-geography> .

<https://umi-graph.com/relationships/#tactics-targets-audience>
  a owl:ObjectProperty ;
  rdfs:label "targets audience" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/audience-segments/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-targets-audience-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is targeted by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-targets-audience> .

<https://umi-graph.com/relationships/#tactics-respects-preference>
  a owl:ObjectProperty ;
  rdfs:label "respects preference" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/preferences/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-respects-preference-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is respected by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-respects-preference> .

<https://umi-graph.com/relationships/#tactics-requires-permission-basis>
  a owl:ObjectProperty ;
  rdfs:label "requires permission basis" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/permission-bases/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-requires-permission-basis-inverse>
  a owl:ObjectProperty ;
  rdfs:label "permits" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-requires-permission-basis> .

<https://umi-graph.com/relationships/#tactics-contains-action>
  a owl:ObjectProperty ;
  rdfs:label "contains action" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/actions/#set> ;
  umi:relationKind "Hierarchy" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-contains-action-inverse>
  a owl:ObjectProperty ;
  rdfs:label "belongs to tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-contains-action> .

<https://umi-graph.com/relationships/#tactics-uses-creative-asset>
  a owl:ObjectProperty ;
  rdfs:label "uses creative asset" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/creative-assets/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-uses-creative-asset-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is used by tactic" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-uses-creative-asset> .

<https://umi-graph.com/relationships/#actions-triggers-event>
  a owl:ObjectProperty ;
  rdfs:label "triggers event" ;
  rdfs:domain <https://umi-graph.com/actions/#set> ;
  rdfs:range <https://umi-graph.com/events/#set> ;
  umi:relationKind "Association" ;
  umi:claim "causal" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#actions-triggers-event-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is triggered by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#actions-triggers-event> .

<https://umi-graph.com/relationships/#actions-requires-offer>
  a owl:ObjectProperty ;
  rdfs:label "requires offer" ;
  rdfs:domain <https://umi-graph.com/actions/#set> ;
  rdfs:range <https://umi-graph.com/offers/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#actions-requires-offer-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is required by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#actions-requires-offer> .

<https://umi-graph.com/relationships/#actions-valid-during>
  a owl:ObjectProperty ;
  rdfs:label "valid during" ;
  rdfs:domain <https://umi-graph.com/actions/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#actions-valid-during-inverse>
  a owl:ObjectProperty ;
  rdfs:label "bounds action" ;
  owl:inverseOf <https://umi-graph.com/relationships/#actions-valid-during> .

<https://umi-graph.com/relationships/#offers-valid-during>
  a owl:ObjectProperty ;
  rdfs:label "valid during" ;
  rdfs:domain <https://umi-graph.com/offers/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#offers-valid-during-inverse>
  a owl:ObjectProperty ;
  rdfs:label "bounds offer" ;
  owl:inverseOf <https://umi-graph.com/relationships/#offers-valid-during> .

<https://umi-graph.com/relationships/#offers-eligible-in-geography>
  a owl:ObjectProperty ;
  rdfs:label "eligible in geography" ;
  rdfs:domain <https://umi-graph.com/offers/#set> ;
  rdfs:range <https://umi-graph.com/geographies/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#offers-eligible-in-geography-inverse>
  a owl:ObjectProperty ;
  rdfs:label "admits offer" ;
  owl:inverseOf <https://umi-graph.com/relationships/#offers-eligible-in-geography> .

<https://umi-graph.com/relationships/#events-captured-on>
  a owl:ObjectProperty ;
  rdfs:label "captured on" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/surface/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-captured-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "captures event" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-captured-on> .

<https://umi-graph.com/relationships/#events-attributed-to-tactic>
  a owl:ObjectProperty ;
  rdfs:label "attributed to tactic" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/tactics/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "record" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-attributed-to-tactic-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is credited with event" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-attributed-to-tactic> .

<https://umi-graph.com/relationships/#events-acted-by-consumer>
  a owl:ObjectProperty ;
  rdfs:label "acted by consumer" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-acted-by-consumer-inverse>
  a owl:ObjectProperty ;
  rdfs:label "acts in event" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-acted-by-consumer> .

<https://umi-graph.com/relationships/#events-at-grain>
  a owl:ObjectProperty ;
  rdfs:label "at grain" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/event-grain/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-at-grain-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the grain of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-at-grain> .

<https://umi-graph.com/relationships/#events-changes-permission>
  a owl:ObjectProperty ;
  rdfs:label "changes permission" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/permission-bases/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-changes-permission-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is changed by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-changes-permission> .

<https://umi-graph.com/relationships/#signals-observes-event>
  a owl:ObjectProperty ;
  rdfs:label "observes event" ;
  rdfs:domain <https://umi-graph.com/signals/#set> ;
  rdfs:range <https://umi-graph.com/events/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#signals-observes-event-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is observed by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#signals-observes-event> .

<https://umi-graph.com/relationships/#signals-implemented-in-platform>
  a owl:ObjectProperty ;
  rdfs:label "implemented in platform" ;
  rdfs:domain <https://umi-graph.com/signals/#set> ;
  rdfs:range <https://umi-graph.com/technology-platforms/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#signals-implemented-in-platform-inverse>
  a owl:ObjectProperty ;
  rdfs:label "implements" ;
  owl:inverseOf <https://umi-graph.com/relationships/#signals-implemented-in-platform> .

<https://umi-graph.com/relationships/#signals-informs-intelligence>
  a owl:ObjectProperty ;
  rdfs:label "informs intelligence" ;
  rdfs:domain <https://umi-graph.com/signals/#set> ;
  rdfs:range <https://umi-graph.com/intelligence/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#signals-informs-intelligence-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is informed by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#signals-informs-intelligence> .

<https://umi-graph.com/relationships/#intelligence-is-evaluated-by>
  a owl:ObjectProperty ;
  rdfs:label "is evaluated by" ;
  rdfs:domain <https://umi-graph.com/intelligence/#set> ;
  rdfs:range <https://umi-graph.com/metrics/#set> ;
  umi:relationKind "Association" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#intelligence-is-evaluated-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "evaluates" ;
  owl:inverseOf <https://umi-graph.com/relationships/#intelligence-is-evaluated-by> .

<https://umi-graph.com/relationships/#intelligence-answers-goal>
  a owl:ObjectProperty ;
  rdfs:label "answers goal" ;
  rdfs:domain <https://umi-graph.com/intelligence/#set> ;
  rdfs:range <https://umi-graph.com/goals/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#intelligence-answers-goal-inverse>
  a owl:ObjectProperty ;
  rdfs:label "asks" ;
  owl:inverseOf <https://umi-graph.com/relationships/#intelligence-answers-goal> .

<https://umi-graph.com/relationships/#intelligence-advises-purpose>
  a owl:ObjectProperty ;
  rdfs:label "advises purpose" ;
  rdfs:domain <https://umi-graph.com/intelligence/#set> ;
  rdfs:range <https://umi-graph.com/campaign-purpose/#set> ;
  umi:relationKind "Association" ;
  umi:claim "advisory" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#intelligence-advises-purpose-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is advised by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#intelligence-advises-purpose> .

<https://umi-graph.com/relationships/#units-fits-form>
  a owl:ObjectProperty ;
  rdfs:label "fits form" ;
  rdfs:domain <https://umi-graph.com/units/#set> ;
  rdfs:range <https://umi-graph.com/measure-form/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#units-fits-form-inverse>
  a owl:ObjectProperty ;
  rdfs:label "admits unit" ;
  owl:inverseOf <https://umi-graph.com/relationships/#units-fits-form> .

<https://umi-graph.com/relationships/#metrics-counts-in-numerator>
  a owl:ObjectProperty ;
  rdfs:label "counts in numerator" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/signals/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-counts-in-numerator-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is counted in numerator of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-counts-in-numerator> .

<https://umi-graph.com/relationships/#metrics-counts-in-denominator>
  a owl:ObjectProperty ;
  rdfs:label "counts in denominator" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/signals/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-counts-in-denominator-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is counted in denominator of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-counts-in-denominator> .

<https://umi-graph.com/relationships/#metrics-takes-as-numerator>
  a owl:ObjectProperty, owl:IrreflexiveProperty ;
  rdfs:label "takes as numerator" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/metrics/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic true .

<https://umi-graph.com/relationships/#metrics-takes-as-numerator-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is numerator of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-takes-as-numerator> .

<https://umi-graph.com/relationships/#metrics-takes-as-denominator>
  a owl:ObjectProperty, owl:IrreflexiveProperty ;
  rdfs:label "takes as denominator" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/metrics/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic true .

<https://umi-graph.com/relationships/#metrics-takes-as-denominator-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is denominator of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-takes-as-denominator> .

<https://umi-graph.com/relationships/#metrics-computed-from-formula>
  a owl:ObjectProperty ;
  rdfs:label "computed from formula" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/metric-formulas/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-computed-from-formula-inverse>
  a owl:ObjectProperty ;
  rdfs:label "computes" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-computed-from-formula> .

<https://umi-graph.com/relationships/#metrics-attributed-by>
  a owl:ObjectProperty ;
  rdfs:label "attributed by" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/attribution-models/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-attributed-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "attributes" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-attributed-by> .

<https://umi-graph.com/relationships/#metrics-measured-in>
  a owl:ObjectProperty ;
  rdfs:label "measured in" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/units/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-measured-in-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is unit of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-measured-in> .

<https://umi-graph.com/relationships/#goals-advances-stage>
  a owl:ObjectProperty ;
  rdfs:label "advances stage" ;
  rdfs:domain <https://umi-graph.com/goals/#set> ;
  rdfs:range <https://umi-graph.com/lifecycle-stages/#set> ;
  umi:relationKind "Association" ;
  umi:claim "dispositional" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#goals-advances-stage-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is advanced by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#goals-advances-stage> .

<https://umi-graph.com/relationships/#kpis-serves-goal>
  a owl:ObjectProperty ;
  rdfs:label "serves goal" ;
  rdfs:domain <https://umi-graph.com/kpis/#set> ;
  rdfs:range <https://umi-graph.com/goals/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#kpis-serves-goal-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is served by KPI" ;
  owl:inverseOf <https://umi-graph.com/relationships/#kpis-serves-goal> .

<https://umi-graph.com/relationships/#kpis-has-metric>
  a owl:ObjectProperty ;
  rdfs:label "has metric" ;
  rdfs:domain <https://umi-graph.com/kpis/#set> ;
  rdfs:range <https://umi-graph.com/metrics/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#kpis-has-metric-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is metric of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#kpis-has-metric> .

<https://umi-graph.com/relationships/#kpis-improves-when>
  a owl:ObjectProperty ;
  rdfs:label "improves when" ;
  rdfs:domain <https://umi-graph.com/kpis/#set> ;
  rdfs:range <https://umi-graph.com/measure-direction/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#kpis-improves-when-inverse>
  a owl:ObjectProperty ;
  rdfs:label "sets direction for" ;
  owl:inverseOf <https://umi-graph.com/relationships/#kpis-improves-when> .

<https://umi-graph.com/relationships/#kpis-reads-as>
  a owl:ObjectProperty ;
  rdfs:label "reads as" ;
  rdfs:domain <https://umi-graph.com/kpis/#set> ;
  rdfs:range <https://umi-graph.com/measure-form/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#kpis-reads-as-inverse>
  a owl:ObjectProperty ;
  rdfs:label "gives form to" ;
  owl:inverseOf <https://umi-graph.com/relationships/#kpis-reads-as> .

<https://umi-graph.com/relationships/#targets-sets-level-for>
  a owl:ObjectProperty ;
  rdfs:label "sets level for" ;
  rdfs:domain <https://umi-graph.com/targets/#set> ;
  rdfs:range <https://umi-graph.com/kpis/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#targets-sets-level-for-inverse>
  a owl:ObjectProperty ;
  rdfs:label "has target" ;
  owl:inverseOf <https://umi-graph.com/relationships/#targets-sets-level-for> .

<https://umi-graph.com/relationships/#targets-quantifies-goal>
  a owl:ObjectProperty ;
  rdfs:label "quantifies goal" ;
  rdfs:domain <https://umi-graph.com/targets/#set> ;
  rdfs:range <https://umi-graph.com/goals/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#targets-quantifies-goal-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is quantified by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#targets-quantifies-goal> .

<https://umi-graph.com/relationships/#targets-due-within>
  a owl:ObjectProperty ;
  rdfs:label "due within" ;
  rdfs:domain <https://umi-graph.com/targets/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#targets-due-within-inverse>
  a owl:ObjectProperty ;
  rdfs:label "bounds target" ;
  owl:inverseOf <https://umi-graph.com/relationships/#targets-due-within> .

<https://umi-graph.com/relationships/#metric-formulas-takes-input>
  a owl:ObjectProperty ;
  rdfs:label "takes input" ;
  rdfs:domain <https://umi-graph.com/metric-formulas/#set> ;
  rdfs:range [ a owl:Class ; owl:unionOf ( <https://umi-graph.com/signals/#set> <https://umi-graph.com/metrics/#set> ) ] ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metric-formulas-takes-input-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is input to" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metric-formulas-takes-input> .

<https://umi-graph.com/relationships/#metric-formulas-computed-over>
  a owl:ObjectProperty ;
  rdfs:label "computed over" ;
  rdfs:domain <https://umi-graph.com/metric-formulas/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metric-formulas-computed-over-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the window of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metric-formulas-computed-over> .

<https://umi-graph.com/relationships/#signals-identifies-at>
  a owl:ObjectProperty ;
  rdfs:label "identifies at" ;
  rdfs:domain <https://umi-graph.com/signals/#set> ;
  rdfs:range <https://umi-graph.com/identity-levels/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#signals-identifies-at-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the level of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#signals-identifies-at> .

<https://umi-graph.com/relationships/#metrics-read-by>
  a owl:ObjectProperty ;
  rdfs:label "read by" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/evidence-designs/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-read-by-inverse>
  a owl:ObjectProperty ;
  rdfs:label "establishes" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-read-by> .

<https://umi-graph.com/relationships/#attribution-models-reads-as-design>
  a owl:ObjectProperty ;
  rdfs:label "reads as design" ;
  rdfs:domain <https://umi-graph.com/attribution-models/#set> ;
  rdfs:range <https://umi-graph.com/evidence-designs/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#attribution-models-reads-as-design-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the design of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#attribution-models-reads-as-design> .

<https://umi-graph.com/relationships/#metrics-counts-occupants-of>
  a owl:ObjectProperty ;
  rdfs:label "counts occupants of" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/consumer-states/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-counts-occupants-of-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is counted by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-counts-occupants-of> .

<https://umi-graph.com/relationships/#audience-segments-selects-state>
  a owl:ObjectProperty ;
  rdfs:label "selects state" ;
  rdfs:domain <https://umi-graph.com/audience-segments/#set> ;
  rdfs:range <https://umi-graph.com/consumer-states/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#audience-segments-selects-state-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is selected by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#audience-segments-selects-state> .

<https://umi-graph.com/relationships/#preference-types-concerns>
  a owl:ObjectProperty ;
  rdfs:label "concerns" ;
  rdfs:domain <https://umi-graph.com/preference-types/#set> ;
  rdfs:range [ a owl:Class ; owl:unionOf ( <https://umi-graph.com/channel/#set> <https://umi-graph.com/content-types/#set> <https://umi-graph.com/creative-formats/#set> ) ] ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#preference-types-concerns-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is concerned by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#preference-types-concerns> .

<https://umi-graph.com/relationships/#metrics-read-over>
  a owl:ObjectProperty ;
  rdfs:label "read over" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-read-over-inverse>
  a owl:ObjectProperty ;
  rdfs:label "windows the reading" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-read-over> .

<https://umi-graph.com/relationships/#metrics-read-in>
  a owl:ObjectProperty ;
  rdfs:label "read in" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/geographies/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-read-in-inverse>
  a owl:ObjectProperty ;
  rdfs:label "locates the reading" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-read-in> .

<https://umi-graph.com/relationships/#metrics-read-for>
  a owl:ObjectProperty ;
  rdfs:label "read for" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/audience-segments/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-read-for-inverse>
  a owl:ObjectProperty ;
  rdfs:label "segments the reading" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-read-for> .

<https://umi-graph.com/relationships/#journey-states-held-at>
  a owl:ObjectProperty ;
  rdfs:label "held at" ;
  rdfs:domain <https://umi-graph.com/journey-states/#set> ;
  rdfs:range <https://umi-graph.com/identity-levels/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-states-held-at-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the level a position is held at" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-states-held-at> .

<https://umi-graph.com/relationships/#events-occurs-within>
  a owl:ObjectProperty ;
  rdfs:label "occurs within" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-occurs-within-inverse>
  a owl:ObjectProperty ;
  rdfs:label "windows the event" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-occurs-within> .

<https://umi-graph.com/relationships/#parameters-parameter-of>
  a owl:ObjectProperty ;
  rdfs:label "parameter of" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range [ a owl:Class ; owl:unionOf ( <https://umi-graph.com/metrics/#set> <https://umi-graph.com/attribution-models/#set> <https://umi-graph.com/evidence-designs/#set> <https://umi-graph.com/signals/#set> <https://umi-graph.com/processing-purposes/#set> ) ] ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-parameter-of-inverse>
  a owl:ObjectProperty ;
  rdfs:label "parameterized by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-parameter-of> .

<https://umi-graph.com/relationships/#parameters-constrains>
  a owl:ObjectProperty ;
  rdfs:label "constrains" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/tactics/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-constrains-inverse>
  a owl:ObjectProperty ;
  rdfs:label "constrained by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-constrains> .

<https://umi-graph.com/relationships/#parameters-measured-in>
  a owl:ObjectProperty ;
  rdfs:label "measured in" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/units/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-measured-in-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is unit of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-measured-in> .

<https://umi-graph.com/relationships/#parameters-defaults-on>
  a owl:ObjectProperty ;
  rdfs:label "defaults on" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/setting-bases/#set> ;
  umi:relationKind "Typing" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-defaults-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the default basis of" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-defaults-on> .

<https://umi-graph.com/relationships/#evidence-designs-calibrates>
  a owl:ObjectProperty ;
  rdfs:label "calibrates" ;
  rdfs:domain <https://umi-graph.com/evidence-designs/#set> ;
  rdfs:range <https://umi-graph.com/parameters/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#evidence-designs-calibrates-inverse>
  a owl:ObjectProperty ;
  rdfs:label "calibrated by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#evidence-designs-calibrates> .

<https://umi-graph.com/relationships/#parameters-set-over>
  a owl:ObjectProperty ;
  rdfs:label "set over" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/time-windows/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-set-over-inverse>
  a owl:ObjectProperty ;
  rdfs:label "windows the setting" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-set-over> .

<https://umi-graph.com/relationships/#parameters-set-in>
  a owl:ObjectProperty ;
  rdfs:label "set in" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/geographies/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-set-in-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is where a setting holds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-set-in> .

<https://umi-graph.com/relationships/#parameters-set-for>
  a owl:ObjectProperty ;
  rdfs:label "set for" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/audience-segments/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-set-for-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is who a setting holds for" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-set-for> .

<https://umi-graph.com/relationships/#parameters-set-on>
  a owl:ObjectProperty ;
  rdfs:label "set on" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/setting-bases/#set> ;
  umi:relationKind "Association" ;
  umi:claim "constitutive" ;
  umi:grain "record" ;
  umi:cardinality "0..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-set-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is the basis of a setting" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-set-on> .

<https://umi-graph.com/relationships/#content-types-exactly-matches>
  a owl:ObjectProperty ;
  rdfs:label "exactly matches" ;
  rdfs:domain <https://umi-graph.com/content-types/#set> ;
  rdfs:range <https://umi-graph.com/external-terms/#set> ;
  umi:relationKind "Mapping" ;
  umi:claim "evidential" ;
  umi:grain "vocabulary" ;
  umi:cardinality "0..*" ;
  umi:terminal true ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#content-types-exactly-matches-inverse>
  a owl:ObjectProperty ;
  rdfs:label "is exactly matched by" ;
  owl:inverseOf <https://umi-graph.com/relationships/#content-types-exactly-matches> .

<https://umi-graph.com/relationships/#time-windows-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/time-windows/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#time-windows-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#time-windows-grounds-on> .

<https://umi-graph.com/relationships/#geographies-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/geographies/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#geographies-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#geographies-grounds-on> .

<https://umi-graph.com/relationships/#identity-levels-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/identity-levels/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#identity-levels-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#identity-levels-grounds-on> .

<https://umi-graph.com/relationships/#journeys-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/journeys/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journeys-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journeys-grounds-on> .

<https://umi-graph.com/relationships/#lifecycle-stages-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/lifecycle-stages/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#lifecycle-stages-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#lifecycle-stages-grounds-on> .

<https://umi-graph.com/relationships/#consumer-states-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/consumer-states/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#consumer-states-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#consumer-states-grounds-on> .

<https://umi-graph.com/relationships/#journey-states-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/journey-states/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-states-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-states-grounds-on> .

<https://umi-graph.com/relationships/#journey-transitions-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/journey-transitions/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#journey-transitions-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#journey-transitions-grounds-on> .

<https://umi-graph.com/relationships/#content-types-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/content-types/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#content-types-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#content-types-grounds-on> .

<https://umi-graph.com/relationships/#creative-formats-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/creative-formats/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-formats-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-formats-grounds-on> .

<https://umi-graph.com/relationships/#creative-assets-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/creative-assets/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-assets-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-assets-grounds-on> .

<https://umi-graph.com/relationships/#creative-size-specifications-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/creative-size-specifications/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#creative-size-specifications-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#creative-size-specifications-grounds-on> .

<https://umi-graph.com/relationships/#channel-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/channel/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#channel-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#channel-grounds-on> .

<https://umi-graph.com/relationships/#surface-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/surface/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#surface-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#surface-grounds-on> .

<https://umi-graph.com/relationships/#technology-platforms-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/technology-platforms/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#technology-platforms-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#technology-platforms-grounds-on> .

<https://umi-graph.com/relationships/#vendor-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/vendor/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#vendor-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#vendor-grounds-on> .

<https://umi-graph.com/relationships/#audience-segments-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/audience-segments/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#audience-segments-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#audience-segments-grounds-on> .

<https://umi-graph.com/relationships/#preference-types-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/preference-types/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#preference-types-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#preference-types-grounds-on> .

<https://umi-graph.com/relationships/#preferences-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/preferences/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#preferences-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#preferences-grounds-on> .

<https://umi-graph.com/relationships/#lawful-bases-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/lawful-bases/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#lawful-bases-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#lawful-bases-grounds-on> .

<https://umi-graph.com/relationships/#processing-purposes-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/processing-purposes/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#processing-purposes-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#processing-purposes-grounds-on> .

<https://umi-graph.com/relationships/#permission-bases-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/permission-bases/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#permission-bases-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#permission-bases-grounds-on> .

<https://umi-graph.com/relationships/#campaign-purpose-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/campaign-purpose/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-purpose-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-purpose-grounds-on> .

<https://umi-graph.com/relationships/#campaign-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/campaign/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#campaign-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#campaign-grounds-on> .

<https://umi-graph.com/relationships/#tactics-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/tactics/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#tactics-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#tactics-grounds-on> .

<https://umi-graph.com/relationships/#actions-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/actions/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#actions-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#actions-grounds-on> .

<https://umi-graph.com/relationships/#offers-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/offers/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#offers-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#offers-grounds-on> .

<https://umi-graph.com/relationships/#events-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/events/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#events-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#events-grounds-on> .

<https://umi-graph.com/relationships/#signals-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/signals/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#signals-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#signals-grounds-on> .

<https://umi-graph.com/relationships/#intelligence-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/intelligence/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#intelligence-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#intelligence-grounds-on> .

<https://umi-graph.com/relationships/#attribution-models-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/attribution-models/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#attribution-models-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#attribution-models-grounds-on> .

<https://umi-graph.com/relationships/#evidence-designs-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/evidence-designs/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#evidence-designs-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#evidence-designs-grounds-on> .

<https://umi-graph.com/relationships/#parameters-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/parameters/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#parameters-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#parameters-grounds-on> .

<https://umi-graph.com/relationships/#setting-bases-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/setting-bases/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#setting-bases-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#setting-bases-grounds-on> .

<https://umi-graph.com/relationships/#event-grain-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/event-grain/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#event-grain-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#event-grain-grounds-on> .

<https://umi-graph.com/relationships/#measure-direction-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/measure-direction/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#measure-direction-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#measure-direction-grounds-on> .

<https://umi-graph.com/relationships/#measure-form-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/measure-form/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#measure-form-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#measure-form-grounds-on> .

<https://umi-graph.com/relationships/#units-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/units/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#units-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#units-grounds-on> .

<https://umi-graph.com/relationships/#metrics-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/metrics/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metrics-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metrics-grounds-on> .

<https://umi-graph.com/relationships/#goals-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/goals/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#goals-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#goals-grounds-on> .

<https://umi-graph.com/relationships/#kpis-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/kpis/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#kpis-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#kpis-grounds-on> .

<https://umi-graph.com/relationships/#targets-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/targets/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#targets-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#targets-grounds-on> .

<https://umi-graph.com/relationships/#metric-formulas-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/metric-formulas/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#metric-formulas-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#metric-formulas-grounds-on> .

<https://umi-graph.com/relationships/#external-terms-grounds-on>
  a owl:ObjectProperty ;
  rdfs:label "grounds on" ;
  rdfs:domain <https://umi-graph.com/external-terms/#set> ;
  rdfs:range <https://umi-graph.com/entities/#set> ;
  umi:relationKind "Grounding" ;
  umi:claim "constitutive" ;
  umi:grain "vocabulary" ;
  umi:cardinality "1..1" ;
  umi:terminal false ;
  umi:acyclic false .

<https://umi-graph.com/relationships/#external-terms-grounds-on-inverse>
  a owl:ObjectProperty ;
  rdfs:label "grounds" ;
  owl:inverseOf <https://umi-graph.com/relationships/#external-terms-grounds-on> .

<https://umi-graph.com/foundations/#set>
  a skos:ConceptScheme ;
  rdfs:label "Foundations" .

<https://umi-graph.com/foundations/metaphysics/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Metaphysics" ;
  umi:layer "Foundational" ;
  umi:asks "What sorts of thing may this contain?" ;
  skos:definition "What kinds of thing a model may contain at all. Every knowledge structure draws a line between a term whose meaning is settled by definition, a construct it introduces to organise itself, and a record that answers to something outside it. Where that line is not drawn, a vocabulary entry and a claim about the world become interchangeable, and nothing downstream can tell which it is holding." ;
  umi:here "Four admissions, declared on every kind: a governed term, a construct of this model, the public identity of a real organisation or product, and a record with a durable source. One exemplar per kind may show the shape of a record before any record exists." ;
  dcterms:conformsTo <https://umi-graph.com/sources/json-schema-draft-2020-12-core-and-validation-specifications/#work>, <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>, <https://umi-graph.com/commitments/separate-executable-actions-observed-events-and-consumer-actor-grain/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/an-exemplar-shows-the-shape-a-record-takes/#article>, <https://umi-graph.com/commitments/knowledge-enters-as-a-term-or-an-assertion-never-as-a-new-field/#article>, <https://umi-graph.com/commitments/every-term-is-about-something-in-the-world/#article>, <https://umi-graph.com/commitments/the-ground-has-one-schema-and-it-is-data/#article> .

<https://umi-graph.com/foundations/ontology/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Ontology" ;
  umi:layer "Foundational" ;
  umi:asks "What exists, and what may connect?" ;
  skos:definition "The kinds a domain is made of and the relationships allowed between them, written down explicitly enough that two systems mean the same thing by the same word. Gruber's formulation is the working one: an ontology is an explicit specification of a conceptualisation. Left implicit, the same word carries a different shape in every system that uses it." ;
  umi:here "Every kind and every typed relationship is declared before it is used. Every relationship names the kind at each end, so a connection the model has not declared cannot be asserted." ;
  dcterms:conformsTo <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work>, <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/campaign-is-the-accountable-initiative/#article>, <https://umi-graph.com/commitments/separate-executable-actions-observed-events-and-consumer-actor-grain/#article>, <https://umi-graph.com/commitments/make-outcome-quality-calculation-method-and-attribution-inspectable/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/every-term-is-about-something-in-the-world/#article>, <https://umi-graph.com/commitments/a-question-the-graph-answers-is-declared-and-walked/#article>, <https://umi-graph.com/commitments/the-ground-has-one-schema-and-it-is-data/#article>, <https://umi-graph.com/commitments/the-model-is-written-in-the-standards-its-foundations-name/#article> .

<https://umi-graph.com/foundations/taxonomy/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Taxonomy" ;
  umi:layer "Foundational" ;
  umi:asks "Whose categories are these?" ;
  skos:definition "How a field's categories are arranged, and who governs them. Adopting a published taxonomy buys comparability with everyone else who adopted it, and buys its revision schedule and its blind spots along with it. The arrangement that lasts keeps local terms governed and treats the external scheme as a mapping rather than a master." ;
  umi:here "IAB content, audience and creative taxonomies are cited as reference points and none of their identifiers is carried as a property of any term here. Where a published scheme gives a stable identifier and its own definition is the same thing said, the correspondence is asserted as a relationship to a term of that scheme, so the comparison exists without the other scheme governing a local word. Three such correspondences stand, to classes schema.org publishes. Where a correspondence would be a judgement it is not asserted at all." ;
  dcterms:conformsTo <https://umi-graph.com/sources/iso-25964-1-2011-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-1-thesauri-for-information-retrieval/#work>, <https://umi-graph.com/sources/iso-25964-2-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-2-interoperability-with-other-vocabularies/#work>, <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/use-external-content-taxonomy-as-a-mapping-not-mastery/#article>, <https://umi-graph.com/commitments/keep-audience-eligibility-preference-and-permission-basis-distinct/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/a-correspondence-to-a-vocabulary-governed-elsewhere-is-asserted-never-imported/#article> .

<https://umi-graph.com/foundations/mereology/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Mereology" ;
  umi:layer "Structural" ;
  umi:asks "What is a part, and what is its own thing?" ;
  skos:definition "Parts and wholes: when one thing is a component of another, and when it is a separate thing that merely relates to it. A structure that gets this wrong grows a new level every time a team asks for one, and the same number ends up owned in three places with no rule for which owns it." ;
  umi:here "A Campaign contains Tactics and a Tactic contains Actions, and none of the three collapses into another. A calculation lives in a Formula rather than inside the Metric that uses it." ;
  dcterms:conformsTo <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/declare-measurement-grain-before-calculation/#article>, <https://umi-graph.com/commitments/campaign-is-the-accountable-initiative/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/a-journey-is-a-state-machine-not-a-funnel-picture/#article>, <https://umi-graph.com/commitments/state-and-intent-are-read-against-one-ordered-lifecycle/#article>, <https://umi-graph.com/commitments/everything-composed-is-a-composition-of-known-parts-at-every-level/#article>, <https://umi-graph.com/commitments/a-person-level-record-has-a-declared-shape/#article> .

<https://umi-graph.com/foundations/topology/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Topology" ;
  umi:layer "Structural" ;
  umi:asks "Is it connected, and can it be walked?" ;
  skos:definition "The shape of the graph as a graph: which way an assertion points, whether both of its ends resolve, and whether a path exists between two things at all. This is what makes a structure traversable rather than merely tabular — the difference between data you can query and data you can follow." ;
  umi:here "Every relationship stores one direction and both endpoints resolve. Reverse reading is inferred from a named inverse, so no path depends on a fact written a second time." ;
  dcterms:conformsTo <https://umi-graph.com/sources/sparql-1-1-query-language-property-paths/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>, <https://umi-graph.com/commitments/a-journey-is-a-state-machine-not-a-funnel-picture/#article>, <https://umi-graph.com/commitments/delivery-custody-is-a-named-chain-not-one-vendor-field/#article>, <https://umi-graph.com/commitments/state-and-intent-are-read-against-one-ordered-lifecycle/#article>, <https://umi-graph.com/commitments/a-declared-path-must-be-walkable/#article>, <https://umi-graph.com/commitments/a-question-the-graph-answers-is-declared-and-walked/#article>, <https://umi-graph.com/commitments/the-model-is-written-in-the-standards-its-foundations-name/#article>, <https://umi-graph.com/commitments/a-view-is-one-concept-over-one-primitive/#article>, <https://umi-graph.com/commitments/the-operations-an-agent-may-drive-are-declared/#article>, <https://umi-graph.com/commitments/everything-composed-is-a-composition-of-known-parts-at-every-level/#article>, <https://umi-graph.com/commitments/a-composition-a-reader-manifests-has-an-address-is-held-before-it-binds-and-never-enters-the-ground/#article>, <https://umi-graph.com/commitments/the-loop-is-law/#article>, <https://umi-graph.com/commitments/a-band-joined-by-one-road-says-so/#article> .

<https://umi-graph.com/foundations/identity/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Identity" ;
  umi:layer "Structural" ;
  umi:asks "What makes this the same thing twice?" ;
  skos:definition "What makes a thing the same thing across time, across systems and across restatements. Identity is the hinge interoperability turns on: without a stable handle that outlives any label, two systems holding the same thing are holding two things, and no join between them is sound." ;
  umi:here "Every row carries an immutable locator, and every registry states how its rows are named. A record that answers to an outside system carries that system's own identifier alongside." ;
  dcterms:conformsTo <https://umi-graph.com/sources/the-fair-guiding-principles-for-scientific-data-management-and-stewardship/#work>, <https://umi-graph.com/sources/cool-uris-don-t-change/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/delivery-custody-is-a-named-chain-not-one-vendor-field/#article>, <https://umi-graph.com/commitments/an-exemplar-shows-the-shape-a-record-takes/#article>, <https://umi-graph.com/commitments/an-identifier-names-one-thing-and-never-a-second/#article>, <https://umi-graph.com/commitments/an-address-is-a-label-s-made-once/#article>, <https://umi-graph.com/commitments/a-page-is-shareable-as-itself/#article>, <https://umi-graph.com/commitments/an-answer-the-graph-gives-has-an-address/#article>, <https://umi-graph.com/commitments/a-person-is-known-at-a-declared-level/#article>, <https://umi-graph.com/commitments/the-shape-of-the-model-moves-on-the-record/#article> .

<https://umi-graph.com/foundations/modality/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Modality" ;
  umi:layer "Structural" ;
  umi:asks "How many, and what kind of claim?" ;
  skos:definition "The difference between how many and whether. A bound says a thing may be connected once or many times; it never says what sort of assertion the connection is. Collapse the two and a design decision starts reading as evidence — the most common way a model comes to claim more than it knows." ;
  umi:here "Cardinality and claim are separate axes on every relationship. Cardinality counts. Claim says whether the link holds by definition, only typically, by observation, by causation, or as advice." ;
  dcterms:conformsTo <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/declare-measurement-grain-before-calculation/#article>, <https://umi-graph.com/commitments/campaign-is-the-accountable-initiative/#article>, <https://umi-graph.com/commitments/separate-executable-actions-observed-events-and-consumer-actor-grain/#article>, <https://umi-graph.com/commitments/scope-activation-and-calculation-explicitly-in-time-and-geography/#article>, <https://umi-graph.com/commitments/a-journey-is-a-state-machine-not-a-funnel-picture/#article>, <https://umi-graph.com/commitments/delivery-custody-is-a-named-chain-not-one-vendor-field/#article>, <https://umi-graph.com/commitments/a-metric-exists-because-a-question-needs-it/#article>, <https://umi-graph.com/commitments/creative-form-is-constrained-by-where-it-is-delivered/#article>, <https://umi-graph.com/commitments/a-relationship-says-what-kind-of-claim-it-makes/#article> .

<https://umi-graph.com/foundations/derivation/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Derivation" ;
  umi:layer "Structural" ;
  umi:asks "What is stored, and what is worked out?" ;
  skos:definition "What a structure asserts and what it computes. Store what could be derived and you keep two versions of one fact with no rule for which wins; derive what should have been asserted and the claim disappears the moment the derivation changes. Deciding this per fact is what keeps a model from disagreeing with itself." ;
  umi:here "Each relationship is asserted once in its canonical direction. Reverse readings, the verb table and the foundations map are computed on every build and stored nowhere." ;
  dcterms:conformsTo <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work>, <https://umi-graph.com/sources/declaring-the-grain/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/declare-measurement-grain-before-calculation/#article>, <https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>, <https://umi-graph.com/commitments/make-outcome-quality-calculation-method-and-attribution-inspectable/#article>, <https://umi-graph.com/commitments/a-metric-exists-because-a-question-needs-it/#article>, <https://umi-graph.com/commitments/the-reverse-reading-is-named-not-improvised/#article>, <https://umi-graph.com/commitments/a-move-that-cannot-be-counted-is-a-picture/#article>, <https://umi-graph.com/commitments/a-reading-names-its-unit-and-the-unit-fits-its-form/#article>, <https://umi-graph.com/commitments/a-target-is-a-level-on-a-reading-due-within-a-window/#article>, <https://umi-graph.com/commitments/the-model-is-written-in-the-standards-its-foundations-name/#article>, <https://umi-graph.com/commitments/the-proof-runs-without-a-hand/#article>, <https://umi-graph.com/commitments/a-page-is-shareable-as-itself/#article>, <https://umi-graph.com/commitments/one-engine-and-a-second-runtime-of-it-is-a-port-under-proof/#article>, <https://umi-graph.com/commitments/governance-and-execution-share-one-substrate/#article>, <https://umi-graph.com/commitments/the-operations-an-agent-may-drive-are-declared/#article>, <https://umi-graph.com/commitments/a-value-a-plan-fixes-is-a-governed-parameter/#article> .

<https://umi-graph.com/foundations/epistemology/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Epistemology" ;
  umi:layer "Cross-cutting" ;
  umi:asks "How does it know what it claims?" ;
  skos:definition "How a structure knows what it asserts, and on what authority. It turns on separating what licensed a design decision from what admits a fact: a published standard can justify a shape and can never establish that a particular thing happened. Models that blur this cite a standard as though it were evidence." ;
  umi:here "A cited source licenses a commitment; a durable source reference admits a record. Research and governance are read as peers, after the Dublin Core distinction between what a thing was derived from and what it conforms to." ;
  dcterms:conformsTo <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work>, <https://umi-graph.com/sources/dcmi-metadata-terms/#work>, <https://umi-graph.com/sources/the-fair-guiding-principles-for-scientific-data-management-and-stewardship/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>, <https://umi-graph.com/commitments/make-outcome-quality-calculation-method-and-attribution-inspectable/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/delivery-custody-is-a-named-chain-not-one-vendor-field/#article>, <https://umi-graph.com/commitments/a-metric-exists-because-a-question-needs-it/#article>, <https://umi-graph.com/commitments/creative-form-is-constrained-by-where-it-is-delivered/#article>, <https://umi-graph.com/commitments/provenance-and-conformance-are-read-apart/#article>, <https://umi-graph.com/commitments/a-commitment-says-whether-the-build-proves-it/#article>, <https://umi-graph.com/commitments/a-relationship-says-what-kind-of-claim-it-makes/#article>, <https://umi-graph.com/commitments/a-declared-path-must-be-walkable/#article>, <https://umi-graph.com/commitments/a-move-that-cannot-be-counted-is-a-picture/#article>, <https://umi-graph.com/commitments/a-question-the-graph-answers-is-declared-and-walked/#article>, <https://umi-graph.com/commitments/the-proof-runs-without-a-hand/#article>, <https://umi-graph.com/commitments/the-design-is-measured-not-asserted/#article>, <https://umi-graph.com/commitments/the-prose-says-what-the-registry-says/#article>, <https://umi-graph.com/commitments/a-view-is-one-concept-over-one-primitive/#article>, <https://umi-graph.com/commitments/one-engine-and-a-second-runtime-of-it-is-a-port-under-proof/#article>, <https://umi-graph.com/commitments/an-answer-the-graph-gives-has-an-address/#article>, <https://umi-graph.com/commitments/a-road-declares-its-grain/#article>, <https://umi-graph.com/commitments/cause-is-read-by-a-declared-design/#article>, <https://umi-graph.com/commitments/every-road-answers-a-competency-question/#article>, <https://umi-graph.com/commitments/a-deliverable-is-a-method-the-industry-already-writes/#article>, <https://umi-graph.com/commitments/a-question-in-a-reader-s-words-is-answered-with-an-address/#article> .

<https://umi-graph.com/foundations/semantics/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Semantics" ;
  umi:layer "Cross-cutting" ;
  umi:asks "Do two readers reach the same reading?" ;
  skos:definition "What the terms mean, stated precisely enough that two readers and two systems arrive at the same reading. Most of the work is keeping adjacent concepts apart — the pairs that are used interchangeably in conversation and mean different things in a model. Gruber calls this clarity, and puts it first among his design criteria." ;
  umi:here "A Signal is not an Event; a Metric is not a KPI; an Audience Segment is not a Preference and neither is a Permission Basis. Each distinction is stated where the kind is defined, and the build rejects two rows of different kinds defined in the same words — which is how a model comes to assert a distinction on one page and deny it on the next." ;
  dcterms:conformsTo <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/declare-measurement-grain-before-calculation/#article>, <https://umi-graph.com/commitments/separate-executable-actions-observed-events-and-consumer-actor-grain/#article>, <https://umi-graph.com/commitments/keep-audience-eligibility-preference-and-permission-basis-distinct/#article>, <https://umi-graph.com/commitments/make-outcome-quality-calculation-method-and-attribution-inspectable/#article>, <https://umi-graph.com/commitments/model-offer-as-the-governed-value-exchange/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/a-journey-is-a-state-machine-not-a-funnel-picture/#article>, <https://umi-graph.com/commitments/creative-form-is-constrained-by-where-it-is-delivered/#article>, <https://umi-graph.com/commitments/a-relationship-says-what-kind-of-claim-it-makes/#article>, <https://umi-graph.com/commitments/a-reading-names-its-unit-and-the-unit-fits-its-form/#article>, <https://umi-graph.com/commitments/a-term-may-be-known-by-other-names-and-they-are-labels-not-terms/#article>, <https://umi-graph.com/commitments/the-design-is-measured-not-asserted/#article>, <https://umi-graph.com/commitments/governance-and-execution-share-one-substrate/#article>, <https://umi-graph.com/commitments/a-text-answers-one-question-in-the-reader-s-words/#article> .

<https://umi-graph.com/foundations/nomenclature/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Nomenclature" ;
  umi:layer "Cross-cutting" ;
  umi:asks "What is a name, and what is an address?" ;
  skos:definition "How things are named and how they are addressed. A label is written for a reader and may be rewritten; an identifier is written for a machine and may not. Confusing the two is how a rename silently breaks every reference to the thing renamed." ;
  umi:here "A label reads in plain language and can be revised. The locator beside it is fixed, and no relationship resolves through a label." ;
  dcterms:conformsTo <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/cool-uris-don-t-change/#work>, <https://umi-graph.com/sources/iso-25964-1-2011-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-1-thesauri-for-information-retrieval/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>, <https://umi-graph.com/commitments/use-external-content-taxonomy-as-a-mapping-not-mastery/#article>, <https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>, <https://umi-graph.com/commitments/provenance-and-conformance-are-read-apart/#article>, <https://umi-graph.com/commitments/the-reverse-reading-is-named-not-improvised/#article>, <https://umi-graph.com/commitments/a-term-may-be-known-by-other-names-and-they-are-labels-not-terms/#article>, <https://umi-graph.com/commitments/an-identifier-names-one-thing-and-never-a-second/#article>, <https://umi-graph.com/commitments/an-address-is-a-label-s-made-once/#article>, <https://umi-graph.com/commitments/prose-names-only-what-the-registry-holds/#article> .

<https://umi-graph.com/foundations/deontics/#term>
  a skos:Concept ;
  skos:inScheme <https://umi-graph.com/foundations/#set> ;
  skos:prefLabel "Deontics" ;
  umi:layer "Cross-cutting" ;
  umi:asks "What must hold before a claim is made?" ;
  skos:definition "What must, may and must not hold before a claim is made. This is the part of a model that stops it asserting more than it can support: the conditions attached to an obligation, and the honesty of saying so when they are not met." ;
  umi:here "A Metric with no governed source says so rather than inheriting proof from a neighbouring calculation. A permission basis is a stated condition and never a record of an individual's consent. A profile a reader composes for one context selects and constrains this vocabulary and never extends it, and is held to the grammar before anything is carried." ;
  dcterms:conformsTo <https://umi-graph.com/sources/dublin-core-tabular-application-profiles-dctap-elements-for-dc-tabular-application-profiles/#work>, <https://umi-graph.com/sources/the-singapore-framework-for-dublin-core-application-profiles/#work>, <https://umi-graph.com/sources/data-privacy-vocabulary/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work> ;
  umi:answeredBy <https://umi-graph.com/commitments/declare-measurement-grain-before-calculation/#article>, <https://umi-graph.com/commitments/keep-audience-eligibility-preference-and-permission-basis-distinct/#article>, <https://umi-graph.com/commitments/make-outcome-quality-calculation-method-and-attribution-inspectable/#article>, <https://umi-graph.com/commitments/model-offer-as-the-governed-value-exchange/#article>, <https://umi-graph.com/commitments/scope-activation-and-calculation-explicitly-in-time-and-geography/#article>, <https://umi-graph.com/commitments/a-metric-exists-because-a-question-needs-it/#article>, <https://umi-graph.com/commitments/a-commitment-says-whether-the-build-proves-it/#article>, <https://umi-graph.com/commitments/knowledge-enters-as-a-term-or-an-assertion-never-as-a-new-field/#article>, <https://umi-graph.com/commitments/a-target-is-a-level-on-a-reading-due-within-a-window/#article>, <https://umi-graph.com/commitments/a-composition-a-reader-manifests-has-an-address-is-held-before-it-binds-and-never-enters-the-ground/#article>, <https://umi-graph.com/commitments/a-profile-selects-and-constrains-the-vocabulary-and-never-extends-it/#article> .

<https://umi-graph.com/commitments/declare-measurement-grain-before-calculation/#article>
  a umi:Commitment ;
  rdfs:label "Declare measurement grain before calculation" ;
  dcterms:identifier "RUL-001" ;
  umi:statement "An Event is a business-process fact, a Signal is the governed instrument, a Metric is the calculation, and a KPI serves a Goal. A rate or aggregate may not silently change the grain of its inputs, including an explicitly composed Metric." ;
  umi:why "A rate means nothing unless everyone agrees what one instance of its numerator and its denominator represents. Marketing reporting fails less often because a number is wrong than because two numbers computed at different grains were divided — sessions over people, clicks over sends — and nothing in the output says so. Declaring the grain first is what makes the calculation reproducible by someone who did not write it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/declaring-the-grain/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-007>, <https://umi-graph.com/checks/#fnd-012> ;
  umi:licenses <https://umi-graph.com/events/#set>, <https://umi-graph.com/signals/#set>, <https://umi-graph.com/metrics/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/goals/#set>, <https://umi-graph.com/relationships/#signals-observes-event>, <https://umi-graph.com/relationships/#metrics-counts-in-numerator>, <https://umi-graph.com/relationships/#metrics-counts-in-denominator>, <https://umi-graph.com/relationships/#kpis-has-metric>, <https://umi-graph.com/relationships/#kpis-serves-goal>, <https://umi-graph.com/relationships/#metrics-takes-as-numerator>, <https://umi-graph.com/relationships/#metrics-takes-as-denominator> .

<https://umi-graph.com/commitments/campaign-is-the-accountable-initiative/#article>
  a umi:Commitment ;
  rdfs:label "Campaign is the accountable initiative" ;
  dcterms:identifier "RUL-002" ;
  umi:statement "Campaign is the time-bounded accountable initiative. Parent Campaign is an optional roll-up, Campaign Purpose is a classifier, and Tactic is the executable child; no parallel Program hierarchy is introduced." ;
  umi:why "Marketing organisations accumulate layers — programme, portfolio, initiative, workstream — each added by a team that wanted one more level of roll-up. Every layer is another place spend and outcome can be attributed, and after two or three of them it stops being answerable which level owns a number. One accountable unit that may nest inside itself gives the roll-up without the ambiguity." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/understand-campaign-hierarchy/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004>, <https://umi-graph.com/checks/#fnd-038> ;
  umi:licenses <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/campaign-purpose/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/goals/#set>, <https://umi-graph.com/channel/#set>, <https://umi-graph.com/surface/#set>, <https://umi-graph.com/content-types/#set>, <https://umi-graph.com/relationships/#campaign-parent-campaign>, <https://umi-graph.com/relationships/#campaign-has-purpose>, <https://umi-graph.com/relationships/#campaign-contains-tactic>, <https://umi-graph.com/relationships/#campaign-measured-by>, <https://umi-graph.com/relationships/#campaign-supports-goal>, <https://umi-graph.com/relationships/#tactics-uses-channel>, <https://umi-graph.com/relationships/#tactics-uses-surface>, <https://umi-graph.com/relationships/#tactics-uses-content-type> .

<https://umi-graph.com/commitments/store-one-canonical-relationship-assertion/#article>
  a umi:Commitment ;
  rdfs:label "Store one canonical relationship assertion" ;
  dcterms:identifier "RUL-003" ;
  umi:statement "Store a relationship once in its canonical direction and generate the named inverse for reading. Provenance, source linkage, and implementation status must be explicit rather than duplicated as a second fact." ;
  umi:why "A relationship written twice, once in each direction, is two facts that can disagree. The moment one is updated and the other is not, the graph holds a contradiction in which both readings look equally authoritative, and no reader can tell which was meant. Asserting one direction and inferring the other is what keeps a structure consistent as it grows." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-006> ;
  umi:licenses <https://umi-graph.com/relationships/#metrics-takes-as-numerator>, <https://umi-graph.com/relationships/#metrics-takes-as-denominator>, <https://umi-graph.com/relationships/#campaign-parent-campaign> .

<https://umi-graph.com/commitments/separate-executable-actions-observed-events-and-consumer-actor-grain/#article>
  a umi:Commitment ;
  rdfs:label "Separate executable actions, observed events and consumer actor grain" ;
  dcterms:identifier "RUL-004" ;
  umi:statement "Action is the executable operation atom and Event is the observed fact. The canonical design path is Action → triggers Event. Every Event states the grain it is recorded at: one person's and resolvable to them, one person's with the identity withheld by the platform that saw it, a placement with no person in it, or a public utterance not resolved to a known person. Event → acted by Consumer is available only at the two grains that are a person's act, and a move between journey positions is triggered only by an event resolvable to one person. Aggregate delivery Events do not receive a fabricated actor, and a move of one person never rests on a fact about nobody in particular. An instrument observes exactly one kind of fact; an instrument that observes none is unanchored, and a reading built on it cannot say what it counted." ;
  umi:why "What a system did and what a person did are different facts, and the two are easily merged — which is why event models separate what was explicitly triggered from what was implicitly observed. A send is not an open; a delivery total is not a set of people. Once an execution record and a behavioural observation are the same kind of thing, every count downstream quietly mixes them, and an audience figure stops being checkable." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/xdm-experienceevent-class/#work>, <https://umi-graph.com/sources/declaring-the-grain/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004>, <https://umi-graph.com/checks/#fnd-016> ;
  umi:licenses <https://umi-graph.com/actions/#set>, <https://umi-graph.com/events/#set>, <https://umi-graph.com/event-grain/#set>, <https://umi-graph.com/entities/#set>, <https://umi-graph.com/signals/#set>, <https://umi-graph.com/relationships/#tactics-contains-action>, <https://umi-graph.com/relationships/#actions-triggers-event>, <https://umi-graph.com/relationships/#events-at-grain>, <https://umi-graph.com/relationships/#events-acted-by-consumer>, <https://umi-graph.com/relationships/#events-attributed-to-tactic>, <https://umi-graph.com/relationships/#events-captured-on>, <https://umi-graph.com/relationships/#signals-observes-event> .

<https://umi-graph.com/commitments/use-external-content-taxonomy-as-a-mapping-not-mastery/#article>
  a umi:Commitment ;
  rdfs:label "Use external content taxonomy as a mapping, not mastery" ;
  dcterms:identifier "RUL-005" ;
  umi:statement "A recognized content taxonomy may improve portability and comparability, but umi-graph's Content Types, Surfaces and Creative Formats remain locally governed terms until a versioned mapping is justified. Creative Asset records point to those terms without becoming taxonomy values." ;
  umi:why "Adopting an industry taxonomy as the master buys comparability and hands over governance of the vocabulary. When the external scheme revises, local meanings move with it, and a term that carried a specific operational sense is reinterpreted by someone else's committee. A mapping keeps both: the comparison when it is wanted, and the local meaning when it is not." ;
  umi:status "adopted" ;
  umi:enforcement "guidance" ;
  dcterms:source <https://umi-graph.com/sources/content-taxonomy/#work>, <https://umi-graph.com/sources/iso-25964-2-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-2-interoperability-with-other-vocabularies/#work> ;
  umi:licenses <https://umi-graph.com/content-types/#set>, <https://umi-graph.com/surface/#set>, <https://umi-graph.com/creative-formats/#set>, <https://umi-graph.com/creative-assets/#set>, <https://umi-graph.com/relationships/#content-types-delivered-on>, <https://umi-graph.com/relationships/#content-types-may-be-expressed-as> .

<https://umi-graph.com/commitments/keep-audience-eligibility-preference-and-permission-basis-distinct/#article>
  a umi:Commitment ;
  rdfs:label "Keep audience eligibility, preference and permission basis distinct" ;
  dcterms:identifier "RUL-006" ;
  umi:statement "Audience Segment identifies an addressable eligibility group; Preference records a communication or content choice; Permission Basis records the governed permission or other lawful-basis condition. Consumer State remains relationship context. None of these assertions substitutes for a consumer-level receipt or proves activation is permitted. A Permission Basis rests on exactly one lawful ground and names at least one purpose, because a ground is always a ground for something. A Preference is typed by the kind of choice it states." ;
  umi:why "These answer three different questions — can this person be reached, how do they want to be reached, and are we permitted to reach them — and collapsing them is how an organisation comes to treat membership of a segment as a consent. Eligibility is an addressing fact, preference is a stated choice, and a permission basis is a condition with a purpose and a jurisdiction. Only the last has anything to say about whether an activation is allowed." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/regulation-eu-2016-679-article-6/#work>, <https://umi-graph.com/sources/audience-taxonomy/#work>, <https://umi-graph.com/sources/global-privacy-protocol/#work>, <https://umi-graph.com/sources/data-privacy-vocabulary/#work>, <https://umi-graph.com/sources/regulation-eu-2016-679-article-7-conditions-for-consent/#work>, <https://umi-graph.com/sources/consent-receipt-specification-1-1/#work>, <https://umi-graph.com/sources/transparency-and-consent-framework-v2-2/#work>, <https://umi-graph.com/sources/rfc-8058-signaling-one-click-functionality-for-list-email-headers/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-002>, <https://umi-graph.com/checks/#fnd-005>, <https://umi-graph.com/checks/#fnd-012> ;
  umi:licenses <https://umi-graph.com/audience-segments/#set>, <https://umi-graph.com/preferences/#set>, <https://umi-graph.com/permission-bases/#set>, <https://umi-graph.com/consumer-states/#set>, <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/lawful-bases/#set>, <https://umi-graph.com/processing-purposes/#set>, <https://umi-graph.com/preference-types/#set>, <https://umi-graph.com/events/#set>, <https://umi-graph.com/relationships/#campaign-targets-audience>, <https://umi-graph.com/relationships/#campaign-respects-preference>, <https://umi-graph.com/relationships/#campaign-requires-permission-basis>, <https://umi-graph.com/relationships/#tactics-targets-audience>, <https://umi-graph.com/relationships/#tactics-respects-preference>, <https://umi-graph.com/relationships/#tactics-requires-permission-basis>, <https://umi-graph.com/relationships/#campaign-targets-state>, <https://umi-graph.com/relationships/#permission-bases-rests-on>, <https://umi-graph.com/relationships/#permission-bases-permits-purpose>, <https://umi-graph.com/relationships/#preferences-is-of-type>, <https://umi-graph.com/relationships/#processing-purposes-typically-rests-on>, <https://umi-graph.com/relationships/#events-changes-permission>, <https://umi-graph.com/relationships/#audience-segments-selects-state>, <https://umi-graph.com/relationships/#preference-types-concerns> .

<https://umi-graph.com/commitments/make-outcome-quality-calculation-method-and-attribution-inspectable/#article>
  a umi:Commitment ;
  rdfs:label "Make outcome quality, calculation method and attribution inspectable" ;
  dcterms:identifier "RUL-007" ;
  umi:statement "An outcome or efficiency claim needs declared inputs, exclusions, quality controls, attribution window and an activation join key. Metric meaning is distinct from its versioned Formula. A Formula consumes governed Signal or Metric inputs and must not split a Metric across a second direct-input path. An attributing Metric names the Attribution Model it divides credit by, because the rule is part of the method rather than a presentation choice." ;
  umi:why "An outcome number is only as good as the inputs, exclusions and window that nobody wrote down. Media measurement standards exist because outcome claims circulate detached from their method, and a figure with no stated method cannot be challenged, reproduced or compared against anyone else's. Keeping what a measure means apart from how it is computed is what makes either one reviewable." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work>, <https://umi-graph.com/sources/declaring-the-grain/#work>, <https://umi-graph.com/sources/measuring-visibility-in-the-ai-era/#work>, <https://umi-graph.com/sources/data-driven-multi-touch-attribution-models/#work>, <https://umi-graph.com/sources/causally-motivated-attribution-for-online-advertising/#work>, <https://umi-graph.com/sources/a-comparison-of-approaches-to-advertising-measurement-evidence-from-big-field-experiments-at-facebook/#work>, <https://umi-graph.com/sources/why-three-exposures-may-be-enough/#work>, <https://umi-graph.com/sources/digital-audience-based-measurement-standards/#work>, <https://umi-graph.com/sources/customer-lifetime-value/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-007> ;
  umi:licenses <https://umi-graph.com/signals/#set>, <https://umi-graph.com/metrics/#set>, <https://umi-graph.com/metric-formulas/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/technology-platforms/#set>, <https://umi-graph.com/entities/#set>, <https://umi-graph.com/surface/#set>, <https://umi-graph.com/content-types/#set>, <https://umi-graph.com/attribution-models/#set>, <https://umi-graph.com/measure-direction/#set>, <https://umi-graph.com/measure-form/#set>, <https://umi-graph.com/relationships/#metrics-counts-in-numerator>, <https://umi-graph.com/relationships/#metrics-counts-in-denominator>, <https://umi-graph.com/relationships/#metrics-takes-as-numerator>, <https://umi-graph.com/relationships/#metrics-takes-as-denominator>, <https://umi-graph.com/relationships/#metrics-computed-from-formula>, <https://umi-graph.com/relationships/#metric-formulas-takes-input>, <https://umi-graph.com/relationships/#campaign-measured-by>, <https://umi-graph.com/relationships/#events-attributed-to-tactic>, <https://umi-graph.com/relationships/#events-captured-on>, <https://umi-graph.com/relationships/#signals-implemented-in-platform>, <https://umi-graph.com/relationships/#metrics-attributed-by>, <https://umi-graph.com/relationships/#kpis-improves-when>, <https://umi-graph.com/relationships/#kpis-reads-as> .

<https://umi-graph.com/commitments/model-offer-as-the-governed-value-exchange/#article>
  a umi:Commitment ;
  rdfs:label "Model offer as the governed value exchange" ;
  dcterms:identifier "RUL-008" ;
  umi:statement "Offer is a distinct governed value exchange with terms, eligibility and validity. A Campaign may set an Offer and an Action may require it; neither a Campaign, Tactic nor creative asset becomes an Offer by implication." ;
  umi:why "An offer has terms, eligibility and a validity window; a campaign, a message and a creative do not. Left implicit inside the creative that carries it, the same discount is re-described in every asset that mentions it, and no one can answer afterwards what was promised, to whom, or until when." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/offer/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/offers/#set>, <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/actions/#set>, <https://umi-graph.com/time-windows/#set>, <https://umi-graph.com/geographies/#set>, <https://umi-graph.com/relationships/#campaign-sets-offer>, <https://umi-graph.com/relationships/#actions-requires-offer>, <https://umi-graph.com/relationships/#offers-valid-during>, <https://umi-graph.com/relationships/#offers-eligible-in-geography> .

<https://umi-graph.com/commitments/scope-activation-and-calculation-explicitly-in-time-and-geography/#article>
  a umi:Commitment ;
  rdfs:label "Scope activation and calculation explicitly in time and geography" ;
  dcterms:identifier "RUL-009" ;
  umi:statement "Time Window and Geography are distinct governed scope dimensions. Campaign, Tactic, Action, Offer and Formula scope relationships are explicit and do not rely on free-text dates or locations." ;
  umi:why "Two reports can describe the same activity and disagree entirely because one covers a different window, or a different market, than the other. Free-text dates and place names put that scope beyond the reach of any check, so the two compare cleanly and wrongly. Time and place are dimensions with a boundary and a basis, not labels on a record." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/time-ontology-in-owl/#work>, <https://umi-graph.com/sources/geosparql-1-1/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/time-windows/#set>, <https://umi-graph.com/geographies/#set>, <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/actions/#set>, <https://umi-graph.com/offers/#set>, <https://umi-graph.com/metric-formulas/#set>, <https://umi-graph.com/journeys/#set>, <https://umi-graph.com/relationships/#campaign-valid-during>, <https://umi-graph.com/relationships/#campaign-scoped-to-geography>, <https://umi-graph.com/relationships/#tactics-valid-during>, <https://umi-graph.com/relationships/#tactics-scoped-to-geography>, <https://umi-graph.com/relationships/#actions-valid-during>, <https://umi-graph.com/relationships/#offers-valid-during>, <https://umi-graph.com/relationships/#offers-eligible-in-geography>, <https://umi-graph.com/relationships/#metric-formulas-computed-over>, <https://umi-graph.com/relationships/#journeys-times-out-after> .

<https://umi-graph.com/commitments/keep-concrete-creative-separate-from-its-classifications/#article>
  a umi:Commitment ;
  rdfs:label "Keep concrete creative separate from its classifications" ;
  dcterms:identifier "RUL-010" ;
  umi:statement "A Creative Asset is a source-addressable creative record at the source-defined rendition grain. It is distinct from the Content Type that templates it, the Format it renders as, and the Size Specification that constrains where it can go. Tactic owns the canonical operational use link; Campaign and Action do not duplicate it." ;
  umi:why "A creative asset is one addressable thing that exists in a system of record. Its format, the role it plays, what is visible in it and the geometry it is delivered at are all descriptions of it, and each belongs to a different vocabulary. Folded into the asset they produce a record that is part file and part category, and can be neither counted nor found." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/dcmi-metadata-terms/#work>, <https://umi-graph.com/sources/iab-new-ad-portfolio-advertising-creative-guidelines/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-002>, <https://umi-graph.com/checks/#fnd-003>, <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/creative-assets/#set>, <https://umi-graph.com/content-types/#set>, <https://umi-graph.com/creative-formats/#set>, <https://umi-graph.com/creative-size-specifications/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/relationships/#tactics-uses-creative-asset>, <https://umi-graph.com/relationships/#creative-assets-is-templated-by>, <https://umi-graph.com/relationships/#creative-assets-renders-as>, <https://umi-graph.com/relationships/#creative-assets-is-delivered-in-geometry> .

<https://umi-graph.com/commitments/a-journey-is-a-state-machine-not-a-funnel-picture/#article>
  a umi:Commitment ;
  rdfs:label "A journey is a state machine, not a funnel picture" ;
  dcterms:identifier "RUL-011" ;
  umi:statement "A Journey is the machine; a Journey State is a position inside exactly one Journey and is typed by exactly one Consumer State; a Journey Transition belongs to one Journey and names exactly one from-state and one to-state. A Journey begins at exactly one of its own positions. An Event is what triggers a transition, every transition names at least one, and only an event resolvable to one person may trigger a move. What a move asks of activation is not stored on the move: a campaign targets the condition it acts on, and the question areas that read the journey advise the purposes whose campaigns act on it. A stage list with no legal transitions is a picture, not a model." ;
  umi:why "A funnel diagram names stages and says nothing about how anyone moves between them, so it cannot be validated, queried or executed. A state machine names the legal moves and what triggers each, which is the difference between a journey a system can run and a journey a deck can show." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/state-chart-xml-scxml-state-machine-notation-for-control-abstraction/#work>, <https://umi-graph.com/sources/declaring-the-grain/#work>, <https://umi-graph.com/sources/statecharts-a-visual-formalism-for-complex-systems/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004>, <https://umi-graph.com/checks/#fnd-012>, <https://umi-graph.com/checks/#fnd-017> ;
  umi:licenses <https://umi-graph.com/journeys/#set>, <https://umi-graph.com/journey-states/#set>, <https://umi-graph.com/journey-transitions/#set>, <https://umi-graph.com/consumer-states/#set>, <https://umi-graph.com/events/#set>, <https://umi-graph.com/entities/#set>, <https://umi-graph.com/relationships/#journeys-begins-at>, <https://umi-graph.com/relationships/#journey-states-belongs-to-journey>, <https://umi-graph.com/relationships/#journey-states-realizes-consumer-state>, <https://umi-graph.com/relationships/#journey-transitions-belongs-to-journey>, <https://umi-graph.com/relationships/#journey-transitions-from-state>, <https://umi-graph.com/relationships/#journey-transitions-to-state>, <https://umi-graph.com/relationships/#journey-transitions-triggered-by> .

<https://umi-graph.com/commitments/delivery-custody-is-a-named-chain-not-one-vendor-field/#article>
  a umi:Commitment ;
  rdfs:label "Delivery custody is a named chain, not one vendor field" ;
  dcterms:identifier "RUL-012" ;
  umi:statement "Channel, Surface, Technology Platform and Vendor answer four different questions: the manner of reaching someone, the place it happens, the system that acts there, and the party accountable for it. Custody is asserted directly at each link. A surface names the systems it runs on, and no custody is inferred through any of them: the vendor supplying a platform is not thereby the provider of the surface, even where the platform hosts it." ;
  umi:why "Reaching someone involves several parties, and a single vendor field forces four questions into one answer: the manner of reaching them, the place it happens, the system that acts there, and who is accountable for it. The advertising industry built supply-chain disclosure precisely because an unstated intermediary is where accountability disappears." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/sellers-json-and-the-openrtb-supplychain-object/#work>, <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/channel/#set>, <https://umi-graph.com/surface/#set>, <https://umi-graph.com/technology-platforms/#set>, <https://umi-graph.com/vendor/#set>, <https://umi-graph.com/content-types/#set>, <https://umi-graph.com/relationships/#channel-includes-surface>, <https://umi-graph.com/relationships/#surface-provided-by>, <https://umi-graph.com/relationships/#technology-platforms-supplied-by>, <https://umi-graph.com/relationships/#vendor-delivers-in>, <https://umi-graph.com/relationships/#content-types-delivered-on>, <https://umi-graph.com/relationships/#surface-runs-on> .

<https://umi-graph.com/commitments/a-metric-exists-because-a-question-needs-it/#article>
  a umi:Commitment ;
  rdfs:label "A metric exists because a question needs it" ;
  dcterms:identifier "RUL-013" ;
  umi:statement "An Intelligence row is a standing question area that sits between a Goal and the Metrics that answer it, following Goal-Question-Metric. A Signal informs a question area by contributing evidence; it is not classified by it. The kind of a conversion - a first, a repeat, a return - is read from the condition the move it triggers leaves, and is never declared beside the event as a second fact. A question area advises the campaign purposes whose campaigns act on its answers, so measurement reaches the decision it exists to inform." ;
  umi:why "Goal-Question-Metric was formulated against a specific failure: measurement chosen because a system already produces it, rather than because a stated question needs it. The order it insists on is goal, then question, then measurement. Without the middle term a dashboard grows without limit, and which of its numbers would change a decision stops being answerable." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/the-goal-question-metric-approach/#work>, <https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work>, <https://umi-graph.com/sources/declaring-the-grain/#work>, <https://umi-graph.com/sources/aligning-organizations-through-measurement-the-gqm-strategies-approach/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/intelligence/#set>, <https://umi-graph.com/metrics/#set>, <https://umi-graph.com/signals/#set>, <https://umi-graph.com/goals/#set>, <https://umi-graph.com/campaign-purpose/#set>, <https://umi-graph.com/relationships/#signals-informs-intelligence>, <https://umi-graph.com/relationships/#intelligence-is-evaluated-by>, <https://umi-graph.com/relationships/#intelligence-answers-goal>, <https://umi-graph.com/relationships/#intelligence-advises-purpose> .

<https://umi-graph.com/commitments/creative-form-is-constrained-by-where-it-is-delivered/#article>
  a umi:Commitment ;
  rdfs:label "Creative form is constrained by where it is delivered" ;
  dcterms:identifier "RUL-014" ;
  umi:statement "A creative size specification states an aspect ratio and size range that a Surface supports; it is a constraint on delivery, not a property the creative owns. A creative Format states which Surfaces can carry it at all, which is the same constraint read at the coarser grain: geometry decides whether a screen will take a shape, form decides whether a place can carry the thing at all." ;
  umi:why "A size is a property of a placement, not of a picture. Recorded on the asset it makes a creative look as though it has an intrinsic shape, and the constraint it was actually meeting — what a given surface supports — goes unrecorded. Stated against the surface, one asset can be delivered anywhere that supports it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/iab-new-ad-portfolio-advertising-creative-guidelines/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/creative-size-specifications/#set>, <https://umi-graph.com/creative-formats/#set>, <https://umi-graph.com/surface/#set>, <https://umi-graph.com/relationships/#creative-size-specifications-is-supported-on>, <https://umi-graph.com/relationships/#creative-formats-delivered-on> .

<https://umi-graph.com/commitments/provenance-and-conformance-are-read-apart/#article>
  a umi:Commitment ;
  rdfs:label "Provenance and conformance are read apart" ;
  dcterms:identifier "RUL-015" ;
  umi:statement "A cited source states what this model was built from; a commitment states what must hold for its shapes to mean anything. They answer different questions and are presented as peers, not one nested inside the other. A source is never read as evidence of a commitment, and a commitment is never read as evidence of a fact." ;
  umi:why "What a model was built from and what it commits to are different claims, and presenting them together lets a citation stand in for an obligation. Dublin Core keeps them as separate terms for the same reason: a standard consulted and a standard conformed to are not the same relationship, and only one of them can be tested." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/dcmi-metadata-terms/#work>, <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-001> .

<https://umi-graph.com/commitments/a-commitment-says-whether-the-build-proves-it/#article>
  a umi:Commitment ;
  rdfs:label "A commitment says whether the build proves it" ;
  dcterms:identifier "RUL-016" ;
  umi:statement "A commitment is an agreement to use these shapes coherently, not a preference and not an industry standard. Each one therefore declares whether it is enforced, meaning a named build check tests it on every run, or guidance, meaning it is a commitment no check can test. Only an enforced commitment may name a check, an enforced one must name at least one, and a proposed one may never be enforced. A foundation derives its checks from the commitments it holds. Following minimal ontological commitment, the model states the weakest theory that still does the work: what it has not committed to stays visibly uncommitted rather than being asserted for completeness." ;
  umi:why "A stated rule and an enforced rule look identical on a page, and the difference is the whole of the value: one is an intention, the other a guarantee. Declaring which is which stops a model claiming verification it does not have, and leaves what it has not committed to visibly open rather than quietly filled in." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/the-singapore-framework-for-dublin-core-application-profiles/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-008>, <https://umi-graph.com/checks/#fnd-027> .

<https://umi-graph.com/commitments/a-relationship-says-what-kind-of-claim-it-makes/#article>
  a umi:Commitment ;
  rdfs:label "A relationship says what kind of claim it makes" ;
  dcterms:identifier "RUL-017" ;
  umi:statement "A cardinality says how many; it never says whether. Each relationship therefore declares the claim it makes: constitutive, true by what the thing is; dispositional, what may or typically hold at design time; evidential, an observed linkage that carries interpretation and nothing more; causal, the source brings the target about; or advisory, a recommendation. PROV-O draws the line the model most depends on: influence is the weakest relation, and generation - where the target did not exist before - is a strict specialisation of it. Attribution is evidential and may never be read as causal. A verb that hedges may only make a dispositional or advisory claim, and no claim class may sit unused." ;
  umi:why "Two links can have the same shape and entirely different standing — one true by definition, one merely typical, one observed, one causal. Provenance vocabularies separate influence from generation for exactly this reason, and a cause read out of a co-occurrence is the error they were built to prevent. Where that distinction is not carried on the relationship itself, an observed co-occurrence is eventually read as a cause." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work>, <https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-009> ;
  umi:licenses <https://umi-graph.com/relationships/#actions-triggers-event>, <https://umi-graph.com/relationships/#events-attributed-to-tactic>, <https://umi-graph.com/relationships/#signals-observes-event>, <https://umi-graph.com/relationships/#signals-informs-intelligence>, <https://umi-graph.com/relationships/#intelligence-advises-purpose> .

<https://umi-graph.com/commitments/the-reverse-reading-is-named-not-improvised/#article>
  a umi:Commitment ;
  rdfs:label "The reverse reading is named, not improvised" ;
  dcterms:identifier "RUL-018" ;
  umi:statement "A relationship is stored once, and its reverse is read, never asserted. But a reading needs a name: the reverse of 'includes surface' is not 'is includes surface by'. Each relationship therefore declares its inverse verb, so that the same one assertion reads as a sentence from either end. OWL 2 states the discipline: declare one property the inverse of another and the reverse follows by inference. The inverse inherits the claim, differs from the forward verb, and is never the forward verb wrapped in 'is ... by'." ;
  umi:why "A relationship stored once still has to be readable from both ends, and a mechanically generated reverse produces phrases no one would write. Declaring one property the inverse of another lets the reverse follow by inference and still read as language. It is what keeps a structure traversable in both directions without asserting anything twice." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work>, <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-010> .

<https://umi-graph.com/commitments/an-exemplar-shows-the-shape-a-record-takes/#article>
  a umi:Commitment ;
  rdfs:label "An exemplar shows the shape a record takes" ;
  dcterms:identifier "RUL-019" ;
  umi:statement "A source-backed kind admits records: rows that name the durable source they came from. Before any record exists the kind still has a shape, and one canonical representative can show it. That representative is an exemplar. SKOS treats an example as a note about a concept, not a fact about the world, and the exemplar is read the same way: it documents the pattern, carries no source reference and never pretends to one. A record carries a source reference and is never an exemplar; a vocabulary term is neither, because it already is the pattern. Each registry states once how an exemplar and a record are each named, so the exemplar's label is the naming convention made visible." ;
  umi:why "A model with no instances cannot be evaluated, and a model with invented instances cannot be trusted. Treating an example as documentation of a concept rather than an assertion about the world resolves the bind: one marked exemplar shows what a record of the kind looks like, while the claim that any such record exists stays unmade." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-011> ;
  umi:licenses <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/actions/#set>, <https://umi-graph.com/time-windows/#set>, <https://umi-graph.com/geographies/#set>, <https://umi-graph.com/audience-segments/#set>, <https://umi-graph.com/preferences/#set>, <https://umi-graph.com/permission-bases/#set>, <https://umi-graph.com/offers/#set>, <https://umi-graph.com/creative-assets/#set>, <https://umi-graph.com/metric-formulas/#set>, <https://umi-graph.com/targets/#set> .

<https://umi-graph.com/commitments/knowledge-enters-as-a-term-or-an-assertion-never-as-a-new-field/#article>
  a umi:Commitment ;
  rdfs:label "Knowledge enters as a term or an assertion, never as a new field" ;
  dcterms:identifier "RUL-020" ;
  umi:statement "Material arriving from outside this model enters in one of three forms and no other. A row carries an identifier, a label and a definition. An assertion uses a relationship that already exists; declaring a new one first requires its endpoint kinds, a cardinality, a claim, an inverse and a commitment that licenses it, so nothing can introduce structure merely by arriving. A property is the rarest of the three: it enters only where a commitment licenses it across an entire evidence class, says what it means, and a check tests every row of that class for it. A field outside the licensed set is not admitted, whatever supplied it." ;
  umi:why "A model that ingests from elsewhere ends up shaped by what arrived rather than by what it decided. A field added because one import happened to carry it becomes a field every later term is read against, and nothing removes it afterwards because nothing remembers why it was there. Fixing the forms in advance is what lets an outside source enlarge what the model knows without altering what it is." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work>, <https://umi-graph.com/sources/the-singapore-framework-for-dublin-core-application-profiles/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-013> .

<https://umi-graph.com/commitments/state-and-intent-are-read-against-one-ordered-lifecycle/#article>
  a umi:Commitment ;
  rdfs:label "State and intent are read against one ordered lifecycle" ;
  dcterms:identifier "RUL-021" ;
  umi:statement "A Lifecycle Stage is one position on a single ordered ladder from first contact to advocacy, and the order is asserted as precedence rather than left to the sequence rows happen to appear in. Every Consumer State sits in exactly one stage, which gives a vocabulary of conditions an order without making it a machine. A Goal advances at most one stage; a Goal that advances none is a goal about the ability to measure rather than about moving anyone. The machine that carries a consumer between positions remains the Journey. It runs across a contiguous run of stages rather than standing in for the ladder: it may carry a person in either direction within that run, and it may not skip a rung." ;
  umi:why "A lifecycle vocabulary with no order can only be listed. Nothing says whether one condition is nearer an outcome than another, so it cannot be walked, compared, or drawn in the sequence every reader already has in mind. Order left to the order of entry is worse than absent, because it looks authoritative, cannot be queried, and changes silently the moment an entry is inserted. Naming the ladder once also gives conditions and intentions a common frame: without it, what a consumer is and what the brand wants are two vocabularies that rhyme and never meet." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/the-goal-question-metric-approach/#work>, <https://umi-graph.com/sources/a-model-for-predictive-measurements-of-advertising-effectiveness/#work>, <https://umi-graph.com/sources/understanding-customer-experience-throughout-the-customer-journey/#work>, <https://umi-graph.com/sources/the-consumer-decision-journey/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-014>, <https://umi-graph.com/checks/#fnd-017> ;
  umi:licenses <https://umi-graph.com/lifecycle-stages/#set>, <https://umi-graph.com/consumer-states/#set>, <https://umi-graph.com/goals/#set>, <https://umi-graph.com/journeys/#set>, <https://umi-graph.com/relationships/#lifecycle-stages-precedes>, <https://umi-graph.com/relationships/#consumer-states-sits-in-stage>, <https://umi-graph.com/relationships/#goals-advances-stage>, <https://umi-graph.com/relationships/#metrics-counts-occupants-of> .

<https://umi-graph.com/commitments/every-term-is-about-something-in-the-world/#article>
  a umi:Commitment ;
  rdfs:label "Every term is about something in the world" ;
  dcterms:identifier "RUL-022" ;
  umi:statement "Every row grounds on exactly one Entities row: the thing in the world the row is ultimately about. Grounding is a relationship like any other and is declared like one - a verb, a named inverse, a governed cardinality and a constitutive claim - so it can be read from either end. It is declared once for the whole model rather than repeated by each kind, because it is a relationship every kind makes and no kind owns, and it is asserted once, on the row, never a second time as a separate assertion saying the same thing." ;
  umi:why "A term that does not say what it is about cannot be joined to anything: two terms describing the same thing in the world are unrecognisable as such, and a vocabulary of terms floats free of the subject matter it was built to describe. Declaring it as a bare field rather than a relationship costs more than tidiness. A field reads in one direction only, so the thing being described never learns what describes it - the entity a hundred terms are about renders as though nothing points at it, which is the opposite of the truth and the single most misleading thing a knowledge graph can tell a reader. Stated as a relationship with a named inverse, both readings come back for free, and the grain declaration every term already makes becomes traversable rather than merely recorded." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/declaring-the-grain/#work>, <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-004> ;
  umi:licenses <https://umi-graph.com/entities/#set>, <https://umi-graph.com/relationships/#time-windows-grounds-on>, <https://umi-graph.com/relationships/#geographies-grounds-on>, <https://umi-graph.com/relationships/#identity-levels-grounds-on>, <https://umi-graph.com/relationships/#journeys-grounds-on>, <https://umi-graph.com/relationships/#lifecycle-stages-grounds-on>, <https://umi-graph.com/relationships/#consumer-states-grounds-on>, <https://umi-graph.com/relationships/#journey-states-grounds-on>, <https://umi-graph.com/relationships/#journey-transitions-grounds-on>, <https://umi-graph.com/relationships/#content-types-grounds-on>, <https://umi-graph.com/relationships/#creative-formats-grounds-on>, <https://umi-graph.com/relationships/#creative-assets-grounds-on>, <https://umi-graph.com/relationships/#creative-size-specifications-grounds-on>, <https://umi-graph.com/relationships/#channel-grounds-on>, <https://umi-graph.com/relationships/#surface-grounds-on>, <https://umi-graph.com/relationships/#technology-platforms-grounds-on>, <https://umi-graph.com/relationships/#vendor-grounds-on>, <https://umi-graph.com/relationships/#audience-segments-grounds-on>, <https://umi-graph.com/relationships/#preference-types-grounds-on>, <https://umi-graph.com/relationships/#preferences-grounds-on>, <https://umi-graph.com/relationships/#lawful-bases-grounds-on>, <https://umi-graph.com/relationships/#processing-purposes-grounds-on>, <https://umi-graph.com/relationships/#permission-bases-grounds-on>, <https://umi-graph.com/relationships/#campaign-purpose-grounds-on>, <https://umi-graph.com/relationships/#campaign-grounds-on>, <https://umi-graph.com/relationships/#tactics-grounds-on>, <https://umi-graph.com/relationships/#actions-grounds-on>, <https://umi-graph.com/relationships/#offers-grounds-on>, <https://umi-graph.com/relationships/#events-grounds-on>, <https://umi-graph.com/relationships/#signals-grounds-on>, <https://umi-graph.com/relationships/#intelligence-grounds-on>, <https://umi-graph.com/relationships/#attribution-models-grounds-on>, <https://umi-graph.com/relationships/#evidence-designs-grounds-on>, <https://umi-graph.com/relationships/#parameters-grounds-on>, <https://umi-graph.com/relationships/#setting-bases-grounds-on>, <https://umi-graph.com/relationships/#event-grain-grounds-on>, <https://umi-graph.com/relationships/#measure-direction-grounds-on>, <https://umi-graph.com/relationships/#measure-form-grounds-on>, <https://umi-graph.com/relationships/#units-grounds-on>, <https://umi-graph.com/relationships/#metrics-grounds-on>, <https://umi-graph.com/relationships/#goals-grounds-on>, <https://umi-graph.com/relationships/#kpis-grounds-on>, <https://umi-graph.com/relationships/#targets-grounds-on>, <https://umi-graph.com/relationships/#metric-formulas-grounds-on>, <https://umi-graph.com/relationships/#external-terms-grounds-on> .

<https://umi-graph.com/commitments/a-declared-path-must-be-walkable/#article>
  a umi:Commitment ;
  rdfs:label "A declared path must be walkable" ;
  dcterms:identifier "RUL-023" ;
  umi:statement "Declaring a relationship is not the same as carrying one. Where the model leans on a kind to hold something up, every row of that kind states the relationships the kind exists to carry - or, where the model has a way to say that an input does not yet exist, declares that instead. And where a claim rests on a sequence of steps rather than a single one, that path is walkable end to end by at least one row. A relationship declared across the registry and asserted nowhere is a failure of the model, not a thin line on a map." ;
  umi:why "Every other check asks whether a relationship is well formed: typed, bounded, licensed, inverted. None asks whether anything travels it. So the model could pass every check with a verb declared for thirty-eight kinds and asserted by none, and say nothing - which is what happened. A reader meeting that has no way to tell a deliberate absence from an oversight, and neither does the author six months on. The distinction is schema completeness against population completeness: the first was already enforced here and the second had no instrument at all. It matters most where a claim is a chain rather than a link. Performance asserted from delivery alone, with no step that reaches a person, is the specific failure measurement standards exist to prevent, and it is invisible to a check that only reads one edge at a time." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-015>, <https://umi-graph.com/checks/#fnd-017>, <https://umi-graph.com/checks/#fnd-020>, <https://umi-graph.com/checks/#fnd-026> ;
  umi:licenses <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/goals/#set>, <https://umi-graph.com/intelligence/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/metrics/#set>, <https://umi-graph.com/signals/#set>, <https://umi-graph.com/tactics/#set>, <https://umi-graph.com/consumer-states/#set>, <https://umi-graph.com/journeys/#set>, <https://umi-graph.com/journey-states/#set>, <https://umi-graph.com/journey-transitions/#set>, <https://umi-graph.com/relationships/#actions-triggers-event>, <https://umi-graph.com/relationships/#campaign-contains-tactic>, <https://umi-graph.com/relationships/#campaign-measured-by>, <https://umi-graph.com/relationships/#events-acted-by-consumer>, <https://umi-graph.com/relationships/#intelligence-answers-goal>, <https://umi-graph.com/relationships/#intelligence-is-evaluated-by>, <https://umi-graph.com/relationships/#kpis-has-metric>, <https://umi-graph.com/relationships/#kpis-serves-goal>, <https://umi-graph.com/relationships/#metrics-computed-from-formula>, <https://umi-graph.com/relationships/#metrics-takes-as-numerator>, <https://umi-graph.com/relationships/#metrics-counts-in-numerator>, <https://umi-graph.com/relationships/#signals-informs-intelligence>, <https://umi-graph.com/relationships/#tactics-uses-channel>, <https://umi-graph.com/relationships/#tactics-uses-surface>, <https://umi-graph.com/relationships/#journey-states-realizes-consumer-state>, <https://umi-graph.com/relationships/#journey-transitions-belongs-to-journey>, <https://umi-graph.com/relationships/#journeys-begins-at>, <https://umi-graph.com/relationships/#journey-transitions-triggered-by> .

<https://umi-graph.com/commitments/a-move-that-cannot-be-counted-is-a-picture/#article>
  a umi:Commitment ;
  rdfs:label "A move that cannot be counted is a picture" ;
  dcterms:identifier "RUL-025" ;
  umi:statement "Every legal move between journey positions is triggered by at least one event that an instrument observes, and that instrument is a numerator or denominator of a reading a KPI carries, or an input of the formula that computes one. The fact that enters a condition is the denominator of the rate that measures leaving it, so a state-entry fact is counted once as the move in and once as the population the next move leaves from. A move triggered by a window closing counts over its journey's window: every journey names the interval of inactivity after which it presumes a person has stepped back." ;
  umi:why "A journey that names its moves and cannot count them is a funnel with arrows: it can be drawn and not measured, which is the failure a state machine was adopted to end. Customer-migration models make the point exactly. A transition rate is the moves out of a condition over the people in it, and the people in it are the fact that put them there; so the events added to give every move a trigger are not extra instrumentation but the missing denominators of rates the model already carried and could not derive. A law that every move has a trigger, satisfied by facts nothing observes, would be the same picture with more arrows." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/modeling-customer-relationships-as-markov-chains/#work>, <https://umi-graph.com/sources/declaring-the-grain/#work>, <https://umi-graph.com/sources/the-goal-question-metric-approach/#work>, <https://umi-graph.com/sources/counting-your-customers-the-easy-way-an-alternative-to-the-pareto-nbd-model/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-019> ;
  umi:licenses <https://umi-graph.com/journey-transitions/#set>, <https://umi-graph.com/events/#set>, <https://umi-graph.com/signals/#set>, <https://umi-graph.com/metrics/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/metric-formulas/#set>, <https://umi-graph.com/journeys/#set>, <https://umi-graph.com/time-windows/#set>, <https://umi-graph.com/relationships/#journey-transitions-triggered-by>, <https://umi-graph.com/relationships/#signals-observes-event>, <https://umi-graph.com/relationships/#metrics-counts-in-numerator>, <https://umi-graph.com/relationships/#metrics-counts-in-denominator>, <https://umi-graph.com/relationships/#metric-formulas-takes-input>, <https://umi-graph.com/relationships/#kpis-has-metric>, <https://umi-graph.com/relationships/#journeys-times-out-after> .

<https://umi-graph.com/commitments/a-question-the-graph-answers-is-declared-and-walked/#article>
  a umi:Commitment ;
  rdfs:label "A question the graph answers is declared, and walked" ;
  dcterms:identifier "RUL-026" ;
  umi:statement "The graph exists to answer questions, and the questions are declared. Each is a competency question stated in words, with the chain of relationships that answers it named kind to kind, walked forward or in reverse. The build walks every declared chain end to end through the rows and refuses one nothing travels; and every kind lies on at least one declared question, so the graph holds nothing no question needs. A pattern may walk a typing like any other relationship, because what a thing is typed by is part of the answer and may itself be typed; it never walks a grounding, which says only that a kind exists, and the build refuses one that tries." ;
  umi:why "An ontology is built to answer questions, and the ontology-design literature evaluates one by whether it can: competency questions are stated first, and completeness is read against them. A knowledge graph that publishes its kinds and relationships but not the questions they exist to answer asks a reader to infer its purpose from its shape, and lets a kind survive that no question needs. Declaring the questions makes the purpose a fact the build can test, and makes every kind account for itself by naming a question it lies on." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work>, <https://umi-graph.com/sources/ontologies-principles-methods-and-applications/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/sparql-1-1-query-language-property-paths/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-021> .

<https://umi-graph.com/commitments/a-reading-names-its-unit-and-the-unit-fits-its-form/#article>
  a umi:Commitment ;
  rdfs:label "A reading names its unit, and the unit fits its form" ;
  dcterms:identifier "RUL-027" ;
  umi:statement "Every Metric is measured in exactly one Unit from a governed vocabulary: Count, Percent, Ratio, Currency, Rank and Score. A Unit declares which arithmetic forms it fits, and the build refuses a KPI whose form its Metric's unit does not fit, a quotient measured in a count, and a Metric in Percent or Ratio that names its numerator directly but no denominator. The unit belongs to the Metric, because the calculation carries it and the KPI only reads it." ;
  umi:why "A number without its unit is not a reading. Metrology defines a quantity value as a number and a reference together, and the unit codes exist because a value that travels without its unit is misread at the far end: a rate and a count that print the same figure have said different things, and percent is a name for the number 0.01, not a kind of thing. This model already fixed a KPI's direction and form as facts in the graph; the unit is the third fact of that family. Declaring which forms a unit fits is what a unit ontology does when it binds units to kinds of quantity, and it turns unit-form agreement from a review into a check." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/international-vocabulary-of-metrology-basic-and-general-concepts-and-associated-terms-vim-jcgm-200-2012/#work>, <https://umi-graph.com/sources/iso-80000-1-2022-quantities-and-units-part-1-general/#work>, <https://umi-graph.com/sources/the-unified-code-for-units-of-measure-version-2-2/#work>, <https://umi-graph.com/sources/qudt-ontologies-quantities-units-dimensions-and-data-types-release-2-1/#work>, <https://umi-graph.com/sources/iso-4217-currency-codes/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-022> ;
  umi:licenses <https://umi-graph.com/metrics/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/units/#set>, <https://umi-graph.com/measure-form/#set>, <https://umi-graph.com/relationships/#metrics-measured-in>, <https://umi-graph.com/relationships/#units-fits-form>, <https://umi-graph.com/relationships/#kpis-reads-as>, <https://umi-graph.com/relationships/#kpis-has-metric> .

<https://umi-graph.com/commitments/a-target-is-a-level-on-a-reading-due-within-a-window/#article>
  a umi:Commitment ;
  rdfs:label "A target is a level on a reading, due within a window" ;
  dcterms:identifier "RUL-028" ;
  umi:statement "A Target is a quantified, time-boxed commitment: it sets a level for exactly one KPI, quantifies exactly one Goal that KPI serves, and is due within exactly one Time Window. Its direction is the KPI's and its unit is the Metric's, so neither is restated. A Campaign pursues zero or more Targets, and is measured by each target's KPI and supports each target's goal. A Target is not a Goal, which is the outcome wanted, and not a KPI, which is how the outcome is read; it is the promise that joins them, and what a result is judged against." ;
  umi:why "Goal-setting research finds that specific, difficult goals produce higher performance than vague or absent ones, and that the effect depends on the goal being measurable and time-bound; the management literature made the same point as a mnemonic in 1981, and the frameworks that join strategy to metrics give each goal a magnitude and a timeframe. This model held goals as evergreen outcome areas and KPIs as readings, and left the level a campaign was actually committed to nowhere: a campaign could be measured by a KPI without ever saying what result would count as success. A Target makes that commitment a term of its own, joins it to the goal and the reading it belongs to, and lets the build refuse a campaign that promises a reading it does not take." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/building-a-practically-useful-theory-of-goal-setting-and-task-motivation-a-35-year-odyssey/#work>, <https://umi-graph.com/sources/there-s-a-s-m-a-r-t-way-to-write-management-s-goals-and-objectives/#work>, <https://umi-graph.com/sources/aligning-organizations-through-measurement-the-gqm-strategies-approach/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-023> ;
  umi:licenses <https://umi-graph.com/targets/#set>, <https://umi-graph.com/kpis/#set>, <https://umi-graph.com/goals/#set>, <https://umi-graph.com/time-windows/#set>, <https://umi-graph.com/campaign/#set>, <https://umi-graph.com/relationships/#targets-sets-level-for>, <https://umi-graph.com/relationships/#targets-quantifies-goal>, <https://umi-graph.com/relationships/#targets-due-within>, <https://umi-graph.com/relationships/#campaign-pursues-target>, <https://umi-graph.com/relationships/#kpis-serves-goal>, <https://umi-graph.com/relationships/#campaign-measured-by>, <https://umi-graph.com/relationships/#campaign-supports-goal> .

<https://umi-graph.com/commitments/a-term-may-be-known-by-other-names-and-they-are-labels-not-terms/#article>
  a umi:Commitment ;
  rdfs:label "A term may be known by other names, and they are labels, not terms" ;
  dcterms:identifier "RUL-029" ;
  umi:statement "A row has one preferred label and may carry alternate labels: the abbreviations, trade names and spellings a reader or a machine will actually search by. An alternate label is a lexical fact about the same term, never a second row and never a relationship. It is admitted only where the name is in established use, it never repeats the row's own label or any label or alternate label of another row in the same kind, and it is projected wherever the label is: in the structured data as alternateName, in the search index and the header search, and in llms.txt." ;
  umi:why "A term searched under the name its readers use and not found is, for them, a term that does not exist. Thesaurus practice has one preferred term per concept and non-preferred terms that lead to it, and SKOS makes the same distinction with one preferred label and any number of alternative labels that never collide within a scheme. This model carried one name per term and none of the names the trade uses for the same thing, so CTR found nothing and Click-through Rate had to be known in advance. The names belong on the term they name, and the same integrity rule that keeps a label unique in its kind keeps the aliases honest." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/iso-25964-1-2011-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-1-thesauri-for-information-retrieval/#work>, <https://umi-graph.com/sources/schema-org-alternatename/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-024> .

<https://umi-graph.com/commitments/an-identifier-names-one-thing-and-never-a-second/#article>
  a umi:Commitment ;
  rdfs:label "An identifier names one thing, and never a second" ;
  dcterms:identifier "RUL-030" ;
  umi:statement "A row's identifier is its kind's prefix and an ordinal number, given once and never changed: the label may change, and the address with it, but the identifier does not. An identifier that is retired is written down in its kind with the date and the reason, is never given to another row, and leaves a gap that is a record rather than a slot. The build refuses a row that takes a retired identifier and a gap that no retirement explains." ;
  umi:why "A knowledge graph that means to be cited has to keep faith with every reference ever made into it, and a reference is made to an identifier. The stewardship principles for data ask first of all for an identifier that is unique and persistent, and the web's own architecture note says the same of addresses: what changes is the name, never the thing named. Here ten identifiers had already been retired with nothing written down, so a gap in a sequence could not be told from a slot waiting to be filled, which is how a retired identifier comes to mean a second thing." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/the-fair-guiding-principles-for-scientific-data-management-and-stewardship/#work>, <https://umi-graph.com/sources/cool-uris-don-t-change/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-003> .

<https://umi-graph.com/commitments/the-ground-has-one-schema-and-it-is-data/#article>
  a umi:Commitment ;
  rdfs:label "The ground has one schema, and it is data" ;
  dcterms:identifier "RUL-031" ;
  umi:statement "The shape of every file the ground and the ledger are written in is declared once, as data: for each object, its fields in order, each field's type, whether it is required, and its values where the set is closed. The build reads that declaration and validates every file against it before any other law runs, and no rule about shape lives in code. The same declaration is emitted as JSON Schema on every build, so an editor validates a file as it is written and an agent reads the contract without reading the build." ;
  umi:why "A shape enforced only in code is a second declaration of the ground, hidden where a reader of the ground will not look, and two declarations drift. A closed set declared once as a governed set and written again inline, as subsets of it, is a set authored in several places; a value entering it has to be written in each before anything accepts it, and any one of them can be missed. A knowledge graph that expects to be extended by people and by agents needs its contract where the data is, in a form both can read. The ontology literature asks the same of any shared vocabulary, that its commitments be explicit and inspectable; a schema is that commitment for shape, and the standard for stating one is JSON Schema." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/json-schema-draft-2020-12-core-and-validation-specifications/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-013>, <https://umi-graph.com/checks/#ring-0>, <https://umi-graph.com/checks/#ring-1>, <https://umi-graph.com/checks/#ring-4> .

<https://umi-graph.com/commitments/the-model-is-written-in-the-standards-its-foundations-name/#article>
  a umi:Commitment ;
  rdfs:label "The model is written in the standards its foundations name" ;
  dcterms:identifier "RUL-032" ;
  umi:statement "On every build the model is written, from the verified graph and without a clock, in the standards its foundations name: the kinds as OWL classes and SKOS concept schemes, the relationships as object properties with domain, range and named inverse, the rows as individuals and concepts with their labels, definitions and alternate labels, the assertions as triples, the cardinalities and spines as SHACL shapes, the acyclic relationships as SHACL-SPARQL constraints, each declared question as a SPARQL property path, and the artifact's derivation from its ground in PROV. Every identifier is the one the site's structured data already publishes." ;
  umi:why "A foundation that names a standard and is never written in it has named an aspiration. Written in the standard, the model can be proved by a validator that is not this build, and a declared question can be answered by a query engine that is not this build; two engines over one ground agreeing is a stronger fact than one engine agreeing with itself. It also makes the model portable: a graph store, a reasoner or an agent that speaks these standards reads it without reading this repository." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work>, <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/sparql-1-1-query-language-property-paths/#work>, <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-8> .

<https://umi-graph.com/commitments/an-address-is-a-label-s-made-once/#article>
  a umi:Commitment ;
  rdfs:label "An address is a label's, made once" ;
  dcterms:identifier "RUL-033" ;
  umi:statement "Every page address is made once, from a label, by the scheme the law declares: the site reads the path the graph carries and never slugs a label itself, the standards export writes the same path as its IRI, and the build refuses two pages that would share an address or a kind that would answer to a name the site reserves. An address carries a label, never an identifier; the identifier travels in the page's structured data. The doors of the site are declared the same way: a section opens a name the law already reserves, so its address is the reservation rather than a copy of it, and what a reader is told the door is, and which group it falls into, are the law's to say and not the surface's to invent." ;
  umi:why "Two copies of the rule that turns a label into an address drift the first time one is edited, and the drift is silent: a page still renders, its structured data names one address and the standards export another, and neither build can tell. One scheme, declared as data and filled in one place, makes an address a fact of the ground that everything downstream reads rather than a rule each consumer re-derives." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/cool-uris-don-t-change/#work>, <https://umi-graph.com/sources/the-fair-guiding-principles-for-scientific-data-management-and-stewardship/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-025>, <https://umi-graph.com/checks/#ring-6> .

<https://umi-graph.com/commitments/the-proof-runs-without-a-hand/#article>
  a umi:Commitment ;
  rdfs:label "The proof runs without a hand" ;
  dcterms:identifier "RUL-034" ;
  umi:statement "Every push runs the rings a hand can run: the build, the proof that the committed artifact is the build of the committed ground, the breakage suite, the standards proof with its validator installed, and the site build. A deploy is of a commit those rings passed." ;
  umi:why "A gate a person remembers to run is a gate that is skipped the day the person is hurried, and twice in one day a commit landed that no ring had seen because a shell chain broke silently. Determinism makes the strongest check free: the graph is a pure function of the ground, so a rebuild that differs from what was committed is a ground that moved without its artifact, and a plain comparison says so." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/reproducible-builds-definition/#work>, <https://umi-graph.com/sources/continuous-integration/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#eval-laws>, <https://umi-graph.com/checks/#eval-record>, <https://umi-graph.com/checks/#eval-host>, <https://umi-graph.com/checks/#eval-engine> .

<https://umi-graph.com/commitments/a-page-is-shareable-as-itself/#article>
  a umi:Commitment ;
  rdfs:label "A page is shareable as itself" ;
  dcterms:identifier "RUL-035" ;
  umi:statement "Every indexed page declares its own preview: an Open Graph title, description and canonical address, a large-image card, and an image composed at build time from the same view model the page renders, at the address beside the page the law declares. Each page type composes differently: a row shows its kind, band and definition; a question shows its chain of kinds and verbs; a commitment its statement; a band its kinds. A share control on every page, a native disclosure that works without script, offers the device's own share sheet where the browser has one, a copied link, and a network's compose intent; every intent is a plain link a crawler is told not to follow. Nothing loads from any network to do it." ;
  umi:why "A link that unfurls to a scraper's guess, or to nothing, is a page that cannot travel, and the graph's value to a community is a view that sparks a conversation, which has to arrive intact wherever the conversation is. Composing the preview from the graph, by page type, at build time makes the shared card as governed and as deterministic as the page, and keeps the standardised structure legible to whatever composes with it next, a person or a machine." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/the-open-graph-protocol/#work>, <https://umi-graph.com/sources/cards-markup/#work>, <https://umi-graph.com/sources/web-share-api/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-6> .

<https://umi-graph.com/commitments/the-design-is-measured-not-asserted/#article>
  a umi:Commitment ;
  rdfs:label "The design is measured, not asserted" ;
  dcterms:identifier "RUL-036" ;
  umi:statement "Every colour the site reads is measured on the surface it is read on and held to a ratio the design declares; every colour token is either measured by a pair or declared decorative with the reason it need not be; every band's colour clears the same floor as chip text; no retired colour returns; and every type size is a step on the declared scale, none below its floor." ;
  umi:why "A design written down drifts the first time a token is edited, because prose does not recompute. Contrast that is asserted rather than measured is a claim about a reader nobody tested, and the two that failed here were each within a tenth of the ratio they claimed. Measuring the built stylesheet rather than the source is what makes the claim one about what shipped." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/web-content-accessibility-guidelines-wcag-2-2/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-7> .

<https://umi-graph.com/commitments/the-prose-says-what-the-registry-says/#article>
  a umi:Commitment ;
  rdfs:label "The prose says what the registry says" ;
  dcterms:identifier "RUL-037" ;
  umi:statement "Every authored file here that describes the model is held to the model on every build, the site's own copy included: a number in a sentence is the number the build has, a relationship named is one the registry declares, a ring or an eval named is one the law catalogs under that label, the authored files the front doors list are the files the law declares, no sentence leaves in the manifest a section the kernel holds, and no word the model has retired is written anywhere but where it is declared retired and no authored file names a private repository or the engagement it was built for, nor any served page a former engagement’s industry vocabulary." ;
  umi:why "A sentence does not recompute. A count written in a sentence drifts the day a road is added, and a sentence that places the grounding or the machine's kind in a file is wrong the day the file stops holding it. Prose a build checks is prose a reader can believe; prose it does not check is a second copy of the model, drifting away from it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-5> .

<https://umi-graph.com/commitments/a-view-is-one-concept-over-one-primitive/#article>
  a umi:Commitment ;
  rdfs:label "A view is one concept, over one primitive" ;
  dcterms:identifier "RUL-038" ;
  umi:statement "A view is a purposeful projection of the graph: declared patterns, all asked from one kind, drawn in the way the law's own vocabulary for drawing declares, belonging to a declared deliverable where it belongs to one, and answered by binding those patterns from one row. What a view starts from and what it touches are read off its patterns and appear nowhere else. A view no row answers is not published." ;
  umi:why "There were three names for one idea and the noise was the cost of it. A question was a path over relationships, a job was a set of those from one term, and a plan view was a hand-kept list of kinds with no path behind it at all. The hand-kept one drifted exactly as a hand-kept list does: the Journeys tab promised a recommended campaign purpose and a primary KPI per journey state, and nothing in the model reaches either from a journey state. A list that is derived cannot make that claim, because there is nowhere to write it down." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work>, <https://umi-graph.com/sources/know-your-customers-jobs-to-be-done/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-028> .

<https://umi-graph.com/commitments/one-engine-and-a-second-runtime-of-it-is-a-port-under-proof/#article>
  a umi:Commitment ;
  rdfs:label "One engine, and a second runtime of it is a port under proof" ;
  dcterms:identifier "RUL-039" ;
  umi:statement "Binding a pattern is one function. Where it has to run somewhere the build cannot reach, the second copy is a port of the first and never a second design, and a proof that both find the same bindings runs before the site is built. A second implementation without that proof is two models of one thing, which is the drift this ground exists to refuse." ;
  umi:why "A graph bound only while it is built shows a reader standing on a term only the shapes somebody wrote a page for; a surface that renders what was found can do nothing else. A person composing from the term in front of them, and an agent arriving with nothing but the published graph, both need to ask for a shape nobody declared, and neither can wait for a rebuild. The engine is short enough to port honestly and too important to port on trust." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/reproducible-builds-definition/#work>, <https://umi-graph.com/sources/continuous-integration/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#eval-engine> .

<https://umi-graph.com/commitments/governance-and-execution-share-one-substrate/#article>
  a umi:Commitment ;
  rdfs:label "Governance and execution share one substrate" ;
  dcterms:identifier "RUL-040" ;
  umi:statement "A governed vocabulary says what it governs and which gate holds it, and each of its values carries what makes it real: the condition that selects it, or the files that draw it. A value may not be declared with nothing anywhere to realise it, and a rule that selects a value is written once, where the value is, and read from there by everything that acts on it." ;
  umi:why "Every closed set here was a name and a sentence, and the sentence said the rule while the code said it again. The vocabulary for how a bound pattern draws itself stated its own selection rule four times, in English, in the law; the surface stated the same rule in TypeScript; and nothing held the two together, so changing the law would have left the surface quietly doing the old thing. In the other direction a third way of drawing could be declared, described, and pass every gate while nothing on earth drew it. Governance and execution were two substrates pretending to be one, which is the same defect as prose that outlives what it describes, one layer down." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-029>, <https://umi-graph.com/checks/#fnd-030> .

<https://umi-graph.com/commitments/the-operations-an-agent-may-drive-are-declared/#article>
  a umi:Commitment ;
  rdfs:label "The operations an agent may drive are declared" ;
  dcterms:identifier "RUL-041" ;
  umi:statement "Everything that may be done with the published parts is a value of one governed vocabulary: what it takes, what it gives, which published address it reads, and the files that serve it. The surface performs those operations and no others, an agent arriving with the published parts learns them from the parts and not from the surface's source, and a declared operation nothing serves is refused." ;
  umi:why "The engine was published, in two runtimes proven identical, and the parts it binds against were published beside it. What could be done with them was still implied by the code that did it: a reader could compose from a term because a component happened to offer it, and an agent could bind because it had read the engine, but neither the offering nor the binding nor the drawing nor the carrying away was a thing the ground named. A capability the ground does not name is one the surface can quietly gain or lose, and one no second surface can be built to." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work>, <https://umi-graph.com/sources/ontologies-principles-methods-and-applications/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-6>, <https://umi-graph.com/checks/#eval-engine> .

<https://umi-graph.com/commitments/everything-composed-is-a-composition-of-known-parts-at-every-level/#article>
  a umi:Commitment ;
  rdfs:label "Everything composed is a composition of known parts, at every level" ;
  dcterms:identifier "RUL-042" ;
  umi:statement "A pattern is composed of kinds and relationships; a view of patterns; a deliverable of views. Each level is declared, has an address, and reads down to the ground through the level beneath it; none holds a fact of its own. A deliverable is plural and declared, never a singleton written into the manifest, the addresses or the checks; and one mechanism binds, draws and addresses a pattern, a view and a deliverable alike, so what distinguishes them on the surface is the application and not the machinery." ;
  umi:why "A deliverable written as a singleton into the manifest, the address template, the view law, the build, the reader and the header cannot be joined by a second one without touching all six, and the job that builds it belongs to nothing though it is named after it. Everything is a node, patterns included, and a node may be a composition of known nodes. The public backing is older: a pattern language is a network of patterns each composed of smaller ones, and the composite pattern treats a leaf and a composition uniformly." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/a-pattern-language-towns-buildings-construction/#work>, <https://umi-graph.com/sources/design-patterns-elements-of-reusable-object-oriented-software/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-028>, <https://umi-graph.com/checks/#fnd-025> .

<https://umi-graph.com/commitments/a-composition-a-reader-manifests-has-an-address-is-held-before-it-binds-and-never-enters-the-ground/#article>
  a umi:Commitment ;
  rdfs:label "A composition a reader manifests has an address, is held before it binds, and never enters the ground" ;
  dcterms:identifier "RUL-043" ;
  umi:statement "A shape a reader or an agent composes at runtime lives in its own address: the whole of it, roles, edges and pins, carried in the fragment of the page that composed it, so it is theirs and is never written to the ground by being made. Before it binds it is held to the same grammar as a declared pattern, by a check that does not know who wrote it. It never enters the ground: the ground is authored in the registry and nowhere else." ;
  umi:why "The ground exists so that a surface can compose over it: declared patterns from a declared term, and shapes nobody declared. A shape nobody declared needs somewhere to live and something to hold it, because an engine binds any roles and edges it is handed, which is exactly right for an engine and exactly wrong for a sandbox. A pattern is data with a closed grammar - roles that name kinds, edges that name declared relationships between them - and that is what makes composing over it safe rather than hopeful: an agent that composes a relationship the model does not declare is refused by the law that refuses an author. An agent composes and never writes canon; a composition that lives in its link rather than in a registry is that discipline made structural rather than asked for." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/cool-uris-don-t-change/#work>, <https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#eval-engine>, <https://umi-graph.com/checks/#ring-6> .

<https://umi-graph.com/commitments/an-answer-the-graph-gives-has-an-address/#article>
  a umi:Commitment ;
  rdfs:label "An answer the graph gives has an address" ;
  dcterms:identifier "RUL-044" ;
  umi:statement "Every declared question, answered from every row it can be answered from, is a page of its own, where and only where the walk from that row is non-empty: the same engine binds it at build, the page is canonical to itself and linked from the row and from the question, its structured data is the question as asked from that row with the rows the walk reached as an ordered list, and no page exists for an empty answer." ;
  umi:why "A reader who arrives with a question arrives at an address, and an answer engine cites addresses. The composer answers any declared question from any term on demand, but a thing that exists only after a click has no address to cite and nothing for a crawler to read. The risk of publishing many pages from one template is the one Google names as scaled content and doorway abuse: pages that say little and funnel. The guard is structural: a page exists only where the binding is non-empty, says exactly what was bound and nothing generic, and sits in the hierarchy under its question and beside its term." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/spam-policies-for-google-web-search/#work>, <https://umi-graph.com/sources/itemlist/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-6>, <https://umi-graph.com/checks/#eval-engine> .

<https://umi-graph.com/commitments/a-text-answers-one-question-in-the-reader-s-words/#article>
  a umi:Commitment ;
  rdfs:label "A text answers one question, in the reader's words" ;
  dcterms:identifier "RUL-045" ;
  umi:statement "Every text a kind carries beyond its name answers one question a reader brings, in the words the industry uses, under the kind's own noun: what it is, what it is used for, why it matters, where it came from, and how this model holds it. The law declares the set, the question each answers, the span of sentences an authored text is held within, and the mode each is read in; two are derived from what the model already knows and are never authored a second time; and every page is written once in every mode, with the reader's choice deciding which is shown before the first paint. A commitment is read on a page too, so the same register holds there: what it says holds, what goes wrong without it, where the model stands and what it does not claim name no file of this repository and no path into the law written as one key inside another, because a reader cannot open either and naming one tells them nothing they can follow." ;
  umi:why "A definition that also explains, argues and reminisces answers nothing well, and a page that speaks in its builder's words asks the reader to learn the builder's trade before learning the subject. SKOS gives one documentation property per kind of note for the same reason: a definition, a scope note, a history note and an editorial note are different questions, and a concept that keeps them apart is one two readers can agree on. A reader who wants the machinery should get all of it, and one who does not should never meet it under the subject's name, so the modes are one page in two registers rather than two pages or a page that hedges." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-031>, <https://umi-graph.com/checks/#ring-6>, <https://umi-graph.com/checks/#fnd-041> .

<https://umi-graph.com/commitments/prose-names-only-what-the-registry-holds/#article>
  a umi:Commitment ;
  rdfs:label "Prose names only what the registry holds" ;
  dcterms:identifier "RUL-046" ;
  umi:statement "A text may name another governed thing, a kind by its name or anything else by its identifier, in one declared form; the build resolves every such reference to the thing's address and label, refuses one that resolves to nothing, to two things or to the text's own subject, draws it as a link, and lists on the thing named where it is named. A reference is a name and never an assertion: prose may name, only the registry relates, and a pair the prose joins that the registry does not is listed as proposed and written nowhere." ;
  umi:why "A thing in this model is composed in part of its relationships to other things, and the prose about it names them whether or not anything checks. A name that resolves to nothing is a dead reference that reads as knowledge; a name typed by hand in a sentence is the second copy of an identifier the rename law says must exist once; and a link that is really a relationship, asserted in a paragraph and nowhere else, is a relationship the model does not know it has. Naming by identifier keeps the reference through a rename, resolving it on every build keeps it true, and refusing to let it assert anything keeps the registry the one place the model relates." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/cool-uris-don-t-change/#work>, <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-032>, <https://umi-graph.com/checks/#ring-6> .

<https://umi-graph.com/commitments/a-road-declares-its-grain/#article>
  a umi:Commitment ;
  rdfs:label "A road declares its grain" ;
  dcterms:identifier "RUL-047" ;
  umi:statement "Every relationship declares the grain it is asserted at. A vocabulary road is a fact about the kinds' rows, asserted in the registry, walked by questions and counted on every build. A record road is a fact only an instance can carry: the registry asserts nothing on it, no spine may require it, no question walks it, and its lower bound is zero. It exists so that a record shape can name the join a person-level system must make." ;
  umi:why "Kimball's first move is to declare the grain of a fact before anything is counted, and metrology keeps a quantity apart from the value one measurement of it takes. A road that says which tactic a conversion is credited to is true of one conversion and one tactic, never of the kinds; asserted in a vocabulary it can only be filled by the exemplar thread, and a check reading its fill sees an unfinished road where there is a fact of the wrong grain. Naming the grain on the road lets the registry hold vocabulary roads to their bounds, keeps record roads out of the spines and the questions, and gives the record shapes a declared join to stand on." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/declaring-the-grain/#work>, <https://umi-graph.com/sources/international-vocabulary-of-metrology-basic-and-general-concepts-and-associated-terms-vim-jcgm-200-2012/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-033> ;
  umi:licenses <https://umi-graph.com/relationships/#events-attributed-to-tactic>, <https://umi-graph.com/relationships/#campaign-parent-campaign>, <https://umi-graph.com/relationships/#surface-runs-on> .

<https://umi-graph.com/commitments/the-loop-is-law/#article>
  a umi:Commitment ;
  rdfs:label "The loop is law" ;
  dcterms:identifier "RUL-048" ;
  umi:statement "The kernel names the loops the model must close, each a shape whose edges form one cycle over all its roles, and the build holds every one to at least one instance. Two are named: the accountability loop, in which a campaign is measured by a reading whose evidence is the events that move a person out of the state the campaign targets; and the activation loop, in which what a campaign does is read back through an instrument and a metric to a goal the campaign supports." ;
  umi:why "A measurement approach that runs from goal to question to metric only earns its keep when the metric's evidence comes back to the goal, and a state machine only means something when its moves are the ones somebody can cause and count. A model can declare every road in a circuit and never ask whether what was sent along it came back. The first time the question was asked here, the campaign’s own email read back to a goal the campaign did not claim, and its reactivation reading counted nothing directly. Holding the loops closed on every build is what makes the gears a fact rather than a drawing." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/aligning-organizations-through-measurement-the-gqm-strategies-approach/#work>, <https://umi-graph.com/sources/statecharts-a-visual-formalism-for-complex-systems/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-034> .

<https://umi-graph.com/commitments/a-person-is-known-at-a-declared-level/#article>
  a umi:Commitment ;
  rdfs:label "A person is known at a declared level" ;
  dcterms:identifier "RUL-049" ;
  umi:statement "Every instrument declares the level at which it identifies the person behind what it observes: anonymous, where one person cannot be told from another; pseudonymous, where they can be told apart without being known; or known. The kernel names the kind, the road and the unresolved level, and no move of the journey machine rests only on evidence observed at that level." ;
  umi:why "A journey machine moves a person, and a move counted by an instrument that cannot tell one person from another is a move nobody made: an impression cannot move anyone, however many there are. The profile standards keep one representation of a person across the identifiers each source knows them by, and the regulation keeps pseudonymised data apart from identified data by exactly the additional information it takes to join them; a model that declares grain on its events but not resolution on its instruments cannot say which of its readings are about people at all. Declaring the level on the instrument, where the identifier lives, is what lets the build hold every move to evidence that could have been one person's." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/xdm-individual-profile-class/#work>, <https://umi-graph.com/sources/regulation-eu-2016-679-article-4-definitions/#work>, <https://umi-graph.com/sources/iso-iec-24760-1-2019-it-security-and-privacy-a-framework-for-identity-management-part-1-terminology-and-concepts/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-037> ;
  umi:licenses <https://umi-graph.com/identity-levels/#set>, <https://umi-graph.com/relationships/#signals-identifies-at> .

<https://umi-graph.com/commitments/cause-is-read-by-a-declared-design/#article>
  a umi:Commitment ;
  rdfs:label "Cause is read by a declared design" ;
  dcterms:identifier "RUL-050" ;
  umi:statement "A reading whose value rests on a claim of cause names the evidence design it is read by: a holdout experiment, a geo experiment, a matched-market test, a marketing mix model, or attribution. The attribution rules are one design among these and type into it, and the kernel names the record road credit is divided over, an event attributed to a tactic, so attribution has a declared object." ;
  umi:why "Two readings of the same outcome, one from a randomised holdout and one from a last-touch rule, are not two estimates of one number; they are answers to different questions, and a dashboard that shows them side by side without saying which is which invites the wrong decision. The measurement literature is explicit that observed credit and assigned effect diverge, that the returns to advertising are small against the noise, and that the mix model is a third design with limits of its own. Naming the design on the reading, and typing the attribution rules into one design, is what lets a plan say what kind of evidence it is asking for." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/a-comparison-of-approaches-to-advertising-measurement-evidence-from-big-field-experiments-at-facebook/#work>, <https://umi-graph.com/sources/causally-motivated-attribution-for-online-advertising/#work>, <https://umi-graph.com/sources/trustworthy-online-controlled-experiments-a-practical-guide-to-a-b-testing/#work>, <https://umi-graph.com/sources/measuring-ad-effectiveness-using-geo-experiments/#work>, <https://umi-graph.com/sources/the-unfavorable-economics-of-measuring-the-returns-to-advertising/#work>, <https://umi-graph.com/sources/challenges-and-opportunities-in-media-mix-modeling/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-026>, <https://umi-graph.com/checks/#fnd-015> ;
  umi:licenses <https://umi-graph.com/evidence-designs/#set>, <https://umi-graph.com/relationships/#metrics-read-by>, <https://umi-graph.com/relationships/#attribution-models-reads-as-design> .

<https://umi-graph.com/commitments/every-road-answers-a-competency-question/#article>
  a umi:Commitment ;
  rdfs:label "Every road answers a competency question" ;
  dcterms:identifier "RUL-051" ;
  umi:statement "Every relationship the registry declares, other than the grounding every kind makes, is walked by at least one declared pattern of its grain. A vocabulary road is walked by a question or a shape; a record road by a record shape. A road no pattern walks is refused." ;
  umi:why "An ontology is evaluated by the competency questions it can answer, and a relationship nobody asks about is a claim the model makes and never tests. A vocabulary that declares many relationships and asks about few of them hides its vague ones among the unasked, where nothing ever tests them. Holding every road to a pattern is what keeps the grammar the size of what is used, and it is what gives every application above the ground a road beneath it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work>, <https://umi-graph.com/sources/ontologies-principles-methods-and-applications/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-035> .

<https://umi-graph.com/commitments/a-person-level-record-has-a-declared-shape/#article>
  a umi:Commitment ;
  rdfs:label "A person-level record has a declared shape" ;
  dcterms:identifier "RUL-052" ;
  umi:statement "The joins a person-level record must be able to make are declared as record shapes: a position, an exposure, an attributed conversion, a reading and a consent receipt, each a shape over the kinds and the roads, walking at least one record road. The registry instantiates none of them; the standards export writes each as a SHACL node shape without a target, for a record system to apply. A campaign roll-up, the one record join not made at the person level, is declared the same way." ;
  umi:why "The vocabulary says what a metric is; only a record says what it read, over which window, in which market, for which segment. The vocabulary says which state a position realises; only a record says who held it and how well they were known. A model that stops at the vocabulary leaves every one of those joins to be invented again by each system that holds the records, and invented differently. Declaring the join as a shape, in the same grammar the questions are declared in, and exporting it in the constraint language a validator already reads, is what lets two record systems agree without either owning the other." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/consent-receipt-specification-1-1/#work>, <https://umi-graph.com/sources/xdm-individual-profile-class/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-036>, <https://umi-graph.com/checks/#ring-8> ;
  umi:licenses <https://umi-graph.com/relationships/#metrics-read-over>, <https://umi-graph.com/relationships/#metrics-read-in>, <https://umi-graph.com/relationships/#metrics-read-for>, <https://umi-graph.com/relationships/#journey-states-held-at>, <https://umi-graph.com/relationships/#events-occurs-within> .

<https://umi-graph.com/commitments/a-value-a-plan-fixes-is-a-governed-parameter/#article>
  a umi:Commitment ;
  rdfs:label "A value a plan fixes is a governed parameter" ;
  dcterms:identifier "RUL-053" ;
  umi:statement "Every value a plan has to fix before a reading, a rule, an instrument or a move can be computed is a declared parameter: a governed slot that says what it is a parameter of or what it constrains, the unit it is measured in and the basis its default rests on. The value in the slot is a record, set over a window, in a geography, for a segment, on a stated basis: a standard, a benchmark, an experiment or a decision. An evidence design that can establish a parameter's value calibrates it, and the calibration loop closes where the design a reading is read by calibrates a parameter of that reading." ;
  umi:why "A plan that runs on numbers nobody declared runs on numbers nobody can trace: a lookback window set in one platform's defaults, a frequency cap in another's, a visit timeout in a third's and a lapse rule in a spreadsheet, each changing a reading without changing its name. The standards bodies fix some of these values outright, the experimentation literature says the design parameters are set before a test and never after, and the regulation requires a retention period without naming one. Declaring the slot as vocabulary and the value as a record with its basis is what lets a business supply its own context without touching the model, and what lets an export carry the value a computation actually needs. The rule is only worth the slots it governs: named for an engine rather than for the work, and left uncited, a store of values stops being a vocabulary and becomes configuration under another name." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/viewable-ad-impression-measurement-guidelines-version-2-0/#work>, <https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work>, <https://umi-graph.com/sources/digital-audience-based-measurement-standards/#work>, <https://umi-graph.com/sources/trustworthy-online-controlled-experiments-a-practical-guide-to-a-b-testing/#work>, <https://umi-graph.com/sources/the-unfavorable-economics-of-measuring-the-returns-to-advertising/#work>, <https://umi-graph.com/sources/a-comparison-of-approaches-to-advertising-measurement-evidence-from-big-field-experiments-at-facebook/#work>, <https://umi-graph.com/sources/regulation-eu-2016-679-article-5-principles-relating-to-processing-of-personal-data/#work>, <https://umi-graph.com/sources/iso-80000-1-2022-quantities-and-units-part-1-general/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-015>, <https://umi-graph.com/checks/#fnd-034>, <https://umi-graph.com/checks/#fnd-035>, <https://umi-graph.com/checks/#fnd-036> ;
  umi:licenses <https://umi-graph.com/parameters/#set>, <https://umi-graph.com/setting-bases/#set>, <https://umi-graph.com/relationships/#parameters-parameter-of>, <https://umi-graph.com/relationships/#parameters-constrains>, <https://umi-graph.com/relationships/#parameters-measured-in>, <https://umi-graph.com/relationships/#parameters-defaults-on>, <https://umi-graph.com/relationships/#evidence-designs-calibrates>, <https://umi-graph.com/relationships/#parameters-set-over>, <https://umi-graph.com/relationships/#parameters-set-in>, <https://umi-graph.com/relationships/#parameters-set-for>, <https://umi-graph.com/relationships/#parameters-set-on> .

<https://umi-graph.com/commitments/a-deliverable-is-a-method-the-industry-already-writes/#article>
  a umi:Commitment ;
  rdfs:label "A deliverable is a method the industry already writes" ;
  dcterms:identifier "RUL-054" ;
  umi:statement "Every deliverable is a method the industry already writes, and it cites the commitments and the sources that write it: what a measurement plan, a campaign brief, a permission plan, an instrumentation plan, a lifecycle map and an evidence plan each contain is taken from the standard, the guide or the literature that defines it, never from taste. A deliverable no commitment licenses hands over a design choice nobody can audit, and the build refuses it." ;
  umi:why "A plan is the thing a marketer is judged on, and a plan whose sections were chosen by whoever built the tool is an opinion with a table of contents. The industry has written these methods down: the measurement model that runs from objectives to KPIs to targets to segments, the client brief the agencies’ bodies agreed, the outcome standards that say what an instrument must disclose, the statechart a lifecycle is a machine of, the experiments that establish cause, the regulation that says on what ground a person may be reached. Citing them on the deliverable, and deriving its why from them the way a kind’s is derived, is what lets a reader see the method behind the page and what lets the composition of each plan be corrected against its source rather than argued." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/digital-marketing-and-measurement-model/#work>, <https://umi-graph.com/sources/the-goal-question-metric-approach/#work>, <https://umi-graph.com/sources/aligning-organizations-through-measurement-the-gqm-strategies-approach/#work>, <https://umi-graph.com/sources/the-client-brief-a-best-practice-guide-to-briefing-communications-agencies/#work>, <https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work>, <https://umi-graph.com/sources/xdm-individual-profile-class/#work>, <https://umi-graph.com/sources/statecharts-a-visual-formalism-for-complex-systems/#work>, <https://umi-graph.com/sources/state-chart-xml-scxml-state-machine-notation-for-control-abstraction/#work>, <https://umi-graph.com/sources/trustworthy-online-controlled-experiments-a-practical-guide-to-a-b-testing/#work>, <https://umi-graph.com/sources/a-comparison-of-approaches-to-advertising-measurement-evidence-from-big-field-experiments-at-facebook/#work>, <https://umi-graph.com/sources/regulation-eu-2016-679-article-6/#work>, <https://umi-graph.com/sources/regulation-eu-2016-679-article-7-conditions-for-consent/#work>, <https://umi-graph.com/sources/consent-receipt-specification-1-1/#work>, <https://umi-graph.com/sources/transparency-and-consent-framework-v2-2/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-001>, <https://umi-graph.com/checks/#fnd-028> .

<https://umi-graph.com/commitments/a-question-in-a-reader-s-words-is-answered-with-an-address/#article>
  a umi:Commitment ;
  rdfs:label "A question in a reader’s words is answered with an address" ;
  dcterms:identifier "RUL-055" ;
  umi:statement "A question a reader types is answered with something the model already declares, or with something composed from the model’s own parts, and never with words alone: a declared question or shape offered to open on the board, or a shape of the kinds the words name, connected along the roads between them. The order is fixed, declared first, composed second, a model last. The first two tiers run where the reader is, by words alone, so nothing typed leaves the browser; and the build holds the matcher to finding every declared question from that question’s own words and from its name." ;
  umi:why "An ontology is judged by the competency questions it answers, and a reader does not arrive knowing the model’s phrasing for theirs. Matching their words to the declared questions is the cheapest and the most honest bridge, because every answer it gives is one the build has already bound and given an address. Composing from the kinds they named is the next step in the same spirit: the answer is still the model’s parts, held by the same grammar, drawn by the same engine. A model that writes an answer in prose is the last resort because it is the only tier whose answer is not an address, and the two tiers before it will usually have done the work. Holding the matcher to the model’s own questions is the least a matcher can be held to: what it offers a reader is then never worse than the model’s index of itself." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work>, <https://umi-graph.com/sources/ontologies-principles-methods-and-applications/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#ring-6> .

<https://umi-graph.com/commitments/a-band-joined-by-one-road-says-so/#article>
  a umi:Commitment ;
  rdfs:label "A band joined by one road says so" ;
  dcterms:identifier "RUL-058" ;
  umi:statement "The families of kinds are joined to each other by the roads that run between them, and a pair of families joined by exactly one road is joined by that road alone: remove it and neither can be reached from the other. Every such crossing is declared with what is lost if the road goes. The crossings are derived from the registry and never read from a list, so a declaration cannot drift from the model; a second road between the same two families is growth and releases the requirement, and a crossing left undeclared while it is still the only one is refused." ;
  umi:why "A model is only as connected as its narrowest join. The families here each hold a coherent subject, and a question worth asking usually runs across several of them, so the roads between families are what make the whole thing one body of knowledge rather than seven lists. Those roads are not equal: most families are joined several ways over, and a few are joined once. The ones joined once carry every question that crosses there, and nothing about the way they are written says so, which is how a model grows a thread where it needs a rope. Declaring them is not a second copy of the grammar: it is the one fact the grammar does not state, which of its roads nothing else stands in for. Deriving them rather than listing them is what keeps the statement true a year later, because the list would be right on the day it was written and wrong on the first day a road moved." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work>, <https://umi-graph.com/sources/a-pattern-language-towns-buildings-construction/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-039> ;
  umi:licenses <https://umi-graph.com/relationships/#journey-transitions-triggered-by>, <https://umi-graph.com/relationships/#campaign-targets-state>, <https://umi-graph.com/relationships/#audience-segments-selects-state>, <https://umi-graph.com/relationships/#preference-types-concerns> .

<https://umi-graph.com/commitments/the-shape-of-the-model-moves-on-the-record/#article>
  a umi:Commitment ;
  rdfs:label "The shape of the model moves on the record" ;
  dcterms:identifier "RUL-059" ;
  umi:statement "The shape of the model is digested apart from the things it holds. The kinds, the roads with their bound, claim, grain and inverse, the compositions and the kernel's requirements, together with the closed vocabularies they are typed by, are one digest; every row and every assertion is outside it. The ledger names the digest in force and every motion that brought it here, each with the day it moved, what changed in the shape and the commitments that moved with it. A build whose shape does not match the accepted digest is refused. The shape may change, and it may not change quietly." ;
  umi:why "One digest over everything authored answers a question nobody asks. A reader wants to know whether the model changed or only its contents, and a single name for both cannot say: a row corrected and a road removed look identical from outside. Two digests separate them, and the pair reads in three ways. The sources moved and the shape did not, so the data moved. Both moved, so the model moved. The shape moved and the sources did not, which cannot happen and is a fault in the build if it is ever seen. Making the second one a refusal rather than a signal is what keeps the shape from drifting a road at a time: every change to it now arrives with a reason, and the reason is in the one place a reader already goes to ask why the model is this way. The digest also holds no row on purpose, which is what stops it from becoming a second place anything is authored - a specification carrying its instances is a database wearing a schema's name, and it becomes a source the first time somebody edits it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/reproducible-builds-definition/#work>, <https://umi-graph.com/sources/prov-o-the-prov-ontology/#work>, <https://umi-graph.com/sources/dcmi-metadata-terms/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-040> .

<https://umi-graph.com/commitments/a-correspondence-to-a-vocabulary-governed-elsewhere-is-asserted-never-imported/#article>
  a umi:Commitment ;
  rdfs:label "A correspondence to a vocabulary governed elsewhere is asserted, never imported" ;
  dcterms:identifier "RUL-060" ;
  umi:statement "Where a locally governed term corresponds to a term in a vocabulary published by someone else, the correspondence is asserted along a declared relationship to an external term, which is a term of that other vocabulary named by the identifier it publishes and carrying the address that establishes it. The other vocabulary is never imported: none of its terms becomes a term of this one, no identifier of its is carried as a property of any term here, and nothing it revises moves a local meaning. A correspondence is admitted only where that vocabulary publishes a stable identifier for the term and its own published definition is the same thing said: where the correspondence would be a judgement, it is not asserted at all. The relationship says which kind of correspondence it is, makes an evidential claim and nothing stronger, and is a classification rather than a road, because a term governed elsewhere is a hub many terms would answer to." ;
  umi:why "Adopting an industry vocabulary as the master buys comparability and hands over governance of the words: when the external scheme revises, local meanings move with it, and a term that carried a specific operational sense is reinterpreted by a committee somewhere else. Refusing it altogether buys the opposite problem, because the systems a practitioner actually runs are keyed on those schemes, and a vocabulary that cannot say what it corresponds to can only be read, never joined. A mapping is the arrangement that keeps both, and the knowledge-organization standards have held it as its own set of statements for exactly this reason rather than as a property of either side. Asserting it as a relationship to a term of the other vocabulary, rather than as a field on a term of this one, is what keeps the two vocabularies separable: the correspondence can be withdrawn without touching either, and a reader can see whose term is whose. The evidence bar is high on purpose, because a correspondence asserted loosely is a false public claim about someone else's words, and a practitioner who trusts it keys a system on it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>, <https://umi-graph.com/sources/iso-25964-2-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-2-interoperability-with-other-vocabularies/#work>, <https://umi-graph.com/sources/iso-25964-1-2011-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-1-thesauri-for-information-retrieval/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#fnd-009>, <https://umi-graph.com/checks/#ring-2> ;
  umi:licenses <https://umi-graph.com/external-terms/#set>, <https://umi-graph.com/relationships/#content-types-exactly-matches> .

<https://umi-graph.com/commitments/a-profile-selects-and-constrains-the-vocabulary-and-never-extends-it/#article>
  a umi:Commitment ;
  rdfs:label "A profile selects and constrains the vocabulary, and never extends it" ;
  dcterms:identifier "RUL-061" ;
  umi:statement "A reader composes a profile for one context: the wireframe of a model, said in their own words and built from what those words reach in the vocabulary. It holds the kinds in play and, where a kind is a closed vocabulary, which of its terms; every road the grammar declares between the kinds in play; every question answerable within them and every deliverable those questions compose; the values held against the parameters those kinds set; and any road’s bound tightened for the context. Every part of it names a thing the model declares. A profile never adds a kind, a term, a road or a question, and never loosens a bound; it is held to the grammar before anything is carried, by a check that does not know who composed it; it lives in its own address and the reader’s browser, and is written to the model by nothing. It leaves as the tabular form of an application profile, column for column as that standard lays it out; as one document; and as a module of the ontology, the kinds, roads, terms and bounds in play named by the addresses the ontology names them by, with the bounds as shapes." ;
  umi:why "An ontology is the shared part; the shape of one business’s situation against it is that business’s. The standards this model is built on have a name and a form for exactly that: an application profile, which draws a domain model from a shared vocabulary and constrains it for one community without claiming to extend or replace what it draws on. Composing one from words is what makes the vocabulary a builder rather than a reference: a practitioner states a situation and is handed the kinds, the relationships, the questions and the deliverables that bear on it, every one of them a thing the model already holds, so nothing has to be invented and nothing can be. The bar that a profile only tightens is what keeps every profile readable against the same grammar and keeps two businesses comparable; the bar that it lives in an address and not in the ground is what lets one model serve every business while nothing of theirs enters it. Carrying it in the standard’s own table, and as a module of the ontology it draws on, is what lets the next tool read it." ;
  umi:status "adopted" ;
  umi:enforcement "enforced" ;
  dcterms:source <https://umi-graph.com/sources/the-singapore-framework-for-dublin-core-application-profiles/#work>, <https://umi-graph.com/sources/dublin-core-tabular-application-profiles-dctap-elements-for-dc-tabular-application-profiles/#work>, <https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>, <https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work>, <https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work> ;
  umi:provedBy <https://umi-graph.com/checks/#eval-engine>, <https://umi-graph.com/checks/#ring-6> .

<https://umi-graph.com/checks/#fnd-001>
  a umi:Check ;
  rdfs:label "citation coverage" ;
  dcterms:identifier "FND-001" ;
  skos:definition "Every kind, relationship and deliverable is licensed by a cited rule, every source is cited by at least one rule, and every foundation names, among the cited works, the standard that represents it." ;
  umi:runs "foundation integrity" .

<https://umi-graph.com/checks/#fnd-002>
  a umi:Check ;
  rdfs:label "admission and shape" ;
  dcterms:identifier "FND-002" ;
  skos:definition "Every kind has a valid shape and evidence class, and every row keeps the admission its kind allows: a record names its source, an exemplar names none, and a world record states the public reference it stands on." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-003>
  a umi:Check ;
  rdfs:label "stable identifiers" ;
  dcterms:identifier "FND-003" ;
  skos:definition "Kind prefixes are unique, every row keeps the identity convention of its kind, and an identifier once retired is never reused: a kind writes each retirement down with its date and its reason, and every number below its highest is a row or a retirement." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-004>
  a umi:Check ;
  rdfs:label "typed relationships" ;
  dcterms:identifier "FND-004" ;
  skos:definition "Every relationship has declared endpoint kinds and a governed cardinality." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-005>
  a umi:Check ;
  rdfs:label "semantic distinction" ;
  dcterms:identifier "FND-005" ;
  skos:definition "Vocabulary, constructs, world records, and source-backed records cannot be substituted for one another." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-006>
  a umi:Check ;
  rdfs:label "canonical graph integrity" ;
  dcterms:identifier "FND-006" ;
  skos:definition "Endpoints resolve, relationship triples are unique, and compositions remain acyclic where the model requires it." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-007>
  a umi:Check ;
  rdfs:label "calculation and projection integrity" ;
  dcterms:identifier "FND-007" ;
  skos:definition "Formula inputs, metric composition, cardinality, and plan projections satisfy their declared contracts." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-008>
  a umi:Check ;
  rdfs:label "governance classification" ;
  dcterms:identifier "FND-008" ;
  skos:definition "Every rule declares whether a build check proves it; only an enforced rule names a check, every check is claimed by one, and no commitment or foundation states a count the model does not currently have." ;
  umi:runs "foundation integrity" .

<https://umi-graph.com/checks/#fnd-009>
  a umi:Check ;
  rdfs:label "relational claim" ;
  dcterms:identifier "FND-009" ;
  skos:definition "Every relationship declares what kind of claim it makes, a hedging verb claims no more than it says, a typing is always constitutive because it says what a thing is, a mapping is always evidential and stops where it arrives because it records that two published definitions agree and reaches a vocabulary governed elsewhere, one verb carries one claim, and no claim class sits unused." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-010>
  a umi:Check ;
  rdfs:label "named inverse" ;
  dcterms:identifier "FND-010" ;
  skos:definition "Every relationship names the verb its reverse reading uses; it differs from the forward verb and is never the forward verb wrapped in 'is ... by'." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-011>
  a umi:Check ;
  rdfs:label "exemplar admission" ;
  dcterms:identifier "FND-011" ;
  skos:definition "A source-backed row is a record with a durable source reference or an exemplar of the pattern, never both and never neither; and a vocabulary term is never an exemplar." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-012>
  a umi:Check ;
  rdfs:label "distinct definitions" ;
  dcterms:identifier "FND-012" ;
  skos:definition "No two rows of different kinds are defined in the same words, and no definition restates a field the row already carries, so a distinction the model commits to is carried where a reader meets it and nothing the model knows is stored in two places at once." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-013>
  a umi:Check ;
  rdfs:label "licensed fields" ;
  dcterms:identifier "FND-013" ;
  skos:definition "Every file conforms to the one declared schema before any other law runs: a row carries only the fields the model licenses, and every field has the type and, where the set is closed, the value the schema states, so material arriving from outside cannot introduce structure merely by arriving." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-014>
  a umi:Check ;
  rdfs:label "lifecycle ladder" ;
  dcterms:identifier "FND-014" ;
  skos:definition "The lifecycle is a single unbroken chain with one first stage and one last, every consumer state is placed on it, and every stage is one some goal advances people toward, so an order a reader leans on cannot quietly become a fork, leave a condition unplaced, or hold a rung nothing pursues." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-015>
  a umi:Check ;
  rdfs:label "spine integrity" ;
  dcterms:identifier "FND-015" ;
  skos:definition "Every row of a kind the model leans on states the relationships that kind exists to carry, so a relationship declared across the registry and asserted nowhere is a failure rather than a thin line on a map." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-016>
  a umi:Check ;
  rdfs:label "event grain" ;
  dcterms:identifier "FND-016" ;
  skos:definition "Every event states the grain it is recorded at, a consumer is named as actor only in an event that is a person's act, and a journey move is triggered only by an event resolvable to one person, so a count of events is never mistaken for a count of people and no move of one person rests on a fact about nobody in particular." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-017>
  a umi:Check ;
  rdfs:label "journey integrity" ;
  dcterms:identifier "FND-017" ;
  skos:definition "Every journey begins at one of its own positions and carries at least one legal move, its positions sit on a contiguous run of rungs, and every position either has a move out or realises a condition another journey leaves from, so no journey is a picture and no position is a dead end." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-019>
  a umi:Check ;
  rdfs:label "move propagation" ;
  dcterms:identifier "FND-019" ;
  skos:definition "Every legal move between journey positions is triggered by an event that an instrument observes, and that instrument counts a reading a KPI carries, directly or through the formula that computes it, so a journey that names its moves can also count them and is a model rather than a funnel with arrows; and a move triggered by a window closing belongs to a journey that names the window it counts inactivity over." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-020>
  a umi:Check ;
  rdfs:label "row participation" ;
  dcterms:identifier "FND-020" ;
  skos:definition "Every row of a registry kind is touched by at least one relationship besides its own grounding, and every vocabulary is read by at least one filled relationship, so a record or construct nothing relates to, and a set of terms nothing uses, are failures rather than quiet rows." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-021>
  a umi:Check ;
  rdfs:label "Pattern integrity" ;
  dcterms:identifier "FND-021" ;
  skos:definition "Every pattern's roles name kinds that exist and are named once; every edge is a declared relationship whose ends are its roles' kinds; the shape is connected and crosses no grounding, and a typing only where nothing leads on; a root, where declared, is the first role. A pattern with a root binds from some row, and every kind fills a role in some pattern." ;
  umi:runs "Every pattern is a shape the model can hold, and every kind is in one" .

<https://umi-graph.com/checks/#fnd-022>
  a umi:Check ;
  rdfs:label "unit agreement" ;
  dcterms:identifier "FND-022" ;
  skos:definition "Every Metric is measured in one Unit that fits every arithmetic form the KPIs reading it take; a quotient is never measured in a count; and a reading in percent or as a ratio that names its numerator directly names a denominator, so a number and its unit leave here together and a share always says what it is a share of." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-023>
  a umi:Check ;
  rdfs:label "target coherence" ;
  dcterms:identifier "FND-023" ;
  skos:definition "A target sets a level for one KPI, quantifies one goal that KPI serves, and is due within one window; a campaign that pursues a target is measured by that target's KPI and supports that target's goal, so a target never promises a reading the campaign does not take or an outcome it does not claim." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-024>
  a umi:Check ;
  rdfs:label "label integrity" ;
  dcterms:identifier "FND-024" ;
  skos:definition "A row has one label and may carry alternate labels; every alternate label is a distinct non-empty name that is not the row's own label and matches no label or alternate label of another row in the same kind, so a name resolves to one term within its kind and a search by any name a term is known under finds it." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-025>
  a umi:Check ;
  rdfs:label "address integrity" ;
  dcterms:identifier "FND-025" ;
  skos:definition "Every page address is made once from a label by the law's own scheme and is distinct from every other; every top-level name the site answers is derived from what declares it, and no kind or frame name takes another's; every address the site once answered to, a former label's or a retired identifier's, is distinct from every live address and from every other former one, and no row names its own label as a former one; every projection answers at a declared name, once, is cut from fields the artifact carries, and carries a reader’s label only where it is a file offered to a reader; every operation reads a projection." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-026>
  a umi:Check ;
  rdfs:label "kernel integrity" ;
  dcterms:identifier "FND-026" ;
  skos:definition "Every kind and relationship the kernel names is one the registries declare: a spine's verbs are verbs its kind states or is reached by, the metric derivation names specifications that exist, the contract-status escape names kinds that exist, and the grounding reaches kinds that exist, and the machine's kinds and verbs and the instrumenting kind are kinds and verbs the registries declare." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-027>
  a umi:Check ;
  rdfs:label "Gate coverage" ;
  dcterms:identifier "FND-027" ;
  skos:definition "Every gate a commitment names is a check, a ring or an eval the law catalogs; and every gate the law catalogs is claimed by an enforced commitment, or says itself why nothing here can claim it." ;
  umi:runs "Every gate is claimed, and every claim resolves" .

<https://umi-graph.com/checks/#fnd-028>
  a umi:Check ;
  rdfs:label "Views compose" ;
  dcterms:identifier "FND-028" ;
  skos:definition "Every view names declared patterns, all asked from one kind, drawn in a way the law's pattern vocabulary declares, belonging to a declared deliverable, a table as one of its tabs and a job as work that produces it; and some row of that kind answers at least one of them. What a view touches is derived from its patterns, never listed beside them." ;
  umi:runs "Every view binds declared patterns from one kind" .

<https://umi-graph.com/checks/#fnd-029>
  a umi:Check ;
  rdfs:label "Vocabularies are governed" ;
  dcterms:identifier "FND-029" ;
  skos:definition "Every block of the law or the kernel that declares `values` says what it governs and which gate holds it, and that gate is one the law catalogs. Where a value carries the condition that selects it, the conditions are total and disjoint: every shape a binding can turn out to be selects exactly one value, and no value is unreachable. A rule stated twice is a rule that drifts, so it is stated here and read from here." ;
  umi:runs "Every governed vocabulary names its gate, and every value is reachable" .

<https://umi-graph.com/checks/#fnd-030>
  a umi:Check ;
  rdfs:label "The host answers from the law" ;
  dcterms:identifier "FND-030" ;
  skos:definition "The host's caching rules each select by one form of a path, a prefix or a suffix, with exactly one rule for everything else; and the headers the host owes carry distinct names. What a browser may keep and what every response carries are the law's to say, and the Worker reads them rather than restating them." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-031>
  a umi:Check ;
  rdfs:label "prose answers one question each" ;
  dcterms:identifier "FND-031" ;
  skos:definition "Every text the law declares a kind may carry answers one question in one mode: an authored text is held within its span of sentences on every kind that carries it, a derived text is authored on no kind, every text is drawn by the files that say they draw it, each naming it, and the property a text is exported under is a SKOS documentation property. A kind's definition opens with the kind's own noun and never says the model's word for what the reader meets, and the nouns are distinct across kinds." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-032>
  a umi:Check ;
  rdfs:label "references resolve" ;
  dcterms:identifier "FND-032" ;
  skos:definition "Every reference in prose resolves to exactly one governed thing, a kind by its name or anything else by its identifier, and never to the text's own subject; the texts references are read from are fields the schema and the ledger declare. A reference is a name, never an assertion: the build draws it as a link and lists it on the target, and a pair of rows a text joins that the registry does not is listed as proposed and written nowhere." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-033>
  a umi:Check ;
  rdfs:label "grain integrity" ;
  dcterms:identifier "FND-033" ;
  skos:definition "Every relationship declares the grain it is asserted at, and a record road, a fact only an instance carries, is bounded below by zero, is required by no spine, and is walked by no question. The registry asserts a vocabulary road and holds it to its bound; a record road is the registry's declaration of a join a record must be able to make, and treating it as either an unfinished road or a fact about the kinds is the drift this refuses." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-034>
  a umi:Check ;
  rdfs:label "the loops close" ;
  dcterms:identifier "FND-034" ;
  skos:definition "Every pattern the kernel names as a loop is a shape whose edges form one cycle over all of its roles, and the model instantiates it: at least one set of rows stands to one another all the way round. A loop is how the model says its gears connect; a loop that does not close is a picture, and one nothing stands in is a promise." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-037>
  a umi:Check ;
  rdfs:label "moves are identified" ;
  dcterms:identifier "FND-037" ;
  skos:definition "The kernel's resolution names a kind the registry declares, a specification on which the instrumenting kind declares its level, and a row of that kind at which nobody is told apart; and every event that triggers a move is observed by at least one instrument identifying above that level. A move counted only by instruments that cannot tell one person from another is a move nobody made." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-036>
  a umi:Check ;
  rdfs:label "record shapes hold" ;
  dcterms:identifier "FND-036" ;
  skos:definition "Every pattern declares its grain. A record shape is a shape, walks at least one record road, and is the registry's declaration of a join a record must make, a person-level record in every case but the campaign roll-up, so the registry instantiates it by nothing and the standards export writes it as a shape without a target. A vocabulary pattern walks no record road, because a record road holds no rows to answer from." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-035>
  a umi:Check ;
  rdfs:label "roads are walked" ;
  dcterms:identifier "FND-035" ;
  skos:definition "Every relationship the registry declares, other than the grounding every kind makes, is walked by at least one pattern of its grain: a vocabulary road by a question or a shape, a record road by a record shape. A road no pattern walks answers no competency question, and a grammar that grows ahead of what is asked of it is the drift this refuses." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-038>
  a umi:Check ;
  rdfs:label "the hierarchy holds" ;
  dcterms:identifier "FND-038" ;
  skos:definition "A tactic stands within its campaign and an action within its tactic. For each containment the kernel declares, along the road that makes one the child of the other, the child narrows what the parent declares, a window, a geography, an audience, and never widens it, or keeps what the parent honours, a preference, a permission basis, and never drops it. A parent that declares nothing binds nothing, and the same road declared at two levels can no longer contradict itself." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-039>
  a umi:Check ;
  rdfs:label "a sole crossing is declared" ;
  dcterms:identifier "FND-039" ;
  skos:definition "The bands are joined by roads, and a pair of bands joined by exactly one road is joined by that road alone: remove it and the two families no longer reach each other. The kernel declares each such crossing with the reason it is load-bearing, and the check derives the crossings from the registry rather than reading a list, so the declaration cannot drift from the model. A second road between the same two bands is growth and releases the requirement; a crossing left undeclared while it is still sole is refused, as is a declaration naming a road the registry does not have or one that does not cross the bands it claims." ;
  umi:runs "registry integrity" .

<https://umi-graph.com/checks/#fnd-040>
  a umi:Check ;
  rdfs:label "the contract moves on the record" ;
  dcterms:identifier "FND-040" ;
  skos:definition "The model's own shape - the kinds, the roads with their bound, claim, grain and inverse, the compositions, the kernel's requirements and the vocabularies they are typed by - is digested apart from every row it holds, so the data moving does not move it and a reviewer can answer whether the model changed without reading a row. The ledger names the digest in force and every motion that brought it here, each with its day, its reason and the commitments that moved with it. A shape that does not match the accepted digest is refused, so is a ledger whose accepted digest is not its last motion's, and so is a motion naming a commitment that does not exist." ;
  umi:runs "the ledger" .

<https://umi-graph.com/checks/#fnd-041>
  a umi:Check ;
  rdfs:label "a commitment speaks to the reader" ;
  dcterms:identifier "FND-041" ;
  skos:definition "A commitment is read by a person on a page, so what it says holds, what goes wrong without it, where the model stands and what it does not claim are written in the reader's register. None of them names a file of this repository, and none names a path into the law written as one key inside another: a reader cannot open either, so naming one tells them nothing they can follow. The files are derived from the law's own declaration of what is authored rather than listed here, so one added tomorrow is covered. A single key in a code span is left alone, because that reads as the model naming its own part and the build register exists for it." ;
  umi:runs "the ledger" .

<https://umi-graph.com/sources/xdm-experienceevent-class/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "XDM ExperienceEvent Class" ;
  dcterms:identifier "SRC-ADOBE-XDM-EXPERIENCE-EVENT" ;
  dcterms:publisher "Adobe Experience Platform" ;
  dcterms:type "event-data model documentation" ;
  dcterms:abstract "Supports timestamped, observable event facts and the distinction between explicit and implicit events." ;
  rdfs:seeAlso <https://experienceleague.adobe.com/en/docs/experience-platform/xdm/classes/experienceevent> .

<https://umi-graph.com/sources/xdm-individual-profile-class/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "XDM Individual Profile Class" ;
  dcterms:identifier "SRC-ADOBE-XDM-INDIVIDUAL-PROFILE" ;
  dcterms:publisher "Adobe Experience Platform" ;
  dcterms:type "profile-data model documentation" ;
  dcterms:abstract "Supports one representation of a person across sources, with an identity map holding the identifiers each namespace knows the person by, so the level at which an instrument resolves a person is a fact about the identifier it carries and not about the person." ;
  rdfs:seeAlso <https://experienceleague.adobe.com/en/docs/experience-platform/xdm/classes/individual-profile> .

<https://umi-graph.com/sources/a-pattern-language-towns-buildings-construction/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "A Pattern Language: Towns, Buildings, Construction" ;
  dcterms:identifier "SRC-ALEXANDER-PATTERN-LANGUAGE" ;
  dcterms:publisher "Alexander, Ishikawa and Silverstein, Oxford University Press, 1977" ;
  dcterms:type "foundational design theory" ;
  dcterms:abstract "Establishes that patterns compose into a language: each pattern names the larger patterns it completes and the smaller ones that complete it, so a whole is read as a network of parts that are themselves patterns. Here a deliverable is composed of views composed of patterns composed of kinds and relationships, and each level is declared and addressed." ;
  rdfs:seeAlso <https://openlibrary.org/isbn/9780195019193> .

<https://umi-graph.com/sources/the-goal-question-metric-approach/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The Goal Question Metric Approach" ;
  dcterms:identifier "SRC-BASILI-GQM" ;
  dcterms:publisher "Basili, Caldiera and Rombach, University of Maryland" ;
  dcterms:type "foundational measurement methodology" ;
  dcterms:abstract "Supports a question area standing between a goal and its metrics, so a measurement is collected because a stated question needs it rather than because it is available." ;
  rdfs:seeAlso <https://www.cs.umd.edu/users/mvz/handouts/gqm.pdf> .

<https://umi-graph.com/sources/aligning-organizations-through-measurement-the-gqm-strategies-approach/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Aligning Organizations Through Measurement: The GQM+Strategies Approach" ;
  dcterms:identifier "SRC-BASILI-GQM-STRATEGIES" ;
  dcterms:publisher "Basili, Trendowicz, Kowalczyk, Heidrich, Seaman, Münch and Rombach, Springer, 2014" ;
  dcterms:type "measurement framework" ;
  dcterms:abstract "Supports the return arc: the strategies chosen to reach a goal are aligned to it through the same measurement that answers the goal's questions, so a question area advises the purposes whose campaigns act on its answers." ;
  rdfs:seeAlso <https://doi.org/10.1007/978-3-319-05047-8> .

<https://umi-graph.com/sources/challenges-and-opportunities-in-media-mix-modeling/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Challenges and Opportunities in Media Mix Modeling" ;
  dcterms:identifier "SRC-CHAN-PERRY-MMM" ;
  dcterms:publisher "Chan and Perry, Google, 2017" ;
  dcterms:type "measurement research" ;
  dcterms:abstract "Supports the mix model as a design of its own, estimated over time across channels without assigning anyone, with the limits that follow from that." ;
  rdfs:seeAlso <https://research.google/pubs/challenges-and-opportunities-in-media-mix-modeling/> .

<https://umi-graph.com/sources/know-your-customers-jobs-to-be-done/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Know Your Customers' Jobs to Be Done" ;
  dcterms:identifier "SRC-CHRISTENSEN-JOBS" ;
  dcterms:publisher "Christensen, Hall, Dillon and Duncan, Harvard Business Review, September 2016" ;
  dcterms:type "management article" ;
  dcterms:abstract "Frames a reader as arriving with work to make progress on rather than with a question to ask, which is why a job here is named in the words a practitioner would use and not in the model's." ;
  rdfs:seeAlso <https://hbr.org/2016/09/know-your-customers-jobs-to-be-done> .

<https://umi-graph.com/sources/causally-motivated-attribution-for-online-advertising/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Causally motivated attribution for online advertising" ;
  dcterms:identifier "SRC-DALESSANDRO-CAUSAL-ATTRIBUTION" ;
  dcterms:publisher "Dalessandro, Perlich, Stitelman and Provost, ADKDD 2012" ;
  dcterms:type "foundational measurement methodology" ;
  dcterms:abstract "Supports the line between attribution and cause: credit assignment is a convention that must be stated, and only a causal design establishes effect." ;
  rdfs:seeAlso <https://doi.org/10.1145/2351356.2351363> .

<https://umi-graph.com/sources/dublin-core-tabular-application-profiles-dctap-elements-for-dc-tabular-application-profiles/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Dublin Core Tabular Application Profiles (DCTAP): Elements for DC Tabular Application Profiles" ;
  dcterms:identifier "SRC-DCMI-DCTAP" ;
  dcterms:publisher "Dublin Core Metadata Initiative; elements document edited by Karen Coyle, December 2022" ;
  dcterms:type "specification" ;
  dcterms:abstract "Supports carrying a profile as a table whose twelve columns are the standard’s own - shape and property each by identifier and label, mandatory and repeatable as booleans, the value’s node type, data type, shape and constraint with the constraint’s type, and a note - so a profile leaves in a form other tools read and compile to shapes, rather than in a form of this model’s own." ;
  rdfs:seeAlso <https://www.dublincore.org/specifications/dctap/> .

<https://umi-graph.com/sources/the-singapore-framework-for-dublin-core-application-profiles/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The Singapore Framework for Dublin Core Application Profiles" ;
  dcterms:identifier "SRC-DCMI-SINGAPORE-FRAMEWORK" ;
  dcterms:publisher "Dublin Core Metadata Initiative" ;
  dcterms:type "application-profile framework" ;
  dcterms:abstract "Supports a local profile that constrains how terms are used for one community without claiming to extend or replace the standards it draws on." ;
  rdfs:seeAlso <https://www.dublincore.org/specifications/dublin-core/singapore-framework/> .

<https://umi-graph.com/sources/dcmi-metadata-terms/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "DCMI Metadata Terms" ;
  dcterms:identifier "SRC-DCMI-TERMS" ;
  dcterms:publisher "Dublin Core Metadata Initiative" ;
  dcterms:type "metadata terms standard" ;
  dcterms:abstract "Separates what a resource is derived from (source) from the established standard it conforms to (conformsTo), so provenance and conformance are read as different questions." ;
  rdfs:seeAlso <https://www.dublincore.org/specifications/dublin-core/dcmi-terms/> .

<https://umi-graph.com/sources/there-s-a-s-m-a-r-t-way-to-write-management-s-goals-and-objectives/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "There's a S.M.A.R.T. way to write management's goals and objectives" ;
  dcterms:identifier "SRC-DORAN-SMART" ;
  dcterms:publisher "Doran, Management Review 70(11), American Management Association, 1981" ;
  dcterms:type "management literature" ;
  dcterms:abstract "Supports the shape of a target as specific, measurable, assignable, realistic and time-related: a level on one reading, owned by one initiative, due within one window." ;
  dcterms:bibliographicCitation "Doran, G. T. (1981). There's a S.M.A.R.T. way to write management's goals and objectives. Management Review, 70(11), 35-36." .

<https://umi-graph.com/sources/regulation-eu-2016-679-article-4-definitions/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Regulation (EU) 2016/679, Article 4: Definitions" ;
  dcterms:identifier "SRC-EU-GDPR-ARTICLE-4" ;
  dcterms:publisher "European Union" ;
  dcterms:type "data-protection regulation" ;
  dcterms:abstract "Defines pseudonymisation as processing after which the data can no longer be attributed to a specific person without additional information kept separately, which is the level between not telling one person from another and knowing who they are." ;
  rdfs:seeAlso <https://eur-lex.europa.eu/eli/reg/2016/679/art_4/oj> .

<https://umi-graph.com/sources/regulation-eu-2016-679-article-5-principles-relating-to-processing-of-personal-data/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Regulation (EU) 2016/679, Article 5: Principles relating to processing of personal data" ;
  dcterms:identifier "SRC-EU-GDPR-ARTICLE-5" ;
  dcterms:publisher "European Union" ;
  dcterms:type "data-protection regulation" ;
  dcterms:abstract "Requires that personal data be kept in a form that identifies a person no longer than the purpose needs, which makes a retention period a parameter every processing purpose carries, and the law leaves its length to the purpose." ;
  rdfs:seeAlso <https://eur-lex.europa.eu/eli/reg/2016/679/art_5/oj> .

<https://umi-graph.com/sources/regulation-eu-2016-679-article-6/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Regulation (EU) 2016/679, Article 6" ;
  dcterms:identifier "SRC-EU-GDPR-ARTICLE-6" ;
  dcterms:publisher "European Union" ;
  dcterms:type "data-protection regulation" ;
  dcterms:abstract "Names the six grounds on which processing may lawfully rest, which is the text most other regimes are drafted against or mapped to; the grounds here are held as vocabulary while the jurisdiction that selects among them is not." ;
  rdfs:seeAlso <https://eur-lex.europa.eu/eli/reg/2016/679/oj> .

<https://umi-graph.com/sources/regulation-eu-2016-679-article-7-conditions-for-consent/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Regulation (EU) 2016/679, Article 7: Conditions for consent" ;
  dcterms:identifier "SRC-EU-GDPR-ARTICLE-7" ;
  dcterms:publisher "European Union" ;
  dcterms:type "data-protection regulation" ;
  dcterms:abstract "Supports consent as a demonstrable fact: the controller must be able to show it was given, and withdrawing it must be as easy as giving it, so a grant or withdrawal is a recorded event and not an inference." ;
  rdfs:seeAlso <https://eur-lex.europa.eu/eli/reg/2016/679/art_7/oj> .

<https://umi-graph.com/sources/counting-your-customers-the-easy-way-an-alternative-to-the-pareto-nbd-model/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Counting Your Customers the Easy Way: An Alternative to the Pareto/NBD Model" ;
  dcterms:identifier "SRC-FADER-HARDIE-LEE-BGNBD" ;
  dcterms:publisher "Fader, Hardie and Lee, Marketing Science 24(2), 2005" ;
  dcterms:type "foundational measurement methodology" ;
  dcterms:abstract "Supports reading inactivity as a probability that a relationship is still alive, which is what a scored move rests on and what a timed move presumes when its window closes." ;
  rdfs:seeAlso <https://doi.org/10.1287/mksc.1040.0098> .

<https://umi-graph.com/sources/the-fair-guiding-principles-for-scientific-data-management-and-stewardship/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The FAIR Guiding Principles for scientific data management and stewardship" ;
  dcterms:identifier "SRC-FAIR-PRINCIPLES" ;
  dcterms:publisher "Wilkinson et al., Scientific Data 3, 160018, 2016" ;
  dcterms:type "peer-reviewed data-stewardship principles" ;
  dcterms:abstract "Supports the law that a thing carries a unique and persistent identifier, F1 of the principles: an identifier that is reused or changed breaks every reference made to it." ;
  rdfs:seeAlso <https://doi.org/10.1038/sdata.2016.18> .

<https://umi-graph.com/sources/continuous-integration/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Continuous Integration" ;
  dcterms:identifier "SRC-FOWLER-CI" ;
  dcterms:publisher "Martin Fowler, martinfowler.com, revised 2024" ;
  dcterms:type "engineering practice essay" ;
  dcterms:abstract "States the practice this model adopts for its gates: every commit is integrated and verified by an automated build, so a broken gate is found by the machine on the commit that broke it rather than by a person later." ;
  rdfs:seeAlso <https://martinfowler.com/articles/continuousIntegration.html> .

<https://umi-graph.com/sources/design-patterns-elements-of-reusable-object-oriented-software/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Design Patterns: Elements of Reusable Object-Oriented Software" ;
  dcterms:identifier "SRC-GAMMA-COMPOSITE" ;
  dcterms:publisher "Gamma, Helm, Johnson and Vlissides, Addison-Wesley, 1994" ;
  dcterms:type "foundational design theory" ;
  dcterms:abstract "The Composite pattern: compose objects into part-whole hierarchies so that a client treats an individual object and a composition of objects uniformly. Here one mechanism binds, draws and addresses a pattern, a view and a deliverable alike; the application distinguishes them, the machinery does not." ;
  rdfs:seeAlso <https://www.informit.com/store/design-patterns-elements-of-reusable-object-oriented-9780201633610> .

<https://umi-graph.com/sources/spam-policies-for-google-web-search/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Spam policies for Google web search" ;
  dcterms:identifier "SRC-GOOGLE-SPAM-POLICIES" ;
  dcterms:publisher "Google Search Central" ;
  dcterms:type "search engine policy" ;
  dcterms:abstract "Defines scaled content abuse, many pages generated for the primary purpose of manipulating rankings and not helping users, and doorway abuse, pages created to rank for similar queries that lead to a more useful destination. An answer page is published only where the walk is non-empty, says exactly what was bound, and sits in a browseable hierarchy under its question and beside its row, which is the line these definitions draw." ;
  rdfs:seeAlso <https://developers.google.com/search/docs/essentials/spam-policies> .

<https://umi-graph.com/sources/a-comparison-of-approaches-to-advertising-measurement-evidence-from-big-field-experiments-at-facebook/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "A Comparison of Approaches to Advertising Measurement: Evidence from Big Field Experiments at Facebook" ;
  dcterms:identifier "SRC-GORDON-ADVERTISING-MEASUREMENT" ;
  dcterms:publisher "Gordon, Zettelmeyer, Bhargava and Chapsky, Marketing Science 38(2), 2019" ;
  dcterms:type "empirical measurement research" ;
  dcterms:abstract "Supports reading an attributed figure as a method's output and never as incrementality: observational attribution has been shown to differ widely from experimental lift." ;
  rdfs:seeAlso <https://doi.org/10.1287/mksc.2018.1135> .

<https://umi-graph.com/sources/toward-principles-for-the-design-of-ontologies-used-for-knowledge-sharing/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Toward Principles for the Design of Ontologies Used for Knowledge Sharing" ;
  dcterms:identifier "SRC-GRUBER-ONTOLOGY-DESIGN" ;
  dcterms:publisher "Thomas R. Gruber" ;
  dcterms:type "foundational ontology-design theory" ;
  dcterms:abstract "Establishes an ontological commitment as an agreement to use a shared vocabulary coherently, and minimal commitment as the discipline of stating the weakest theory that still does the work." ;
  rdfs:seeAlso <https://tomgruber.org/writing/onto-design/> .

<https://umi-graph.com/sources/methodology-for-the-design-and-evaluation-of-ontologies/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Methodology for the Design and Evaluation of Ontologies" ;
  dcterms:identifier "SRC-GRUNINGER-FOX-COMPETENCY" ;
  dcterms:publisher "Grüninger and Fox, IJCAI-95 Workshop on Basic Ontological Issues in Knowledge Sharing, 1995" ;
  dcterms:type "foundational ontology-design theory" ;
  dcterms:abstract "Supports competency questions as the requirements an ontology is built to meet and evaluated against: the questions it must be able to answer, stated first, and completeness read as whether it answers them." ;
  rdfs:seeAlso <https://www.semanticscholar.org/paper/497abc0ddace6a7772a5f5a3edb3d7b751476755> .

<https://umi-graph.com/sources/statecharts-a-visual-formalism-for-complex-systems/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Statecharts: a visual formalism for complex systems" ;
  dcterms:identifier "SRC-HAREL-STATECHARTS" ;
  dcterms:publisher "David Harel, Science of Computer Programming 8(3), 1987" ;
  dcterms:type "foundational formal method" ;
  dcterms:abstract "Supports reading a lifecycle rung as a superstate over the conditions that sit in it, and journeys as orthogonal regions that share a condition: the hierarchy and concurrency statecharts add to a flat machine." ;
  rdfs:seeAlso <https://doi.org/10.1016/0167-6423(87)90035-9> .

<https://umi-graph.com/sources/measuring-visibility-in-the-ai-era/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Measuring Visibility in the AI Era" ;
  dcterms:identifier "SRC-IAB-AI-VISIBILITY" ;
  dcterms:publisher "IAB" ;
  dcterms:type "measurement framework" ;
  dcterms:abstract "Supplies the canonical vocabulary for organic AI visibility - presence, prominence, portrayal and persuasion - and the distinction between directional and decision-grade data that this model already expresses as contract status." ;
  rdfs:seeAlso <https://www.iab.com/guidelines/measuring-visibility-in-the-ai-era/> .

<https://umi-graph.com/sources/audience-taxonomy/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Audience Taxonomy" ;
  dcterms:identifier "SRC-IAB-AUDIENCE-TAXONOMY" ;
  dcterms:publisher "IAB Tech Lab" ;
  dcterms:type "industry taxonomy standard" ;
  dcterms:abstract "Supports future cross-vendor audience-segment mapping while keeping Consumer State distinct from eligibility." ;
  rdfs:seeAlso <https://iabtechlab.com/standards/audience-taxonomy/> .

<https://umi-graph.com/sources/content-taxonomy/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Content Taxonomy" ;
  dcterms:identifier "SRC-IAB-CONTENT-TAXONOMY" ;
  dcterms:publisher "IAB Tech Lab" ;
  dcterms:type "industry taxonomy standard" ;
  dcterms:abstract "Supports a common external language for content mapping without replacing governed content-type values." ;
  rdfs:seeAlso <https://iabtechlab.com/standards/content-taxonomy/> .

<https://umi-graph.com/sources/global-privacy-protocol/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Global Privacy Protocol" ;
  dcterms:identifier "SRC-IAB-GPP" ;
  dcterms:publisher "IAB Tech Lab" ;
  dcterms:type "privacy-signal protocol" ;
  dcterms:abstract "Supports privacy and preference as transmitted evidence with versioned jurisdictional signals, not a generic label." ;
  rdfs:seeAlso <https://iabtechlab.com/gpp/> .

<https://umi-graph.com/sources/iab-new-ad-portfolio-advertising-creative-guidelines/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "IAB New Ad Portfolio: Advertising Creative Guidelines" ;
  dcterms:identifier "SRC-IAB-NEW-AD-PORTFOLIO" ;
  dcterms:publisher "IAB Tech Lab" ;
  dcterms:type "creative format and size standard" ;
  dcterms:abstract "Supports creative geometry as an aspect-ratio and size-range constraint on where a creative can be delivered, not a property of the creative alone." ;
  rdfs:seeAlso <https://iabtechlab.com/standards/iab-new-ad-portfolio-guidelines/> .

<https://umi-graph.com/sources/sellers-json-and-the-openrtb-supplychain-object/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "sellers.json and the OpenRTB SupplyChain object" ;
  dcterms:identifier "SRC-IAB-SELLERS-JSON" ;
  dcterms:publisher "IAB Tech Lab" ;
  dcterms:type "supply-chain transparency specification" ;
  dcterms:abstract "Supports naming each party in a delivery chain and distinguishing a direct seller from an intermediary, rather than collapsing custody into one vendor field." ;
  rdfs:seeAlso <https://iabtechlab.com/sellers-json/> .

<https://umi-graph.com/sources/transparency-and-consent-framework-v2-2/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Transparency and Consent Framework v2.2" ;
  dcterms:identifier "SRC-IAB-TCF" ;
  dcterms:publisher "IAB Europe" ;
  dcterms:type "privacy-signal protocol" ;
  dcterms:abstract "Supports consent as a signal per purpose that downstream systems read before acting, which is why an activation requires a permission basis rather than assuming one." ;
  rdfs:seeAlso <https://iabeurope.eu/tcf/> .

<https://umi-graph.com/sources/rfc-8058-signaling-one-click-functionality-for-list-email-headers/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "RFC 8058: Signaling One-Click Functionality for List Email Headers" ;
  dcterms:identifier "SRC-IETF-RFC-8058" ;
  dcterms:publisher "Internet Engineering Task Force, 2017" ;
  dcterms:type "internet standard" ;
  dcterms:abstract "Supports the mechanism by which a withdrawal is as easy as a grant on email: one click in the mailbox, which is one of the places the consent-change fact is captured." ;
  rdfs:seeAlso <https://datatracker.ietf.org/doc/html/rfc8058> .

<https://umi-graph.com/sources/the-client-brief-a-best-practice-guide-to-briefing-communications-agencies/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The Client Brief: A best practice guide to briefing communications agencies" ;
  dcterms:identifier "SRC-IPA-CLIENT-BRIEF" ;
  dcterms:publisher "IPA, ISBA, MCCA and PRCA, 2003" ;
  dcterms:type "industry guide" ;
  dcterms:abstract "Sets what a brief states before work starts, the objective, the audience, the measures of success and the constraints the work runs under, which is the Campaign Brief’s composition and the reason it is measurable and lawful before it runs." ;
  dcterms:bibliographicCitation "IPA, ISBA, MCCA and PRCA (2003). The Client Brief: A best practice guide to briefing communications agencies. London: joint industry publication." .

<https://umi-graph.com/sources/iso-iec-24760-1-2019-it-security-and-privacy-a-framework-for-identity-management-part-1-terminology-and-concepts/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "ISO/IEC 24760-1:2019 IT security and privacy: a framework for identity management, Part 1: Terminology and concepts" ;
  dcterms:identifier "SRC-ISO-24760-1" ;
  dcterms:publisher "International Organization for Standardization" ;
  dcterms:type "identity management standard" ;
  dcterms:abstract "Gives the vocabulary a level is stated in: an identity as a set of attributes of an entity, an identifier as an attribute that distinguishes the entity within a domain, and a pseudonym as an identifier that does not by itself reveal the entity behind it." ;
  rdfs:seeAlso <https://www.iso.org/standard/77582.html> .

<https://umi-graph.com/sources/iso-25964-1-2011-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-1-thesauri-for-information-retrieval/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "ISO 25964-1:2011 Information and documentation, Thesauri and interoperability with other vocabularies, Part 1: Thesauri for information retrieval" ;
  dcterms:identifier "SRC-ISO-25964-1" ;
  dcterms:publisher "International Organization for Standardization" ;
  dcterms:type "international standard" ;
  dcterms:abstract "Supports one preferred term per concept with non-preferred terms that lead to it: an alternate label is an entry point to the same term, never a second term, and never ambiguous within its vocabulary." ;
  rdfs:seeAlso <https://www.iso.org/standard/53657.html> .

<https://umi-graph.com/sources/iso-25964-2-information-and-documentation-thesauri-and-interoperability-with-other-vocabularies-part-2-interoperability-with-other-vocabularies/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "ISO 25964-2 Information and documentation, Thesauri and interoperability with other vocabularies, Part 2: Interoperability with other vocabularies" ;
  dcterms:identifier "SRC-ISO-25964-2" ;
  dcterms:publisher "National Information Standards Organization, the designated maintenance agency for ISO 25964, publishing the standard's scope, data model and schemas" ;
  dcterms:type "international standard" ;
  dcterms:abstract "Supports holding a mapping to a vocabulary governed elsewhere as its own set of statements rather than as a property of either vocabulary, and distinguishing exact equivalence from the inexact and partial kinds, so a correspondence asserted here says which it is." ;
  rdfs:seeAlso <https://www.niso.org/schemas/iso25964> .

<https://umi-graph.com/sources/iso-4217-currency-codes/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "ISO 4217 Currency codes" ;
  dcterms:identifier "SRC-ISO-4217" ;
  dcterms:publisher "International Organization for Standardization, maintained by SIX" ;
  dcterms:type "code standard" ;
  dcterms:abstract "Supports naming the currency of a money reading by its three-letter code where the reading is published, so an amount leaving here can be set beside one from elsewhere." ;
  rdfs:seeAlso <https://www.iso.org/iso-4217-currency-codes.html> .

<https://umi-graph.com/sources/iso-80000-1-2022-quantities-and-units-part-1-general/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "ISO 80000-1:2022 Quantities and units, Part 1: General" ;
  dcterms:identifier "SRC-ISO-80000-1" ;
  dcterms:publisher "International Organization for Standardization" ;
  dcterms:type "international standard" ;
  dcterms:abstract "Supports treating percent as a name for the number 0.01 rather than a kind of thing, and a ratio of like quantities as a quantity of dimension one, which is why Percent and Ratio are distinct units here that fit different forms." ;
  rdfs:seeAlso <https://www.iso.org/standard/76921.html> .

<https://umi-graph.com/sources/international-vocabulary-of-metrology-basic-and-general-concepts-and-associated-terms-vim-jcgm-200-2012/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "International Vocabulary of Metrology: Basic and General Concepts and Associated Terms (VIM), JCGM 200:2012" ;
  dcterms:identifier "SRC-JCGM-VIM" ;
  dcterms:publisher "BIPM, Joint Committee for Guides in Metrology" ;
  dcterms:type "metrology vocabulary" ;
  dcterms:abstract "Supports the law that a quantity value is a number and a reference together, that a quantity of dimension one still has a unit, and that an ordinal quantity has an order and no arithmetic, which is what a rank is here." ;
  rdfs:seeAlso <https://www.bipm.org/en/committees/jc/jcgm/publications> .

<https://umi-graph.com/sources/json-schema-draft-2020-12-core-and-validation-specifications/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "JSON Schema, draft 2020-12: core and validation specifications" ;
  dcterms:identifier "SRC-JSON-SCHEMA-2020-12" ;
  dcterms:publisher "JSON Schema (draft-bhutton-json-schema-01 and draft-bhutton-json-schema-validation-01), 2022" ;
  dcterms:type "data-shape standard" ;
  dcterms:abstract "Supports declaring the shape of a document as data that a validator reads and an editor understands, which is how the ground's schema is declared and emitted rather than kept in code." ;
  rdfs:seeAlso <https://json-schema.org/draft/2020-12> .

<https://umi-graph.com/sources/consent-receipt-specification-1-1/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Consent Receipt Specification 1.1" ;
  dcterms:identifier "SRC-KANTARA-CONSENT-RECEIPT" ;
  dcterms:publisher "Kantara Initiative" ;
  dcterms:type "consent record specification" ;
  dcterms:abstract "Supports what the record of a consent carries: the purpose, the timestamp, the collection method and the party, which is the shape a consent instrument reports." ;
  rdfs:seeAlso <https://kantara.atlassian.net/wiki/spaces/archive/pages/3508790/Consent+Receipt+Specification> .

<https://umi-graph.com/sources/digital-marketing-and-measurement-model/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Digital Marketing and Measurement Model" ;
  dcterms:identifier "SRC-KAUSHIK-DMMM" ;
  dcterms:publisher "Avinash Kaushik, Occam's Razor" ;
  dcterms:type "measurement practice" ;
  dcterms:abstract "Names the measurement model as business objectives, goals, key performance indicators, targets and segments, in that order, which is the spine the Measurement Plan reads and the origin of its first tab’s name." ;
  rdfs:seeAlso <https://www.kaushik.net/avinash/digital-marketing-and-measurement-model/> .

<https://umi-graph.com/sources/declaring-the-grain/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Declaring the Grain" ;
  dcterms:identifier "SRC-KIMBALL-GRAIN" ;
  dcterms:publisher "Kimball Group" ;
  dcterms:type "foundational dimensional-modeling practice" ;
  dcterms:abstract "Supports business-process grain before dimensions, measures, or rates." ;
  rdfs:seeAlso <https://www.kimballgroup.com/2003/03/declaring-the-grain/> .

<https://umi-graph.com/sources/trustworthy-online-controlled-experiments-a-practical-guide-to-a-b-testing/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing" ;
  dcterms:identifier "SRC-KOHAVI-TANG-XU-EXPERIMENTS" ;
  dcterms:publisher "Kohavi, Tang and Xu, Cambridge University Press, 2020" ;
  dcterms:type "experimentation practice" ;
  dcterms:abstract "Supports the randomised holdout as the design that establishes cause by assignment, and names the conditions under which its reading can be trusted." ;
  dcterms:bibliographicCitation "Kohavi, R., Tang, D. and Xu, Y. (2020). Trustworthy Online Controlled Experiments: A Practical Guide to A/B Testing. Cambridge: Cambridge University Press." .

<https://umi-graph.com/sources/why-three-exposures-may-be-enough/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Why Three Exposures May Be Enough" ;
  dcterms:identifier "SRC-KRUGMAN-THREE-EXPOSURES" ;
  dcterms:publisher "Herbert E. Krugman, Journal of Advertising Research 12(6), 1972" ;
  dcterms:type "foundational advertising research" ;
  dcterms:abstract "Supports a frequency reading judged against a band rather than a direction: exposure below the band does not register and exposure above it buys nothing." ;
  rdfs:seeAlso <https://www.warc.com/content/paywall/article/jar/why-three-exposures-may-be-enough/en-gb/125657> .

<https://umi-graph.com/sources/a-model-for-predictive-measurements-of-advertising-effectiveness/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "A Model for Predictive Measurements of Advertising Effectiveness" ;
  dcterms:identifier "SRC-LAVIDGE-STEINER-HIERARCHY" ;
  dcterms:publisher "Lavidge and Steiner, Journal of Marketing 25(6), 1961" ;
  dcterms:type "foundational marketing theory" ;
  dcterms:abstract "Supports one ordered ladder from first contact to purchase, read here as conditions a person holds rather than attitudes inferred." ;
  rdfs:seeAlso <https://doi.org/10.1177/002224296102500611> .

<https://umi-graph.com/sources/understanding-customer-experience-throughout-the-customer-journey/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Understanding Customer Experience Throughout the Customer Journey" ;
  dcterms:identifier "SRC-LEMON-VERHOEF-JOURNEY" ;
  dcterms:publisher "Lemon and Verhoef, Journal of Marketing 80(6), 2016" ;
  dcterms:type "foundational marketing theory" ;
  dcterms:abstract "Supports the journey as prepurchase, purchase and postpurchase stages made of touchpoints, with the postpurchase stage feeding the next journey." ;
  rdfs:seeAlso <https://doi.org/10.1509/jm.15.0420> .

<https://umi-graph.com/sources/the-unfavorable-economics-of-measuring-the-returns-to-advertising/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The Unfavorable Economics of Measuring the Returns to Advertising" ;
  dcterms:identifier "SRC-LEWIS-RAO-RETURNS" ;
  dcterms:publisher "Lewis and Rao, Quarterly Journal of Economics, 2015" ;
  dcterms:type "measurement research" ;
  dcterms:abstract "Supports saying which design a reading was read by at all: the returns to advertising are small against the variance of outcomes, so an observed reading and an assigned one are not the same kind of evidence." ;
  dcterms:bibliographicCitation "Lewis, R. A. and Rao, J. M. (2015). The Unfavorable Economics of Measuring the Returns to Advertising. Quarterly Journal of Economics, 130(4), 1941-1973." .

<https://umi-graph.com/sources/building-a-practically-useful-theory-of-goal-setting-and-task-motivation-a-35-year-odyssey/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Building a Practically Useful Theory of Goal Setting and Task Motivation: A 35-Year Odyssey" ;
  dcterms:identifier "SRC-LOCKE-LATHAM-GOAL-SETTING" ;
  dcterms:publisher "Locke and Latham, American Psychologist 57(9), 2002" ;
  dcterms:type "peer-reviewed psychology" ;
  dcterms:abstract "Supports the law that a commitment is specific and measurable: specific, difficult goals produce higher performance than vague or absent ones, which is why a target is a level and a window rather than a direction alone." ;
  rdfs:seeAlso <https://doi.org/10.1037/0003-066X.57.9.705> .

<https://umi-graph.com/sources/customer-lifetime-value/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Customer Lifetime Value" ;
  dcterms:identifier "SRC-MASB-CUSTOMER-LIFETIME-VALUE" ;
  dcterms:publisher "Marketing Accountability Standards Board, Universal Marketing Dictionary, restating Farris, Bendle, Pfeifer and Reibstein, Marketing Metrics, second edition, Pearson, 2010" ;
  dcterms:type "industry metric definition" ;
  dcterms:abstract "Supports reading a relationship's worth as the present value of the money it is expected to produce from here on, net of the variable cost of serving and keeping it, built from a margin per period, a retention probability per period and a discount rate; and supports judging what may be spent to win a relationship against that number. It licenses none of those three values and no business's own relationships." ;
  rdfs:seeAlso <https://marketing-dictionary.org/c/customer-lifetime-value/> .

<https://umi-graph.com/sources/the-consumer-decision-journey/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The consumer decision journey" ;
  dcterms:identifier "SRC-MCKINSEY-DECISION-JOURNEY" ;
  dcterms:publisher "Court, Elzinga, Mulder and Vetvik, McKinsey Quarterly, 2009" ;
  dcterms:type "industry research" ;
  dcterms:abstract "Supports the loyalty loop: after a purchase a person stays, returns to evaluation or advocates, so retention and advocacy are journeys that return to a rung rather than exits from a funnel." ;
  rdfs:seeAlso <https://www.mckinsey.com/capabilities/growth-marketing-and-sales/our-insights/the-consumer-decision-journey> .

<https://umi-graph.com/sources/digital-audience-based-measurement-standards/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Digital Audience-Based Measurement Standards" ;
  dcterms:identifier "SRC-MRC-AUDIENCE-MEASUREMENT" ;
  dcterms:publisher "Media Rating Council, 2017" ;
  dcterms:type "measurement-quality standard" ;
  dcterms:abstract "Supports reach and frequency as the audience standard defines them: distinct people reached, and deliveries per person reached." ;
  rdfs:seeAlso <https://mediaratingcouncil.org/sites/default/files/Standards/MRC%20Digital%20Audience-Based%20Measurement%20Standards%20Final%201.0.pdf> .

<https://umi-graph.com/sources/outcomes-and-data-quality-standards/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Outcomes and Data Quality Standards" ;
  dcterms:identifier "SRC-MRC-OUTCOMES-DATA-QUALITY" ;
  dcterms:publisher "Media Rating Council" ;
  dcterms:type "measurement-quality standard" ;
  dcterms:abstract "Supports transparent measurement definitions, inputs, quality controls, and disclosure before outcome claims." ;
  rdfs:seeAlso <https://www.mediaratingcouncil.org/sites/default/files/Standards/MRC%20Outcomes%20and%20Data%20Quality%20Standards%20%28Final%29.pdf> .

<https://umi-graph.com/sources/viewable-ad-impression-measurement-guidelines-version-2-0/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Viewable Ad Impression Measurement Guidelines, Version 2.0" ;
  dcterms:identifier "SRC-MRC-VIEWABLE-IMPRESSION" ;
  dcterms:publisher "Media Rating Council, 2014, updated 2015" ;
  dcterms:type "measurement-quality standard" ;
  dcterms:abstract "Fixes what counts as a viewable impression, half of the pixels in view for one continuous second for display and two for video and less for the largest units, which is the clearest case of a parameter whose value a standard sets and a business adopts." ;
  rdfs:seeAlso <https://mediaratingcouncil.org/sites/default/files/Standards/081815%20Viewable%20Ad%20Impression%20Guideline_v2.0_Final.pdf> .

<https://umi-graph.com/sources/geosparql-1-1/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "GeoSPARQL 1.1" ;
  dcterms:identifier "SRC-OGC-GEOSPARQL" ;
  dcterms:publisher "Open Geospatial Consortium" ;
  dcterms:type "geospatial semantic standard" ;
  dcterms:abstract "Supports durable geographic features and scoped spatial representations rather than free-text location." ;
  rdfs:seeAlso <https://www.ogc.org/standards/geosparql/> .

<https://umi-graph.com/sources/the-open-graph-protocol/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The Open Graph protocol" ;
  dcterms:identifier "SRC-OGP" ;
  dcterms:publisher "Meta Platforms, ogp.me, 2010 and maintained" ;
  dcterms:type "web metadata protocol" ;
  dcterms:abstract "Defines the og properties by which a page declares its own title, description, canonical address and preview image to any platform that unfurls a link, so a shared page carries its own view rather than a scraper's guess." ;
  rdfs:seeAlso <https://ogp.me/> .

<https://umi-graph.com/sources/modeling-customer-relationships-as-markov-chains/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Modeling customer relationships as Markov chains" ;
  dcterms:identifier "SRC-PFEIFER-CARRAWAY-MARKOV" ;
  dcterms:publisher "Pfeifer and Carraway, Journal of Interactive Marketing" ;
  dcterms:type "foundational measurement methodology" ;
  dcterms:abstract "Supports reading a journey as a customer-migration model: a move is counted by the fact that triggers it, and the fact that enters a condition is the denominator of the rate that measures leaving it." ;
  rdfs:seeAlso <https://onlinelibrary.wiley.com/doi/10.1002/(SICI)1520-6653(200021)14:2%3C43::AID-DIR4%3E3.0.CO;2-H> .

<https://umi-graph.com/sources/qudt-ontologies-quantities-units-dimensions-and-data-types-release-2-1/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "QUDT Ontologies: Quantities, Units, Dimensions and Data Types, release 2.1" ;
  dcterms:identifier "SRC-QUDT" ;
  dcterms:publisher "QUDT.org" ;
  dcterms:type "semantic unit ontology" ;
  dcterms:abstract "Supports binding a unit to the kinds of quantity it may express, which is the shape of a unit fitting a form here, and the projection of units as linked-data terms." ;
  rdfs:seeAlso <https://qudt.org/> .

<https://umi-graph.com/sources/reproducible-builds-definition/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Reproducible Builds: definition" ;
  dcterms:identifier "SRC-REPRODUCIBLE-BUILDS" ;
  dcterms:publisher "Reproducible Builds project, reproducible-builds.org" ;
  dcterms:type "engineering practice definition" ;
  dcterms:abstract "Defines a build as reproducible when the same source always yields bit-for-bit the same artifact, which is the property that lets a rebuild in a clean environment prove the committed artifact is the build of the committed ground." ;
  rdfs:seeAlso <https://reproducible-builds.org/docs/definition/> .

<https://umi-graph.com/sources/understand-campaign-hierarchy/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Understand Campaign Hierarchy" ;
  dcterms:identifier "SRC-SALESFORCE-CAMPAIGN-HIERARCHY" ;
  dcterms:publisher "Salesforce" ;
  dcterms:type "CRM product documentation" ;
  dcterms:abstract "Supports optional parent-child Campaign roll-up without inventing a separate Program kind." ;
  rdfs:seeAlso <https://help.salesforce.com/s/articleView?id=sf.campaigns_hierarchy.htm&language=en_US> .

<https://umi-graph.com/sources/schema-org-alternatename/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "schema.org alternateName" ;
  dcterms:identifier "SRC-SCHEMA-ALTERNATENAME" ;
  dcterms:publisher "Schema.org Community Group" ;
  dcterms:type "structured-data vocabulary" ;
  dcterms:abstract "Supports projecting a term's other names as the alias property every schema.org Thing carries, so a machine reading the structured data learns the names a reader uses." ;
  rdfs:seeAlso <https://schema.org/alternateName> .

<https://umi-graph.com/sources/itemlist/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "ItemList" ;
  dcterms:identifier "SRC-SCHEMA-ITEMLIST" ;
  dcterms:publisher "schema.org" ;
  dcterms:type "vocabulary term" ;
  dcterms:abstract "A list of items of any sort, each an itemListElement that may be a ListItem carrying position, item and url, with numberOfItems and itemListOrder. The rows an answer reached are published as one." ;
  rdfs:seeAlso <https://schema.org/ItemList> .

<https://umi-graph.com/sources/offer/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Offer" ;
  dcterms:identifier "SRC-SCHEMA-OFFER" ;
  dcterms:publisher "Schema.org" ;
  dcterms:type "interoperable commerce vocabulary" ;
  dcterms:abstract "Supports an Offer as a distinct value-exchange object with terms, eligibility and validity rather than a campaign, creative asset or generic message." ;
  rdfs:seeAlso <https://schema.org/Offer> .

<https://umi-graph.com/sources/data-driven-multi-touch-attribution-models/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Data-driven multi-touch attribution models" ;
  dcterms:identifier "SRC-SHAO-LI-MULTI-TOUCH" ;
  dcterms:publisher "Shao and Li, KDD 2011" ;
  dcterms:type "foundational measurement methodology" ;
  dcterms:abstract "Supports attribution as a stated rule that divides credit among several exposures, and data-driven attribution as one such rule beside the named single-touch and positional rules." ;
  rdfs:seeAlso <https://doi.org/10.1145/2020408.2020453> .

<https://umi-graph.com/sources/the-unified-code-for-units-of-measure-version-2-2/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "The Unified Code for Units of Measure, version 2.2" ;
  dcterms:identifier "SRC-UCUM" ;
  dcterms:publisher "Regenstrief Institute and the UCUM Organization, 2024" ;
  dcterms:type "unit code standard" ;
  dcterms:abstract "Supports units as codes a machine carries with a number: the unity 1 for a count, % for percent, and the exclusion of money, which is why Currency is one unit kind here whose code travels with a published reading." ;
  rdfs:seeAlso <https://ucum.org/ucum> .

<https://umi-graph.com/sources/ontologies-principles-methods-and-applications/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Ontologies: Principles, Methods and Applications" ;
  dcterms:identifier "SRC-USCHOLD-GRUNINGER-ONTOLOGIES" ;
  dcterms:publisher "Uschold and Gruninger, The Knowledge Engineering Review 11(2), 1996" ;
  dcterms:type "foundational ontology-design theory" ;
  dcterms:abstract "Supports scoping an ontology by the questions it must answer and evaluating it against them, and the discipline that every term earns its place by serving one." ;
  rdfs:seeAlso <https://doi.org/10.1017/S0269888900007797> .

<https://umi-graph.com/sources/measuring-ad-effectiveness-using-geo-experiments/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Measuring Ad Effectiveness Using Geo Experiments" ;
  dcterms:identifier "SRC-VAVER-KOEHLER-GEO" ;
  dcterms:publisher "Vaver and Koehler, Google, 2011" ;
  dcterms:type "measurement research" ;
  dcterms:abstract "Supports assigning whole geographies rather than people, so an effect can be read where individual assignment is impossible or unlawful." ;
  rdfs:seeAlso <https://research.google/pubs/measuring-ad-effectiveness-using-geo-experiments/> .

<https://umi-graph.com/sources/cool-uris-don-t-change/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Cool URIs don't change" ;
  dcterms:identifier "SRC-W3C-COOL-URIS" ;
  dcterms:publisher "Berners-Lee, W3C, 1998" ;
  dcterms:type "web architecture note" ;
  dcterms:abstract "Supports keeping the identifier apart from the name: a name may change and an address with it, but what was once identified stays identified, and nothing is given the identifier of a thing that has gone." ;
  rdfs:seeAlso <https://www.w3.org/Provider/Style/URI> .

<https://umi-graph.com/sources/data-privacy-vocabulary/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Data Privacy Vocabulary" ;
  dcterms:identifier "SRC-W3C-DPV" ;
  dcterms:publisher "W3C Data Privacy Vocabularies and Controls Community Group" ;
  dcterms:type "privacy and data-protection vocabulary" ;
  dcterms:abstract "Supports distinct machine-readable privacy concepts, including consent and lawful processing context, without collapsing them into communication preference." ;
  rdfs:seeAlso <https://www.w3.org/community/reports/dpvcg/CG-FINAL-dpv-20240801/> .

<https://umi-graph.com/sources/time-ontology-in-owl/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Time Ontology in OWL" ;
  dcterms:identifier "SRC-W3C-OWL-TIME" ;
  dcterms:publisher "W3C" ;
  dcterms:type "temporal ontology standard" ;
  dcterms:abstract "Supports explicit instants and intervals, boundary semantics, duration and temporal ordering instead of undifferentiated calendar labels." ;
  rdfs:seeAlso <https://www.w3.org/TR/owl-time/> .

<https://umi-graph.com/sources/owl-2-web-ontology-language-primer/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "OWL 2 Web Ontology Language Primer" ;
  dcterms:identifier "SRC-W3C-OWL2-PRIMER" ;
  dcterms:publisher "W3C" ;
  dcterms:type "ontology language standard" ;
  dcterms:abstract "Supports declaring one property as the named inverse of another so the reverse relationship is inferred for reading rather than asserted a second time." ;
  rdfs:seeAlso <https://www.w3.org/TR/owl2-primer/> .

<https://umi-graph.com/sources/prov-o-the-prov-ontology/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "PROV-O: The PROV Ontology" ;
  dcterms:identifier "SRC-W3C-PROV-O" ;
  dcterms:publisher "W3C" ;
  dcterms:type "provenance standard" ;
  dcterms:abstract "Supports explicit provenance and one interoperable asserted direction rather than copied inverse facts." ;
  rdfs:seeAlso <https://www.w3.org/TR/prov-o/> .

<https://umi-graph.com/sources/state-chart-xml-scxml-state-machine-notation-for-control-abstraction/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "State Chart XML (SCXML): State Machine Notation for Control Abstraction" ;
  dcterms:identifier "SRC-W3C-SCXML" ;
  dcterms:publisher "W3C" ;
  dcterms:type "state-machine notation standard" ;
  dcterms:abstract "Supports a state belonging to one machine, a transition naming exactly one source and one target state, and an event as the thing that triggers a transition." ;
  rdfs:seeAlso <https://www.w3.org/TR/scxml/> .

<https://umi-graph.com/sources/shapes-constraint-language-shacl/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Shapes Constraint Language (SHACL)" ;
  dcterms:identifier "SRC-W3C-SHACL" ;
  dcterms:publisher "W3C" ;
  dcterms:type "constraint and validation standard" ;
  dcterms:abstract "Separates a constraint that a graph is machine-validated against, which yields a conformance report, from a description that is merely written down." ;
  rdfs:seeAlso <https://www.w3.org/TR/shacl12-core/> .

<https://umi-graph.com/sources/skos-simple-knowledge-organization-system-reference/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "SKOS Simple Knowledge Organization System Reference" ;
  dcterms:identifier "SRC-W3C-SKOS-REFERENCE" ;
  dcterms:publisher "W3C" ;
  dcterms:type "vocabulary standard" ;
  dcterms:abstract "Supports treating an example as documentation of a concept (skos:example is a note property, section 7) rather than as an assertion about the world, so one exemplar can show a kind's shape without claiming to be a record." ;
  rdfs:seeAlso <https://www.w3.org/TR/skos-reference/> .

<https://umi-graph.com/sources/sparql-1-1-query-language-property-paths/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "SPARQL 1.1 Query Language, Property Paths" ;
  dcterms:identifier "SRC-W3C-SPARQL-PROPERTY-PATHS" ;
  dcterms:publisher "W3C" ;
  dcterms:type "query language standard" ;
  dcterms:abstract "Supports the shape of a declared question: a chain of properties walked forward or inverse, kind to kind, which is what the build compiles and walks." ;
  rdfs:seeAlso <https://www.w3.org/TR/sparql11-query/#propertypaths> .

<https://umi-graph.com/sources/web-content-accessibility-guidelines-wcag-2-2/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Web Content Accessibility Guidelines (WCAG) 2.2" ;
  dcterms:identifier "SRC-W3C-WCAG22" ;
  dcterms:publisher "W3C, 2023" ;
  dcterms:type "accessibility standard" ;
  dcterms:abstract "Gives the contrast ratios a colour role is held to, and separates the minimum a page must meet from the enhanced level it may choose: 4.5:1 and 7:1 for text, 3:1 for a control's edge." ;
  rdfs:seeAlso <https://www.w3.org/TR/WCAG22/> .

<https://umi-graph.com/sources/web-share-api/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Web Share API" ;
  dcterms:identifier "SRC-W3C-WEB-SHARE" ;
  dcterms:publisher "W3C Web Applications Working Group, Recommendation, 2023" ;
  dcterms:type "W3C Recommendation" ;
  dcterms:abstract "Specifies navigator.share, by which a page hands its title, text and address to the device's own share sheet, so a reader takes a view to whatever community they belong to rather than to a list the site chose." ;
  rdfs:seeAlso <https://www.w3.org/TR/web-share/> .

<https://umi-graph.com/sources/cards-markup/#work>
  a dcterms:BibliographicResource ;
  rdfs:label "Cards markup" ;
  dcterms:identifier "SRC-X-CARDS" ;
  dcterms:publisher "X Corp., X Developer Platform" ;
  dcterms:type "web metadata specification" ;
  dcterms:abstract "Specifies the card family that selects a large-image card and falls back to Open Graph for the rest, which is why one preview view per page serves every network." ;
  rdfs:seeAlso <https://developer.x.com/en/docs/x-for-websites/cards/overview/markup> .

