From e2bc38c06cb9c25eb3f174c88892c0db564c7b0d Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Tue, 25 Nov 2025 14:43:11 +1100 Subject: [PATCH 1/3] Move GeoSPARQL references into a bridging ontology. --- .../GeospatialGeoSPARQL-bridge.ttl | 113 ++++++++++++++++++ src/cco-modules/GeospatialOntology.ttl | 9 -- 2 files changed, 113 insertions(+), 9 deletions(-) create mode 100644 src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl diff --git a/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl b/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl new file mode 100644 index 00000000..4a409fe4 --- /dev/null +++ b/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl @@ -0,0 +1,113 @@ +@prefix : . +@prefix obo: . +@prefix owl: . +@prefix rdf: . +@prefix xml: . +@prefix xsd: . +@prefix cco: . +@prefix rdfs: . +@prefix skos: . +@prefix dcterms: . +@prefix geosparql: . +@base . + + rdf:type owl:Ontology ; + owl:versionIRI ; + owl:imports ; + owl:imports ; + dcterms:license "BSD 3-Clause: https://github.com/CommonCoreOntology/CommonCoreOntologies/blob/master/LICENSE"@en ; + rdfs:comment """ + This bridge ontology is designed to link GeoSPARQL and GeospatialOntology, so that CCO applications can use GeoSPARQL datatypes to represent location and shape. + """@en ; + rdfs:label "Geospatial-GeoSPARQL bridge Ontology"@en ; + dcterms:creator , ; + dcterms:created "2025-11-24"^^xsd:date ; + dcterms:modified "2025-11-24"^^xsd:date ; + owl:versionInfo "Version 1.0"@en ; + . + +################################################################# +# Object Properties +################################################################# + +### http://www.opengis.net/ont/geosparql#hasGeometry +geosparql:hasGeometry rdf:type owl:ObjectProperty ; + rdfs:subPropertyOf cco:ont00001801 ; # is subject of + rdfs:domain geosparql:Feature ; + rdfs:range geosparql:Geometry ; + skos:definition """A spatial representation for a given feature."""@en ; + rdfs:label "has geometry"@en ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; + . + + +################################################################# +# Data properties +################################################################# + +### http://www.opengis.net/ont/geosparql#asWKT +geosparql:asWKT rdf:type owl:DatatypeProperty ; + rdfs:subPropertyOf :hasSerialization ; + rdfs:domain geosparql:Geometry ; + rdfs:range geosparql:wktLiteral ; + rdfs:label "as WKT"@en ; + skos:definition "A Data Property that has as its range a string formated according to the Well-known text standardization for geometric objects."@en ; + skos:example "Polygon ((10 10, 10 20, 20 20, 20 15, 10 10))" ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; + . + +### http://www.opengis.net/ont/geosparql#hasSerialization +geosparql:hasSerialization rdf:type owl:DatatypeProperty ; + rdfs:domain geosparql:Geometry ; + rdfs:range rdfs:Literal ; + skos:definition """Connects a geometry object with its text-based serialization."""@en ; + rdfs:label "has serialization"@en ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; +. + +################################################################# +# Datatypes +################################################################# + +### http://www.opengis.net/ont/geosparql#wktLiteral +geosparql:wktLiteral rdf:type rdfs:Datatype ; + skos:definition """A Well-known Text serialization of a geometry object."""@en ; + rdfs:label "Well-known Text Literal"@en ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; +. + +################################################################# +# Classes +################################################################# + +### http://www.opengis.net/ont/geosparql#Feature +geosparql:Feature rdf:type owl:Class ; + owl:equivalentClass [ + owl:unionOf ( + obo:BFO_0000004 # independent continuant + obo:BFO_0000015 # process + obo:BFO_0000035 # process boundary + ) + ] ; + owl:disjointWith geosparql:Geometry ; + skos:definition """A discrete spatial phenomenon in a universe of discourse."""@en ; + rdfs:label "Feature"@en ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; +. + +### http://www.opengis.net/ont/geosparql#Geometry +geosparql:Geometry rdf:type owl:Class ; + rdfs:subClassOf cco:ont00000958 ; # information content entity + skos:definition """ + A coherent set of direct positions in Euclidian space. A direct position holds the coordinates for a position within a Coordinate Reference System (CRS). + """@en ; + rdfs:label "Geometry"@en ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; +. + diff --git a/src/cco-modules/GeospatialOntology.ttl b/src/cco-modules/GeospatialOntology.ttl index 96fad580..f739d624 100644 --- a/src/cco-modules/GeospatialOntology.ttl +++ b/src/cco-modules/GeospatialOntology.ttl @@ -186,15 +186,6 @@ cco:ont00001989 rdf:type owl:ObjectProperty ; # Data properties ################################################################# -### http://www.opengis.net/ont/geosparql#asWKT - rdf:type owl:DatatypeProperty ; - rdfs:comment "ISO 19162:2015"@en ; - rdfs:label "as WKT"@en ; - skos:definition "A Data Property that has as its range a string formated according to the Well-known text standardization for geometric objects."@en ; - skos:example "Polygon ((10 10, 10 20, 20 20, 20 15, 10 10))" ; - cco:ont00001760 "https://www.commoncoreontologies.org/GeospatialOntology"^^xsd:anyURI . - - ### https://www.commoncoreontologies.org/ont00001763 cco:ont00001763 rdf:type owl:DatatypeProperty ; rdfs:comment "Altitude values typically use kilometers as the Unit of Measurement."@en ; From 41fc8797175c11c811aee086efca933210545ee9 Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Fri, 28 Nov 2025 06:52:58 +1100 Subject: [PATCH 2/3] Include InformationEntityOntology --- src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl b/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl index 4a409fe4..04abe55b 100644 --- a/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl +++ b/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl @@ -14,6 +14,7 @@ rdf:type owl:Ontology ; owl:versionIRI ; owl:imports ; + owl:imports ; owl:imports ; dcterms:license "BSD 3-Clause: https://github.com/CommonCoreOntology/CommonCoreOntologies/blob/master/LICENSE"@en ; rdfs:comment """ From f99acf74c030eccc41477701aaa0dbb3527a22d9 Mon Sep 17 00:00:00 2001 From: Simon Cox Date: Tue, 16 Dec 2025 17:32:03 +1100 Subject: [PATCH 3/3] Add alignments for SpatialObject and sfWitihin --- .../GeospatialGeoSPARQL-bridge.ttl | 61 ++++++++++++++----- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl b/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl index 04abe55b..d0f88590 100644 --- a/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl +++ b/src/cco-extensions/GeospatialGeoSPARQL-bridge.ttl @@ -32,23 +32,40 @@ ################################################################# ### http://www.opengis.net/ont/geosparql#hasGeometry -geosparql:hasGeometry rdf:type owl:ObjectProperty ; +geosparql:hasGeometry + a owl:ObjectProperty ; rdfs:subPropertyOf cco:ont00001801 ; # is subject of rdfs:domain geosparql:Feature ; rdfs:range geosparql:Geometry ; - skos:definition """A spatial representation for a given feature."""@en ; + skos:definition "A spatial representation for a given feature."@en ; rdfs:label "has geometry"@en ; rdfs:isDefinedBy ; cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; . +### http://www.opengis.net/ont/geosparql#sfWithin +geosparql:sfWithin + a owl:ObjectProperty ; + rdfs:subPropertyOf obo:BFO_0000171 ; # located in at some times + rdfs:domain geosparql:SpatialObject ; + rdfs:range geosparql:SpatialObject ; + rdfs:isDefinedBy + : , + , + ; + skos:definition """States that the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"""@en ; + rdfs:seeAlso ; + skos:prefLabel "within"@en ; +. + ################################################################# # Data properties ################################################################# ### http://www.opengis.net/ont/geosparql#asWKT -geosparql:asWKT rdf:type owl:DatatypeProperty ; +geosparql:asWKT + a owl:DatatypeProperty ; rdfs:subPropertyOf :hasSerialization ; rdfs:domain geosparql:Geometry ; rdfs:range geosparql:wktLiteral ; @@ -60,10 +77,11 @@ geosparql:asWKT rdf:type owl:DatatypeProperty ; . ### http://www.opengis.net/ont/geosparql#hasSerialization -geosparql:hasSerialization rdf:type owl:DatatypeProperty ; +geosparql:hasSerialization + a owl:DatatypeProperty ; rdfs:domain geosparql:Geometry ; rdfs:range rdfs:Literal ; - skos:definition """Connects a geometry object with its text-based serialization."""@en ; + skos:definition "Connects a geometry object with its text-based serialization."@en ; rdfs:label "has serialization"@en ; rdfs:isDefinedBy ; cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; @@ -74,8 +92,9 @@ geosparql:hasSerialization rdf:type owl:DatatypeProperty ; ################################################################# ### http://www.opengis.net/ont/geosparql#wktLiteral -geosparql:wktLiteral rdf:type rdfs:Datatype ; - skos:definition """A Well-known Text serialization of a geometry object."""@en ; +geosparql:wktLiteral + a rdfs:Datatype ; + skos:definition "A Well-known Text serialization of a geometry object."@en ; rdfs:label "Well-known Text Literal"@en ; rdfs:isDefinedBy ; cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; @@ -85,28 +104,42 @@ geosparql:wktLiteral rdf:type rdfs:Datatype ; # Classes ################################################################# +### http://www.opengis.net/ont/geosparql#SpatialObject +geosparql:SpatialObject + a owl:Class ; + rdfs:subClassOf [ + owl:unionOf ( + obo:BFO_0000002 # continuant + obo:BFO_0000015 # process + ) + ] ; + skos:definition "Anything spatial (being or having a shape, position or an extent)."@en ; + rdfs:label "Spatial Object"@en ; + rdfs:isDefinedBy ; + cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; +. + ### http://www.opengis.net/ont/geosparql#Feature -geosparql:Feature rdf:type owl:Class ; +geosparql:Feature + a owl:Class ; owl:equivalentClass [ owl:unionOf ( obo:BFO_0000004 # independent continuant obo:BFO_0000015 # process - obo:BFO_0000035 # process boundary ) ] ; owl:disjointWith geosparql:Geometry ; - skos:definition """A discrete spatial phenomenon in a universe of discourse."""@en ; + skos:definition "A discrete spatial phenomenon in a universe of discourse."@en ; rdfs:label "Feature"@en ; rdfs:isDefinedBy ; cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ; . ### http://www.opengis.net/ont/geosparql#Geometry -geosparql:Geometry rdf:type owl:Class ; +geosparql:Geometry + a owl:Class ; rdfs:subClassOf cco:ont00000958 ; # information content entity - skos:definition """ - A coherent set of direct positions in Euclidian space. A direct position holds the coordinates for a position within a Coordinate Reference System (CRS). - """@en ; + skos:definition "A coherent set of direct positions in Euclidian space. A direct position holds the coordinates for a position within a Coordinate Reference System (CRS)."@en ; rdfs:label "Geometry"@en ; rdfs:isDefinedBy ; cco:ont00001760 "http://www.opengis.net/ont/geosparql"^^xsd:anyURI ;