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.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +4 -0
- data/.github/workflows/release.yml +5 -0
- data/.rubocop.yml +16 -7
- data/.rubocop_todo.yml +67 -80
- data/CLAUDE.md +61 -0
- data/Gemfile +4 -3
- data/lib/modspec/conformance_class.rb +4 -6
- data/lib/modspec/conformance_test.rb +19 -4
- data/lib/modspec/normative_statement.rb +2 -2
- data/lib/modspec/normative_statements_class.rb +3 -1
- data/lib/modspec/suite.rb +45 -38
- data/lib/modspec/version.rb +1 -1
- data/lib/modspec.rb +1 -12
- data/modspec.gemspec +3 -2
- data/spec/conformance_class.liquid +2 -2
- data/spec/fixtures/advanced-json-rc.yaml +5 -7
- data/spec/fixtures/advanced-rc.yaml +12 -14
- data/spec/fixtures/basic-quaternion-json-rc.yaml +5 -7
- data/spec/fixtures/basic-quaternion-json-strict-rc.yaml +4 -5
- data/spec/fixtures/basic-quaternion-rc.yaml +7 -8
- data/spec/fixtures/basic-ypr-json-rc.yaml +5 -8
- data/spec/fixtures/basic-ypr-rc.yaml +7 -7
- data/spec/fixtures/chain-json-rc.yaml +5 -7
- data/spec/fixtures/chain-rc.yaml +11 -13
- data/spec/fixtures/frame-spec-rc.yaml +10 -10
- data/spec/fixtures/global-rc.yaml +7 -4
- data/spec/fixtures/graph-json-rc.yaml +5 -7
- data/spec/fixtures/graph-rc.yaml +11 -13
- data/spec/fixtures/series-irregular-json-rc.yaml +5 -7
- data/spec/fixtures/series-irregular-rc.yaml +13 -15
- data/spec/fixtures/series-regular-json-rc.yaml +5 -7
- data/spec/fixtures/series-regular-rc.yaml +15 -17
- data/spec/fixtures/stream-json-rc.yaml +9 -11
- data/spec/fixtures/stream-rc.yaml +10 -12
- data/spec/fixtures/tangent-point-rc.yaml +10 -11
- data/spec/fixtures/time-rc.yaml +6 -8
- data/spec/modspec/conformance_class_spec.rb +29 -27
- data/spec/modspec/conformance_test_spec.rb +6 -5
- data/spec/modspec/normative_statement_spec.rb +16 -12
- data/spec/modspec/normative_statements_class_spec.rb +4 -4
- data/spec/modspec/suite_spec.rb +26 -22
- data/spec/modspec_spec.rb +7 -7
- data/spec/spec_helper.rb +1 -0
- 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
|
-
|
|
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.
|
|
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
|
|
@@ -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
|
data/spec/fixtures/chain-rc.yaml
CHANGED
|
@@ -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
|
-
|
|
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
|
data/spec/fixtures/graph-rc.yaml
CHANGED
|
@@ -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
|