From 43333d47b83195d337df532d1b1d722f466684d4 Mon Sep 17 00:00:00 2001 From: Rob Atkinson Date: Thu, 1 Feb 2024 17:01:21 +1100 Subject: [PATCH] Removed status from naming, marked as in development. --- _sources/bblock.json | 2 +- _sources/features/observation/bblock.json | 4 +- .../observationCollection/bblock.json | 2 +- _sources/properties/observation/bblock.json | 2 +- _sources/properties/observation/rules.shacl | 71 ++++++++++--------- .../observationCollection/bblock.json | 2 +- .../observationCollection/examples.yaml | 24 ++++--- _sources/properties/platform/bblock.json | 2 +- _sources/properties/sensor/bblock.json | 2 +- bblocks-config.yaml | 8 +-- 10 files changed, 61 insertions(+), 58 deletions(-) diff --git a/_sources/bblock.json b/_sources/bblock.json index dbe53d9a..f4d49182 100644 --- a/_sources/bblock.json +++ b/_sources/bblock.json @@ -14,7 +14,7 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "tags": [ "sosa", "ssn", diff --git a/_sources/features/observation/bblock.json b/_sources/features/observation/bblock.json index ced4852a..f3207814 100644 --- a/_sources/features/observation/bblock.json +++ b/_sources/features/observation/bblock.json @@ -14,9 +14,9 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "dependsOn": [ - "ogc.unstable.sosa.properties.observation" + "ogc.sosa.properties.observation" ], "tags": [ "sosa", diff --git a/_sources/features/observationCollection/bblock.json b/_sources/features/observationCollection/bblock.json index 687fc2d4..b2507578 100644 --- a/_sources/features/observationCollection/bblock.json +++ b/_sources/features/observationCollection/bblock.json @@ -18,7 +18,7 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "tags": [ "sosa", "ssn", diff --git a/_sources/properties/observation/bblock.json b/_sources/properties/observation/bblock.json index 6ef42da6..819d5d7b 100644 --- a/_sources/properties/observation/bblock.json +++ b/_sources/properties/observation/bblock.json @@ -14,7 +14,7 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "tags": [ "sosa", "ssn", diff --git a/_sources/properties/observation/rules.shacl b/_sources/properties/observation/rules.shacl index 5d020be6..e3b4c3ab 100644 --- a/_sources/properties/observation/rules.shacl +++ b/_sources/properties/observation/rules.shacl @@ -11,28 +11,25 @@ sh:targetClass sosa:Observation ; sh:targetSubjectsOf sosa:hasResult, sosa:hasSimpleResult ; sh:message "sosa:resultTime or sosa:phenomenonTime is required, and no more than 1 of each is allowed" ; - sh:or ( [ sh:path ( [ sh:zeroOrMorePath - [ sh:oneOrMorePath - [ sh:inversePath - sosa:hasMember ] ] ] sosa:phenomenonTime ) ; + sh:or ( [ sh:path ( [ sh:zeroOrMorePath [ sh:oneOrMorePath [ sh:inversePath sosa:hasMember ] ] ] + sosa:phenomenonTime ) ; sh:minCount 1 ; - sh:maxCount 1 ; ] - [ sh:path ( [ sh:zeroOrMorePath - [ sh:oneOrMorePath - [ sh:inversePath - geojson:features ] ] ] sosa:phenomenonTime ) ; - sh:minCount 1 ; - sh:maxCount 1 ; ] - [ sh:path ( [ sh:zeroOrMorePath - [ sh:oneOrMorePath - [ sh:inversePath sosa:hasMember ] ] ] sosa:resultTime ) ; - sh:minCount 1 ; - sh:maxCount 1 ; ] -[ sh:path ( [ sh:zeroOrMorePath - [ sh:oneOrMorePath - [ sh:inversePath geojson:features ] ] ] sosa:resultTime ) ; - sh:minCount 1 ; - sh:maxCount 1 ; ] ) ; + sh:maxCount 1 ; ] [ sh:path ( [ sh:zeroOrMorePath [ sh:oneOrMorePath [ sh:inversePath + geojson:features ] ] ] + sosa:phenomenonTime ) ; + sh:minCount 1 ; + sh:maxCount 1 ; ] [ sh:path ( [ sh:zeroOrMorePath [ sh:oneOrMorePath + [ sh:inversePath + sosa:hasMember ] ] ] + sosa:resultTime ) ; + sh:minCount 1 ; + sh:maxCount 1 ; ] [ sh:path ( [ sh:zeroOrMorePath + [ sh:oneOrMorePath + [ sh:inversePath + geojson:features ] ] ] + sosa:resultTime ) ; + sh:minCount 1 ; + sh:maxCount 1 ; ] ) ; . <#testObservedProperty> @@ -40,18 +37,24 @@ sh:targetClass sosa:Observation ; sh:targetSubjectsOf sosa:hasResult, sosa:hasSimpleResult ; sh:message "Exactly 1 of sosa:observedProperty is required" ; - sh:property [ sh:path ( [ sh:zeroOrMorePath - [ sh:oneOrMorePath - [ sh:alternativePath ([ sh:inversePath geojson:features ] [sh:inversePath sosa:hasMember] ) ] ] ] sosa:observedProperty ) ; + sh:property [ sh:path ( [ sh:zeroOrMorePath [ sh:oneOrMorePath [ sh:alternativePath ( [ sh:inversePath + geojson:features ] + [ sh:inversePath + sosa:hasMember ] ) ] ] ] + sosa:observedProperty ) ; sh:minCount 1 ; sh:maxCount 1 ; ] ; . + <#testFeatureOfInterest> a sh:NodeShape ; sh:targetClass sosa:Observation ; sh:targetSubjectsOf sosa:hasResult, sosa:hasSimpleResult ; - sh:property [ sh:path ( [ sh:zeroOrMorePath [ sh:oneOrMorePath [ sh:alternativePath ([ sh:inversePath geojson:features ] [sh:inversePath sosa:hasMember] ) ] ] ] + sh:property [ sh:path ( [ sh:zeroOrMorePath [ sh:oneOrMorePath [ sh:alternativePath ( [ sh:inversePath + geojson:features ] + [ sh:inversePath + sosa:hasMember ] ) ] ] ] [ sh:alternativePath ( sosa:hasFeatureOfInterest [ sh:inversePath sosa:isFeatureOfInterestOf ] ) ] ) ; sh:minCount 1 ; @@ -60,13 +63,13 @@ . <#testResult> - a sh:NodeShape ; - sh:targetClass sosa:Observation ; + a sh:NodeShape ; + sh:targetClass sosa:Observation ; sh:targetSubjectsOf sosa:hasResult, sosa:hasSimpleResult ; - sh:property [ sh:path [ sh:alternativePath ( sosa:hasResult sosa:hasSimpleResult ) ] ; - sh:minCount 1 ; - sh:maxCount 1 ; ] ; - sh:message "Exactly one of sosa:hasResult or sosa:hasSimpleResult is required per observation" ; + sh:property [ sh:path [ sh:alternativePath ( sosa:hasResult sosa:hasSimpleResult ) ] ; + sh:minCount 1 ; + sh:maxCount 1 ; ] ; + sh:message "Exactly one of sosa:hasResult or sosa:hasSimpleResult is required per observation" ; . @@ -81,14 +84,12 @@ a sh:NodeShape ; sh:targetSubjectsOf sosa:hasResult-Disabled ; sh:message "sosa:hasResult not a blank node" ; - sh:sparql [ - sh:select """ + sh:sparql [ sh:select """ PREFIX geojson: SELECT $this (sosa:hasResult as ?path) ?value WHERE { $this sosa:hasResult ?value . FILTER NOT EXISTS { ?value ?p ?o } } - """ ; - ] + """ ; ] . diff --git a/_sources/properties/observationCollection/bblock.json b/_sources/properties/observationCollection/bblock.json index 179ad187..80216b78 100644 --- a/_sources/properties/observationCollection/bblock.json +++ b/_sources/properties/observationCollection/bblock.json @@ -15,7 +15,7 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "tags": [ "sosa", "observations", diff --git a/_sources/properties/observationCollection/examples.yaml b/_sources/properties/observationCollection/examples.yaml index a912b075..ec5f3375 100644 --- a/_sources/properties/observationCollection/examples.yaml +++ b/_sources/properties/observationCollection/examples.yaml @@ -1,18 +1,20 @@ -- title: Example of SOSA ObservationCollection +- title: Spec Examples OC1 for SOSA ObservationCollection comment: - This class is a target for the SOSA v 1.1 update. + RDF only processing - to validate specification RDF examples and OGCAPI-SOSA SHACL constraints. + + snippets: + - language: ttl + ref: https://raw.githubusercontent.com/w3c/sdw-sosa-ssn/update-examples-2/ssn/examples/OC1.ttl + + - language: ttl + ref: https://raw.githubusercontent.com/w3c/sdw-sosa-ssn/update-examples-2/ssn/examples/OC2.ttl + +- title: Test remote fail-test snippets: - language: json - code: |- - { - "hasMember": [ - "_:a1" - ], - "observedProperty": "_:p1", - "resultTime": "2022-05-01T22:33:44Z" - } - base-uri: http://example.com/ + ref: https://raw.githubusercontent.com/opengeospatial/ogcapi-sosa/master/_sources/properties/observation/tests/non-simpleresult-fail.jsonld + - title: Example of SOSA ObservationCollection snippets: diff --git a/_sources/properties/platform/bblock.json b/_sources/properties/platform/bblock.json index 56da6656..63a3961f 100644 --- a/_sources/properties/platform/bblock.json +++ b/_sources/properties/platform/bblock.json @@ -14,7 +14,7 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "tags": [ "sosa", "ssn", diff --git a/_sources/properties/sensor/bblock.json b/_sources/properties/sensor/bblock.json index a974d182..7551749f 100644 --- a/_sources/properties/sensor/bblock.json +++ b/_sources/properties/sensor/bblock.json @@ -14,7 +14,7 @@ } ], "maturity": "development", - "scope": "unstable", + "scope": "development", "tags": [ "sosa", "ssn", diff --git a/bblocks-config.yaml b/bblocks-config.yaml index 11447e27..c0a1822a 100644 --- a/bblocks-config.yaml +++ b/bblocks-config.yaml @@ -1,11 +1,11 @@ -identifier-prefix: ogc.unstable.sosa. +identifier-prefix: ogc.sosa. -name: JSON Schemas for OGC/W3C Observations models (SOSA) +name: Observations (ISO 19156, OGC/W3C SOSA) abstract: Building blocks for implementation of OGC Observations Measurements and Samples (ISO 19156 aka OMS) using the OGC API Features schema and the OGC/W3C SOSA ontology description: | - Each building block defines a reusable JSON schema that is mapped to the equivalent OMS concept. + Each building block defines a reusable JSON schema that is mapped to the equivalent SOSA concept (and transitively mapped to OMS requirements via SOSA). - Each fragment allows for transparent and validatable use of JSON-LD contexts to map schema elements to equivalent terms from the SOSA ontology. + Each fragment allows for transparent and validatable use of JSON-LD contexts to map schema elements to equivalent terms from the SOSA ontology. _These components are under review by the OMS SWG as candidate canonical implementations._