modspec 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +4 -0
  3. data/.github/workflows/release.yml +5 -0
  4. data/.rubocop.yml +16 -7
  5. data/.rubocop_todo.yml +67 -80
  6. data/CLAUDE.md +61 -0
  7. data/Gemfile +4 -3
  8. data/lib/modspec/conformance_class.rb +4 -6
  9. data/lib/modspec/conformance_test.rb +19 -4
  10. data/lib/modspec/normative_statement.rb +2 -2
  11. data/lib/modspec/normative_statements_class.rb +3 -1
  12. data/lib/modspec/suite.rb +45 -38
  13. data/lib/modspec/version.rb +1 -1
  14. data/lib/modspec.rb +1 -12
  15. data/modspec.gemspec +3 -2
  16. data/spec/conformance_class.liquid +2 -2
  17. data/spec/fixtures/advanced-json-rc.yaml +5 -7
  18. data/spec/fixtures/advanced-rc.yaml +12 -14
  19. data/spec/fixtures/basic-quaternion-json-rc.yaml +5 -7
  20. data/spec/fixtures/basic-quaternion-json-strict-rc.yaml +4 -5
  21. data/spec/fixtures/basic-quaternion-rc.yaml +7 -8
  22. data/spec/fixtures/basic-ypr-json-rc.yaml +5 -8
  23. data/spec/fixtures/basic-ypr-rc.yaml +7 -7
  24. data/spec/fixtures/chain-json-rc.yaml +5 -7
  25. data/spec/fixtures/chain-rc.yaml +11 -13
  26. data/spec/fixtures/frame-spec-rc.yaml +10 -10
  27. data/spec/fixtures/global-rc.yaml +7 -4
  28. data/spec/fixtures/graph-json-rc.yaml +5 -7
  29. data/spec/fixtures/graph-rc.yaml +11 -13
  30. data/spec/fixtures/series-irregular-json-rc.yaml +5 -7
  31. data/spec/fixtures/series-irregular-rc.yaml +13 -15
  32. data/spec/fixtures/series-regular-json-rc.yaml +5 -7
  33. data/spec/fixtures/series-regular-rc.yaml +15 -17
  34. data/spec/fixtures/stream-json-rc.yaml +9 -11
  35. data/spec/fixtures/stream-rc.yaml +10 -12
  36. data/spec/fixtures/tangent-point-rc.yaml +10 -11
  37. data/spec/fixtures/time-rc.yaml +6 -8
  38. data/spec/modspec/conformance_class_spec.rb +29 -27
  39. data/spec/modspec/conformance_test_spec.rb +6 -5
  40. data/spec/modspec/normative_statement_spec.rb +16 -12
  41. data/spec/modspec/normative_statements_class_spec.rb +4 -4
  42. data/spec/modspec/suite_spec.rb +26 -22
  43. data/spec/modspec_spec.rb +7 -7
  44. data/spec/spec_helper.rb +1 -0
  45. metadata +6 -4
data/modspec.gemspec CHANGED
@@ -20,16 +20,17 @@ Gem::Specification.new do |spec|
20
20
  spec.metadata["homepage_uri"] = spec.homepage
21
21
  spec.metadata["source_code_uri"] = spec.homepage
22
22
  spec.metadata["bug_tracker_uri"] = "#{spec.homepage}/issues"
23
+ spec.metadata["rubygems_mfa_required"] = "true"
23
24
 
24
25
  # Specify which files should be added to the gem when it is released.
25
26
  spec.files = all_files_in_git
26
- .reject { |f| f.match(%r{\A(?:test|features|bin|\.)/}) }
27
+ .reject { |f| f.match(%r{\A(?:test|features|bin|\.)/}) }
27
28
 
28
29
  spec.bindir = "exe"
29
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
31
  spec.require_paths = ["lib"]
31
32
 
32
- spec.add_dependency "lutaml-model", "~>0.7"
33
+ spec.add_dependency "lutaml-model", "~> 0.8.0"
33
34
  spec.add_dependency "nokogiri"
34
35
  spec.add_dependency "toml-rb"
35
36
  end
@@ -80,11 +80,11 @@ guidance::
80
80
  test-purpose:: {{test.purpose}}
81
81
  {% endif %}
82
82
 
83
- {% if {{test.method}} %}
83
+ {% if {{test.test_method}} %}
84
84
  test-method::
85
85
  +
86
86
  --
87
- {{test.method}}
87
+ {{test.test_method}}
88
88
  --
89
89
  {% endif %}
90
90
 
@@ -1,16 +1,14 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: JSON encoding of Advanced SDU
4
- identifier: /req/advanced-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Advanced SDU.
4
+ identifier: "/req/advanced-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Advanced SDU.'
7
6
  implements:
8
- - /req/advanced
9
-
7
+ - "/req/advanced"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/advanced-encoding-json/definition
10
+ identifier: "/req/advanced-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded Advanced GeoPose SHALL conform to the
16
13
  Advanced JSON-Schema 2019-9 definition (<<advanced_geopose_json_schema>>).
14
+ obligation: requirement
@@ -1,37 +1,34 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Advanced logical model SDU
4
- identifier: /req/advanced
4
+ identifier: "/req/advanced"
5
5
  description: |
6
6
  The Advanced Target has a more general structure than Basic-YPR and
7
7
  Basic-Quaternion, supporting flexible specification of Outer Frame and a
8
8
  Valid Time.
9
-
10
9
  dependencies:
11
- - /req/global
12
- - /req/frame-spec
13
- - /req/time
10
+ - "/req/global"
11
+ - "/req/frame-spec"
12
+ - "/req/time"
14
13
  normative_statements:
15
-
16
14
  - name: Expression of valid time as GeoPose_Instant
17
- identifier: /req/advanced/valid-time
15
+ identifier: "/req/advanced/valid-time"
18
16
  dependencies:
19
- - /req/time/instant
20
-
17
+ - "/req/time/instant"
21
18
  statement: |
22
19
  The `Advanced.validTime` attribute shall be represented by a
23
20
  `GeoPose_Instant` object.
24
-
21
+ obligation: requirement
25
22
  - name: Expression of outer frame
26
- identifier: /req/advanced/frame-spec
23
+ identifier: "/req/advanced/frame-spec"
27
24
  dependencies:
28
- - /req/frame-spec
25
+ - "/req/frame-spec"
29
26
  statement: |
30
27
  The `Advanced.frameSpecification` attribute shall represent an explicit
31
28
  frame specification with the `ExplicitFrameSpec` object.
32
-
29
+ obligation: requirement
33
30
  - name: Expression of inner frame
34
- identifier: /req/advanced/quaternion
31
+ identifier: "/req/advanced/quaternion"
35
32
  statement: |
36
33
  The `Advanced.quaternion` attribute shall contain a quaternion expressed
37
34
  using the UnitQuaternion datatype value expressed as four real numbers,
@@ -41,3 +38,4 @@ normative_statements_classes:
41
38
  SHALL be applied to an initial reference frame oriented East-North-Up
42
39
  (ENU) coordinate system where the coordinate axes East, North, and Up
43
40
  correspond to the axes X, Y, Z.
41
+ obligation: requirement
@@ -1,17 +1,15 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Permissive JSON encoding of Basic-Quaternion SDU
4
- identifier: /req/basic-quaternion-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Basic-Quaternion SDU.
4
+ identifier: "/req/basic-quaternion-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Basic-Quaternion SDU.'
7
6
  implements:
8
- - /req/basic-quaternion
9
-
7
+ - "/req/basic-quaternion"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/basic-quaternion-encoding-json/definition
10
+ identifier: "/req/basic-quaternion-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded Basic-Quaternion GeoPose SHALL conform to the
16
13
  Basic-Quaternion JSON-Schema 2019-9 definition
17
14
  (<<basic_quaternion_permissive_json_schema>>).
15
+ obligation: requirement
@@ -1,19 +1,18 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Strict JSON encoding of Basic-Quaternion SDU
4
- identifier: /req/basic-quaternion-encoding-json-strict
4
+ identifier: "/req/basic-quaternion-encoding-json-strict"
5
5
  description: |
6
6
  Requirements for the JSON encoding of a Basic-Quaternion SDU in strict mode.
7
7
  The strict encoding does not allow specification of JSON elements outside of
8
8
  the schema.
9
9
  implements:
10
- - /req/basic-quaternion
11
-
10
+ - "/req/basic-quaternion"
12
11
  normative_statements:
13
-
14
12
  - name: Specification as JSON schema
15
- identifier: /req/basic-quaternion-encoding-json-strict/definition
13
+ identifier: "/req/basic-quaternion-encoding-json-strict/definition"
16
14
  statement: |
17
15
  A JSON-encoded Basic-Quaternion GeoPose SHALL conform to the
18
16
  strict Basic-Quaternion JSON-Schema 2019-9 definition
19
17
  (<<basic_quaternion_strict_json_schema>>).
18
+ obligation: requirement
@@ -1,26 +1,24 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Basic-Quaternion logical model SDU
4
- identifier: /req/basic-quaternion
4
+ identifier: "/req/basic-quaternion"
5
5
  description: |
6
6
  The Basic-Quaternion Target has a simple structure with no options. Position
7
7
  is specified as a point in an LTP-ENU frame and rotation is specified as a
8
8
  unit quaternion.
9
-
10
9
  dependencies:
11
- - /req/global
12
- - /req/tangent-point
10
+ - "/req/global"
11
+ - "/req/tangent-point"
13
12
  normative_statements:
14
-
15
13
  - name: Expression of outer frame
16
- identifier: /req/basic-quaternion/position
14
+ identifier: "/req/basic-quaternion/position"
17
15
  statement: |
18
16
  The `Basic_Quaternion.position` attribute shall represent the outer frame,
19
17
  specified by an implicit WGS-84 CRS and an implicit EPSG 4461-CS (LTP-ENU)
20
18
  coordinate system and explicit parameters to define the tangent point.
21
-
19
+ obligation: requirement
22
20
  - name: Expression of inner frame
23
- identifier: /req/basic-quaternion/quaternion
21
+ identifier: "/req/basic-quaternion/quaternion"
24
22
  statement: |
25
23
  The `Basic_Quaternion.quaternion` attribute shall represent the inner
26
24
  frame, which shall be a rotation-only transformation using a unit
@@ -32,3 +30,4 @@ normative_statements_classes:
32
30
  quaternion shall be applied to an initial reference frame oriented
33
31
  East-North-Up (ENU) coordinate system where the coordinate axes East,
34
32
  North, and Up correspond to the axes X, Y, Z.
33
+ obligation: requirement
@@ -1,21 +1,18 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: JSON encoding of Basic-YPR SDU
4
- identifier: /req/basic-ypr-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Basic-YPR SDU.
4
+ identifier: "/req/basic-ypr-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Basic-YPR SDU.'
7
6
  implements:
8
- - /req/basic-ypr
9
-
7
+ - "/req/basic-ypr"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/basic-ypr-encoding-json/definition
10
+ identifier: "/req/basic-ypr-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded Basic-YPR GeoPose SHALL conform to the Basic-YPR
16
13
  JSON-Schema 2019-9 definition (<<basic_ypr_json_schema>>).
17
-
18
14
  guidance:
19
15
  - |
20
16
  This JSON encoding is extensible because the JSON-Schema
21
17
  "additionalProperties" property is set to the default value of *true*.
18
+ obligation: requirement
@@ -1,25 +1,24 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Basic-YPR logical model SDU
4
- identifier: /req/basic-ypr
4
+ identifier: "/req/basic-ypr"
5
5
  description: |
6
6
  The Basic-YPR Target has a simple structure with no options. Position is
7
7
  specified as a point in an LTP-ENU frame and rotation is specified by yaw,
8
8
  pitch, and roll angles specified in decimal degrees.
9
9
  dependencies:
10
- - /req/global
11
- - /req/tangent-point
10
+ - "/req/global"
11
+ - "/req/tangent-point"
12
12
  normative_statements:
13
-
14
13
  - name: Expression of outer frame
15
- identifier: /req/basic-ypr/position
14
+ identifier: "/req/basic-ypr/position"
16
15
  statement: |
17
16
  The `Basic_YPR.position` attribute shall represent the outer frame,
18
17
  specified by an implicit WGS-84 CRS and an implicit EPSG 4461-CS (LTP-ENU)
19
18
  coordinate system and explicit parameters to define the tangent point.
20
-
19
+ obligation: requirement
21
20
  - name: Expression of inner frame
22
- identifier: /req/basic-ypr/angles
21
+ identifier: "/req/basic-ypr/angles"
23
22
  statement: |
24
23
  The `Basic_YPR.angles` attribute shall represent the inner frame,
25
24
  which is a rotation-only transformation with Yaw, Pitch, and Roll (YPR)
@@ -30,3 +29,4 @@ normative_statements_classes:
30
29
  x, applied in that order, corresponding to the conventional Yaw, Pitch,
31
30
  and Roll angles. The unit of measure SHALL be the degree and the angles
32
31
  represented as signed real number values.
32
+ obligation: requirement
@@ -1,16 +1,13 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: JSON encoding of Chain SDU
4
- identifier: /req/chain-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Chain SDU.
4
+ identifier: "/req/chain-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Chain SDU.'
7
6
  implements:
8
- - /req/chain
9
-
7
+ - "/req/chain"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/chain-encoding-json/definition
10
+ identifier: "/req/chain-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded GeoPose Chain SHALL conform to the GeoPose Chain
16
13
  JSON-Schema 2019-9 definition (<<chain_json_schema>>).
@@ -18,3 +15,4 @@ normative_statements_classes:
18
15
  - |
19
16
  This JSON encoding is extensible because the JSON-Schema
20
17
  "additionalProperties" property is set to the default value of *true*.
18
+ obligation: requirement
@@ -1,36 +1,34 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Chain logical model SDU
4
- identifier: /req/chain
4
+ identifier: "/req/chain"
5
5
  description: |
6
6
  The Chain Target supports relationships between a linear sequence of pose
7
7
  relationships. The first frame in the sequence must be an Outer Frame.
8
-
9
8
  dependencies:
10
- - /req/global
11
- - /req/frame-spec
12
- - /req/time
13
-
9
+ - "/req/global"
10
+ - "/req/frame-spec"
11
+ - "/req/time"
14
12
  normative_statements:
15
-
16
13
  - name: Expression of valid time as GeoPose_Instant
17
- identifier: /req/chain/valid-time
14
+ identifier: "/req/chain/valid-time"
18
15
  dependencies:
19
- - /req/time/instant
16
+ - "/req/time/instant"
20
17
  statement: |
21
18
  The `Chain.validTime` attribute shall be represented by a
22
19
  `GeoPose_Instant` object.
23
-
20
+ obligation: requirement
24
21
  - name: Specification of initial frame
25
- identifier: /req/chain/initial-frame
22
+ identifier: "/req/chain/initial-frame"
26
23
  statement: |
27
24
  The `Chain.outerFrame` attribute shall represent the first frame in the
28
25
  sequence with the `ExplicitFrameSpec` object.
29
-
26
+ obligation: requirement
30
27
  - name: Chain of frame specifications
31
- identifier: /req/chain/frame-chain
28
+ identifier: "/req/chain/frame-chain"
32
29
  statement: |
33
30
  The `Chain.frameChain` attribute shall represent a list of explicit
34
31
  frame specifications with an array of `ExplicitFrameSpec` objects.
35
32
  Each index value shall be a distinct integer value between 0 and one less
36
33
  than the number of elements in the frameChain property.
34
+ obligation: requirement
@@ -1,27 +1,27 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Frame specification requirements
4
- identifier: /req/frame-spec
5
- description: |
6
- Common frame specification requirements for SDUs that include frames.
4
+ identifier: "/req/frame-spec"
5
+ description: 'Common frame specification requirements for SDUs that include frames.'
7
6
  normative_statements:
8
-
9
- - name: Frame specification authority uniquely specifies source of reference frame specification
10
- identifier: /req/frame-spec/authority
7
+ - name: Frame specification authority uniquely specifies source of reference frame
8
+ specification
9
+ identifier: "/req/frame-spec/authority"
11
10
  statement: |
12
11
  The FrameSpecification.authority attribute SHALL contain a string uniquely
13
12
  specifying a source of reference frame specifications.
14
-
13
+ obligation: requirement
15
14
  - name: Frame specification ID uniquely defines frame within authority
16
- identifier: /req/frame-spec/id
15
+ identifier: "/req/frame-spec/id"
17
16
  statement: |
18
17
  The FrameSpecification.ID attribute SHALL be a string uniquely defining a
19
18
  frame within the authority.
20
-
19
+ obligation: requirement
21
20
  - name: Frame specification parameter contains all parameters needed
22
- identifier: /req/frame-spec/parameters
21
+ identifier: "/req/frame-spec/parameters"
23
22
  statement: |
24
23
  The FrameSpecification.parameter attribute SHALL contain all parameters
25
24
  needed for the corresponding authority and ID.
26
25
  guidance:
27
26
  - The definition of these parameters is outside the scope of GeoPose.
27
+ obligation: requirement
@@ -1,23 +1,26 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Global SDU requirements
4
- identifier: /req/global
4
+ identifier: "/req/global"
5
5
  description: Global requirements apply to all SDUs and Standardization Targets.
6
6
  normative_statements:
7
7
  - name: Individual standardization targets are independent
8
- identifier: /req/global/target-independence
8
+ identifier: "/req/global/target-independence"
9
9
  statement: |
10
10
  There shall be no dependency between or among the individual
11
11
  Standardization Targets.
12
+ obligation: requirement
12
13
  - name: Implementation conforms to the logical model
13
- identifier: /req/global/logical-model
14
+ identifier: "/req/global/logical-model"
14
15
  statement: |
15
16
  Implementations of concrete data conforming to this standard SHALL
16
17
  conform to all dependent or inherited classes, attributes, and
17
18
  associations, multiplicities, and data types in the Logical Model.
19
+ obligation: requirement
18
20
  - name: SDU conforms to the "Structural Data Unit - SDU" stereotype
19
- identifier: /req/global/sdu
21
+ identifier: "/req/global/sdu"
20
22
  statement: |
21
23
  Implementations using encoded SDUs SHALL conform to the logical
22
24
  description of the Logical Model elements with the
23
25
  "Structural Data Unit - SDU" stereotype.
26
+ obligation: requirement
@@ -1,16 +1,13 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: JSON encoding of Graph SDU
4
- identifier: /req/graph-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Graph SDU.
4
+ identifier: "/req/graph-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Graph SDU.'
7
6
  implements:
8
- - /req/graph
9
-
7
+ - "/req/graph"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/graph-encoding-json/definition
10
+ identifier: "/req/graph-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded GeoPose Graph SHALL conform to the GeoPose Chain
16
13
  JSON-Schema 2019-9 definition (<<graph_json_schema>>).
@@ -18,3 +15,4 @@ normative_statements_classes:
18
15
  - |
19
16
  This JSON encoding is extensible because the JSON-Schema
20
17
  "additionalProperties" property is set to the default value of *true*.
18
+ obligation: requirement
@@ -1,38 +1,36 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Graph logical model SDU
4
- identifier: /req/graph
4
+ identifier: "/req/graph"
5
5
  description: |
6
6
  The Graph Target supports a network of object relative poses. The graph is a
7
7
  directed acyclic graph, each node must either be an Extrinsic Frame or
8
8
  reachable from an Extrinsic Frame.
9
-
10
9
  dependencies:
11
- - /req/global
12
- - /req/frame-spec
13
- - /req/time
14
-
10
+ - "/req/global"
11
+ - "/req/frame-spec"
12
+ - "/req/time"
15
13
  normative_statements:
16
-
17
14
  - name: Expression of valid time as GeoPose_Instant
18
- identifier: /req/graph/valid-time
15
+ identifier: "/req/graph/valid-time"
19
16
  dependencies:
20
- - /req/time/instant
17
+ - "/req/time/instant"
21
18
  statement: |
22
19
  The `Graph.validTime` attribute shall be represented by a
23
20
  `GeoPose_Instant` object.
24
-
21
+ obligation: requirement
25
22
  - name: List of frame specifications
26
- identifier: /req/graph/frame-list
23
+ identifier: "/req/graph/frame-list"
27
24
  statement: |
28
25
  The `Graph.frameList` attribute shall represent a list of explicit
29
26
  frame specifications with an array of `ExplicitFrameSpec` objects.
30
-
27
+ obligation: requirement
31
28
  - name: Transforms for frame specification list
32
- identifier: /req/graph/transform-list
29
+ identifier: "/req/graph/transform-list"
33
30
  statement: |
34
31
  The `Graph.transformList` attribute shall have a value of type
35
32
  `FrameTransformIndexPair`.
36
33
  Each index value in a `FrameListTransformPair` SHALL be a distinct integer
37
34
  value between 0 and one less than the number of elements in the
38
35
  `frameList` property.
36
+ obligation: requirement
@@ -1,16 +1,13 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: JSON encoding of Irregular Series SDU
4
- identifier: /req/series-irregular-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Irregular Series SDU.
4
+ identifier: "/req/series-irregular-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Irregular Series SDU.'
7
6
  implements:
8
- - /req/series-irregular
9
-
7
+ - "/req/series-irregular"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/series-irregular-encoding-json/definition
10
+ identifier: "/req/series-irregular-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded GeoPose Irregular Series SHALL conform to the GeoPose Chain
16
13
  JSON-Schema 2019-9 definition (<<irregular_series_json_schema>>).
@@ -18,3 +15,4 @@ normative_statements_classes:
18
15
  - |
19
16
  This JSON encoding is extensible because the JSON-Schema
20
17
  "additionalProperties" property is set to the default value of *true*.
18
+ obligation: requirement
@@ -1,41 +1,39 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Irregular_Series logical model SDU
4
- identifier: /req/series-irregular
4
+ identifier: "/req/series-irregular"
5
5
  description: |
6
6
  The Irregular_Series Target represents the time evolution of a single
7
7
  GeoPose, with a variable time duration between successive inner frames.
8
-
9
8
  dependencies:
10
- - /req/global
11
- - /req/frame-spec
12
- - /req/time
13
-
9
+ - "/req/global"
10
+ - "/req/frame-spec"
11
+ - "/req/time"
14
12
  normative_statements:
15
-
16
13
  - name: Expression of inner frames and time series
17
- identifier: /req/series-irregular/inner-frame-and-time
14
+ identifier: "/req/series-irregular/inner-frame-and-time"
18
15
  dependencies:
19
- - /req/time/instant
16
+ - "/req/time/instant"
20
17
  statement: |
21
18
  The `Irregular_Series.innerFrameAndTime` attribute SHALL be implemented as
22
19
  an array of `FrameAndTimeElement` objects, each of which is a pair of
23
20
  `ExplicitFrameSpec` and `GeoPoseInstant` objects.
24
-
21
+ obligation: requirement
25
22
  - name: Expression of outer frame
26
- identifier: /req/series-irregular/outer-frame
23
+ identifier: "/req/series-irregular/outer-frame"
27
24
  statement: |
28
25
  The `Irregular_Series.outerFrame` attribute shall represent the first
29
26
  frame in the series expressed by the `innerFrameAndTime` attribute.
30
-
27
+ obligation: requirement
31
28
  - name: Expression of series header
32
- identifier: /req/series-irregular/header
29
+ identifier: "/req/series-irregular/header"
33
30
  statement: |
34
31
  The `Irregular_Series.header` attribute shall be implemented as an instance
35
32
  of SeriesHeader.
36
-
33
+ obligation: requirement
37
34
  - name: Expression of series trailer
38
- identifier: /req/series-irregular/trailer
35
+ identifier: "/req/series-irregular/trailer"
39
36
  statement: |
40
37
  The `Irregular_Series.trailer` attribute shall be implemented as an instance
41
38
  of SeriesTrailer.
39
+ obligation: requirement
@@ -1,16 +1,13 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: JSON encoding of Regular Series SDU
4
- identifier: /req/series-regular-encoding-json
5
- description: |
6
- Requirements for the JSON encoding of a Regular Series SDU.
4
+ identifier: "/req/series-regular-encoding-json"
5
+ description: 'Requirements for the JSON encoding of a Regular Series SDU.'
7
6
  implements:
8
- - /req/series-regular
9
-
7
+ - "/req/series-regular"
10
8
  normative_statements:
11
-
12
9
  - name: Specification as JSON schema
13
- identifier: /req/series-regular-encoding-json/definition
10
+ identifier: "/req/series-regular-encoding-json/definition"
14
11
  statement: |
15
12
  A JSON-encoded GeoPose Regular Series SHALL conform to the GeoPose Chain
16
13
  JSON-Schema 2019-9 definition (<<regular_series_json_schema>>).
@@ -18,3 +15,4 @@ normative_statements_classes:
18
15
  - |
19
16
  This JSON encoding is extensible because the JSON-Schema
20
17
  "additionalProperties" property is set to the default value of *true*.
18
+ obligation: requirement
@@ -1,46 +1,44 @@
1
1
  ---
2
2
  normative_statements_classes:
3
3
  - name: Regular_Series logical model SDU
4
- identifier: /req/series-regular
4
+ identifier: "/req/series-regular"
5
5
  description: |
6
6
  The Regular_Series Target represents the time evolution of a single GeoPose,
7
7
  with a constant time duration between successive inner frames.
8
-
9
8
  dependencies:
10
- - /req/global
11
- - /req/frame-spec
12
- - /req/time
13
-
9
+ - "/req/global"
10
+ - "/req/frame-spec"
11
+ - "/req/time"
14
12
  normative_statements:
15
-
16
13
  - name: Expression of duration as GeoPose_Duration
17
- identifier: /req/series-regular/duration
14
+ identifier: "/req/series-regular/duration"
18
15
  dependencies:
19
- - /req/time/duration
16
+ - "/req/time/duration"
20
17
  statement: |
21
18
  The `Regular_Series.interPoseDuration` attribute shall be represented by
22
19
  an instance of the `GeoPose_Duration` object.
23
-
20
+ obligation: requirement
24
21
  - name: Expression of outer frame
25
- identifier: /req/series-regular/outer-frame
22
+ identifier: "/req/series-regular/outer-frame"
26
23
  statement: |
27
24
  The `Regular_Series.outerFrame` attribute shall represent the first frame
28
25
  in the series with the `ExplicitFrameSpec` object.
29
-
26
+ obligation: requirement
30
27
  - name: Expression of inner frames
31
- identifier: /req/series-regular/inner-frame-series
28
+ identifier: "/req/series-regular/inner-frame-series"
32
29
  statement: |
33
30
  The `Regular_Series.innerFrameSeries` attribute shall represent the
34
31
  succession of inner frames as an array of `ExplicitFrameSpec` objects.
35
-
32
+ obligation: requirement
36
33
  - name: Expression of series header
37
- identifier: /req/series-regular/header
34
+ identifier: "/req/series-regular/header"
38
35
  statement: |
39
36
  The `Regular_Series.header` attribute shall be implemented as an instance
40
37
  of SeriesHeader.
41
-
38
+ obligation: requirement
42
39
  - name: Expression of series trailer
43
- identifier: /req/series-regular/trailer
40
+ identifier: "/req/series-regular/trailer"
44
41
  statement: |
45
42
  The `Regular_Series.trailer` attribute shall be implemented as an instance
46
43
  of SeriesTrailer.
44
+ obligation: requirement