Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tern:SamplingCollection, an implementation of sosa:SamplingCollection #221

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 147 additions & 0 deletions docs/tern.shapes.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,22 @@ tern-shapes:Sampling
sh:targetClass tern:Sampling ;
.

tern-shapes:SamplingCollection
a sh:NodeShape ;
rdfs:label "Sampling collection" ;
sh:property
tern-shapes:SamplingCollection-hasFeatureOfInterest ,
tern-shapes:SamplingCollection-hasMember ,
tern-shapes:SamplingCollection-hasUltimateFeatureOfInterest ,
tern-shapes:SamplingCollection-madeBySampler ,
tern-shapes:SamplingCollection-phenomenonTime ,
tern-shapes:SamplingCollection-resultTime ,
tern-shapes:SamplingCollection-usedProcedure ,
tern-shapes:SamplingCollection-hasAttribute ,
tern-shapes:SamplingCollection-hasGeometry ;
sh:targetClass tern:SamplingCollection ;
.

tern-shapes:Sensor
a sh:NodeShape ;
rdfs:label "Sensor" ;
Expand Down Expand Up @@ -1283,6 +1299,137 @@ tern-shapes:Sampling-madeBySampler
sh:path sosa:madeBySampler ;
.

tern-shapes:SamplingCollection-hasFeatureOfInterest
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "has feature of interest" ;
sh:class tern:FeatureOfInterest ;
sh:description "A relation between an Observation and the entity whose quality was observed, or between an Actuation and the entity whose property was modified, or between an act of Sampling and the entity that was sampled." ;
sh:maxCount 1 ;
sh:message "A `tern:SamplingCollection` _MAY_ have a maximum of 1 `sosa:hasFeatureOfInterest` predicate where the value node is an IRI of type `tern:FeatureOfInterest`." ;
sh:name "sosa:hasFeatureOfInterest" ;
sh:nodeKind sh:IRI ;
sh:path sosa:hasFeatureOfInterest ;
.

tern-shapes:SamplingCollection-hasMember
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "has member" ;
sh:description "Link to a member of a collection of observations that share the same value for one or more of the characteristic properties." ;
sh:message "A `tern:SamplingCollection` _MUST_ have at least 1 `sosa:hasMember` predicate where the value node is an IRI of type `tern:Sampling` or `tern:SamplingCollection`." ;
sh:minCount 1 ;
sh:name "sosa:hasMember" ;
sh:nodeKind sh:IRI ;
sh:or (
[
sh:class tern:Sampling
]
[
sh:class tern:SamplingCollection
]
) ;
sh:path sosa:hasMember ;
.

tern-shapes:SamplingCollection-hasUltimateFeatureOfInterest
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "has ultimate feature of interest" ;
sh:class tern:FeatureOfInterest ;
sh:description "Link to the ultimate feature of interest of an observation or act of sampling. This is useful when the proximate feature of interest is a sample of the ultimate feature of interest, directly or transitively." ;
sh:maxCount 1 ;
sh:message "A `tern:SamplingCollection` _MAY_ have a maximum of 1 `sosa:hasUltimateFeatureOfInterest` where the value node is an IRI of type `tern:FeatureOfInterest`." ;
sh:name "sosa:hasUltimateFeatureOfInterest" ;
sh:nodeKind sh:IRI ;
sh:path sosa:hasUltimateFeatureOfInterest ;
.

tern-shapes:SamplingCollection-madeBySampler
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "made by sampler" ;
sh:class tern:Sampler ;
sh:description "Relation between a Sampling and the Sampler which made the Sampling." ;
sh:maxCount 1 ;
sh:message "A `tern:SamplingCollection` _MAY_ have a maximum of 1 `sosa:madeBySampler` predicate where the value node is an IRI of type `tern:Sampler`." ;
sh:name "sosa:madeBySampler" ;
sh:nodeKind sh:IRI ;
sh:path sosa:madeBySampler ;
.

tern-shapes:SamplingCollection-phenomenonTime
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "phenomenon time" ;
sh:class time:Instant ;
sh:description "The time that the Result of an Observation, Actuation, or Sampling applies to the FeatureOfInterest. Not necessarily the same as the resultTime. May be an interval or an instant, or some other compound temporal entity." ;
sh:maxCount 1 ;
sh:message "A `tern:SamplingCollection` _MAY_ have a maximum of 1 `sosa:phenomenonTime` predicate where the value node is an IRI of type `time:Instant`." ;
sh:name "sosa:phenomenonTime" ;
sh:path sosa:phenomenonTime ;
.

tern-shapes:SamplingCollection-resultTime
a sh:PropertyShape ;
reg:status reg:statusStable ;
skos:prefLabel "result time" ;
sh:description "The result time is the instant of time when the Observation, Actuation or Sampling activity was completed." ;
sh:maxCount 1 ;
sh:message
"A `tern:SamplingCollection` _MAY_ have a maximum of 1 `tern:resultDateTime` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime` or `xsd:dateTimeStamp`." ,
"A `tern:resultDateTime` predicate _MUST_ have a literal value with a datatype of `xsd:date`, `xsd:dateTime` or `xsd:dateTimeStamp`." ;
sh:name "tern:resultDateTime" ;
sh:or (
[
sh:datatype xsd:dateTime
]
[
sh:datatype xsd:date
]
[
sh:datatype xsd:dateTimeStamp
]
) ;
sh:path tern:resultDateTime ;
.

tern-shapes:SamplingCollection-usedProcedure
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "used procedure" ;
sh:description "A relation to link to a re-usable Procedure used in making an Observation, an Actuation, or a Sample, typically through a Sensor, Actuator or Sampler." ;
sh:maxCount 1 ;
sh:message "A `tern:SamplingCollection` _MAY_ have a maximum of 1 `sosa:usedProcedure` predicate where the value node is an IRI." ;
sh:name "sosa:usedProcedure" ;
sh:nodeKind sh:IRI ;
sh:path sosa:usedProcedure ;
.

tern-shapes:SamplingCollection-hasGeometry
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "has geometry" ;
sh:class geo:Geometry ;
sh:description "A spatial representation for a given feature." ;
sh:message "A `geo:hasGeometry` predicate _MUST_ have a blank node or IRI value." ;
sh:name "geo:hasGeometry" ;
sh:nodeKind sh:BlankNodeOrIRI ;
sh:path geo:hasGeometry ;
.

tern-shapes:SamplingCollection-hasAttribute
a sh:PropertyShape ;
reg:status reg:statusExperimental ;
skos:prefLabel "has attribute" ;
sh:class tern:Attribute ;
sh:description "Link to an Attribute." ;
sh:message "A `tern:hasAttribute` predicate _MUST_ have a blank node or an IRI value of type `tern:Attribute`." ;
sh:name "tern:hasAttribute" ;
sh:nodeKind sh:BlankNodeOrIRI ;
sh:path tern:hasAttribute ;
.

tern-shapes:Sensor-implements
a sh:PropertyShape ;
reg:status reg:statusStable ;
Expand Down
8 changes: 8 additions & 0 deletions docs/tern.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -1176,6 +1176,14 @@ Splitting a piece of drill-core to create two new samples.
Taking a diamond-drill core from a rock outcrop.""" ;
.

tern:SamplingCollection
a owl:Class ;
reg:status reg:statusExperimental ;
rdfs:subClassOf sosa:SamplingCollection ;
skos:definition "Collection of one or more Samplings, whose members share a common value for one or more property" ;
skos:prefLabel "Sampling collection" ;
.

tern:SiteVisit
a owl:Class ;
reg:status reg:statusStable ;
Expand Down