Skip to content

Commit

Permalink
Merge pull request #10 from opengeospatial/master
Browse files Browse the repository at this point in the history
update branch
  • Loading branch information
gatemezing authored Oct 23, 2024
2 parents a74140d + b645e55 commit ebd888b
Show file tree
Hide file tree
Showing 17 changed files with 930 additions and 13 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/blank.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Ontology Documentation CI

on: [push]

jobs:

build:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install python3 python3-setuptools python3-pip python3-dev -y
sudo apt-get install gcc libpq-dev -y
sudo apt-get install doxygen graphviz -y
sudo apt-get install python3-venv python3-wheel -y
sudo pip3 install wheel pylode==2.13.2
- name: Create Ontology Documentation 🔧
run: |
python3 scripts/srsbuild.py
mkdir docs
mv *.ttl docs/
cd docs
pylode -o index.html -i index.ttl
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4.3.3
with:
BRANCH: gh-pages
FOLDER: docs/
clean: false
110 changes: 97 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,102 @@
# CRS Ontology

This repository is being used to work toward the development of an official OGC CRS ontology.

## Introduction
This repository is used to work toward the development of an official OGC web ontology for coordinate reference systems (CRS).
At present, we're simply working on documenting the benefits of a CRS ontology, but we're hoping that more will come as people determine value in the work.

We're listing the benefits below.

- An official CRS ontology will allow CRS registries to be made available on the Web.
- CRS registries on the web will allow direct lookups of relevant CRS data by both human users and machine algorithms.
- An official CRS ontology will make the OGC CRS model available to web developers.
- An official CRS ontology allows publication of standard OGC CRS registry as Web data.
- An official OGC CRS registry allows existing Web practices to be underpinned with shared semantics (for example: [HTML5 Geolocation](https://www.w3.org/TR/geolocation/), [W3C basic geo](https://www.w3.org/2003/01/geo/), [schema.org GeoCoordinates](https://schema.org/GeoCoordinates)).
- A CRS Ontology will allow custom CRSs to be published on the Web with proper semantic foundation.
- Users of data stores that support GeoSPARQL are now limited to a limited collection of CRSs supported by the data store.
- Stand-alone systems that do not publish data on the Web can benefit from access to up-to-data CRS data, without the need for local copies that run the risk of being outdated.
- An official CRS ontology based on [OGC Abstract Specification Topic 2: Referencing by coordinates](https://docs.opengeospatial.org/as/18-005r4/18-005r4.html), which only covers geography, will allow ontological extensions to be published. Extensions to the model could provide means to define extraterrestial CRSs, or other CRSs that do not have a direct connection with the Earth's surface.
## Definitions
**spatial reference system:** A spatial reference system (SRS) is a system for establishing spatial position. A spatial reference system can use geographic identifiers (place names, for example), coordinates (in which case it is a coordinate reference system), or identifiers with structured geometry (in which case it is a discrete global grid system).

**coordinate system:** A coordinate system is a set of mathematical rules for specifying how coordinates are to be assigned to points.

**datum:**
A datum is a parameter or set of parameters that define the position of the origin, the scale, and the orientation of a coordinate system.

**coordinate reference system:**
A coordinate reference system (CRS) is a coordinate system that is related to an object by a datum.

**CRS registry:** A CRS registry is a collection of descriptions of coordinate reference systems.

## Scope
A CRS web ontology should be usable for all kinds of data that use numerical spatial coordinates, in one, two or three spatial dimensions. It should be applicable to irrespective of location or scale of the datum. For instance, coordinates could be relative to Earth, Mars, the solar system, an archeological site, a book page, or a computer screen.

## Benefits and use cases
Having a standard CRS ontology on the Web will have major benefits that empower many use
cases. Here, we list four benefits and the use cases that each of them makes possible.

### Provision of CRS semantics on the Web
A standard CRS ontology will provide an RDF/RDFS/OWL representation of all concepts related
to coordinate reference systems. Various data and domain models for CRS definitions have
been issued by authorities such as the OGC and ISO. Reference software packages, such as
PROJ, feature a de facto standard data model. All of these are, at best, semantically defined in
an electronic document. Web-based and dereferenceable semantic definitions of CRS concepts
and parameters would make for a relevant advancement in the communication and correct use
of CRSs.
#### Use cases
1. Provide human readable definitions of CRS elements directly from geometric data to help
understand and prevent usage errors.
2. Provide a seamless link between geometric data and how their coordinates should be
interpreted.
3. Enable reasoning on CRS elements.
4. Enable expression of custom CRSs.
5. CRS data will be usable by both people and machines/algorithms.
6. Allow the ISO-19111 model to be easily extended, for example, for extraterrestrial CRSs
or other customized extensions.
7. Allow CRS specifications to be used in dataset metadata, optionally removing the need
for specifying the CRS for individual geometries.
8. Allow all CRS elements to be used in (federated) SPARQL queries. For example, filter by
unit of measurement or by applicable area.
9. Enable CRS recommendations, based on the extent of the concerned spatial dataset and
coordinate precision.
### Enable publication of CRS registries on the Web
Once a standard CRS web ontology is brought online, expressing any CRS in RDF will be
possible. In turn, this will enable the publication of collections of RDF-based CRS definitions in
CRS registries, allowing data and datasets to use common URIs to reference CRSs.
#### Use cases
1. An official CRS registry by e.g. the OGC can be published, providing common URIs for
common CRSs that can be resolved to RDF data.
2. Remove the need to replicate and update the parameters of common CRSs to data stores.
3. Well-known official IRIs can be used to match CRSs in web searches or federated searches.
Example: find all datasets with a CRS that matches an interactive web map.
4. Official national grids can be published by national mapping and cadastral agencies.
5. Enable validation of coordinate data, e.g. via [SHACL](https://www.w3.org/TR/shacl. For example: check if all coordinate
values are within the extreme values.
6. Allow CRS specifications to be used in metadata standards, GeoDCAT-AP25 for example.
7. Allow existing Web practices to be underpinned with shared semantics (for example: [HTML5 Geolocation](https://www.w3.org/TR/geolocation/), [W3C basic geo](https://www.w3.org/2003/01/geo/), [schema.org GeoCoordinates](https://schema.org/GeoCoordinates)).
8. Stand-alone systems that do not publish data on the Web can benefit from access to
up-to-data CRS data, without needing local copies that run the risk of being outdated.
9. Allow provision of JSON-LD contexts for established JSON-based CRS schemes.
### Complement GeoSPARQL
[GeoSPARQL](https://www.ogc.org/standard/geosparql/) is arguably the most important standard for spatial data on the Web. It offers
ways to work with geometry, which is reliant on CRS data, but the standard does not include
CRS semantics. A standard CRS ontology would, therefore, be a welcome complement to
GeoSPARQL.
#### Use cases
1. CRS registries can provide targets for a new property of the GeoSPARQL Geometry class
that identifies the CRS.
2. GeoSPARQL currently has no way to encode geometry in RDF. It relies on non-RDF
serialisations to express geometry. A standard CRS ontology would contain definitions of
the coordinate and coordinate reference system concepts, which are two basic com-
ponents of the definition of Geometry. The envisioned ontology would thus strengthen
the definition of geometries as RDF resources.
3. (Federated) GeoSPARQL queries become feasible with geometries that use a custom CRS
(a CRS not included in any CRS registry).
25https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/
geodcat-application-profile-data-portals-europe/release/101
### Increase interoperability of spatial data on the Web
Many types of spatial data, not only geographical data, use coordinates and therefore need
CRS specifications. A standard CRS ontology can provide increased semantic and operational
interoperability between all coordinate-based data.
#### Use cases
1. Geographic geometry and other types of geometry can use the same CRS semantics.
2. Facilitates georeference with local CRSs.
3. Makes coordinate transformations possible with Linked Data tools.
4. CRS semantics will be made available to knowledge domains outside of geoinformatics,
e.g. in the cultural heritage domain.
5. Historical coordinate reference systems can be published using the same semantics as
modern CRSs. For example, the CRS parameters of the Verniquet map, a large-scale map
of Paris produced on the eve of the French Revolution, could be published in RDF [ 19 ].
This would make the CRS available to the scientific community for geo-referencing with
subsequent plans of Paris, which were based on the CRS created by Edme Verniquet for
the purposes of surveying

48 changes: 48 additions & 0 deletions Roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Roadmap for a CRS ontology

This road map was put together on the wake of the GeoLD 2024 conference. It
follows on the [position paper](http://ceur-ws.org/Vol-3743/paper3.pdf)
published in that workshop, setting milestones and a time line towards a CRS
web ontology and registry/vocabulary.

## Milestones

1. Ontology alignment. Starting by creating a matrix matching classes
in ISO-19111, IGN and Proj4RDF. Then do the same for the data/object
properties for each individual class. This should lead to a "common"
CRS ontology, then to decide the name space. Target completion date:
end of 2024.

2. Review. Call on other geo-semantics people to review the CRS
ontology. Candidates: Simon Cox, Krystof Janowich, Nic Carr, ...
Target completion date: spring of 2025.

3. Proof-of-concept. This should be a programme that translates RDF
compliant with the CRS ontology to WKT and back. Most of this work
should already be done in Proj4RDF. Target completion date: spring of
2025.

4. Launch GeoCRS SWG. This should happen at one of the OGC users'
meeting, as a spin-off of the GeoSemantics DWG. The meeting in Europe
might be too early, so the Asia or Americas meetings in 2025 are the
targets.

5. Dissemination. Present the ontology and the proof-of-concept in
conferences during Spring/Summer of 2025. GeoLD and FOSS4G are obvious
candidates, but could be others. This needs steps 2 and 3 to be
largely completed.

6. Implementation. Get Proj and GeoTools to natively support RDF
compliant with the CRS ontology. This might fit in the Google
Summer/Winter of Code programme. The OSGeo Foundation usually gets a
good number of slots. Target date: beginning on the second half of
2025.

7. CRS registry. Convince the OGC to host a CRS registry, ideally
containing the full Proj database converted to RDF with PRoj4RDF.
Target date: second half of 2025.

8. Maintenance. Develop a maintenance plan for the registry, possibly
in coordination with the proj-data stewards. Possibly needs some
governance. To start after the registry is in place, say, end of 2025.

82 changes: 82 additions & 0 deletions crsdraft.ttl
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
@prefix : <http://situx.github.io/ontology-crs/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix cc: <http://creativecommons.org/ns#> .
@base <http://situx.github.io/ontology-crs/> .

<http://situx.github.io/ontology-crs> rdf:type owl:Ontology ;
owl:versionIRI <http://situx.github.io/ontology-crs/0.1> ;
dcterms:issued "2024-XX-XX"^^xsd:date ;
dcterms:modified "2024-XX-XX"^^xsd:date ;
owl:versionInfo "Version 0.1" ;
dcterms:title "CRS Core Ontology" ;
dcterms:description "A core ontology aligned with ISO 19111:2019 for Coordinate Reference Systems (CRS) on the Web"@en ;
dcterms:creator <https://orcid.org/0000-0002-9499-5840>, <https://orcid.org/0000-0003-1562-6922> , <https://orcid.org/0000-0002-5851-2071>, <https://orcid.org/0000-0003-3789-2260> ;
cc:license <http://creativecommons.org/licenses/by/2.0/> ;
.

#################################################################
# Classes
#################################################################

### http://situx.github.io/ontology-crs#Axis
:Axis rdf:type owl:Class ;
rdfs:label "Axis"@en .


### http://situx.github.io/ontology-crs#AxisDirection
:AxisDirection rdf:type owl:Class ;
rdfs:label "axis direction"@en .


### http://situx.github.io/ontology-crs#CompoundCRS
:CompoundCRS rdf:type owl:Class ;
rdfs:subClassOf :CoordinateReferenceSystem ;
rdfs:label "compound crs"@en .


### http://situx.github.io/ontology-crs#CoordinateReferenceSystem
:CoordinateReferenceSystem rdf:type owl:Class ;
rdfs:subClassOf :SpatialReferenceSystem ;
rdfs:label "coordinate reference system"@en .


### http://situx.github.io/ontology-crs#CoordinateSystem
:CoordinateSystem rdf:type owl:Class ;
rdfs:label "coordinate system"@en .


### http://situx.github.io/ontology-crs#Datum
:Datum rdf:type owl:Class ;
rdfs:label "datum"@en .


### http://situx.github.io/ontology-crs#PrimeMeridian
:PrimeMeridian rdf:type owl:Class ;
rdfs:label "prime meridian"@en ;
rdfs:comment """ Meridian from which the longitudes of other meridians are quantified. Cf. ISO 19111:2007:2007-07, part 10.2.1, table 35 and annex B.3.2.2."""@en .


### http://situx.github.io/ontology-crs#ReferenceSystem
:ReferenceSystem rdf:type owl:Class ;
rdfs:label "reference system"@en .


### http://situx.github.io/ontology-crs#SingleCRS
:SingleCRS rdf:type owl:Class ;
rdfs:subClassOf :CoordinateReferenceSystem ;
rdfs:label "single CRS"@en .


### http://situx.github.io/ontology-crs#SpatialReferenceSystem
:SpatialReferenceSystem rdf:type owl:Class ;
rdfs:subClassOf :ReferenceSystem ;
rdfs:label "spatial reference system"@en .


### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi
7 changes: 7 additions & 0 deletions csv/alignment/alignment.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Concept source,Property,Concept target
geosrs:CoordinateSystem,owl:equivalentClass,ign:CoordinateSystem
geosrs:CoordinateSystem,owl:equivalentClass,iso19111:CoordinateSystem
geosrs:Datum,owl:equivalentClass,iso19111:Datum
geosrs:Datum,owl:equivalentClass,ign:Datum
geosrs:Ellipsoid,owl:equivalentClass,iso19111:Ellipsoid
geosrs:Ellipsoid,owl:equivalentClass,ign:Ellipsoid
6 changes: 6 additions & 0 deletions csv/class/application.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Concept,SuperClass,Label,Definition,ISO 19111,IGN 2019,Proj4RDF,GeoSPARQL
,,,,,,geocrs:CadastreMap,
,,,,,,geocrs:NauticalChart,
,,,,,,geocrs:ThematicMap,
,,,,,,geocrs:TopographicMap,
,,,,,,geocrs:WeatherMap,
33 changes: 33 additions & 0 deletions csv/class/co.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
Concept,SuperClass,Label,Definition,ISO 19111,IGN 2019,Proj4RDF,GeoSPARQL,,Who?,Definition IGN,Definition ISO
geosrs:CoordinateOperation,,coordinate operation,,iso19111:CoordinateOperation,ign:CoordinateOperation,,,Core Ontology,suggested by Ghislain,"Mathematical operation on coordinates, based on one-to-one relationship, that changes coordinates from one coordinate reference system to another. Cf. ISO 19111:2007:2007-07, part 11.1, table 42 and annex B.4.","process using a mathematical model, based on a one-to-one relationship, that changes coordinates in a source coordinate reference system to coordinates in a target coordinate reference system, or that changes coordinates at a source coordinate epoch to coordinates at a target coordinate epoch within the same coordinate reference system"
,,,,iso19111:PassThroughOperation,,,,,,,
,,,,iso19111:ConcatenatedOperation,,,,,,,coordinate operation consisting of the sequential application of multiple coordinate operations
,,,,iso19111:SingleOperation,ign:SingleOperation,,,Core Ontology,,"A non concatenated coordinate operation. Cf. ISO 19111:2007:2007-07, table 43.",
,,,,iso19111:Transformation,ign:Transformation,,,Core Ontology,,"Coordinate operation in which the two coordinate reference systems are based on different datums. Cf. ISO 19111:2007:2007-07, table 44.",coordinate operation that changes coordinates in a source coordinate reference system to coordinates in a target coordinate reference system in which the source and target coordinate reference systems are based on different datums
,,,,iso19111:Conversion,ign:Conversion,,,Core Ontology,,"Coordinate operation in which both coordinate reference systems are based on the same datum. Cf. ISO 19111:2007:2007-07, table 45 and annex B.4.2.",coordinate operation that changes coordinates in a source coordinate reference system to coordinates in a target coordinate reference system in which both coordinate reference systems are based on the same datum
,,,,iso19111:PointMotionOperation,,,,,,,
,,,,iso19111:OperationMethod,ign:OperationMethod,,,Core Ontology,,"Method used to perform an operation on coordinates. See ISO 19111:2007:2007-07, table 48 and annex B.4.5.",
,,,,iso19111:uFormula,,,,,,,
,,,,iso19111:uFormulaCitation,,,,,,,
,,,,iso19111:GeneralOperationParameter,,,,,,,
,,,,iso19111:OperationParameterGroup,,,,,,,
,,,,iso19111:OperationParameter,ign:OperationParameter,,,Core Ontology,,"Parameter used by a method to perform an operation on coordinates. See ISO 19111:2007:2007-07, table 52 and annex B.4.5.",
,,,,iso19111:GeneralParameterValue,,,,,,,
,,,,iso19111:ParameterValueGroup,,,,,,,
,,,,iso19111:OperationParameterValue,ign:OperationParameterValue,,,Core Ontology,,"Value of a parameter used by a method to perform an operation on coordinates. See ISO 19111:2007:2007-07, table 55.",
,,,,iso19111:uValue,,,,,,,
,,,,iso19111:uStringValue,,,,,,,
,,,,iso19111:uIntegerValue,,,,,,,
,,,,iso19111:uBooleanValue,,,,,,,
,,,,iso19111:uValueList,,,,,,,
,,,,iso19111:uIntegerValueList,,,,,,,
,,,,iso19111:uValueFile,,,,,,,
,,,,iso19111:uValueFileCitation,,,,,,,
,,,,iso19111:uGeographicObject,,,,,,,
,,,,iso19111:GeographicObject,,,,,,,
,,,,iso19111:RegisterOperations,,,,,,,
,,,,,,geocrs:ScaleOperation,,,,,
,,,,,,geocrs:RotationOperation,,,,,
,,,,,,geocrs:IdentityOperation,,,,,
,,,,,,geocrs:ShearOperation,,,,,
,,,,,,geocrs:TranslationOperation,,,,,
Loading

0 comments on commit ebd888b

Please sign in to comment.