1. Metadata
Australian Biodiversity Information Standard |
|
This document is the normative specification of the Australian Biodiversity Information Standard (ABIS) and includes its authoritative statements on parts, requirements and patterns. |
|
2021-10-24 |
|
2024-10-10 |
|
2023-12-04 |
|
2.5 |
|
2.5 - 2024 Oct - Multiple Protocol-based models allowed |
|
Originally Department of Agriculture, Water and the Environment (DAWE), |
|
Australian Biodiversity Information Governance Group (AUSBIGG) |
|
Department of Climate Change, Energy and the Environment (DCCEEW) |
|
AusBIGG is supported by DCCEEW’s' Biodiversity Data Repository (BDR) Team. Contact the BDR Team on bdr@dcceew.gov.au Issue tracking of the ABIS standard is managed online at https://github.com/AusBIGG/abis/issues |
|
2. Abstract
This document is the normative specification of the Australian Biodiversity Information Standard (ABIS) and includes its authoritative statements on parts, requirements and patterns.
Note
|
The one-stop-shop for ABIS is the ABIS Portal. It contains example data, vocabularies and validators that you can play with online, without needing to install anything. Go there if you are new to ABIS. |
3. Preamble
3.1. Parts of ABIS
The Australian Biodiversity Information Standard (ABIS) is a multi-part standard and this document is its normative specification.
The other parts of ABIS are:
-
Overview Document
-
A simple introduction to the concepts within ABIS
-
Profile Definition
-
The technical expression of ABIS as a standard that inherits from other standards
-
-
Models
-
ABIS is made of multiple models which are listed in the Models Section but are published and maintained elsewhere
-
Both human- and machine-readable forms of all ABIS models are available
-
-
Vocabularies
-
ABIS, and the modes it depends on, rely on many vocabularies
-
These are described in the Vocabularies Section but are published and maintained elsewhere
-
-
Validators
-
Data 'shape' files that can be used with validation tooling to check conformance of data to ABIS
-
These are listed in the Validation Section but are published and maintained elsewhere
-
-
Mappings
-
Mappings of ABIS to/from other well-known standards or models in the same domain are given in the Mappings Section
-
-
Reasoning Rules
-
Machine executable rules defined in the Reasoning Rules Section that create new information from ABIS data based on logical, ontological, spatial and other reasoning
-
-
Data Objects
-
RDF expressions of this Standard, JSON-LD context files, examples and RDF forms of mappings etc. are given in the sections that describe the human-readable forms of those objects
-
3.2. Namespaces
Namespaces are used within the identifiers for model elements to ensure that they are globally unique. For example, the TERN Ontology's Sample
class is identified by the IRI https://w3id.org/tern/ontologies/tern/Sample
which distinguishes it from the SOSA Sample
class, identified with http://www.w3.org/ns/sosa/Sample
that it is based on but extends.
Namespaces are used in shortened form in documents and data by assigning them a prefix and the prefixes used in this document are given in the table below.
Prefix |
Namespace |
Description |
|
ABIS namespace - for this Standard |
|
|
ABIS Projects Model namespace |
|
|
BDR Dataset Namespace |
|
|
Data Catalogue Vocabulary namespace |
|
|
ABIS Data Release Model namespace |
|
|
ABIS Datatype Register namespace |
|
|
Darwin Core Terms namespace |
|
|
Extended Geometries Ontology |
|
|
|
Generic examples namespace - does not resolve |
|
GeoSPARQL Ontology namespace |
|
|
Web Ontology Language ontology namespace |
|
|
RDF Schema ontology namespace |
|
|
Sensor, Observation, Sample, and Actuator (SOSA) ontology namespace |
|
|
schema.org namespace |
|
|
Simple Knowledge Organization System (SKOS) ontology namespace |
|
|
TERN Ontology namespace |
|
|
Time Ontology in OWL namespace |
|
|
||
|
XML Schema Definitions ontology namespace |
Using the table above, the TERN Ontology's Sample
class would be identified as tern:Sample
and the SOSA Sample
class as sosa:Sample
.
Note
|
A JSON-LD context built from this namespaces table is available as another resource within the ABIS specification and is online at: |
3.3. Terms & Definitions
The following terms & definitions are used throughout this document.
- ABIS
-
The Australian Biodiversity Standard - the data standard this document is about
- BDR
-
Biodiversity Data Repository - a data collection managed by the Department of Climate Change, Energy and the Environment that incorporates biodiversity observations from State & Territory jurisdictions and aims to incorporate non-government data too
- Blank Node
-
A Blank Node is a node within RDF data that does not have a globally unique or even persistent identifier, instead it is a node that is identifiable only in relation to the other nodes in the RDF data in which it is recorded. Blank Nodes are used to convey things that are entirely dependent on, and meaningless without, other things, for example values for
tern:Result
classes which only mean something in relation to thetern:Observation
that generated them
- IRI
-
An Internationalized Resource Identifier is a web address-style URL that is used as an identifier for something. It may be for a real-world object, e.g. https://linked.data.gov.au/dataset/qldgeofeatures/AnakieProvince identifies the Queensland Geological Feature Anakie Province or for data only, e.g. https://w3id.org/tern/ontologies/tern/Text which identifies the class of 'Text' - textual results - within the TERN Ontology.
IRIs do not have to resolve - go somewhere online when clicked - but they do have to follow all the rules for URLs, such as no spaces.
- Class
-
Based on the mathematical notion of a set, within formal OWL modelling, a class is a set of objects exhibiting common properties. For example, the set of all people who are studying could be defined as being within a Student class.
- Knowledge Graph
-
A data holding that implements node-edge-node (graph) data structures. The 'knowledge' part is often taken to indicate that the graph contains refined information, not just pure, raw, data.
- OWL
-
The OWL 2 Web Ontology Language, informally OWL 2, is an ontology language for the Semantic Web with formally defined meaning. OWL 2 ontologies provide classes, properties, individuals, and data values and are stored as Semantic Web documents. OWL 2 ontologies can be used along with information written in RDF, and OWL 2 ontologies themselves are primarily exchanged as RDF documents. Reference: OWL2
- Predicate
-
Predicates, within formal OWL modelling, are the defined relations between objects of different classes (see Class) and also between objects and simple data values such as numbers and dates. For example, if Person X "knows" Person Y, then we can use a predicate of knows to relate them.
Frequently we use predicates already defined in existing ontologies. "knows", for example, is defined in the schema.org ontology SDO to be "The most generic bi-directional social/work relation".
- RDF
-
The Resource Description Framework (RDF) is a data structure for representing information on the Web. RDF is made of identified nodes linked by typed edges that form graphs. Node/edge/node associations are often called 'triples'. Reference: RDF
- Semantic Web
-
A vision of a machine-understandable Internet, created in the year 2000, and thought to be attainable through the use of Linked Data.
- SPARQL
-
SPARQL is a query language for RDF. SPARQL matches patterns within RDF data to extract subsets of a graph. The results of SPARQL queries can be subset graphs or data in tabular form.
3.4. Conventions
Figures
In this document, figures showing model elements use the following key:
Activity
, Entity
and Agent
are classes from The Provenance Ontology and indicate temporal events, all manner of things and people and organisations with agency, respectively. Where prefix:ElementID
is used, the prefix refers to entries in the Namespaces table.Code
Where examples of ABIS data are given in this document, RDF data serialised in the Turtle format is used. For example:
PREFIX ex: <https://example.com/dataset/>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
ex:x
a tern:Dataset ;
schema:name "Dataset X" ;
schema:hasPart <https://example.com/dataset/sample/y> ;
.
<https://example.com/dataset/sample/y>
a tern:Sample ;
schema:name "Sample Y" ;
.
The above example data, while invalid according to the ABIS Validator, provides a simple example of a dataset and a sample and a relationship between them, encoded in Turtle.
If prefixes - ex:
, schema:
and tern:
in the example above - are not declared within the example, as they are here - lines starting PREFIX
- then they will be found in the Namespaces table above.
4. Introduction
This document is the specification of the parts, requirements and patterns of the Australian Biodiversity Information Standard (ABIS).
The goal of ABIS is to simplify the exchange of standardised biodiversity data in Australia between data holders - States & Territories, the Commonwealth, educational and research organisations, private companies and the public - by providing a scientific observations data model and a series of additions to it that cater for institution details, data management and mappings to other information models.
ABIS uses rigorous and formal data models which means that data wanting to be compliant with it can be automatically validated using machine-readable forms of the models and validation tools. This specification indicates where the validators are and how to use them in the Validation Section.
4.1. Multiple Models
ABIS is centred on the TERN Ontology - see Figure 1 - which is a data model that represents ecological survey information. The TERN Ontology is designed in accordance with the principles of the Observations & Measurement standard ISO19156 that separates acts of observation from the results of those observations and ever-present details of the things observed.
The TERN Ontology itself inherits most of its modelling from several general-purpose and well-known Semantic Web models (ontologies), in particular:
-
Darwin Core - specialised properties for biodiversity modelling
-
Sensor, Observations, Sampling & Actuation (SOSA) ontology - sampling, observation & results modelling
-
GeoSPARQL - for spatial object modelling
-
Provenance Ontology (PROV) - for the lineage and attribution of data
-
schema.org - for general-purpose attributes like names, dates, simple metadata etc.
Each of these "background models" are shown in Figure 1 and listed in the Background Models section below.
In addition to the TERN Ontology and the background models it uses, ABIS also use other "background models":
-
Bibliographic Reference Ontology (BiRO)
-
A model for the description of reference lists and bibliographic references themselves
-
-
-
A model that relates models to other models
-
-
-
A model used to manage graphs of data with within a Knowledge Graph
-
ABIS also includes additional "component models" that extend the range of things ABIS can cover:
-
-
A basic model of projects that generate data
-
-
-
A model for data embargoes, withholding times and so on
-
Details of all these models are given in the Models section.
4.2. Background
Aim
ABIS was established to enable a national Biodiversity Data Repository BDR in Australia that absorbs data from a range of sources.
These data supplier sources - Australian State & Territories and other organisations such as museums, herbaria, research organisations and companies - have been collecting biodiversity data for over a century in Australia and have been doing so independently, so there is a wide range of information collected relating to where, when and how species are observed.
Since the BDR aims for a comprehensive and up-to-date data holding, it needs to be able to absorb large volumes of biodiversity data and process them quickly. Given that existing source data collections contain millions of observations, this is only achievable through automatic data processing.
To enable effective automatic processing of data - both in terms of effort and quality - common models and formats must be implemented by data suppliers who map their data holdings to a form that can be automatically assessed (validated) and processed. ABIS is that form.
History
The TERN Ontology was created in 2020 for TERN to use for their own observations Knowledge Graph.
In 2021, the BDR adopted the TERN Ontology as its base.
In 2022, the first version of ABIS was created, building on top of the TERN Ontology to cater for messaging methods and some aspects of data management, such as the withholding of data publication due to data embargoes. This version of ABIS was used to for the data acquired in November 2022 through the scan of State & Territory biodiversity observation data holdings.
At the end of 2023, version 2.0 of ABIS was created which removed all representation of messaging protocols, requirements and rules. Version 2.0 focuses on building on top of the TERN Ontology data elements used to manage and provide access to expected BDR data holdings.
4.3. Governance
ABIS is managed day-to-day by the Department of Climate Change, Energy, the Environment and Water (DCCEEW) however many parts of ABIS are maintained externally, such as the TERN Ontology which is maintained by TERN.
To contact the ABIS managers, please see use the following details:
BDR Team
Biodiversity Information Section
Department of Climate Change, Energy, the Environment and Water
https://www.dcceew.gov.au
bdr@dcceew.gov.au
Governance of ABIS is undertaken by AusBIGG, the Australian Biodiversity Information Governance Group, which comprises DCCEEW, State & Territory biodiversity data holders and other organisations in the sector, such as TERN.
As of 2023, the processes for maintaining and extending ABIS are not fully established with AusBIGG still coming to understand ABIS' uses and its place in the landscape of international biodiversity observation data models, such as GBIF’s New Data Model.
An Issue Tracker for this document and for any other aspects of ABIS is public and online at: https://github.com/AusBIGG/abis/issues. Anyone with an interest in ABIS is invited to submit Issues there to be considered by ABIS management & governance parties.
4.4. Related Standards
ABIS comprises multiple models and some of them inherit from other models and standards. See the Models section for details.
Additionally, ABIS exists within a domain that already contains many international and national standards and well-known models. The Mappings section described how ABIS relates to many of them.
4.5. Structure
This specification aims to cover all the information needed to understand ABIS and use it. The following is a list of the major sections in this document and their purposes.
-
-
This section. An informal overview of ABIS
-
-
-
Descriptions of important modelling choices made in ABIS and the models it inherits from
-
-
-
The normative description of the data models used within ABIS
-
-
-
Description of, and links to, the vocabularies needed for use with ABIS
-
-
-
A listing of known profiles of ABIS
-
-
-
How to validate data according to ABIS and links to the various validators
-
-
-
Human- and machine-readable mappings between ABIS and other standards within ABIS' domain
-
-
-
Machine-executable rules that can be applied to ABIS data to infer further information
-
Two additional models - extensions to ABIS - are defined in this document:
Extended examples TERN Ontology data, in use within ABIS, are given in Annex C.
5. Patterns
This section describes some modelling patterns implemented in ABIS. Most of these patterns are inherited from the models that ABIS profiles.
5.1. Set Modelling
The most basic pattern used by this model and all the OWL-based models it profiles is that of Set Theory modelling, that is, modelling according to the mathematical notion of sets.
The basic principles are that things - all things - can be modelled as atomic objects and groups of objects known as sets. The basic object/set relations (membership of an object within a set) and set/set relations (union, intersection, disjoint etc.) are likely familiar to all Australian high school graduates.
In OWL modelling, objects are usually called Named Individuals or Instances and sets are called Classes.
The set of all people, the class Person
is defined like this:
ex:Person a owl:Class ; schema:name "Person" ; schema:description "Persons are individuals of the species Homo sapiens" ; .
Nicholas Car
is an object in the set of Person
so, in OWL modelling, Nicholas Car
is a Named Individual of type Person
:
ex:nicholasCar a ex:Person ; schema:name "Nicholas Car" ; schema:description "Nicholas is a Person, born in South Africa, now living in Brisbane" ; .
Subsetting is very important in OWL: Nicholas Car
might also be an Engineer
where Engineer
is defined as a subset of Person
. This means every Engineer
is also a Person
but not all Person
objects are Engineers
:
ex:nicholasCar a ex:Engineer ; schema:name "Nicholas Car" ; schema:description "Nicholas is an Engineer, born in South Africa, now living in Brisbane" ; . ex:Engineer rdfs:subClassOf ex:Person .
In OWL modelling, classes may be seen by grouping instances with similar properties. Nicholas Car
might be understood to be an Australian by virtue of the predicate citizenship
being given for him indicating Australian
:
ex:nicholasCar a ex:Person ; schema:name "Nicholas Car" ; ex:citizenship ex:Australian ; .
The figure below shows Nicholas Car, the individual, declared as a Person
, and Engineer
and understood to be an Australian
.
Nicholas Car
and three Classes he is a member of and which are subclasses of others.In the domain of ABIS, all animals living in the sea constitute the class marine animals and there are intersecting classes of terrestrial animals for things like crabs and penguins that live both in the sea and on land.
5.2. Identifiers
All complex objects in OWL modelling - classes, predicates and instances of classes - are identified either with an IRI or a Blank Node. Classes and predicates defined in ABIS or inherited from models it profiles use the identifiers for them given in this document. Instances of classes, for example a particular sample, Sample Y of the class tern:Sample
, are identified by IRIs assigned to them often deriving from the IRI of the dataset in which they are first presented. If the instance is referred to again later - perhaps further observations were made on the sample - then the original identifier for the object is still used to allow linking of information. An example for Sample Y in Dataset X which also contains Observation Z:
<http://example.com/dataset/x> a tern:Dataset ; schema:hasPart <http://example.com/dataset/x/sample/y> , <http://example.com/dataset/x/obs/z> ; dcterms:title "Dataset X" ; . <http://example.com/dataset/x/sample/y> a tern:Sample ; dcterms:title "Sample Y" ; . <http://example.com/dataset/x/obs/z> a tern:Observation ; sosa:hasFeatureOfInterest <http://example.com/dataset/x/sample/y> ; sosa:hasResult [ a sosa:Result ; schema:value 42 ; schema:unitCode unit:PPM ; ] ; dcterms:title "Observation Z" ; .
In the above example data, Dataset X - http://example.com/dataset/x
- contains Sample Y - http://example.com/dataset/x/sample/y
- and Observation Z - http://example.com/dataset/x/obs/z
- was on the sample. The demonstration IRIs clearly all build on Dataset X’s.
The result of the observation - the value 42
parts per million uses a Blank Node, not an IRI, for identity which is essentially an unknown ID. This is because there’s no point in referring to the Result other than via the Observation
that recorded it, so no IRI is ever needed to directly refer to it from elsewhere. The Blank Node is seen here in the Turtle syntax of RDF with information given between [
& ]
.
IRI identifiers for datasets take the form https://{IRI-STEM}/{DATASET-ID}
and act as a unique namespace for objects within it. If Dataset abc-123-def-456
contained Sample Y, we may have the following identifiers:
-
Dataset abc-123-def-456:
https://example.com/dataset/abc-123-def-456
-
Dataset X’s Namespace:
https://example.com/dataset/abc-123-def-456/
- ending in a '/'
-
-
Sample Y:
https://example.com/dataset/abc-123-def-456/sample/y
-
Uses the Dataset Namespace and a class identifier (optional) of 'sample' and an ID for the particular sample - 'y'
-
Datasets can create identifiers for their elements, within their namespace however they like
-
It is likely that initiatives will be created to manage data for Sites, Samples or other classes of object that ABIS knows about. If so, these initiatives might issue identifiers for those things and, if they do, those identifiers should be used. See the next section for how.
5.2.1 Alternate Identifiers
Many objects represented using ABIS will usefully have external identifiers recorded, for example, samples with museum IDs or catalogue numbers. All forms of such identifiers SHOULD be recorded and how they are recorded and used depends on their type.
Alternate IRIs
If an object already has an IRI identifier, and that identifier responds to Linked Data operations, it SHOULD be used as the primary identifier of the object.
-
If Dataset X contains a representation of Site Y and Site Y has the IRI of
http://linked.data.gov.au/dataset/ausplots-forest/site-nsfnnc0002
assigned to it by TERN, then that IRI SHOULD be used as the IRI for the site as it is resolvable online, linking to RDF data (and human-readable data) -
If Dataset X contains a representation of Sample Z and Sample Z has an International GeoSample Identifier (IGSN) or DOI IRI of
https://doi.org/10.58052/IECUR00N9
then that IRI MAY NOT be used as the IRI for the sample for, while it resolves online to a web page, it does not link to RDF data
If an object has a Linked Data IRI assigned to it AND another assigned to it within an ABIS data generation process, perhaps automatically, the two IRIs should be linked like this:
<{ORIGINAL-IRI}> owl:sameAs <{NEW-IRI]}>
Here the OWL predicate owl:sameAs
indicates the two IRIs identify the same thing.
If an object has an IRI assigned to it that does not link to RDF data, it should be recorded in the following manner:
<{NEW-IRI]}> schema:identifier "{ORIGINAL-IRI}"^^{CUSTOM-DATATYPE} ; ... # other properties .
Here the {ORIGINAL-IRI}
, since it does not act as a Linked Data IRI, is indicated as being a literal of a specialised data type - {CUSTOM-DATATYPE}
.
If the datatype of the {ORIGINAL-IRI}
is of a known form, such as a DOI or IGSN, then that type might be found in the BDR Datatypes vocabulary at https://vocabs.bdr.gov.au, and it should be used. If its type is not known or is a generic URL, the type xsd:anyURI
should be used like this:
<{NEW-IRI]}> schema:identifier "{ORIGINAL-IRI}"^^xsd:anyURI ; ... # other properties .
All special IRI types, such as DOI, should be recorded in the BDR Datatypes vocabulary
Alternate IDs - non-IRIs
Alternate identifiers for objects that are not IRIs/URLs MUST have their identifier regime indicated. For example, if Museum X issues identifiers for samples and Sample Y has an issued identifier of SAM-Y1234
, then this should be given like this:
<{SAMPLE-IRI]}> a tern:Sample ; schema:identifier "SAM-Y1234"^^ex:museum-x-id ; ... # other properties .
…where {SAMPLE-IRI}
is an IRI assigned to the sample and the predicate schema:identifier
is used to give the literal identifier value of SAM-Y1234
which has the datatype ex:museum-x-id
indicated.
Note
|
The Biodiversity Data Repository requires that all non-IRI alternate IDs used in submissions of data to it be registered within its BDR Datatypes vocabulary. |
Multiple alternate identifiers may be given, as long as their datatypes are unique:
<{SAMPLE-IRI]}> a tern:Sample ; schema:identifier "SAM-Y1234"^^ex:museum-x-id , "1073/SAMY"^^ex:igsn ; ... # other properties .
5.3. Data Cataloguing
ABIS provides representations of chunks of data for management - cataloguing, data governance and so on. It does this by implementing a very simple, and common, catalogue model which consists of catalogues (or catalogs, for Americans) that contain datasets or other kinds of resources such as vocabularies. ABIS then insists that datasets must, in turn, contain biodiversity records for records of such as what ABIS is all about.
This models is as per Figure 4, below, which is taken from the Biodiversity Record Model, detailed in full in Annex A.
Since this model is used for data management, it places requirements on ABIS datasets, above and beyond those imposed by the models it profiles, such as the TERN Ontology, to ensure all ABIS data has a minimum level of metadata present. See the BDR Profile of ABIS' Model Element Mandates for specifics.
implemented by schema.org and the Data Catalog Vocabulary (DCAT) which consists of
5.4. Records & Occurrences
ABIS is fundamentally about records of the occurrence of biodiversity. For this reason, ABIS contains representations of chunks of data, as per the Data Cataloguing pattern above, a representation of an occurrence and a mechanism to link them.
The ABIS class BiodiversityRecord represents a single recording of an occurrence or recording of the results of a survey. This is usually a single row in a spreadsheet of biodiversity observations, or a single point of a map of occurrences. It is linked to the representation of actual occurrence itself, represented by the Darwin Core Terms's Occurrence class.
The reason for this distinction between representations of the record of the occurrence and the occurrence itself is because some data models record metadata about the recording itself - who did it, where it is stored and managed, what ID the recording has etc. - and some don’t, choosing to focus only on the where/what/when of the occurrence.
Note
|
For data in the ABIS format being submitted to systems such as the Biodiversity Data Repository where the data origin has a "Record ID" or similar, this ID should be preserved as a property of instances of the Biodiversity Record class as a non-IRI alternate identifier, as per the Alternate IDs - non-IRIs pattern. |
The relationship between a Biodiversity Record and the Occurrence it is about is given with the schema:about predicate, like this:
ex:record-1234
a abis:BiodiversityRecord
# ... other info
schema:about ex:occurrence-9876 ; # <-- this is the link
.
ex:occurrence-9876
a dwc:Occurrence ;
schema:spatial [
geo:hasGeometry [
a geo:Geometry ;
geo:asWKT "POINT (...)" ;
] ;
schema:temporal [
time:hasTime "2024-07-29" ;
] ;
# ... other info
.
5.5. Spatially
ABIS inherits its spatial modelling from GeoSPARQL, as does the TERN Ontology.
Patterns:
5.5.1. Feature-centric
GeoSPARQL uses a "feature-centric" method of spatial modelling which means spatial things are represented as conceptual things first - spatial features - and then a spatial projection or representation - geometry - is linked to it. This is different to some GIS systems that model spatial things as geometries first and then apply properties to them.
Feature
, such as a Site
, can be assigned a Geometry
with any one of a number of representations. ABIS prefers the Well-Known Text representation of coordinates.The RDF data for the example above is:
PREFIX ex: <http://example.com/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
ex:site-x
a tern:Site ;
schema:name "Site X" ;
geo:hasGeometry [
a geo:Geometry ;
schema:name "Geometry X1" ;
geo:asWKT "POLYGON ((...))"^^geo:wktLiteral ;
] ;
.
5.5.2. ABIS spatial objects
There are multiple classes of spatial objects in ABIS. The following are always spatial, even when their spatial values - their geometries - are unknown:
-
Observation
-
Site
-
Sample
- where the sample was collected from, not where it is now
For these classes of object, we expect to see instances of them to be associated with geometries, if known.
The following classes of object are either given as spatial - a geometry is provided - or for their spatial values to be inferred from child object geometries - see Aggregation Reasoning below:
-
tern:Dataset
-
Survey
A Survey
might have its spatial extent recorded directly or taken to be the envelope of the locations of the Observations
it contains. Similarly, an tern:Dataset
will either have an extent - the extent of all the data within it - given or calculated from its contained objects, which may be Sites
, Sample
, Survey
or Observation
instances, or all of them.
5.5.3. Qualified Geometries
This feature-centric model allows for multiple or no geometries per spatial object which can be very powerful. The figure below gives several examples of a spatial Feature with multiple Geometries that differ different ways. The pattern here is "qualification": when a Feature is assigned multiple Geometries, they must be differentiable in some way, either by having different geometry types (point, polygon etc.) or by having different roles with respect to the Feature or by each Geometry indicating a different temporal footprint. These differentiations qualify the Geometries with respect to the Feature.
Features
and Geometries
as modelled in the GeoSPARQL ontology with subfigure A. showing a Site
feature that has two geometries provided for it: a Point and a Polygon. These could respectively represent the site’s centroid and is boundary and are differentiable by geometry type. Subfigure B. shows a feature - Saint Helena Island - with two boundary polygonal geometries differentiated by role. Subfigure C. shows a time-varying feature, a cyclone, with multiple geometries differentiated by time. Data for B. is given in the ABIS repository at https://github.com/AusBIGG/abis/tree/master/examples - see the file pattern-spatiality-saint-helena-island
.5.5.4. Centroid & Bounding Box
While it is possible to supply point and polygon geometries for a spatial object’s centroid, boundary and bounding box, a centroid and a bounding box are calculable from a boundary and should not be supplied if the boundary is known: ABIS data users, such as the BDR, will calculate them as needed. This rule is listed in ABIS' Reasoning Rules section. In the image above, the bounding box and centroid have been calculated from the boundary.
If only a centroid or a bounding box is known for a spatial object, then specific predicates from GeoSPARQL - geo:centroid
& geo:hasBoundingBox
- should be used to indicate that this is the type of geometry known, as opposed to a boundary or a general point for a point location which are indicated with the general-purpose geo:hasGeometry
predicate. The RDF data example below is the data for the image above showing the predicates in use.
PREFIX ex: <http://example.com/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
ex:pomingolarna
a tern:Site ;
schema:name "Pomingalarna Bushland Site" ;
geo:hasCentroid [
geo:asWKT "POINT (147.300797 -35.113046)" ;
] ;
geo:hasGeometry [
geo:asWKT "POLYGON ((147.294576 -35.101881, 147.299386 -35.102425, 147.303469 -35.106577, 147.302879 -35.109889, 147.305057 -35.111953, 147.307076 -35.113405, 147.311296 -35.113541, 147.310887 -35.115810, 147.311772 -35.115991, 147.310093 -35.117738, 147.310071 -35.117398, 147.309118 -35.116967, 147.308460 -35.117262, 147.308006 -35.118147, 147.307938 -35.120438, 147.308120 -35.120869, 147.308278 -35.122434, 147.308324 -35.123387, 147.306849 -35.123569, 147.306350 -35.123387, 147.304558 -35.123092, 147.302743 -35.122548, 147.301473 -35.121844, 147.300293 -35.121073, 147.292240 -35.113042, 147.294576 -35.101881))" ;
] ;
geo:hasBoundingBox [
geo:asWKT "POLYGON ((147.292240 -35.123569, 147.311772 -35.123569, 147.311772 -35.101881, 147.292240 -35.101881, 147.292240 -35.123569))" ;
] ;
.
5.5.5. Geometry Literals
ABIS only allows for Well-Known Text representations of geometries indicated by the geo:asWKT
predicate. No other forms of geometry literal, e.g. GeoJSON, may be used.
ABIS will infer that any literal object indicated with the geo:asWKT
predicate is of the datatype geo:wktLiteral
and the literal typing need not be supplied. It may also be supplied so the following are treated as equivalent:
geo:asWKT "POINT (147.300797 -35.113046)" ;
geo:asWKT "POINT (147.300797 -35.113046)"geo:wktLiteral ;
This is as per a rule in the Spatial Reasoning part of the rules section.
5.5.6. Coordinate System
All spatial data supplied according to ABIS MUST use the GDA2020 Coordinate Reference System. Systems such as WGS84, GDA94 or others MUST NOT be used.
Since spatial data formulated according to GeoSPARQL only use the Well-Known Text format - see the Geometry Literals section above - and that format defaults to OGC:CRS84, the use of GDA2020 must be indicated in the WKT, as per the GeoSPARQL WKT guidance using the IRI http://www.opengis.net/def/crs/EPSG/0/7844
or https://epsg.io/7844
for the CRS. Remember when converting from OGC CRS84 (the default WKT crs) to GDA2020 the axis order must also be reversed. For example, a POINT
at (123.0 -45.0)
would have WKT like this:
"<https://epsg.io/7844> POINT (-45.0 123.0)"geo:wktLiteral
5.5.7. Aggregation Reasoning
ABIS contains rules that will perform spatial reasoning on data. For example, if a dataset is presented that contains a Survey
which, in turn, contains a series of Observation
instances with their spatial locations indicated, the spatial extent of the Survey
will be taken to be at least the area containing the Observation
locations. The dataset’s extent will be at least the boundary of all contained Survey
instances areas. Spatial reasoning like this and other reasoning are related in ABIS' Reasoning Rules section.
The figure below shows a boundary calculated for a series of point locations. The boundary could be the extent of a Survey
for Observation
point locations and this type of boundary - a convex hull - is the minimum non-concave area containing all points.
5.5.8. Feature relations
In addition to associating spatial Features with one or more Geometries, GeoSPARQL, and thus ABIS, allows for Feature-to-Feature (topological) spatial relations between pairs of Features to be recorded. There are multiple allowed relation families in GeoSPARQL but ABIS prefers use of the https://opengeospatial.github.io/ogc-geosparql/geosparql11/spec.html#simple_features_relation_family[_Simple Features relations] which are summarised as follows:
Name | GeoSPARQL Predicate | Meaning |
---|---|---|
equals |
|
The spatial extents of the two objects are exactly the same |
disjoint |
|
The spatial extents of the two objects do not touch or overlap |
intersects |
|
The spatial extents of the two objects have at least one point in common |
touches |
|
The spatial extents of the two objects have at least one point in common, but their interiors do not intersect (i.e. only their boundaries intersect) |
within |
|
The spatial extent of the first object is wholly contained by the spatial extent of the second object |
contains |
|
The spatial extent of the first object wholly contains the spatial extent of the second object (i.e. the inverse of within) |
overlaps |
|
The spatial extents of the two objects have some, but not all, points in common, and the dimensions of the intersection are the same as those of the objects |
crosses |
|
The spatial extents of the two objects have some, but not all, interior points in common and the dimensions of intersection is less than the dimensions of at least one of them (i.e. two 2-D areas' intersection is a 1-D line or two lines' intersection is a 0-D point) |
The most commonly used spatial relations are contains/within and overlaps. Here are some examples of Feature-to-Feature relations for real and example Features:
PREFIX ex: <http://example.com/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
# Australia, according to the Australian Bureau of Statistics' ASGS Linked Data dataset
<https://linked.data.gov.au/dataset/asgsed3/AUS/AUS>
a geo:Feature ;
schema:name "Australia" ;
geo:sfContains
<https://linked.data.gov.au/dataset/asgsed3/STE/8> , # ACT
<https://linked.data.gov.au/dataset/asgsed3/STE/1> , # NSW
<https://linked.data.gov.au/dataset/asgsed3/STE/7> , # NT
# ...
<https://linked.data.gov.au/dataset/asgsed3/STE/2> ; # Victoria
.
<https://linked.data.gov.au/dataset/asgsed3/STE/1> # NSW
a geo:Feature ;
schema:name "New South Wales" ;
geo:sfWithin <https://linked.data.gov.au/dataset/asgsed3/AUS/AUS> ;
.
# An example Site within NSW
ex:site-x
a tern:Site ;
schema:name "Site X" ;
geo:sfWithin <https://linked.data.gov.au/dataset/asgsed3/STE/1> ;
.
# ex:site-x geo:sfWithin <https://linked.data.gov.au/dataset/asgsed3/AUS/AUS>
# can be inferred from the site being within NSW being within Australia
# NSW & Victoria touch along their common border
<https://linked.data.gov.au/dataset/asgsed3/STE/1>
geo:sfTouches <https://linked.data.gov.au/dataset/asgsed3/STE/2> ;
.
GeoSPARQL provides function definitions for the calculation of Feature-to-Feature relations from geometry data and all compliant implementations of GeoSPARQL allow these calculations to result in declarations of equivalent predicates. So if object A is calculated as being within object B, then the RDF triple <A> geo:sfWithin <B>
may be recorded.
5.5.9. Elevation & Depth
Absolute
If the absolute elevation or depth of an object needs representation, the 2D + Z forms of Well-Known Text representation of a geometry should be used: POINTZ
, LINESTRINGZ
& POLYGONZ
.
For example, if Observation N was made at longitude 147.308040 E, latitude 35.121824 S at an elevation of 234 metres, POINTZ
should be used like this:
PREFIX ex: <http://example.com/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
ex:obs-n
a tern:Observation ;
schema:name "Observation N" ;
geo:hasGeometry [
geo:asWKT "POINTZ(147.308040 -35.121824 234)" ;
] ;
.
Depth should be similarly indicated with a POINTZ
WKT representation with the Z
value given as a negative, i.e. 20m below sea level should be -20
.
Relative
If relative elevation or depth needs representation, the schema.org schema:elevation
& schema:depth
should be used.
For example, if a Sample
is obtained 3m below ground surface at longitude 147.308040 E, latitude 35.121824 S, it should be recorded like this:
PREFIX ex: <http://example.com/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
ex:obs-n
a tern:Observation ;
schema:name "Observation N" ;
geo:hasGeometry [
geo:asWKT "POINT(147.308040 -35.121824)" ;
] ;
schema:depth [
schema:value 3 ;
schema:unitCode <https://qudt.org/vocab/unit/M> ; # QUDT's IRI for metre
] ;
.
Elevation and depth values should use positive numbers only.
If a simple value for depth is given, e.g. ex:obs-n schema:depth 3
, this will be interpreted as being in metres.
5.6. Temporality
Feature-centric
ABIS inherits its temporal modelling from the Time Ontology. The TERN Ontology uses the Time Ontology in places and used direct time representations elsewhere. This may be harmonised in the future.
ABIS uses a feature-centric approach for temporality, just as it does with spatiality. Just as per <GSP, GeoSPARQL>> where spatial objects are conceptual things with associated geometries, following OWL TIME, temporal objects are conceptual things with associated temporal "geometries" or temporal footprint.
Where for spatial objects we link a Feature
to a Geometry
which in turn links to a literal representation of the spatial footprint, say a Well-Known Text polygon, for temporal objects we link the temporal feature to a time:TemporalEntity
, the equivalent of a temporal geometry, which is either a time:Instant
or a time:Interval` which then contains dates, date/times etc.
The following code shows several example Survey
instances, which are temporal features, linked to different temporal entities. The selection of particular temporal entities will come down to what is known about the Survey
.
PREFIX ex: <http://example.com/>
PREFIX schema: <https://schema.org/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
PREFIX time: <http://www.w3.org/2006/time#>
# Survey X started on the 15th of March, 1987
# and ended on the 23 of March, 1987
ex:survey-x
a tern:Survey ;
schema:name "Survey X" ;
time:hasTime [
time:hasBeginning [ time:inXSDDate "1987-03-15" ] ;
time:hasEnd [ time:inXSDDate "1987-03-23" ] ;
] ;
.
# We only know Survey Y occurred in April, 2010
ex:survey-y
a tern:Survey ;
schema:name "Survey Y" ;
time:hasTime [
time:inXSDgYearMonth "2020-04"
] ;
.
# Survey Z is on-going or at least
# we don't know if/when it ended as only
# a beginning date is given
ex:survey-z
a tern:Survey ;
schema:name "Survey Z" ;
time:hasTime [
time:hasBeginning [ time:inXSDDateTime "2023-12-10T14:30:00" ] ;
] ;
.
Date & Time representations
OWL TIME allows a number of data and time literal representations for date/time instants and any may be used: use the one that best corresponds with the reality of the thing you are modelling. The code example above shows three different ones in use: xsd:date
, xsd:gYearMonth
and xsd:dateTime
.
The following table gives a list of date/time data types and the OWL TIME predicate used to indicate them. Format values in the table below use the codes from https://strftime.org/, for example %Y
is "Year with century as a decimal number" e.g. 2013, not 13.
Datatype | Indicating Predicate | Format | Example | Use |
---|---|---|---|---|
|
|
|
To indicate a time - to the second or part of a second - with a known timezone |
|
|
|
|
To indicate a time - to the second or part of a second - without a known timezone |
|
|
|
|
To indicate a date with time unknown or irrelevant |
|
|
|
|
To indicate a month in a particular year |
|
|
|
|
To indicate a year |
Note that when you use the predicates listed in the table above, ABIS will infer the datatype of the object indicated by the predicate and give an error if the data cannot be parsed as that datatype. You do not need to specify the datatype but you must get the format correct.
Note
|
Models that ABIS inherits from sometimes include seemingly arbitrary data/time restrictions, such as SOSA requiring that a sosa:resultTime` only be used to indicate an |
5.7. Provenance
How things derive from other things, when and where this occurs and who may be responsible for actions is the domain of the Provenance Ontology (PROV) which is one of ABIS’s Background Models.
PROV’s basic classes and the predicates that relate them to one another are given below.
Many of ABIS' models follow on from the pattern in the figure above and many figures further down in this document are coloured according to PROV’s basic classes. For example, the TERN Ontology's Sampling
class is a subclass of PROV’s Activity
class and instances of it may have used
an instance of a Site
, which is a subclass of PROV’s Entity
, to have generated
an instance of the class Sample
which is another subclass of Entity
.
The figures in the Observations & Results and the Feature of Interest patterns use this colouring.
PROV’s provenance reasoning is also applicable to parts of ABIS. For example, the Projects Model indicates that instances of its Project
class, which is a subclass of PROV’s Activity
, can have generated
instances of the TERN Ontology's tern:Dataset
class, which is a subclass of PROV’s Entity
, and may have been associated with an Agent
- an Organisation or Person. If so, then the resulting tern:Dataset
instances will be able to have an attributional relationship to the Agent
instance calculated. This is shown in the figure below.
5.8. Agents
Things with agency to do work such as Organisations, People, Groups (of orgs and people) and perhaps software systems - are modelled as Agents in many Semantic Web and Knowledge Graph systems. In ABIS, we follow the general pattern for Agents outlined in the Provenance Ontology (PROV), see the section above.
In addition to the simple and direct kind of relationship between Agents
and data (Entities
) show above in Figure 9 where an Entity
can be attributed to an Agent
, we use a nuanced version of that was attributed to
relationship, qualified attribution
, which is also defined in PROV. qualified attribution
is a type of qualified relation which means it relates two things together with qualifying facts. While these qualifying facts can be anything, in ABIS, the expected qualifier is a role: a role that the Agent
plays with respect to the Entity
. For example, for a dataset, one Agent
might be the author of the data, another the publisher. This could be modelled as in Figure 10, below.
Agents
, Y
& Z
, related to a single dataset X
with different roles using the qualified attribution
predicate from PROVThe roles that can be used for the qualification of attribution in ABIS are open-ended - new ones can be defined - but they are controlled - they must be proposed and accepted into a vocab to be legitimate. The vocab ABIS uses for these roles is the IDN Role Codes vocabulary - see the Vocabularies. It contains concepts such as author, publisher, collaborator and funder.
5.9. Observations & Results
This pattern is inherited from the TERN Ontology, which, in turn, inherits it from SOSA.
The result of any observation in ABIS is a numerical or classification value for an observed property of a feature of interest (see next pattern).
The observation act is a temporal activity which, recorded or not, follows some procedure.
The value may be qualified with units of measure and uncertainty.
Using this pattern, the thing that ties the result value to the property of the thing observed is the observation.
- NOTE
-
Since observations record when a result was produced, multiple observations of the property of a thing can be recorded over time, such as multiple estimations of the taxon of a specimen.
5.10. Feature of Interest
A feature of interest is the object of some activity’s focus. This is a relative term: when an observation considers the property of something - perhaps the colour of a part of a leaf - then the part leaf only - a sample of it - is the feature of interest. If the observation were to consider the colour of the whole leaf, then the leaf is the feature of interest. If the colour of the whole bush from which the leaf came was considered, then the whole bush is the feature of interest.
If the average colour of a whole area of bushland was considered, the feature of interest would be the whole area, not any single bush or plant within it.
5.11. Sites
A site is a special kind of feature of interest with a particular definition in the domain of biodiversity science. As per the TERN Ontology, a Site
in ABIS is:
"An ecological monitoring site where observations and samplings occur"
So when we see a site in ABIS, we know that it is the focus of the activity of ecological monitoring and not some other form of "site", for example an administrative region.
Additionally, a TERN/ABIS site is also a form of sample in that the activity at the ecological monitoring is designed to characterise biodiversity at the site where it is representative of an ultimate feature of interest - perhaps a certain kind of habitat. The site might be the entire ultimate feature of interest too in cases where a site is the entire area of concern such as a proposed mine location.
ABIS site s MUST have spatiality and temporality indicated as per the Spatially & Temporality patterns above.
ABIS site s MAY have additional information about them (such as sub areas, transects, subplots, methods used etc.) recorded for them according to particular protocols, such as the Ecological Monitoring System Australia (EMSA) protocols. Adherence to such protocols MAY result in addition RDF data being linked to an ANSI site or additional textual or other literal information but it MUST NOT conflict with the ABIS site information requirements.
Detailed site modelling according to EMSA or similar protocols should result in extension models to ABIS, just as the Projects Model is an extension.
6. Models
As per the Multiple Models section within the Introduction, ABIS is a set of models. The models have different roles and a dependency hierarchy.
6.1. Model Roles
The roles played by the various models within ABIS are:
-
-
The main model that is the union of its Component Models
-
-
-
Parts of the Foreground Model that may be used independently
-
-
-
Models that Component Models profile
-
6.2. Model Dependency Hierarchy
The dependency hierarchy indicates which models profile other models and thus are dependent on them. The mechanism of profiling are as per the Profiles Vocabulary but can easily be summarised as:
Any data which conforms to a model MUST conform to any models it profiles
In practice this means that any model profiling any other may use elements from that profiled model but must not break any rules imposed on that element’s use by the profiled model. These rules usually take the forms of required predicates and values for instances of particular classes, categorisation of object with terms from vocabularies and so on.
The following figure depicts the profiling relationships between the various models within ABIS.
prof:isProfileOf
relationships between the models, shown as rectangles. The ABIS model itself is the union of the NSL Model, the TERN Ontology and the ABIS Component Models.6.3. Foreground Model
The ABIS Foreground Model is the union of the Component Models listed in the next section. The dependencies of these models are shown in Figure 13, above.
When modelling biodiversity observations - ABIS' main concern - ABIS uses the TERN Ontology for the scientific domain information. When modelling taxonomic name objects, ABIS uses the NSL Model. When data packaging is necissary, the Biodiversity Record Model is used. Project information and data release details are modelled using the ABIS Projects & ABIS Data Release respectively.
6.4. Component Models
The Component Models of ABIS are:
The TERN Ontology and the NSL Model are defined externally to ABIS whereas the other 3 are defined here, within the ABIS Specification. A short overview of each of these models follows.
6.4.1. TERN Ontology
Model location: see TERN Ontology reference
6.4.1.1. Overview
The TERN Ontology is a re-skinned, and slightly extended, version of the Sensor, Observations, Sampling & Actuation (SOSA) ontology aiming to better cater for the biodiversity community. It is maintained by TERN and used beyond just ABIS.
The main patterns within the TERN Ontology are for observations and sampling.
The observations pattern is inherited directly from SOSA with some small extensions to indicate biodiversity and field observation objects, such as Site
, and is essentially as per the following figure.
This pattern sees instances of the class Observation
- individual acts of a person or a sensor observing something - following procedures to quantify properties of a Feature Of Interest
which could be a surveyed site, a material sample or even a satellite image (which would, in turn, be a sample of the land imaged). Observation
instances produce Result
instances which contain categorisations, numerical values, units of measure and so on, as necessary to well characterise the observed property quantity or category.
The Provenance Ontology offers a generic perspective on observation and sampling with its take on the observation pattern above given in the figure below. This is as per the Provenance Pattern described in the Patterns Section.
The TERN Ontology’s sampling pattern follows SOSA too but uses specialised classes for Site
, Survey
and other things familiar to those who have undertaken biodiversity surveys in the field. The general pattern is as the figure below.
is sample of
predicate can be derived from relations between a Sample
, the Sampling
and the Site
. Note the similarity of structure to the SOSA Observation pattern.TERN Ontology data is packaged into instances of the TERN Ontology’s tern:Dataset
class which is analogous to the Biodiversity Record Model's Dataset
class.
Note
|
While the TERN Ontology provides some handling of data packaging, the Biodiversity Record Model provides a more extended form of packaging with catalogues of datasets of records. See the Data Cataloguing pattern for more information. |
6.4.1.2. Use in ABIS
The TERN Ontology provides the main model elements for ABIS observation-centric data. The other ABIS foreground models support this, covering off on aspects of ABIS data beyond the TERN Ontology’s scope.
6.4.1.3. Examples
See Annex D: Extended Examples > TERN Ontology for a full example of TERN Ontology data with explanations for each part.
Also see the ABIS Portal for multiple examples that can be loaded and validated using the online validators available there.
6.4.2. NSL Model
Model location: see NSL Model reference
6.4.2.1. Overview
The NSL Model is the Australian National Species List model for the identifying and referencing of species names.
An overview of the main classes and predicates of the NSL Model is given in the figure below.
The NSL Model associates the class Taxon
representing "A group of organisms considered by taxonomists to form a homogeneous unit" with names for them - Taxon Name
- and usage of that name in literature - instances of the class Usage
, which is a special type of BibliographicReference
that quotes the Taxon Name
as used in a CreativeWork
. It also allows the citation of Usage
instances bu other Usage
instances.
The join point between the NSL Model and the TERN Ontology is on the Result
of an Observation
being the assignment of a Taxon Name
to a Feature of Interest
(probably a Sample
) as per the figure below:
Note
|
The NSL Model stated that a |
6.4.2.2. Use in ABIS
The NSL Model is used to link names for species to actual taxa and references to names and taxa in scientific literature.
ABIS data need only reference NSL data modelled according to the NSL Model and SHOULD NOT re-characterise taxonomic name / taxon relations.
6.4.2.3. Examples
The entire NSL dataset, modelled according to the NSL Model, should be available for public access in the latter half of 2024. Additionally, the BDR will contain a copy of the NSL data, so access to the BDR should provide access to that.
Examples of NSL Model data can also be found throughout the NSL Model Specification.
References to NSL objects - instances of the TaxonName
class - are also present within example data files in the ABIS Portal.
6.4.3. Biodiversity Record Model
Model location: Annex A
6.4.3.1. Overview
ABIS implements a simple catalogue model that reuses a class from the TERN Ontology, a class from schema.org and introduces a class of its own, specific to biodiversity observations.
From schema.org:
-
DataCatalog - A collection of datasets
From the TERN Ontology:
-
Dataset - A collection of data, published or curated by a single agent, and available for access or download in one or more representation
Introduced:
-
(Biodiversity) Record - A unit of information that represents the record of a biodiversity occurrence or a biodiversity survey
The use of the existing classes is as per schema.org's basic data cataloguing, which is based on the Data Catalog Vocabulary (DCAT) standard, where DataCatalog
instances contain Dataset
instances. This model’s extension with the definition of the (Biodiversity) Record class - Record
- is to define data elements within datasets that are specifically about biodiversity occurrences or about biodiversity surveys.
Note
|
|
See the patterns of Data Cataloguing and Section 5.4 for more information and this model’s definition in Annex A for further information.
6.4.4. Projects Model
Model location: Annex B
ABIS contains a simple model of Projects where a Project
is defined as "An Activity that requires concerted effort following a Plan in pursuit of an objective". The Model is fully described in Annex A: Projects Model.
The following figure illustrates the basic relationships of the class Project
and Program
, the only other class defined by the model.
The join point between the Projects Model and the rest of ABIS is that datasets of ABIS data - instances of the tern:Dataset
class - are produced by instances of Project
as per the figure below.
tern:Dataset
instances.See Annex A for more details about the Project Model.
6.4.5. Data Release Model
Model location: Annex C
ABIS contains a simple model for describing aspects of data release: to whom, under what circumstances and when data may be released. The Model is fully described in Annex B: Data Release Model.
The following figure illustrates the basic elements of this model.
The Data Release Model defines predicates - embargoed until & embargo period - which can be applied to instances of the tern:Dataset
class which set absolute or relative embargo release times. The model details the relations between these predicates.
6.5. Background Models
The Background Models within ABIS are all those profiled by the Component Models. They are shown visually in the Model Dependency Hierarchy, above.
The main Background Models for ABIS are:
-
Darwin Core - specialised properties for biodiversity modelling
-
Sensor, Observations, Sampling & Actuation (SOSA) ontology - sampling, observation & results modelling
-
GeoSPARQL - for spatial object modelling
-
Provenance Ontology (PROV) - for the lineage and attribution of data
-
schema.org - for general-purpose attributes like names, dates, simple metadata etc.
-
Bibliographic Reference Ontology (BiRO) - for the description of reference lists and bibliographic references themselves
Of these models, all provide Semantic Web rules that can be used for data validation except for Darwin Core. Validators for each of these models, other than Darwin Core, are given in the Validation Section. These validators may be used individually or combined, within the ABIS Validator.
These models in turn profile several fundamental Semantic Web models:
Neither these models nor ABIS provide validators, however syntactic and some semantic data validation for RDF, RDFS & OWL data is built in to many Semantic Web / Linked Data tooling and, for example, syntactically invalid RDF data will not be able to be processed by ABIS other validators.
Additional Background Models - the Profiles Vocabulary & Olis - are used to describe the relationships between ABIS models and between units of ABIS data within datasets, respectively, and do not need to be directly considered by users of ABIS: their impact is felt within the descriptions of this specification document itself.
Specific details of all these Background Models are not directly given here, other than certain patterns they impose and these are presented in the Patterns Section.
7. Vocabularies
ABIS use depends on the use of many vocabularies. For example, the observed growth stage of a plant may be indicated by use of Dead, Regrowth or Senescence taken from TERN's Growth Stage vocabulary.
Some uses of ABIS, such as for the submission of data to the BDR, require the use of particular vocabularies that aren’t mandated for general ABIS use, for example the use of the BDR Datatypes vocabulary for special forms of identifiers. Mandates for particular vocabulary use are indicated by individual profiles of ABIS - see Profiles.
Some Component Models of ABIS also require the use of particular vocabularies, for example, the Projects Model mandates that roles chosen for an attribution’s hadRole
predicate, when used for an instances of the abis:Project
class, must come from the IDN Role Codes Vocabulary
All the vocabularies required for use with ABIS and any known profile of ABIS are listed at the BDR Vocabulary Register:
The profile or Component Model that requires each vocab’s use is indicated there, along with other metadata to assist with the discovery of vocabs. This register is live and continuously updated with use and vocab updates.
8. Profiles
A "profile" is a:
A specification that constrains, extends, combines, or provides guidance or explanation about the usage of other specifications.
Profiles may comprise multiple parts: their own specification rules, validation contraints, controlled vocabularies and so on.
8.1. ABIS is a Profile
ABIS is a profile of many other specifications, as per the Model Dependency Hierarchy.
ABIS is made of multiple parts, as per the Section Parts of ABIS.
8.2. Profiles of ABIS
Further profiles of ABIS may be made to constrain and/or extend its use.
Profile makers are able to define extended constraints on the use of ABIS to meet particular business needs. This can include constraining value ranges, vocabularies used and so on. Profile rules are entirely a matter for profile defines however data validated according to a profile of a standard, must always be valid according to the standard itself.
Profiles of ABIS may be defined anywhere however profile creators are encouraged to list their profiles here by contacting ABIS' maintainers.
The following profiles of ABIS are known to exist:
8.3. BDR Profile
This profile defines the requirements for data to be absorbed into the Biodiversity Data Repository.
8.3.1. Resources
The resources within this profile are listed below. The roles given for each are taken from The Profiles Vocabulary [PROF].
Resource | Role | IRI | Description |
---|---|---|---|
Specification |
The normative BDR Profile of ABIS. The next section in this document |
||
Machine-readable Profile Definition |
The normative machine-readable definition of this Profile, as per the Specification text, but in RDF |
||
Validator |
A SHACL file used to validate RDF data according to this Profile’s rules |
||
Examples |
A list of examples of BDR data, as distinct from ABIS data. A section in this document |
||
JSON-LD Context |
A JSON-LD Context for this profile |
Note
|
This profile’s validators are pre-loaded in the ABIS Portal. |
8.3.2. Specification
The following subsections contain the rules of this Profile that go above and beyond those specified for ABIS generally. They form this Profile’s normative specification.
8.3.2.1. Required Identifiers
The BDR requires that certain classes of ABIS object use identifiers from particular systems. Some classes of identifier are able to be generated by a data submitter, based on a patter, others must be pre-allocated by the BDR Team.
Class | Authority | Pattern / Logic | Description |
---|---|---|---|
Data Submitter |
|
Most software libraries can generate this e.g. Python can call |
|
Submitter or original Site creator |
|
If created by a supplier, the IRI must be based on the IRI of the Dataset that it is part of and must be unique within the Dataset. |
|
Submitter or original Sample creator |
|
As per Site |
|
Submitter or original Sample creator |
|
As per Site |
|
|
BDR Team |
Fixed, as registered |
Agents with roles relating to a Dataset MUST be identified by IRIs as registered in the BDR Submitting Organisations vocabulary |
|
Submitter |
Any |
Agents other than those with roles relating to Datasets may be identified using any IRI or a Blank Node |
|
BDR Team |
Fixed, as registered |
Datatypes indicated for literal values by the |
8.3.2.2. Model Element Mandates
The following table lists the requirements for the presence of classes and predicates assigned to data supplied according to this Profile. These requirements are in addition to those imposed by ABIS Component models, such as the TERN Ontology.
A cardinality of 1
means mandatory. 0+
means zero or more, 1+
one more, etc. 0-1
means zero or one only.
Class | Predicate | Cardinality | Datatype | Notes |
---|---|---|---|---|
|
1 |
|
||
|
1 |
|
May use simple formatting such as linebreaks |
|
|
1 |
|
not |
|
|
1 |
|
not |
|
|
1+ |
IRI |
the IRI of the Agent(s) must be listed in the BDR Submitting Organisations vocabulary |
|
|
1 |
IRI |
the IRI of the Agent(s) must be listed in the BDR Submitting Organisations vocabulary |
|
9. Validation
This model both inherits existing and implements new validators for data claiming conformance to ABIS to allow testing of that claim. Since ABIS data MUST be provided in RDF, only an RDF validator is available and other forms of validation are non-normative.
9.1. Multiple Validators
Just as the ABIS model is a collection of models and also inherits model elements from other models (see Multiple Models), so too is the ABIS validator a collection of ABIS-created validators and inherited validation rules. For data to validly conform ABIS, it must also be valid according all these validators. Part use of ABIS may choose to be valid according to only some ABIS validators.
The following table lists all the validators relevant to ABIS and describes their roles.
Validator | Description | Source | Notes |
---|---|---|---|
Validation rules implemented by ABIS only |
ABIS |
Imports many other validators |
|
For data intended for storage in the BDR |
Imports the ABIS validator |
||
For spatial data |
Presented by the GeoSPARQL standard |
||
For sampling/observations data |
Derived from the SOSA standard |
||
For TERN Ontology data |
ABIS/BDR |
The TERN Ontology validator, as presented by TERN |
|
For data created according to the TERN Ontology, but for use in ABIS-based systems |
Imports parts of the TERN validator but not all |
||
For data vocabularies |
Presented by VocPub |
||
For data created according to the Biodiversity Records Model |
ABIS/BDR |
||
Validation rules implemented by the Projects Model only |
ABIS |
||
Validation rules implemented by the Data Release Model only |
ABIS |
9.2. Performing Validation
The preferred way to validate RDF data using the validators above is to use the ABIS Portal which contains all the validators pre-loaded for use.
However, any one of a number of tools designed for SHACL validation may be used and some may be more useful than the ABIS Portal for certain scenarios. Some such tools are:
-
-
free and open source Python SHACL validator
-
can be used as a command line application or within Python scripting as a library
-
-
-
online Javascript-based validator
-
can be used in a browser
-
-
-
online pySHACL-based validator
-
preloaded with the validators above and many others
-
10. Mappings
This section lists mappings between ABIS and related models. These are conceptual mappings that either show model element equivalence - ABIS Class X is equivalent to Other Model Class Y - or transformations for equivalence - or calculations that lead to equivalence.
For each mapping given here, an RDF mapping file is also provided when the target of the mapping is also a Semantic Web model. The files are linked to in each section.
10.1. Background Models
ABIS background models such as Sensor, Observations, Sampling & Actuation (SOSA) ontology and GeoSPARQL are mapped to from ABIS foreground data in a simple manner: since all TERN Ontology/ABIS class objects are specialised versions of the background model’s classes, if a background model export is needed, ABIS data can either be sent as-is and the receiver can then infer generic objects from specialised ones, or we could perform the inference and export objects according to that model only.
The following methodology for export of ABIS data according to a SOSA will work with all background models.
10.1.1. SOSA
ABIS foreground model’s mappings to the Sensor, Observations, Sampling & Actuation (SOSA) ontology and also SOSA’s parent, the Semantic Sensor Network Ontology are established by following defined relations between elements such as subclass and subproperty relations. The following mapping table to SOSA/SSN from the TERN ontology can be produced by querying the TERN Ontology with this query:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?from ?relation ?to WHERE { VALUES ?relation { rdfs:subClassOf rdfs:subPropertyOf } ?from ?relation ?to . FILTER REGEX(STR(?to), "ssn|sosa") } ORDER BY ?c
The query above produces the following results:
From Element | Mapping Relation | To Element |
---|---|---|
Classes |
||
Predicates |
||
The TERN Ontology uses many SOSA predicated directly too:
Used Directly |
---|
Predicates |
In addition to the above tables, many TERN Ontology Classes are subclasses of other TERN Ontology Classes, for example tern:Site subclass of tern:Sample
and given tern:Sample subclass of sosa:Sample
, then tern:Site subclass of sosa:Sample
.
Using the tables and logic above, much TERN Ontology data can be converted to purely SOSA/SSN terms. for the following TERN Ontology data:
ex:sample-1 a tern:Sample ; sosa:isSampleOf ex:site-1 ; . ex:site-1 a tern:Site ; sosa:isSampleOf <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a tern:Observation ; sosa:hasFeatureOfInterest ex:sample-1 ; sosa:hasResult [ a tern:Integer ; rdf:value 42 ; ] ; .
the pure SOSA/SSN data is:
ex:sample-1 a sosa:Sample ; sosa:isSampleOf ex:site-1 ; . ex:site-1 a sosa:Sample , sosa:Platform ; sosa:isSampleOf <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a sosa:Observation ; sosa:hasFeatureOfInterest ex:sample-1 ; sosa:hasResult [ a sosa:Result ; rdf:value 42 ; ] ; .
10.1.2. GeoSPARQL
Conversion of ABIS data to pure GeoSPARQL may be needed to understand how SOSA data can be spatially indexed, given that most spatially-enabled triplestores only spatially index GoSPARQL values.
The following SPARQL query applied to the TERN Ontology produces the table that follows:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?from ?relation ?to WHERE { VALUES ?relation { rdfs:subClassOf rdfs:subPropertyOf } ?from ?relation ?to . FILTER REGEX(STR(?to), "geosparql") } ORDER BY ?c
From Element | Mapping Relation | To Element |
---|---|---|
Predicates |
||
Additionally, the SHACL constraints of the TERN Ontology (see Validation) require that a number of TERN Ontology classes be allowed to indicate a geo:Geometry which, by GeoSPARQL reasoning, makes them subclasses of geo:Feature.
From Element | Mapping Relation | To Element |
---|---|---|
Classes |
||
Further, by the nature of sample, we can make the following SOSA → GeoSPARQL predicate mappings:
From Element | Mapping Relation | To Element |
---|---|---|
Predicates |
||
Here is the same dummy TERN Ontology data used in the SOSA mapping above:
ex:sample-1 a tern:Sample ; sosa:isSampleOf ex:site-1 ; . ex:site-1 a tern:Site ; sosa:isSampleOf <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a tern:Observation ; sosa:hasFeatureOfInterest ex:sample-1 ; sosa:hasResult [ a tern:Integer ; rdf:value 42 ; ] ; .
The above, now rendered in purely GeoSPARQL terms from the 3 above mapping tables:
ex:sample-1 a geo:Feature ; geo:sfWithin ex:site-1 ; . ex:site-1 a geo:Feature ; geo:sfWithin <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a geo:Feature ; geo:sfWithin ex:sample-1 ; .
10.1.3. PROV
The TERN Ontology uses some PROV classes directly:
Used Directly |
---|
Classes |
It required that these classes indicate prov:Agent & prov:Role instances and that Association may also indicate a prov:Plan.
It also defines the following relations to PROV:
From Element | Mapping Relation | To Element |
---|---|---|
Classes |
||
Each of these classes MAY indicate an prov:Association (to an prov:Agent) via either prov:wasAssociatedWith or prov:qualifiedAssociation.
The TERN Ontology does not define any mappings to PROV’s Agent
or Entity
classes directly, however the TERN Validator does use prov:Agent and we can infer the following class relations from SOSA’s PROV Alignment:
From Element | Mapping Relation | To Element |
---|---|---|
Classes |
||
Subclasses of prov:Entity MAY always, according to PROV, indicate an prov:Attribution (to an prov:Agent) via either prov:wasAttributedTo or prov:qualifiedAttribution, but in TERN Ontology, this information is only ever expected for tern:Dataset objects.
There are also SOSA predicate to PROV predicate mappings given in SOSA’s PROV Alignment, for example:
From Element | Mapping Relation | To Element |
---|---|---|
Predicates |
||
Using all of these mappings, the TERN Ontology data:
ex:sample-1 a tern:Sample ; sosa:isSampleOf ex:site-1 ; . ex:site-1 a tern:Site ; sosa:isSampleOf <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a tern:Observation ; sosa:hasFeatureOfInterest ex:sample-1 ; sosa:hasResult [ a tern:Integer ; rdf:value 42 ; ] ; .
maps to the following PROV data:
ex:sample-1 a prov:Entity ; prov:wasDerivedFrom ex:site-1 ; . ex:site-1 a prov:Entity ; prov:wasDerivedFrom <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a prov:Activity ; prov:used ex:sample-1 ; prov:generated [ a prov:Entity ; rdf:value 42 ; ] ; .
10.1.4. Darwin Core Terms
ABIS uses the following Darwin Core Terms class directly:
Used Directly |
---|
Classes |
The TERN Ontology makes the following mappings to Darwin Core Terms elements:
From Element | Mapping Relation | To Element |
---|---|---|
Classes |
||
and
Used Directly |
---|
Predicates |
This predicate is to be used on the class tern:MaterialSample.
Additionally, the TERN Ontology validator indicates use of the following predicates:
Used Directly |
---|
Predicates |
All of these predicates are to be used on the class tern:Taxon.
The following mappings to non-deprecated Darwin Core Terms classes can be made from the TERN Ontology by following simple name similarities, shared definitions and shared higher order mappings to PROV:
From Element | Mapping Relation | To Element |
---|---|---|
Classes |
||
The following Darwin Core Terms class has a more complex mappings:
dwc:ResourceRelationship is a "A relationship of one rdfs:Resource to another". This means that all predicates in ABIs are dcw:ResourceRelationship
objects.
dcw:ResourceRelationship
is a Class therefore the general relationship between ABIS elements and it is:
{ABIS-element} rdfs:subPropertyOf dcw:ResourceRelationship
… if we treat dcw:ResourceRelationship
as an rdfs:Property
.
It is likely there is little to be gained implementing this mapping.
Using all of these mappings, the ABIS data:
ex:sample-1 a tern:MaterialSample ; schema:additionalType <http://linked.data.gov.au/def/tern-cv/4b36a1ab-7a77-49ca-866a-e68bce2db9e5> ; # plant matter sosa:isSampleOf ex:site-1 ; . ex:site-1 a tern:Site ; sosa:isSampleOf <https://example.com/feature/ultimate-foi> ; . ex:obs-1 a tern:Observation ; sosa:hasFeatureOfInterest ex:sample-1 ; sosa:hasResult [ a tern:Taxon ; rdf:value <https://id.biodiversity.org.au/455721> ; ] ; .
maps to the following Darwin Core Terms data:
ex:sample-1
a dwc:LivingSpecimen ;
prov:wasDerivedFrom ex:site-1 ;
.
ex:site-1
a dwc:Location ;
prov:wasDerivedFrom <https://example.com/feature/ultimate-foi> ;
.
ex:obs-1
a dcw:Identification ;
dwc:materialSampleID ex:sample-1 ;
dwc:identificationID <https://id.biodiversity.org.au/455721> ;
.
11. Reasoning Rules
This section contains rules that MUST be able to be executed on ABIS data. The rules are machine executable and create new information from ABIS data based on logical, ontological, spatial and other reasoning.
The purpose of these rules are to create convenient forms of base ABIS data, such as bounding boxes for datasets when only Occurrence locations are initially provided. This enables efficient use of ABIS data - dataset discovery can search spatially across the fewer datasets, not just across the more numerous occurrences - and also fleshes out certain data patterns where base ABIS data might have provided multiple forms of content which do not meet the pattern directly but can be used to calculate it.
11.1. How Rules Work
On receipt of ABIS data, ABIS-compliant systems MAY make available data that has been expended, based on the rules in the Rule List below. How a system does this is a matter for the system but the general approaches are:
-
forward chaining
-
backwards chaining
Forwards chaining involves expanding received data in accordance with the rules and materialising all the extension elements. Backwards chaining involves applying the reasoning rules to queries of the data such that the query can be answered as if the data had been expanded.
The rules are identified below, described in English and then defined in SPARQL queries. Implementing systems do not have to expand the data using SPARQL queries - they may use any system they like, such as application code - but the SPARQL queries serve as the canonical definition of the rule.
11.2. Rule List
ID | Description | Dependencies | Definition |
---|---|---|---|
R01 |
Calculate |
- |
PREFIX abis: <https://linked.data.gov.au/def/abis/> PREFIX tern <https://w3id.org/tern/ontologies/tern/> PREFIX void: <http://rdfs.org/ns/void#> CONSTRUCT { ?occ a abis:Occurrence . } WHERE { # ... } |
R02 |
Calculate |
- |
PREFIX abis: <https://linked.data.gov.au/def/abis/> PREFIX tern <https://w3id.org/tern/ontologies/tern/> PREFIX void: <http://rdfs.org/ns/void#> CONSTRUCT { ?boc a abis:BiodiversityRecord . } WHERE { # ... } |
R03 |
Centroids must be calculated for polygons |
- |
PREFIX geo: <http://www.opengis.net/ont/geosparql#> PREFIX geof: <http://www.opengis.net/def/function/geosparql/> CONSTRUCT { ?feature geo:hasCentroid ?centroid } WHERE { ?feature geo:hasGeometry/geo:asWKT ?wkt . BIND geof:centroid(?wkt) AS ?centroid . FILTER REGEX(?wkt, "POLYGON") } |
R04 |
If a Dataset does not have a geometry supplied, it must have it calculated as the convex hull of its spatial object members |
R01 |
PREFIX abis: <https://linked.data.gov.au/def/abis/> PREFIX geo: <http://www.opengis.net/ont/geosparql#> PREFIX geof: <http://www.opengis.net/def/function/geosparql/> PREFIX tern <https://w3id.org/tern/ontologies/tern/> PREFIX void: <http://rdfs.org/ns/void#> CONSTRUCT { ?dataset geo:hasGeometry ?geom . ?geom geo:asWKT ?wkt . } WHERE { { VALUES ?spatialFeature { abis:Ocurrence tern:Site tern:Survey tern:SiteVisit } SELECT ?wkt WHERE { ?feature void:inDataset ?dataset ; a ?spatialFeature ; . } } BIND BNODE() AS ?geom . BIND geof:aggBoundingBox(?wkt) AS ?boundingbox . MINUS { ?dataset geo:hasGeometry ?geom . } } |
R05 |
Bounding Boxes must be calculated for Datasets |
R04 |
PREFIX geo: <http://www.opengis.net/ont/geosparql#> PREFIX geof: <http://www.opengis.net/def/function/geosparql/> CONSTRUCT { ?dataset geo:hasBoundingBox ?boundingbox } WHERE { ?dataset geo:hasGeometry/geo:asWKT ?wkt . BIND geof:aggBoundingBox(?wkt) AS ?boundingbox . } |
R06 |
If a Dataset does not have a temporal range supplied, it must have it calculated as the containing interval containing all of its temporal object members |
R01 |
PREFIX abis: <https://linked.data.gov.au/def/abis/> PREFIX schema: <https://schema.org/> PREFIX tern <https://w3id.org/tern/ontologies/tern/> PREFIX time: <http://www.w3.org/2006/time#> CONSTRUCT { ?dataset schema:temporality ?boundingbox } WHERE { { VALUES ?temporalFeature { abis:Ocurrence } SELECT ?wkt WHERE { ?feature void:inDataset ?dataset ; a ?temporalFeature . ?feature time:hasTime ?time . } } ?dataset geo:hasGeometry/geo:asWKT ?wkt . BIND geof:aggBoundingBox(?wkt) AS ?boundingbox . MINUS { ?dataset schema:temporality ?temporal . } } |
Record Rule
This rule allows for the creation of Record instances from TERN Ontology data that doesn’t directly indicate such as class of object.
Spatial Reasoning
The following spatial reasoning rules will be applied to ABIS data.
Centroids and Bounding Boxes from Boundaries
Datasets
containment of Surveys
Surveys
containment of Observations
Inference of geometry literal datatypes from GeoSPARQL predicates
Temporal Reasoning
Inference of date/time literal datatypes from TIME predicates
TODO: complete this section
12. References
- BIRO
-
Di Iorio, A., Nuzzolese, A. G., Peroni, S., Shotton, D., Vitali, F. Describing bibliographic references in RDF. In Garcia Castro, A., Lange, C., Lord, P., Stevens, R. (Eds.), Proceedings of 4th Workshop on Semantic Publishing (SePublica 2014), CEUR Workshop Proceedings 1155. Aachen, Germany: CEUR-WS.org. http://ceur-ws.org/Vol-1155/paper-05.pdf (Open Access). Ontology description online at http://www.sparontologies.net/ontologies/biro
- DCAT
-
World Wide Web Consortium, Data Catalog Vocabulary (DCAT) - Version 2, W3C Recommendation (04 February 2020). https://www.w3.org/TR/vocab-dcat/
- DWC
-
Darwin Core Maintenance Group, Darwin Core, Biodiversity Information Standards (TDWG), Technical Specification (2009). http://www.tdwg.org/standards/450
- GSP
-
Open Geospatial Consortium, OGC GeoSPARQL - A Geographic Query Language for RDF Data, OGC Implementation Standard. Car, N. J., & Homburg, T. (eds.) (2011). http://www.opengis.net/doc/IS/geosparql/1.1
- ISO19156
-
International Organization for Standardization, ISO 19156: Geographic information — Observations and measurements (2011)
- JSON-LD
-
World Wide Web Consortium, JSON-LD 1.1: A JSON-based Serialization for Linked Data, W3C Recommendation (16 July 2020). https://www.w3.org/TR/json-ld11/
- NSLM
-
Centre for Australian National Biodiversity Research (CANBR), National Species List - Semantic Web Model (2023). https://linked.data.gov.au/def/nsl
- OLIS
-
KurrawongAI, Olis Ontology, Semantic Web Model (2022). https://olis.dev/ont
- OWL2
-
World Wide Web Consortium, OWL 2 Web Ontology Language Document Overview (Second Edition), W3C Recommendation (11 December 2012). https://www.w3.org/TR/owl2-overview/
- PROF
-
World Wide Web Consortium, The Profiles Vocabulary, W3C Working Group Note (18 December 2019). https://www.w3.org/TR/dx-prof/
- PROV
-
World Wide Web Consortium, PROV-O: The PROV Ontology, W3C Recommendation (30 February 2013). https://www.w3.org/TR/prov-o/
- RDFSPEC
-
World Wide Web Consortium, RDF 1.1 Concepts and Abstract Syntax, W3C Recommendation (25 February 2014). https://www.w3.org/TR/rdf11-concepts/
- RDFSSPEC
-
World Wide Web Consortium, RDF Schema 1.1, W3C Recommendation (25 February 2014). https://www.w3.org/TR/rdf11-schema/
- schema
-
schema.org Consortium, schema.org, OWL vocabulary (26 June 2023). https://schema.org/
- SHACL
-
World Wide Web Consortium, Shapes Constraint Language (SHACL), W3C Recommendation (20 July 2017). https://www.w3.org/TR/shacl/
- SKOS
-
World Wide Web Consortium, SKOS Simple Knowledge Organization System Reference, W3C Recommendation (18 August 2009). https://www.w3.org/TR/skos-reference/
- SOSA
-
World Wide Web Consortium, Sensor, Observation, Sample, and Actuator ontology, within Semantic Sensor Network Ontology, W3C Recommendation (19 October 2017). https://www.w3.org/TR/vocab-ssn/
- TERN Ontology
-
Terrestrial Ecosystems Research Network (TERN). TERN Ontology. A information model to represent plot-based ecological surveys. https://linkeddata.tern.org.au/information-models/tern-ontology
- TIME
-
World Wide Web Consortium, Time Ontology in OWL, W3C Candidate Recommendation (26 March 2020). https://www.w3.org/TR/owl-time/
- TURTLE
-
World Wide Web Consortium, RDF 1.1 Turtle - Terse RDF Triple Language, W3C Recommendation (25 February 2014). https://www.w3.org/TR/turtle/
- VocPub
-
Australian Government Linked Data Working Group, VocPub Profile, Profiles Vocabulary profile of SKOS (2020). https://w3id.org/profile/vocpub
- VOID
-
DERI, Vocabulary of Interlinked Datasets (VoID), OWL vocabulary (2010). http://vocab.deri.ie/void
- XSD2
-
World Wide Web Consortium, XML Schema Part 2: Datatypes (Second Edition), W3C Recommendation (28 October 2004). https://www.w3.org/TR/xmlschema-2/
Annex A: Biodiversity Record Model
DataCatalogs are curated lists of Datasets that contain Biodiversity Records (just 'Records').
The Dataset class is taken from the TERN Ontology and normal schema.org data catalogue modelling (informed by DCAT) is used so that datasets are creative work objects and may be described with metadata such as creator, issued date, etc.
The validator for this model, given in this model’s Validator section, only check for minimal conformance to this model - correct use of the classes in relation to one another - and does not mandate any other properties for catalogues, datasets or records. Such validation is the role of profiles of this model or of ABIS as a whole.
Note
|
See the BDR Profile for the requirements of Biodiversity Record Model data bound for the BDR. |
A.1. Metadata
ABIS Data Release Model |
|
This model is for curated lists - catalogues - of data resources - datasets - that contains information about biodiversity occurrences and surveys - biodiversity records. |
|
2024-07-15 |
|
2024-07-22 |
|
2023-07-30 |
|
2.0 |
|
Version History |
2.0 - 2024 July - First release (v2.0 to match ABIS) |
Department of Climate Change, Energy and the Environment (DCCEEW) |
|
Australian Biodiversity Information Governance Group (AUSBIGG) |
|
Department of Climate Change, Energy and the Environment (DCCEEW) |
|
AusBIGG is supported by DCCEEW’s' Biodiversity Data Repository (BDR) Team. Contact the BDR Team on bdr@dcceew.gov.au |
|
A.2. Supporting Assets
-
RDF schema:
-
SHACL validation file:
A.3. Classes
Class Index
Classes defined here:
Classes defined elsewhere:
BiodiversityRecord (Record)
Property | Value |
---|---|
|
|
Record |
|
Biodiversity Record |
|
The recording of an Occurrence. |
|
Defined by the BDR Team in 2024 to better facilitate the management of ABIS data such as linking BDR data to original non-ABIS records in Submitting Organisations' data holdings |
|
Expected Properties |
|
:catalogue-x a schema:DataCatalog ; schema:name "Catalogue X" ; schema:hasPart :dataset-y ; # ... other catalogue metadata . :dataset-y a tern:Dataset ; schema:name "Dataset Y" ; # ... ther dataset metadata schema:isPartOf :catalogue-y ; schema:hasPart :record-001 , :record-002 , # ... many other records :record-NNN ; . :record-001 a abis:BiodiversityRecord ; # a non-IRI identifier for this Record, as found in the original # data held by the Submitting Organisation schema:identifier "R1234"^^bdr-dt:OrgMRecordId ; # inverse of :dataset-y schema:hasPart :record-001 schema:isPartOf :dataset-y ; # the thing the Record is about schema:about :occurrence-aaa ; . :occurrence-aaa a dwc:Occurrence ; schmea:name "Occurrence AAA" ; schema:additionalType <http://linked.data.gov.au/def/tern-cv/cd5cbdbb-07d9-4a5b-9b11-5ab9d6015be6> ; # animal specimen sosa:isSampleOf :foi-h ; # linke a field site sosa:usedProcedure :procedure-i ; # a controlled method schema:spatial [ geo:asWKT "POINT (120.244 -32.959)"^^geo:wktLiteral ] ; schema:temporal "2014-07-23"^^xsd:date ; . |
A.4. Predicates
Predicate Index
Predicates defined here:
-
None
Predicates defined elsewhere:
about
Property | Value |
---|---|
|
|
identifier |
|
The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. |
|
Use this predicate to indicate a non-IRI identifier for an ABIS object identified, with ABIS use, by an IRI. A datatype MUST be assigned to the non-IRI identifier value |
|
See the example for Record |
about
Property | Value |
---|---|
|
|
about |
|
The subject matter of the content. |
|
Use this predicate to indicate the Occurrence that this Record is about |
|
See the example for Record |
A.5. Validator
The following SHACL shapes are graph patterns mandated by this model.
Shapes Index
INCOMPLETE
Annex B: Protocol-based Models
EMSA Protocol
#TODO: add details of the EMSA Protocol Model(s) from https://emsa.tern.org.au/
Annex C: Projects Model
Project
s are part of Program
s and both are specialised forms of PROV's Activity
class. An Activity
is "something that occurs over a period of time and acts upon or with entities" which means Project
& Program
instances can have all the properties that Activities
can have, such as temporal extents, Agents
that have causal relationships to them and so on.
B.1. Metadata
ABIS Data Release Model |
|
This model is for describing Projects where Project is defined as "An Activity that requires concerted effort following a Plan in pursuit of an objective". |
|
2023-10-15 |
|
2023-12-28 |
|
2023-12-28 |
|
2.0 |
|
Version History |
2.0 - 2023 Dec - First release (v2.0 to match ABIS) |
Department of Climate Change, Energy and the Environment (DCCEEW) |
|
Australian Biodiversity Information Governance Group (AUSBIGG) |
|
Department of Climate Change, Energy and the Environment (DCCEEW) |
|
AusBIGG is supported by DCCEEW’s' Biodiversity Data Repository (BDR) Team. Contact the BDR Team on bdr@dcceew.gov.au |
|
B.2. Supporting Assets
-
RDF schema:
-
SHACL validation file:
B.3. Classes
B.3.1. Class Index
Classes defined here:
Classes defined elsewhere:
B.3.2. Project
Property | Value |
---|---|
|
|
This model |
|
Project |
|
An Activity that requires concerted effort following a Plan in pursuit of an objective |
|
Defined by BDR Team in 2023 in response to BDR usage needs |
|
Expected Properties |
|
:project-m a abis:Project ; schema:name "Project M" ; schema:description "South Australian government Project M-23" ; abis:purpose "To determine extent of koala populations in NE SA" ; schema:keywords ex:koala , <https://linked.data.gov.au/dataset/asgsed3/STE/4> ; # S.A. schema:isPartOf :program-n ; # Note TIME/PROV at https://www.w3.org/TR/owl-time/#time-prov # Note temporal range within that of containing Program prov:startedAtTime "2023-12-01"^^xsd:date ; prov:endedAtTime "2023-12-15"^^xsd:date ; geo:hasGeometry [ a geo:Geometry ; geo:asWKT "POLYGON ((138.010254 -26.007424, 140.976563 -25.99755, ..., 138.010254 -26.007424))" ] ; prov:qualifiedAttribution [ prov:agent ex:dewr ; # SA Dept Env, e.g. only prov:hadRole role:principalInvestigator ; ] ; prov:generated ex:dataset-x ; . :program-n a abis:Program ; schema:name "Program N" ; schema:hasPart :project-m ; # Note TIME/PROV at https://www.w3.org/TR/owl-time/#time-prov time:hasTime [ time:hasBeginning [ time:inXSDDateTime "2023-12-01"^^xsd:date ; ] ; time:hasEnd [ time:inXSDDateTime "2023-12-28"^^xsd:date ; ] ; ] ; # ... other properties . |
B.3.3. Program
Property | Value |
---|---|
|
|
This model |
|
Project |
|
An Activity that requires concerted effort following a Plan in pursuit of an objective |
|
Defined by BDR Team in 2023 in response to BDR usage needs |
|
Expected Properties |
has part and all the properties of Project, other than is part of |
See the example for Project |
B.3.4 Attribution
Property | Value |
---|---|
|
|
Attribution |
|
The ascribing of an entity to an agent |
|
Use objects of this class to link Project or Program objects to Agent objects and the roles they played with respect to the Activity |
|
Expected Properties |
|
See the Example for Project: the range value for the |
B.3.5. Agent
Property | Value |
---|---|
|
|
Agent |
|
Something that bears some form of responsibility for an activity taking place |
|
Use specialised objects of this class - Organisation or Person - that bear some form of responsibility for a Project where their role is qualified within a Attribution |
|
Expected Properties |
None: use the Agent’s identifier only |
See the Example for Project |
B.3.6. Organization
Property | Value |
---|---|
|
|
This model |
|
Project |
|
An organization such as a school, NGO, corporation, club, etc. |
|
Defined by schema.org |
|
Expected Properties |
|
See the Example for Project |
B.3.7. Person
Property | Value |
---|---|
|
|
Agent |
|
Something that bears some form of responsibility for an activity taking place |
|
Use specialised objects of this class - Organisation or Person - that bear some form of responsibility for a Project where their role is qualified within a Attribution |
|
Expected Properties |
None: use the Agent’s identifier only |
See the Example for Project |
B.3.8. Concept
Property | Value |
---|---|
|
|
Concept |
|
An idea or notion; a unit of thought |
|
Direct use of this Class is not expected, instead where a |
|
Expected Properties |
None |
B.4. Predicates
This model defines only one predicate - purpose - but also requires the use of others defined elsewhere. Definitions for all predicates are copied from source and given here.
Predicate Index
Predicates defined here:
Predicates defined elsewhere:
purpose
Property | Value |
---|---|
|
|
purpose |
|
The intent of the Activity |
|
Use this predicate to indicate a textual intent for a Project or a Program |
|
This model |
|
See the example for Project |
name
Property | Value |
---|---|
|
|
name |
|
The name of the item |
|
Use this predicate to indicate a textual name for something |
|
See the example for Project |
description
Property | Value |
---|---|
|
|
description |
|
A description of the item |
|
Use this predicate to indicate a textual description for something |
|
See the example for Project |
keywords
Property | Value |
---|---|
|
|
keywords |
|
Keywords or tags used to describe some item |
|
Use this predicate to indicate Concept instances from controlled vocabularies to categorise the object this predicate is applied to |
|
See the Example for Project |
has part
Property | Value |
---|---|
|
|
has part |
|
Indicates an item is part of this item |
|
Inverse of |
|
Use this predicate to indicate that a Program includes a See the example for Project |
|
See the example for Project |
is part of
Property | Value |
---|---|
|
|
is part of |
|
Indicates an item that this item, in some sense, is part of |
|
Inverse of |
|
Use this predicate to indicate that a Program includes a See the example for Project |
|
See the example for Project |
has time
Property | Value |
---|---|
|
|
has time |
|
Supports the association of a temporal entity (instant or interval) to any thing |
|
Use this predicate to indicate that a Program or a Project has a temporal region of concern |
|
See the example for Project |
hasGeometry
Property | Value |
---|---|
|
|
is part of |
|
A spatial representation for a given Feature |
|
Use this predicate to indicate that a Program or a Project has a spatial area of concern |
|
Range |
|
See the example for Project |
qualified attribution
Property | Value |
---|---|
|
|
qualified attribution |
|
The ascribing of an entity to an agent |
|
Use this predicate to link a Project or a Program to a Attribution which then links to an Agent, which must be an Organization or a Person, and a Concept |
|
See the example for Project |
agent
Property | Value |
---|---|
|
|
agent |
|
References an Agent which influenced a resource |
|
Use this predicate to link an Project or a Program to an Agent, which must be an Organization or a Person |
|
See the example for Project |
had role
Property | Value |
---|---|
|
|
had role |
|
A role is the function of an entity or agent with respect to an activity |
|
Use this predicate to link an Project or a Program to a Concept |
|
See the example for Project |
generated
Property | Value |
---|---|
|
|
generated |
|
Generation is the completion of production of a new entity by an activity |
|
Use this predicate to link a Project or a Program to data that it produced, in the form of an |
|
See the example for Project |
B.5. Validator
TODO: list and define validators fro this model
Shapes Index
INCOMPLETE
IDN Roles
Property | Value |
---|---|
|
|
IDN Roles |
|
Roles for the predicate |
|
This model’s validator |
|
Code |
abis:idn-roles a shacl:Shape ; schema:name "IDN Roles" ; schema:description "Roles for the predicate prov:role on instances of prov:Attribution linked to an abis:Project must be taken from the IDN Role Codes Vocabulary (https://data.idnau.org/pid/vocab/idn-role-codes)" ; sh:path [ ] ; . |
INCOMPLETE
Annex D: Data Release Model
This model is for describing aspects of data release: to whom, under what circumstances and when data may be released.
Note
|
Currently, the Data Release model only handles data embargos, but it is likely to be expanded as data release/restriction concerns are found to be important within the ABIS community. Please communicate any data release modelling issues to the BDR Team using the "Contacts" details. |
C.1. Metadata
ABIS Data Release Model |
|
This model is for describing aspects of data release: to whom, under what circumstances and when data may be released. |
|
2023-10-15 |
|
2023-12-28 |
|
2023-12-28 |
|
1.0 |
|
Version History |
2.0 - 2023 Dec - First release (v2.0 to match ABIS) |
the Department of Climate Change, Energy and the Environment (DCCEEW) |
|
Australian Biodiversity Information Governance Group (AUSBIGG) |
|
Department of Climate Change, Energy and the Environment (DCCEEW) |
|
AusBIGG is supported by DCCEEW’s' Biodiversity Data Repository (BDR) Team. Contact the BDR Team on bdr@dcceew.gov.au |
|
C.2. Supporting Assets
-
RDF schema:
-
SHACL validation file:
C.3. Classes
This model defines none of its own classes and only indicates the TERN Ontology's tern:Dataset
class for use with the predicates it does define.
C.4. Predicates
embargoed until
Property | Value |
---|---|
|
|
embargoed until |
|
A date after which the is no longer embargoed |
|
This model |
|
The embargo period is understood to cease on the time instance of the start of the object value, e.g. at 00:00:00 (midnight) of a given date, or midnight of the first day of a given month. |
|
# Dataset X is embargoed until the 5th of May, 2024 :dataset-x a tern:Dataset ; schema:name "Dataset X" ; dcterms:embargoedUntil "2024-05-11"^^xsd:date ; # ... other dataset properties . # Dataset Y is embargoed until 2025 :dataset-y a tern:Dataset ; schema:name "Dataset Y" ; dcterms:embargoedUntil "2025-01-01"^^xsd:date ; # ... other dataset properties . |
embargo period
Property | Value |
---|---|
|
|
embargo period |
|
A temporal duration within which the object is embargoed |
|
This model |
|
This predicate can only be used if the start of the embargo period’s duration can be established by a business or system rule. If it cannot, use embargoed until instead, with a fixed date. |
|
# Dataset X is embargoed for a period of 3 months, calculated to start # from the issued date. # The calculation is defined by a business rule which is not # expressable in RDF :dataset-x a tern:Dataset ; schema:name "Dataset X" ; dcterms:issued "2023-12-25"^^xsd:date ; abis:embargoPeriod [ a time:DurationDescription ; time:months 3 ; ] ; # ... other dataset properties . |
Annex E: Extended Examples
D.1. TERN Ontology
These examples use TERN Ontology elements only.
D.1.1. Validating
All these examples are loaded into the ABIS Portal and may be validated online using the TERN Ontology validator which is also loaded there.
To validate these examples locally - on your own computer - you will need a validation tool installed - see the Validation Section, the example data file, the TERN Ontology validator and the TERN Ontology itself. These files are all available from this ABIS repository:
File | Location | Validity |
---|---|---|
TERN Ontology Validator |
https://github.com/AusBIGG/abis/tree/master/validators/tern-validator.ttl |
- |
TERN Ontology Model |
https://github.com/AusBIGG/abis/tree/master/models/components/tern-model.ttl |
- |
Example 01 data |
https://github.com/AusBIGG/abis/tree/master/examples/tern-eg-01.ttl |
valid |
Example 02 data |
https://github.com/AusBIGG/abis/tree/master/examples/tern-eg-02.ttl |
invalid |
If using the pySHACL tool, the following command will validate the data using the files above:
pyshaclz -s tern-validator.ttl -e tern-ont.ttl tern-eg-01.ttl -f table
D.1.2. Example 01 - valid
This example is valid according to the TERN Ontology validator.
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX ex: <http://example.com/thing/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sosa: <http://www.w3.org/ns/sosa/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX void: <http://rdfs.org/ns/void#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
ex:dataset-01
a tern:Dataset ;
dcterms:description "A minimally valid tern:Dataset instance" ;
dcterms:issued "2021-11-18"^^xsd:date ;
dcterms:title "TERN Dataset 01" ;
.
ex:obs-01
a tern:Observation ;
rdfs:label "TERN Observation 01" ;
void:inDataset ex:dataset-01 ;
geo:hasGeometry [
a geo:Geometry ;
geo:asWKT "POINT(143, -27)"^^geo:wktLiteral
] ;
rdfs:comment "A minimally valid tern:Observation instance" ;
sosa:hasFeatureOfInterest ex:foi-01 ;
sosa:hasResult [
a tern:Float ;
rdf:value "42"^^xsd:double ;
tern:uncertainty "0.5"^^xsd:double ;
] ;
sosa:hasSimpleResult "42"@en ;
sosa:observedProperty <https://example.org/op/1> ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTimeStamp "2021-11-18T14:35+10:00"^^xsd:dateTimeStamp ;
] ;
sosa:usedProcedure <https://example.org/proc/1> ;
tern:resultDateTime "2021-11-18T14:35:00"^^xsd:dateTime ;
.
ex:foi-01
a tern:FeatureOfInterest ;
rdfs:label "TERN FeatureOfInterest 01" ;
void:inDataset ex:dataset-01 ;
tern:featureType <https://example.org/ft/1> ;
.
D.1.3. Example 02 - invalid
This example is the same data as the above but with several lines commented out (starting with #
) which makes it invalid according to the TERN Ontology validator.
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX ex: <http://example.com/thing/>
PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sosa: <http://www.w3.org/ns/sosa/>
PREFIX tern: <https://w3id.org/tern/ontologies/tern/>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX void: <http://rdfs.org/ns/void#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
ex:dataset-01
a tern:Dataset ;
dcterms:description "A minimally valid tern:Dataset instance" ;
dcterms:issued "2021-11-18"^^xsd:date ;
dcterms:title "TERN Dataset 01" ;
.
ex:obs-01
a tern:Observation ;
rdfs:label "TERN Observation 01" ;
void:inDataset ex:dataset-01 ;
# geo:hasGeometry [
# a geo:Geometry ;
# geo:asWKT "POINT(143, -27)"^^geo:wktLiteral
# ] ;
rdfs:comment "A minimally valid tern:Observation instance" ;
sosa:hasFeatureOfInterest ex:foi-01 ;
sosa:hasResult [
a tern:Float ;
rdf:value "42"^^xsd:double ;
tern:uncertainty "0.5"^^xsd:double ;
] ;
sosa:hasSimpleResult "42" ;
sosa:observedProperty <https://example.org/op/1> ;
sosa:phenomenonTime [
a time:Instant ;
time:inXSDDateTimeStamp "2021-11-18T14:35+10:00"^^xsd:dateTimeStamp ;
] ;
sosa:usedProcedure <https://example.org/proc/1> ;
tern:resultDateTime "2021-11-18T14:35:00" ; # ^^xsd:dateTime ;
.
ex:foi-01
a tern:FeatureOfInterest ;
rdfs:label "TERN FeatureOfInterest 01" ;
# void:inDataset ex:dataset-01 ;
tern:featureType <https://example.org/ft/1> ;
.
Results from validating this example should indicate two Violations:
-
The datatype for the value indicated by the
tern:resultDateTime
predicate on the objectex:obs-01
is of an invalid datatype-
no datatype is given, so a string (
xsd:string
) is presumed but it should be anxsd:date
,xsd:dateTime
orxsd:dateTimeStamp
-
-
ex:obs-01
is missing ageo:hasGeometry
predicate -
ex:foi-01
is missing avoid:inDataset
predicate