-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #10 from opengeospatial/master
update branch
- Loading branch information
Showing
17 changed files
with
930 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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,,,,, |
Oops, something went wrong.