Migrate to Metanorma template with structured requirements#33
Merged
liangsteve merged 60 commits intomainfrom Mar 2, 2026
Merged
Migrate to Metanorma template with structured requirements#33liangsteve merged 60 commits intomainfrom
liangsteve merged 60 commits intomainfrom
Conversation
initialize branch 25-019. Part 1 Data Model
added the standard template instructions
added submitters
added doc number, etc.
Need to change to PlantUML or XMI in the future.
add Mechanism definition
note to "identity, structure, or purpose" The phrase “identity, structure, or purpose” is meant to cover all the ways people might mistakenly bake feature assumptions into mechanisms: • Identity → specific asset (e.g., “compressor”) • Structure → mechanical configuration (e.g., “has rod packing”) • Purpose → functional role (e.g., “storage tank used for condensate”)
… Source Feature and Unit of Measure added definitions, Emission Event, Feature, Measurement, Observation, Source Feature and Unit of Measure
Added latest UML using mermaid format.
feat(emissionml): refactor core model—value-objects for time, evidence-based assertions, and intent via mechanism Summary • Reworked EmissionML class diagram to center on evidence-backed assertions and cleaner separations of concerns. Introduces TemporalBound value object, determination-method hierarchy, and intent derived from Mechanism. Aligns Observation with ISO 19156 and simplifies Event surface. Added • TemporalBound <<ValueObject>> with time: TM_Instant and quality: DQ_Element. • Provenance edges: EmissionQuantity --> Observation : hasEvidence, TemporalBound --> Observation : hasEvidence. • Determination-method hierarchy: AbstractDeterminationMethod (abstract), TemporalDeterminationMethod, QuantityDeterminationMethod. • Observation now explicit (<<ISO 19156:2023>>) with result and time. • EmissionIntent <<CodeList>> with members intentional | unintentional | unknown. • Constraint: SourceFeatureType --> Mechanism : allowedMechanism (“honor system”). • Cardinalities and named roles across associations. Changed • EmissionEvent now composes: • *-- EmissionQuantity : hasQuantity • o-- TemporalBound : startTime / endTime? • --> SourceFeature : hasSource • --> Mechanism : hasMechanism • Intent is no longer a direct attribute of EmissionEvent; it is implied via Mechanism ..> EmissionIntent : hasIntent. • EmissionQuantity now: • *-- UnitOfMeasure : hasUnit • --> QuantityDeterminationMethod : hasDeterminationMethod • Keeps quantity: double, quality: DQ_Element (explicit). • Observation --> SourceFeature : featureOfInterest (renamed from “UltimateFeatureOfInterest”). • SourceFeature --> SourceFeatureType : hasType (role name clarified). Removed • StartEvent, EndEvent, and TemporalBoundEvent (replaced by TemporalBound with composition from EmissionEvent). • DeterminationMethod (replaced by abstract + specific subclasses). • DeterminationType, EmissionEventPattern. • SourceFeature.attributionGranularity, SourceFeature.observations[0..*] (provenance now modeled from the asserting objects). • EmissionEvent.name, direct intent field. Migration notes • Replace EmissionEvent --> StartEvent/EndEvent with: • EmissionEvent o-- TemporalBound : startTime • EmissionEvent o-- TemporalBound : endTime (0..1) • Map TemporalBoundEvent/DeterminationType → TemporalBound --> TemporalDeterminationMethod. • Map EmissionQuantity.quantityDeterminationMethod: URI → EmissionQuantity --> QuantityDeterminationMethod. • Replace SourceFeatureType.mayEmitVia → SourceFeatureType.allowedMechanism. • Update edges/roles: • EmissionEvent.isQuantifiedBy → hasQuantity • Observation.UltimateFeatureOfInterest → featureOfInterest • SourceFeature.hasSourceFeatureType → hasType • Intent handling: remove EmissionEvent.intent; derive via Mechanism ..> EmissionIntent. Rationale • Clarifies provenance (quantities/times cite their observations). • Encapsulates temporal assertions as value objects with quality. • Separates determination semantics for time vs quantity. • Moves intent to mechanism level to reduce duplication and ambiguity. Refs: ISO 19156 (Observation), ISO 19157 (DQ_Element).
latest UML. re: SWG meeting on 2025-12-12
Changes Summary • Data Quality Elements — Cardinality Updated • EmissionQuantity.quality: changed from DQ_Element → DQ_Element[0..*] (line 11) • TemporalBound.quality: changed from DQ_Element → DQ_Element[0..*] (line 21) Impact: both elements can now have zero or multiple quality elements instead of exactly one. • SourceType Class — Re-enabled • Lines 35–38: SourceType class uncommented and fully defined with: • +name: String • +description: String • +definition: URI • Line 80: relationship uncommented: Source "0..*" --> "0..1" SourceType : hasType Impact: SourceType is now an optional part of the model. • Mechanism Class — Expanded Definition • Changed from <<CodeList>> (old line 41) to a full class with attributes (new lines 41–44): • +label: String • +description: String[0..1] • +hasIntent: EmissionIntent Impact: Mechanism is now a proper class with properties, not just a code list reference. • EmissionIntent — Changed from CodeList to Enumeration • Type changed from <<CodeList>> → <<enumeration>> (line 47) • Values standardized to uppercase: • intentional → INTENTIONAL • unintentional → UNINTENTIONAL • unknown → UNKNOWN Impact: EmissionIntent is now an enumeration with standardized values. • DeterminationMethod — Enhanced • Added +description: String[0..1] (line 54) • Changed +definition: URI → +definition: URI[0..1] (line 55) Impact: both description and definition are now optional. Removed Elements • Lines 78–79 (old): removed the commented “Honor System” constraint relationship: %% SourceType "1" --> "0..*" Mechanism : allowedMechanism Impact: this constraint is no longer part of the model, even as a comment.
update the definition of Emission Event.
Add missing Source Type (Req 3) and Emission Intent (Req 9), remove start-time and end-time (relations of Emission Event, not standalone requirements), renumber to match clause_7, and simplify descriptions to single source of truth pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OM_Observation was the O&M 2.0 class name. OMS 3.0 / ISO/OGC 19156:2023 uses Observation. Updated class references and notes across clause_7, Mermaid diagram, and UML markdown. ISO citation kept as ISO/OGC 19156:2023 (OMS 3.0) for context. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rendering workflow: Mermaid (.mmd) → PlantUML (.puml) → SVG/PNG. PlantUML polyline routing resolves crowded edge labels for the multiple evidence and basis relationships from EmissionEvent. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add change notes for evidence/basis lift to EmissionEvent, TemporalBound as true value object, aggregation→composition, and EmissionIntent attribute→relationship. Move ISO alignment items to separate subsection. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ase class Aligns EmissionML with OMS 3.0 process model: - Add Procedure class (<<ISO 19156:2023>> stereotype, empty) - Rename DeterminationMethod → DeterminationProcedure - DeterminationProcedure inherits from Procedure - Update Requirement 10 URI to determination-procedure - Add Requirement 12 for Procedure class - Update Annex B with new Procedures section and references - Update layering diagram with Procedure inheritance chain Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add missing terms to clause_4: Determination Procedure, Emission Quantity, Emission Intent, Procedure, Source Type, Temporal Bound - Fix clause_4 AsciiDoc NOTE markup (Note: → +NOTE:) - Align clause_7 lead sentences to match clause_4 exactly: Feature, Source, Observation, Procedure, Determination Procedure - Refine definitions: Source Type (remove redundant "type or category"), Emission Quantity (use "substance" not "pollutant", precise wording), Temporal Bound (use MAY per OGC convention), Emission Intent (use "code list" not "enumeration"), Determination Procedure (remove e.g., use direct statement) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Emission Event and Source NOTEs (occurrent/continuant, segmentation conventions) are modeling rationale, not definitional. They already exist in clause_7 class descriptions. Keeps clause_4 concise. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace literal *-- and --> text with rendered PlantUML symbol images for composition and association in the UML notation table - Convert all Note: to NOTE: (Metanorma admonition syntax) for proper OGC-styled note rendering - Recompile standard document Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers: domain-specific ontology for atmospheric emission events, three key design principles (evidence chains, explicit uncertainty provenance, clear spatial/temporal context with OMS 3.0 reconciliation of heterogeneous sensors), foundational ISO/OGC standards alignment, and credibility/traceability/reproducibility benefits. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ions, and abstract test suite Replace OGC template placeholders with EmissionML-specific content across clauses 1-3, clause 5, and annex A. Add normative ISO references (19101-1, 19107, 19108, 19109, 19157, 19156:2023), build the full Abstract Test Suite for all 13 conformance classes, set the base URI to emissionml/1.0, and enable previously commented-out clause includes. Recompile standard document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add descriptive table titles to all requirement and conformance test tables for better cross-referencing. Convert front material sections to proper AsciiDoc headings, add submitting organizations, replace placeholder bibliography with OGC OMS reference, and add Overview subsections where required by Metanorma. Change document status to swg-draft. Recompile standard document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…applicability Write clause_6 (Background and Motivation) covering structural gaps in current emission data approaches, how EmissionML addresses them, cross-domain applicability (emergency management, landfill, permafrost, agriculture, wastewater, public safety), and use case summary table. Add data value chain figure illustrating write-once-use-many-times architecture. Add EmissionML Discussion Paper (OGC 25-023) to bibliography. Add context/ to .gitignore. Recompile standard document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reorganize the PlantUML class diagram so EmissionEvent is centered with relationships radiating outward: composition targets (TemporalBound, EmissionQuantity) above, Source top-left, Mechanism top-right, evidence (Observation) and basis (DeterminationProcedure) below. Switch from polyline to spline routing for clearer label-to-line association. Recompile standard document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Fraunhofer, DataCove, GTI Energy, Mbrace Energy, and Alberta Energy Regulator to submitting organizations with country labels. Add Contributors table with individual contributor names and affiliations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add all 8 submitting organizations to :submitting-organizations: header in standard_document.adoc so Metanorma front matter matches the body text. Fix "Engery" → "Energy" typo for Alberta Energy Regulator. Recompile standard document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace commas with pipe separators in Contributors table rows so names and affiliations render in separate columns. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add [cols="1,2"] to Contributors table to prevent Metanorma from merging consecutive rows. Update SensorUp affiliation. Recompile standard document. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ct tests Replace old asciidoctor-based build with Metanorma tooling (Gemfile, Makefile, metanorma.yml, GitHub Actions CI). Rename entry point from standard_document.adoc to document.adoc. Convert requirements and abstract tests from inline tables to Metanorma structured format with individual files. Fix docsubtype, update README with Metanorma build instructions, add compiled outputs to .gitignore, and fix CI deploy branch condition for main. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Combines the rich project README from main (references, UML diagram, functional requirements, events, contributing) with the updated Metanorma build instructions and document structure from template-upgrade. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Gemfile,Makefile,metanorma.yml, GitHub Actions CI)standard_document.adoctodocument.adoc(Metanorma convention)REQ_*.adocandATS_*.adocfilesdocsubtypetoconceptual-model, updatesREADME.mdwith Metanorma build instructions.gitignore, removes oldstandard_document.*tracked outputsmainandmasterbranchestemplate-upgradebranch: normative text, definitions, UML diagrams, informative clauses, bibliography, and contributors tableTest plan
metanorma compile document.adocproduces HTML, PDF, DOC, XML without functional errors🤖 Generated with Claude Code