@@ -9,14 +9,14 @@ GA4GH Inherent Properties over Value Objects
9
9
--------------------------------------------
10
10
11
11
In VRS 1.0 we operated under the principle that all identifiable objects in VRS (e.g. Allele, SequenceLocation, etc.)
12
- would be *value objects *. This meant that they should be immutable and contain only required fields that are
12
+ would be *value objects *. This meant that they should be immutable and contain only required fields that are
13
13
necessary to uniquely identify the object. This approach somewhat simplified the ability to genertate the digests by
14
14
allowing the computation of the digest to be based on the entire object. An exception was made for properties with a
15
15
leading underscore (namely, the *_id * property), which was removed from the object before a digest was calculated.
16
16
17
17
In VRS 2.0 we extended the principle of excepting designated attributes by explicitly defining *inherent properties *
18
- that constitute the properties used to compute an object digest. This was done to enable expressivity of VRS,
19
- enabling implementations to pass common, descriptive metadata as part of the identifiable objects without sacrificing
18
+ that constitute the properties used to compute an object digest. This was done to enable expressivity of VRS,
19
+ enabling implementations to pass common, descriptive metadata as part of the identifiable objects without sacrificing
20
20
the ability to create globally unique, federated identifiers from VRS 1.3.
21
21
22
22
As a result, we had to introduce a new field in the digest model called *ga4gh.inherent * which is described in detail
@@ -25,13 +25,13 @@ in the section on :ref:`ga4gh-inherent-properties`.
25
25
IRIs over CURIEs
26
26
----------------
27
27
28
- In VRS 2.0 we moved away from the use of CURIEs in favor of :ref: `iriReference `. Several factors played a role in
28
+ In VRS 2.0 we moved away from the use of CURIEs in favor of :ref: `iriReference `. Several factors played a role in
29
29
this decision.
30
30
31
- JSON Schema, the default data model for GKS specifications, does not allow for encoding of CURIE namespaces as is done
32
- in other frameworks such as JSON-LD or XML. As a result, namespaces must be captured from custom data structures, API
31
+ JSON Schema, the default data model for GKS specifications, does not allow for encoding of CURIE namespaces as is done
32
+ in other frameworks such as JSON-LD or XML. As a result, namespaces must be captured from custom data structures, API
33
33
endpoints, or documentation that may not persist as messages are exchanged between systems. To address this, references
34
- in GKS specs now use IRIs to reference objects explicitly.
34
+ in GKS specs now use IRIs to reference objects explicitly.
35
35
36
36
IRI-References over IRIs
37
37
------------------------
@@ -44,7 +44,7 @@ VRS identifier syntax and versioning
44
44
45
45
The :ref: `versioning ` section describes the versioning and release naming conventions for the VRS product.
46
46
Approved releases will be assigned to the version number alone, but connect, ballot and snapshot releases will
47
- include the context term and date in addition to the target version number.
47
+ include the context term and date in addition to the target version number.
48
48
49
49
During the GA4GH Connect April 2023 meeting the maturity model was discussed at length and the following
50
50
proposal was presented for instance and class GKS identifiers.
@@ -64,13 +64,13 @@ As an example, the Github JSON Schema URL ($id) for the VRS 2.0.0 Allele is:
64
64
}
65
65
66
66
During the **release and versioning ** discussion at the GA4GH Connect April 2023 meeting the proposal
67
- delved into the idea of including the major version number in the VRS identifier itself. Proponents of
68
- this approach cited concern for the change in digests (and their derived identifiers) between major
69
- versions of the same VRS object, which would become clearly visible in the identifier itself if the
67
+ delved into the idea of including the major version number in the VRS identifier itself. Proponents of
68
+ this approach cited concern for the change in digests (and their derived identifiers) between major
69
+ versions of the same VRS object, which would become clearly visible in the identifier itself if the
70
70
major version was included.
71
71
72
- Opponents of this approach argued that new identifiers would be required for every type of VRS object
73
- for every major version release. Meaning that even if a given type of object has no change that would
72
+ Opponents of this approach argued that new identifiers would be required for every type of VRS object
73
+ for every major version release. Meaning that even if a given type of object has no change that would
74
74
result in a new digest, a new identifier would still be required for the new major version.
75
75
76
76
After much discussion, the decision was made to NOT include the major version number in the VRS identifier
@@ -88,4 +88,3 @@ the following syntax:
88
88
.. code-block ::
89
89
90
90
https://w3id.org/ga4gh/vrs/VA.Oop4kjdTtKcg1kiZjIJAAR3bp7qi4aNT
91
-
0 commit comments