Resolve "Sync with DD, latest schemas and reference-values" M9
Closes #21 (closed)
Summary of Changes Schemas
(since last update July 29, 2021 SHA 9118f8a7a7e1a4361335fbdf96c8c1744ed951a5) Links lead to Member GitLab.
-
Anonymous object fragments
- The up to now anonymous object in the data
allOf
array is programmatically namedIndividualProperties
to assist the schema version validation. Objects will be identified via theirtitle
to perform matching and comparison for schema validation. - Also added a
title
for Well and Wellbore's VerticalMeasurementID element.
- Also improved: the large table describing the
data
properties in the E-R markdown are split into sections byallOf
array members.
- The up to now anonymous object in the data
-
WellboreMarkerSet
Similar modernization as for WellLog;1.1.0 and WellboreTrajectory:1.1.0. The content for the 'bulk' data (e.g., in the CSV file) ws worked out earlier by Chris Hough and Daniel Perna, see here:- Added
osdu:wks:reference-data--MarkerPropertyType:1.0.0
to hold the well-known marker property types - or in context of CSV files column definitions. This type is based onosdu:wks:AbstractReferencePropertyType:1.0.0
. - Created
osdu:wks:work-product-component--WellboreMarkerSet:1.1.0
to add-
data.AvailableMarkerProperties[]
The array of MarkerProperty definitions describing the available properties for this instance of WellboreMarkerSet -
data.Markers[].MarkerSubSeaVerticalDepth
The Marker's TVD converted to a Sub-Sea Vertical depth, i.e., below Mean Sea Level. Note that TVD values above MSL are negative. This is the same as true vertical depth referenced to the vertical CRS “MSL depth”.
-
- Added
-
PersistedCollection
Movedmaster-data--Collection
(created earlier above) to the work-product-component group-type asosdu:wks:work-product-component--PersistedCollection:1.0.0
.- Added support for a generic collection entity, which can refer to any master-data, reference-data, work-product and/or
work-product-component group-type member. PersistedCollection is not to be confused with the transient
DataCollection. The new entity is documented here:
osdu:wks:work-product-component--PersistedCollection:1.0.0
. - The collection purpose or intent is classified by a new reference value type
osdu:wks:reference-data--CollectionPurpose:1.0.0
.
- Added support for a generic collection entity, which can refer to any master-data, reference-data, work-product and/or
work-product-component group-type member. PersistedCollection is not to be confused with the transient
DataCollection. The new entity is documented here:
-
Generic Geometry Datasets
In preparation of Generic Geometry Representations, we need content descriptions, which are specific enough to let consumers understand whether they can parse the data content or not.-
osdu:wks:dataset--File.GeoJSON:1.0.0
for WGS 84 vector geometries. -
osdu:wks:dataset--FileCollection.Esri.Shape:1.0.0
for shapefiles. Shapefiles can refer to any coordinate reference system (CRS) but not necessarily to a complete spatial reference allowing the geometry to be placed on the world map. The full CRS specification is provided in the dataset via the schema fragmentosdu:wks:AbstractSpatialReference:1.0.0
- Reference values for EncodingFormatType and SchemaFormatType are delivered in parallel.
- For further details and examples, please refer to the WorkedExamples
-
-
Governance Change for
EncodingFormatType
,SchemaFormatType
New reference values have been added to support generic geometries and images.-
osdu:wks:reference-data--EncodingFormatType:1.0.0
changed from LOCAL to OPEN. -
osdu:wks:reference-data--SchemaFormatType:1.0.0
changed from LOCAL to OPEN.
-
-
AbstractFacility and FacilityType
- Add a description to
AbstractFacility
clarifying the term facility in OSDU. - Update the description for
FacilityType
accordingly.
- Add a description to
-
WellLog:1.1.0 Corrections
Based on issue #255 "Well Log Curve depths and units in WellLog_1.1.0", some deprecated properties (data.Curves[].TopDepth
,data.Curves[].BaseDepth
,data.Curves[].DepthUnit
) have been revived. The names stay unchanged to avoid disruptions for consumers. The description have been updated to note that the values may refer to other references than only depth. -
ActivityTemplate, ActivityTemplateArc
- Added
data.Name
anddata.Description
toosdu:wks:master-data--ActivityTemplate:1.0.0
, which was an oversight during the definition phase. It is expected that this type is not in widespread use; therefore the minor version is not incremented. - Added
data.Description
toosdu:wks:master-data--ActivityTemplateArc:1.0.0
. It is expected that this type is not in widespread use; therefore the minor version is not incremented.
- Added
Summary of Changes Reference Values
Corresponding to reference-values repo SHA cb1e513c44dfc924b821a6ee2a3dbcc5f83de442 M9
Referential Integrity
- Ingestion tests have shown that some relationships were incorrect or referring to non-existing records. The manifest generation process has been enhanced to check the existence of every related object. All broken relationships have been corrected
- Some reference value types have references/relationships to other reference types, some have even cyclic references.
During the schema generation these dependencies are detected and captured in
the ReferenceValueTypeDependencies.json. Types,
which have interdependencies are merged into one manifest file (
MergedManifests
in ReferenceValueTypeDependencies.json). - All manifests with internal parent-child dependencies are re-ordered such that parents get created before their children. This applies to the merged manifests in particular.
UTC DateTime
- All date-times have been adjusted to conform to either UTC Zulu time or UTC+offset. This change enables successful indexing of date-times.
IngestionSequence.json
Manifest Loading Sequence: Following the ReferenceValueTypeDependencies.json
IngestionSequence
it is possible to construct
a IngestionSequence.json. It is a simple list of JSON objects
linking the kind or the merged manifest name to a relative file location. The first two records are shown below:
[
{
"kind": "ANT_ANTC_OT_SO",
"Key": "ANT_ANTC_OT_SO",
"FileName": "Manifests/reference-data/OPEN/ANT_ANTC_OT_SO.json"
},
{
"kind": "reference-data--ActivityType:1.0.0",
"Key": "ActivityType.1.0.0",
"FileName": "Manifests/reference-data/LOCAL/ActivityType.1.0.0.json"
}
]
- The first element refers to a merged manifest, in this case "AliasNameType.1.0.0", "AliasNameTypeClass.1.0.0", " OrganisationType.1.0.0", "StandardsOrganisation.1.0.0".
- The second element refers to an ordinary manifest.
- The inline example is truncated after the first two elements. See IngestionSequence.json for the full details.
If the manifests are loaded in the sequence as listed in IngestionSequence.json all reference-value relationships are resolvable.
Cleanups
- A duplicate CollectionPurpose manifest was removed from the LOCAL folder.
- Governance Change for AliasNameTypeClass from LOCAL to OPEN.
- Additional values for:
- AzimuthReferenceType
- FacilityType
- AgreementType (Aliases only)
Edited by Thomas Gehrmann [InvitedE]