governance: rulebook v1.2 - TN-022 restreint le shortLabel aux cas ou il differe du label, annexe Display exhaustive sur 44 classes ; retrait de la copie dupliquee des shapes

This commit is contained in:
Bastien Gourdon
2026-08-05 09:29:23 +02:00
parent ea21b7b300
commit 1719ec1934
4 changed files with 110 additions and 37 deletions
+56 -18
View File
@@ -17,7 +17,7 @@
meta:
title: Pernod Ricard Data MetaModel — T-Box Rulebook
version: "1.1"
version: "1.2"
status: Draft for review
date: "2026-08-03"
scope: >
@@ -520,9 +520,12 @@ rules:
category: Label
title: The short label carries the spoken form
statement: >
A term carries pr:shortLabel whenever the form derived under TN-018 is not
what the organisation writes or says. The short label is free: acronyms,
abbreviations, hyphens, short forms.
A term carries pr:shortLabel ONLY where the form derived under TN-018 is not
what the organisation writes or says. Where the two coincide, no short label
is declared: a duplicate of the label carries no information and is one more
thing to keep in step. The short label follows the casing of the label it
replaces — title case for a class — and admits what the label cannot:
acronyms, abbreviations, dropped words.
scope: [class, individual]
severity: MAJOR
control: {tier: human, executor: review checklist, procedure: null}
@@ -531,12 +534,16 @@ rules:
The short label is what makes the derivation rule bearable. Without it, a
mechanical label impoverishes every screen; with it, display becomes
explicit and centrally governed instead of being improvised by each
consumer. It is MAJOR rather than BLOCKING because judging whether a derived
form matches what people actually say is human work, and EV-011 forbids
declaring a rule blocking with no executor.
consumer. Restricting it to the cases where it actually differs is what
keeps it meaningful: a short label present on every term degenerates into a
second copy of the label, drifting from it one entry at a time. It is MAJOR
rather than BLOCKING because judging whether a derived form matches what
people actually say is human work, and EV-011 forbids declaring a rule
blocking with no executor.
examples:
- {from: "\"Data Sub Domain Owner\"", to: "short label Sub Domain Owner", note: the word Data is dropped in the spoken form}
- {from: "\"Key Performance Indicator\"", to: "short label KPI, acronym KPI", note: the acronym channel is what makes TN-002 bearable}
- {from: "a short label reading Metric on a class labelled Metric", to: no short label, note: a duplicate of the label carries nothing}
- id: TN-023
category: Label
@@ -1026,20 +1033,51 @@ abstractness:
- {term: SystemType, is_abstract: false, note: "must stay concrete — it types five individuals"}
# ====== ANNEX: DISPLAY (TN-011, TN-022) ======
# Authoritative and exhaustive: a class absent from this list carries no
# short label and no acronym. A null short_label means any existing one is
# removed, since a duplicate of the label carries no information (TN-022).
display:
- {iri: DataDomain, label: "Data Domain", short_label: "Domain", acronym: "DD", note: "DD is already the short form used inside A-Box identifiers under NR-014"}
- {iri: DataSubDomain, label: "Data Sub Domain", short_label: "Sub Domain", acronym: "SD", note: "no hyphen"}
- {iri: DataDomainOwner, label: "Data Domain Owner", short_label: "Domain Owner", acronym: "DDO", note: null}
- {iri: DataSubDomainOwner, label: "Data Sub Domain Owner", short_label: "Sub Domain Owner", acronym: "SDO", note: null}
- {iri: DataProductOwner, label: "Data Product Owner", short_label: "Product Owner", acronym: "PO", note: "NOT DPO — the initialism is taken by Data Protection Officer"}
- {iri: DataSteward, label: "Data Steward", short_label: "Steward", acronym: null, note: null}
- {iri: DataGovernanceLead, label: "Data Governance Lead", short_label: "Governance Lead", acronym: "DGL", note: null}
- {iri: DataElement, label: "Data Element", short_label: "Element", acronym: null, note: "drives the name of hasElement and hasGrainElement"}
- {iri: BusinessConcept, label: "Business Concept", short_label: "Concept", acronym: null, note: "drives the name of usesConcept"}
- {iri: MetaModelObject, label: "Meta Model Object", short_label: null, acronym: null, note: null}
- {iri: DefinedObject, label: "Defined Object", short_label: null, acronym: null, note: null}
- {iri: CapturedObject, label: "Captured Object", short_label: null, acronym: null, note: null}
- {iri: OwnershipLayerObject, label: "Ownership Layer Object", short_label: "Ownership Layer", acronym: null, note: "the categorisation role moves into rdfs:comment"}
- {iri: BusinessLayerObject, label: "Business Layer Object", short_label: "Business Layer", acronym: null, note: null}
- {iri: LogicalLayerObject, label: "Logical Layer Object", short_label: "Logical Layer", acronym: null, note: null}
- {iri: PhysicalLayerObject, label: "Physical Layer Object", short_label: "Physical Layer", acronym: null, note: null}
- {iri: DeliveryLayerObject, label: "Delivery Layer Object", short_label: "Delivery Layer", acronym: null, note: null}
- {iri: ConsumptionLayerObject, label: "Consumption Layer Object", short_label: "Consumption Layer", acronym: null, note: null}
- {iri: GovernanceLayerObject, label: "Governance Layer Object", short_label: "Governance Layer", acronym: null, note: null}
- {iri: DataStructure, label: "Data Structure", short_label: null, acronym: null, note: "the former short label was a gloss and belongs in rdfs:comment"}
- {iri: KeyConstraint, label: "Key Constraint", short_label: null, acronym: null, note: null}
- {iri: Actor, label: "Actor", short_label: null, acronym: null, note: null}
- {iri: DataDomain, label: "Data Domain", short_label: "Domain", acronym: "DD", note: "DD is already the short form used inside instance identifiers"}
- {iri: DataSubDomain, label: "Data Sub Domain", short_label: "Sub Domain", acronym: "SD", note: "no hyphen, for consistency"}
- {iri: BusinessObject, label: "Business Object", short_label: null, acronym: "BO", note: null}
- {iri: BusinessConcept, label: "Business Concept", short_label: "Concept", acronym: null, note: "drives the name of usesConcept"}
- {iri: Metric, label: "Metric", short_label: null, acronym: null, note: null}
- {iri: KeyPerformanceIndicator, label: "Key Performance Indicator", short_label: "KPI", acronym: "KPI", note: "the acronym channel is what makes TN-002 bearable"}
- {iri: DataObject, label: "Data Object", short_label: null, acronym: null, note: null}
- {iri: DataElement, label: "Data Element", short_label: "Element", acronym: null, note: "drives the name of hasElement and hasGrainElement"}
- {iri: Database, label: "Database", short_label: null, acronym: null, note: null}
- {iri: Schema, label: "Schema", short_label: null, acronym: null, note: null}
- {iri: Field, label: "Field", short_label: null, acronym: null, note: null}
- {iri: System, label: "System", short_label: null, acronym: null, note: null}
- {iri: SystemType, label: "System Type", short_label: null, acronym: null, note: null}
- {iri: Transformation, label: "Transformation", short_label: null, acronym: null, note: null}
- {iri: BaseTable, label: "Base Table", short_label: null, acronym: null, note: null}
- {iri: ExternalTable, label: "External Table", short_label: null, acronym: null, note: null}
- {iri: View, label: "View", short_label: null, acronym: null, note: null}
- {iri: PrimaryKey, label: "Primary Key", short_label: null, acronym: null, note: null}
- {iri: ForeignKey, label: "Foreign Key", short_label: null, acronym: null, note: null}
- {iri: DataProduct, label: "Data Product", short_label: null, acronym: null, note: null}
- {iri: DataContract, label: "Data Contract", short_label: null, acronym: null, note: null}
- {iri: DataInterface, label: "Data Interface", short_label: null, acronym: null, note: null}
- {iri: BusinessIntelligenceWorkspace, label: "Business Intelligence Workspace", short_label: "BI Workspace", acronym: null, note: null}
- {iri: BusinessIntelligenceDataSource, label: "Business Intelligence Data Source", short_label: "BI Data Source", acronym: null, note: null}
- {iri: BusinessIntelligenceField, label: "Business Intelligence Field", short_label: "BI Field", acronym: null, note: null}
- {iri: BusinessIntelligenceField, label: "Business Intelligence Field", short_label: "BI Field", acronym: null, note: "reproduced whole in containsBIField under TN-011"}
- {iri: BusinessIntelligenceReport, label: "Business Intelligence Report", short_label: "BI Report", acronym: null, note: null}
- {iri: OwnershipLayerObject, label: "Ownership Layer Object", short_label: null, acronym: null, note: "the categorisation role moves into rdfs:comment"}
- {iri: DataDomainOwner, label: "Data Domain Owner", short_label: "Domain Owner", acronym: "DDO", note: null}
- {iri: DataSubDomainOwner, label: "Data Sub Domain Owner", short_label: "Sub Domain Owner", acronym: "SDO", note: null}
- {iri: DataProductOwner, label: "Data Product Owner", short_label: "Product Owner", acronym: "PO", note: "not DPO - the initialism is taken by Data Protection Officer, a real GDPR role"}
- {iri: DataSteward, label: "Data Steward", short_label: "Steward", acronym: null, note: null}
- {iri: DataGovernanceLead, label: "Data Governance Lead", short_label: "Governance Lead", acronym: "DGL", note: null}