2021-07-20 Simon J D Cox
2021-07-29
Plot-X data model
Plot-X examples
TERN Ontology
Plot-X and TERN Ontology appears to be a fairly faithful implementation of parts of the model proposed in [TERN-Plot]https://ternaustralia.github.io/ontology_tern-plot/, including the Project, Site and SiteVisit classes, with Feature, Observation, Sampling from https://www.w3.org/TR/vocab-ssn/ .
These comments pick out a few places where minor changes might be beneficial.
Keys and IDs
The Plot-X model follows E-R conventions, where both Primary- and Foreign-keys are given a name AaaBbbID
.
...
AaaBbbID
should be reserved for the assigned identifier, else it is confusing.
Site
swPoint
- this is an unusual anchor point, it is more common to specify centroid. But OK.siteType
- (site, transect, quadrat) - for a small set of types these can be implemented as separate classes, sub-classes of agenericSite
class (rename the parent class).rename
dimension
→extent
Feature
(latitude, longitude, elevation) - Consider linking to a (3D?) Point instead - i.e. maintain a separate Point table
what is the distinction between elevation vs altitude? and depth? They are all vertical coordinates. (Is depth measured positive down?)
featureType
== domain feature type. While we want to take the featureType
value from a CV (i.e. do not have an explosion of sub-classes) it would also be useful to specify the expected Observations
for each type (e.g. tree always has height, DBH etc). This corresponds to some kind of constraints on the observableProperties
per feature-type.
Observation
Some attribute names are inconsistent with O&M/SOSA
parameter
instead ofsosa:observedProperty
method
instead ofsosa:usedProcedure
instrumentType
+observer
instead ofsosa:madeBySensor
Sampling
sampleFeatureID
appears to appear in place ofsosa:result
Is there a separate table/class for samples, or does this attribute just loop back to another row in the Feature table (I'm not fully familiar with E-R diagrams)
Sample
Need to clarify the relationship between ‘voucher’ and Sample
- is it a sub-class?
*Attribute
Why is the value attribute called 'result'? Rename to
hasValue
.Is there a relationship between
*Attribute::attribute
andObservation::parameter
?
hasSite
TERN Ontology hasSite
appears in multiple places, as a convenience-property from Sampling
, Observation
, FeatureOfInterest
, as well as from SiteVisit
. I suggest removing the redundant uses, and only retaining the use from SiteVisit
to Site
, since these other usages correspond to property-paths via SiteVisit
anyway - note that SPARQL property-paths are much cheaper than SQL JOIN operations.