Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.DS_Store
relaton/cache
iev/cache
*/relaton
*/iev
*.err
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_all-parameters-expressed]]
[abstract_test]
.Certificate of conformance specifies all parameters used
====
[%metadata]
name:: Certificate of conformance specifies all parameters used
identifier:: /conf/core/all-parameters-expressed
target:: /req/core/all-parameters-expressed
test-purpose:: Validate that a certificate of conformance specifies all parameter values used to pass the tests in its conformance test class.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_conf-class-single-req-class]]
[abstract_test]
.Conformance class tests only one requirements class
====
[%metadata]
name:: Conformance class tests only one requirements class
identifier:: /conf/core/conf-class-single-req-class
target:: /req/core/conf-class-single-req-class
test-purpose:: Validate that every conformance class explicitly tests only requirements from a single requirements class.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS12_con-class-dependencies.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_con-class-dependencies]]
[abstract_test]
.Conformance class specifies all dependencies
====
[%metadata]
name:: Conformance class specifies all dependencies
identifier:: /conf/core/con-class-dependencies
target:: /req/core/con-class-dependencies
test-purpose:: Validate that all conformance classes specify any other conformance class upon which they are dependent and that other conformance class shall be used to test the specified dependency.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_imported-requirements-class]]
[abstract_test]
.Imported Conformance class tests are consistent with the specification
====
[%metadata]
name:: Imported Conformance class tests are consistent with the specification
identifier:: /conf/core/imported-requirements-class
target:: /req/core/imported-requirements-class
test-purpose:: Validate that if a requirements class is imported from another standard and that requirements class is “optional,” then that requirement class _SHALL_ be factored out as a separate requirements class in the profile of that imported standard used in the conformant standard. +
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_all-classes-explicitly-named]]
[abstract_test]
.Naming consistency
====
[%metadata]
name:: Naming consistency
identifier:: /conf/core/all-classes-explicitly-named
target:: /req/core/all-classes-explicitly-named
test-purpose:: Validate that all requirements classes and all conformance test classes are explicitly named, with corresponding requirements classes and conformance test classes having similar names.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_req-in-only-one-req-class]]
[abstract_test]
.Requirements in one and only one requirements class
====
[%metadata]
name:: Requirements in one and only one requirements class
identifier:: /conf/core/req-in-only-one-req-class
target:: /req/core/req-in-only-one-req-class
test-purpose:: Validate that each requirement in the standard is contained in one and only one requirements class. And that Inclusion of any requirement in a requirements class by a conformance class implies inclusion of all requirements in its class (as a dependency).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_co-dependent-requirements]]
[abstract_test]
.Co-dependent Requirements are in the same requirements class
====
[%metadata]
name:: Co-dependent Requirements are in the same requirements class
identifier:: /conf/core/co-dependent-requirements
target:: /req/core/co-dependent-requirements
test-purpose:: Validate that if any two requirements are co-dependent (each dependent on the other) then they are in the same requirements class. And if any two requirements classes are co-dependent, they have been merged into a single class.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_structure-requirements-classes]]
[abstract_test]
.Modularity in implementation is possible
====
[%metadata]
name:: Modularity in implementation is possible
identifier:: /conf/core/structure-requirements-classes
target:: /req/core/structure-requirements-classes
test-purpose:: Validate that there is a natural structure to the requirements classes so that each may be implemented on top of any implementations of its dependencies and independent of its extensions.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_requirements-and-dependencies]]
[abstract_test]
.Requirements follow rules of inheritance
====
[%metadata]
name:: Requirements follow rules of inheritance
identifier:: /conf/core/requirements-and-dependencies
target:: /req/core/requirements-and-dependencies
test-purpose:: Validate that no requirements class redefines the requirements of its dependencies, unless that redefinition is for an entity derived from but not contained in those dependencies.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS19_profile-conformance.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_profile-conformance]]
[abstract_test]
.Profiles are expressed as sets of conformance classes
====
[%metadata]
name:: Profiles are expressed as sets of conformance classes
identifier:: /conf/core/profile-conformance
target:: /req/core/profile-conformance
test-purpose:: Validate that the conformance tests for a profile of a standard are defined as the union of a list of conformance classes that are to be satisfied by that profile’s standardization targets.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS1_testable.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_requirements-are-testable]]
[abstract_test]
.Requirements are testable
====
[%metadata]
name:: Requirements are testable
identifier:: /conf/core/reqs-are-testable
target:: /req/core/reqs-are-testable
test-purpose:: Validate that all the parts of a requirement are testable and that Failure to pass any part of a requirement is also a failure to pass the associated conformance test.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_core-requirements-separate]]
[abstract_test]
.There is a named Core requirements class
====
[%metadata]
name:: There is a named Core requirements class
identifier:: /conf/core/core-requirements-separate
target:: /req/core/core-requirements-separate
test-purpose:: Validate that the standard defines and identifies a core set of requirements as a separate requirements class with a corresponding conformance class.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_general-recommendations-core]]
[abstract_test]
.General conditions are in the core
====
[%metadata]
name:: General conditions are in the core
identifier:: /conf/core/general-recommendations-core
target:: /req/core/general-recommendations-core
test-purpose:: Validate that all general recommendations for the standard are in the core.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_req-class-not-core-stt-subtype-of-core]]
[abstract_test]
.Every extension has a consistent target type
====
[%metadata]
name:: Every extension has a consistent target type
identifier:: /conf/core/req-class-not-core-stt-subtype-of-core
target:: /req/core/req-class-not-core-stt-subtype-of-core
test-purpose:: Validate that every requirements class in the standard, with the exception of the core, has a standardization target type which is a subtype of that of the core. And that every requirement class, with the exception of the core, has the core as a direct dependency.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS23_core-and-extensions.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_core-and-extensions]]
[abstract_test]
.A standard is a core plus some number of extensions
====
[%metadata]
name:: A standard is a core plus some number of extensions
identifier:: /conf/core/core-and-extensions
target:: /req/core/core-and-extensions
test-purpose:: Validate that the standard defines and identifies a core set of requirements as a separate requirements class with a corresponding conformance class.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_extensions-conformant-to-the-modspec]]
[abstract_test]
.Conformance to this ModSpec is required for any extensions
====
[%metadata]
name:: Conformance to this ModSpec is required for any extensions
identifier:: /conf/core/extensions-conformant-to-the-modspec
target:: /req/core/extensions-conformant-to-the-modspec
test-purpose:: Validate that the standard requires all conformant extensions to be conformant to the ModSpec.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_restriction-of-extensions]]
[abstract_test]
.Future extensions cannot be restricted
====
[%metadata]
name:: Future extensions cannot be restricted
identifier:: /conf/core/restriction-of-extensions
target:: /req/core/restriction-of-extensions
test-purpose:: Validate that the standard never restricts in any manner future, logically valid extensions of its standardization target types.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS26_optional-requirements.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_optional-requirements]]
[abstract_test]
.Optional requirements are organized as requirements classes
====
[%metadata]
name:: Optional requirements are organized as requirements classes
identifier:: /conf/core/optional-requirements
target:: /req/core/optional-requirements
test-purpose:: Validate that the only conditional (optional) requirements acceptable in the standard are expressed as a list of conformance classes to be passed.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_req-class-overlap-by-reference]]
[abstract_test]
.Requirements classes intersect overlap only by reference
====
[%metadata]
name:: Requirements classes intersect overlap only by reference
identifier:: /conf/core/req-class-overlap-by-reference
target:: /req/core/req-class-overlap-by-reference
test-purpose:: Validate that the common portion of any two requirements classes consist only of references to other requirements classes.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS28_reqs-are-in-class.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_requirements-are-in-class]]
[abstract_test]
.Requirements are in class
====
[%metadata]
name:: Requirements are in class
identifier:: /conf/core/reqs-are-in-class
target:: /req/core/reqs-are-in-class
test-purpose:: Validate that each requirement in the standard is associated with exactly one requirements class.
Expand Down
4 changes: 3 additions & 1 deletion sources/abstract_tests/core/ATS2_assigned-uri.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
[[ats_all-components-assigned-uri]]
[abstract_test]
.All components have an assigned URI
====
[%metadata]
name:: All components have an assigned URI
identifier:: /conf/core/all-components-assigned-uri
target:: /req/core/all-components-assigned-uri
test-purpose:: Validate that each component of the standard, including requirements, requirements modules, requirements classes,
test-purpose:: Validate that each component of the standard, including requirements, requirements modules, requirements classes,
conformance test, conformance modules, and conformance test classes are assigned a unique identifer or label.
test-method:: Inspect the document to verify the above.
====
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS3_vocabulary.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_vocabulary-and-parent-req-class]]
[abstract_test]
.Requirements on vocabulary are appropriately placed
====
[%metadata]
name:: Requirements on vocabulary are appropriately placed
identifier:: /conf/core/vocabulary-and-parent-req-class
target:: /req/core/vocabulary-and-parent-req-class
test-purpose:: Validate that requirements on the use and interpretation of vocabulary are in the requirements class where that use or interpretation is used.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_single-standardization-target-type]]
[abstract_test]
.Requirements have a single target type
====
[%metadata]
name:: Requirements have a single target type
identifier:: /conf/core/single-standardization-target-type
target:: /req/core/single-standardization-target-type
test-purpose:: Validate that each requirement class has a single standardization target type.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_test-class-single-standardization-target]]
[abstract_test]
.Conformance test classes have a single target type
====
[%metadata]
name:: Conformance test classes have a single target type
identifier:: /conf/core/test-class-single-standardization-target-type
target:: /req/core/test-class-single-standardization-target-type
test-purpose:: Validate that all conformance tests in a single conformance test class have the same standardization target type.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS6_requirements-grouped.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_requirements-grouped]]
[abstract_test]
.Requirements are organized by clauses
====
[%metadata]
name:: Requirements are organized by clauses
identifier:: /conf/core/requirements-grouped
target:: /req/core/requirements-grouped
test-purpose:: Validate that requirements are grouped together in clauses (numbered sections) of the document in a strictly hierarchical manner, consistent with requirements classes.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_requirements-test-suite-structure]]
[abstract_test]
.Conformance test classes are consistent with requirements classes
====
[%metadata]
name:: Conformance test classes are consistent with requirements classes
identifier:: /conf/core/requirements-test-suite-structure
target:: /req/core/requirements-test-suite-structure
test-purpose:: Validate that the requirements structure of the standard are in a logical correspondence with the test suite structure.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_requirements-class-correspondence-to-conformance-classes]]
[abstract_test]
.Requirement classes and the Conformance Test classes in correspondence
====
[%metadata]
name:: Requirement classes and the Conformance Test classes in correspondence
identifier:: /conf/core/requirements-class-correspondence-to-conformance-classes
target:: /req/core/requirements-class-correspondence-to-conformance-classes
test-purpose:: Validate that the requirements classes are in a one-to-one correspondence to the conformance test classes, and thus to the various certificate of conformance types possible for a candidate implementation.
Expand Down
2 changes: 2 additions & 0 deletions sources/abstract_tests/core/ATS9_no-optional-tests.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
[[ats_no-optional-tests]]
[abstract_test]
.No Optional Elements in Requirements classes
====
[%metadata]
name:: No Optional Elements in Requirements classes
identifier:: /conf/core/no-optional-tests
target:: /req/core/no-optional-tests
test-purpose:: Validate that a conformance class does not contain any optional conformance tests.
Expand Down
16 changes: 9 additions & 7 deletions sources/document.adoc
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
= The ModSpec Model - Part 1: Core - A Standard for Designing and Writing Modular Standards
:doctype: draft standard
:docsubtype: logical-model
:status: Draft
:doctype: standard
:docsubtype: conceptual-model
:status: draft
:committee: technical
:docnumber: 08-131r5
:edition: 1.1.0
:received-date: 2025-08-22
:issued-date: 2025-xx-xx
:published-date: 2025-xx-xx
:issued-date: 2025-08-02
:published-date: 2025-08-22
:copyright-year: 2025
:fullname: Carl Reed, PhD
:role: editor
Expand All @@ -16,10 +16,10 @@
:fullname_3: John Herring, PhD
:role_3: editor
:language: en
:submitting-organizations: Carl Reed, Charles Heazel, ImageMatters
:submitting-organizations: Carl Reed & Associates; Heazeltech; ImageMatters/Tema; UK Met Office
:imagesdir: images
:mn-document-class: ogc
:mn-output-extensions: xml,html,doc,pdf,rxl
:mn-output-extensions: xml,html,pdf,rxl
:local-cache-only:
:data-uri-image:

Expand Down Expand Up @@ -47,6 +47,8 @@ include::sections/aa-abstract-conformance.adoc[]

include::sections/ab-changes-required.adoc[]

include::sections/ac-definitions.adoc[]

include::sections/ad-bibliography.adoc[]

include::sections/ae-acknowledgements.adoc[]
20 changes: 10 additions & 10 deletions sources/ogc-modspec-policy/00-preface.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[.preface]
[abstract]
== Abstract

This OGC ModSpec Policy specifies requirements and guidance for using the OGC ModSpec Standard as the formal structure for all OGC standards documents.
This OGC member Policy mandates using the ModSpec model and related requirements and recommendations for writing and structuring modular OGC standards.
Further, this Policy mandates that every OGC Implementation Standard will provide an Abstract Test Suite (conformance suite) designed to enable the consistent
This OGC ModSpec Policy specifies requirements and guidance for using the OGC ModSpec Standard as the formal structure for all OGC standards documents.
This OGC member Policy mandates using the ModSpec model and related requirements and recommendations for writing and structuring modular OGC standards.
Further, this Policy mandates that every OGC Implementation Standard will provide an Abstract Test Suite (conformance suite) designed to enable the consistent
and verifiable testing of implementations of an OGC Standard that claim conformance.

For OGC Standards work, the word “standard” in the ModSpec applies to all OGC draft standards, approved standards, draft Abstract Specifications, and approved Abstract Specifications. The exceptions are OGC Abstract Specifications that originate in ISO or Community Standards that are developed external to the OGC process and then submitted to the OGC.
Expand All @@ -14,17 +14,17 @@ NOTE: For the purposes of this OGC ModSpec Policy document, all the terms and de

== Scope

The ModSpec Core Standard defines characteristics and structure for the specification of Standards
The ModSpec Core Standard defines characteristics and structure for the specification of Standards
that will encourage implementation by minimizing difficulty determining
requirements, mimicking implementation structure and maximizing usability and
interoperability.
interoperability.

Part 1 of the ModSpec defines the core requirements class and the related recommendations that define the ModSpec core.

Part 2 of the ModSpec defines the requirements for using UML.
The UML extension is if the organizing mechanism for the data model used in a standard is an object model. Then the mapping from parts of the
Part 2 of the ModSpec defines the requirements for using UML.
The UML extension is if the organizing mechanism for the data model used in a standard is an object model. Then the mapping from parts of the
model to the requirements classes should follow the logical mechanism described in Part 1 of the ModSpec.

Part 3 of the ModSpec defines the requirements for using XML. The XML related requirements classes
cover any standard which has as one of its purposes the introduction of a new XML schema.
Part 3 of the ModSpec defines the requirements for using XML. The XML related requirements classes
cover any standard which has as one of its purposes the introduction of a new XML schema.
Such a standard would normally define the schema, all of its components, and its intended uses.
4 changes: 3 additions & 1 deletion sources/permissions/core/PER001_informational-content.adoc
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
[[per-1]]

[permission]
.Informational content in the core
====
[%metadata]
name:: Informational content in the core
identifier:: /per/core/informational-content-in-core
part:: The informational and structural universals of the standard _MAY_ be included in the core text of the standard without violations of the ModSpec.
part:: The informational and structural universals of the standard _MAY_ be included in the core text of the standard without violations of the ModSpec.
This is true if the requirements of the extension are not implicit in what is included in the core.
part:: The core _MAY_ contain the definition and schema of commonly used terms and data structures for use in other components and/or structures throughout the standard.
====
4 changes: 3 additions & 1 deletion sources/permissions/core/PER002_external-vocabs-core.adoc
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
[[per-2]]

[permission]
.External vocabularies and schemas imported to core
====
[%metadata]
name:: External vocabularies and schemas imported to core
identifier:: /per/core/external-vocabs-core
part:: Importation of external vocabularies and schemas _MAY_ be in the core of a standard.
statement:: Importation of external vocabularies and schemas _MAY_ be in the core of a standard.
====
Loading