Skip to content

Commit

Permalink
added refactoring:relaxed axioms schema:domainIncludes- with strict o…
Browse files Browse the repository at this point in the history
…wl:unioOf
  • Loading branch information
Nataliya Keberle committed Jan 22, 2025
1 parent e600afb commit 2c9d284
Show file tree
Hide file tree
Showing 29 changed files with 680 additions and 599 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@prefix owl: <http://www.w3.org/2002/07/owl#> .

<https://www.opengis.net/ont/citygml/CityOWL> a owl:Ontology ;
owl:versionIRI <https://www.opengis.net/ont/citygml/CityOWL/3.0.0/>;
<https://www.opengis.net/ont/citygml/CityRDF> a owl:Ontology ;
owl:versionIRI <https://www.opengis.net/ont/citygml/CityRDF/3.0.0/>;
owl:versionInfo "3.0.0";
owl:imports <https://www.opengis.net/ont/citygml/appearance>,
<https://www.opengis.net/ont/citygml/bridge>,
Expand Down
43 changes: 43 additions & 0 deletions citygml-owl/CityRDF/CodelistExampleConversion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Source

```turtle
bldgcode:BuildingClassValue a skos:ConceptScheme ;
rdfs:label "BuildingClassValue"@en ;
dct:isFormatOf bldg:BuildingClassValue ;
skos:definition "BuildingClassValue is a code list used to further classify a Building."@en .
...
bldg:BuildingClassValue a owl:Class ;
rdfs:label "BuildingClassValue"@en ;
rdfs:subClassOf skos:Concept ;
skos:definition "BuildingClassValue is a code list used to further classify a Building."@en .
```

Target

Similarly ro app:TextureType

```turtle
app:TextureType a rdfs:Datatype ;
rdfs:label "TextureType"@en ;
owl:equivalentClass [ a rdfs:Datatype ;
owl:oneOf ( "specific" "typical" "unknown" ) ] ;
skos:definition "TextureType enumerates the different texture types."@en .
```
app:TextureType is the enumeration, values are known.

```turtle
bldg:BuildingClassValue a rdfs:Datatype ;
rdfs:label "BuildingClassValue"@en ;
owl:equivalentClass [ a rdfs:Datatype ;
owl:oneOf ( ) ] ;
skos:definition "BuildingClassValue is a code list used to further classify a Building."@en .
```
Minuses:
- we loose conformance to UML - in UML BuildingClassValue is a CodeList, not a Datatype.
Here is how INSPIRE codelists are explained: https://wetransform.to/news-and-events/inspire-codelists/
- codelists cannot be defined externally, as skos:ConceptSchema and skos:Concepts, it violates data interoperability. Example: if we define some strict codelist for BuildingClassValue, it will be enumeration, but to add a new value to this list we shold edit Building ontology.

Pluses:
- we don't mix formal ontologies and thesauri, see [skos-reference](https://www.w3.org/TR/skos-reference/):

“To understand this distinction, consider that the “knowledge” made explicit in a formal ontology is expressed as sets of axioms and facts. A thesaurus or classification scheme is of a completely different nature, and does not assert any axioms or facts. Rather, a thesaurus or classification scheme identifies and describes, through natural language and other informal means, a set of distinct ideas or meanings, which are sometimes conveniently referred to as “concepts”.” And this is about my comment about making certain ‘ontological commitment’ by including SKOS Concepts in OWL. More here: https://www.w3.org/TR/skos-reference/
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

Expand Down Expand Up @@ -37,6 +36,9 @@ app:Appearance a owl:Class ;
app:GeoreferencedTexture a owl:Class ;
rdfs:label "GeoreferencedTexture"@en ;
rdfs:subClassOf [ a owl:Restriction ;
owl:allValuesFrom gmlowl:Point ;
owl:onProperty <https://www.opengis.net/ont/citygml/common/referencePoint> ],
[ a owl:Restriction ;
owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
owl:onDataRange xsd:boolean ;
owl:onProperty app:preferWorldFile ],
Expand All @@ -57,9 +59,6 @@ app:GeoreferencedTexture a owl:Class ;
[ a owl:Restriction ;
owl:allValuesFrom xsd:anyURI ;
owl:onProperty app:target ],
[ a owl:Restriction ;
owl:allValuesFrom gmlowl:Point ;
owl:onProperty <https://www.opengis.net/ont/citygml/common/referencePoint> ],
app:AbstractTexture ;
owl:disjointWith app:ParameterizedTexture .

Expand Down Expand Up @@ -309,12 +308,11 @@ app:wrapMode a owl:DatatypeProperty ;
skos:definition "Specifies the behaviour of the texture when the texture is smaller than the surface to which it is applied."@en .

<https://www.opengis.net/ont/citygml/common/mimeType> rdfs:label "mimeType"@en ;
skos:definition "Specifies the MIME type of the external point cloud file."@en ;
schema:rangeIncludes core:MimeTypeValue .
skos:definition "Specifies the MIME type of the external point cloud file."@en .

<https://www.opengis.net/ont/citygml/common/referencePoint> skos:definition "Relates to the 2D Point geometry that represents the center of the upper left image pixel in world space."@en ;
schema:domainIncludes app:GeoreferencedTexture ;
schema:rangeIncludes gmlowl:Point .
<https://www.opengis.net/ont/citygml/common/referencePoint> rdfs:domain app:GeoreferencedTexture ;
rdfs:range gmlowl:Point ;
skos:definition "Relates to the 2D Point geometry that represents the center of the upper left image pixel in world space."@en .

app:TextureAssociation a owl:Class ;
rdfs:label "TextureAssociation"@en ;
Expand Down Expand Up @@ -346,11 +344,11 @@ app:WrapMode a rdfs:Datatype ;
owl:oneOf ( "none" "wrap" "mirror" "clamp" "border" ) ] ;
skos:definition "WrapMode enumerates the different fill modes for textures."@en .

<https://www.opengis.net/ont/citygml/common/textureParameterization> skos:definition "Relates to the texture coordinates or transformation matrices used for parameterization."@en ;
schema:domainIncludes app:ParameterizedTexture,
app:TextureAssociation ;
schema:rangeIncludes app:AbstractTextureParameterization,
app:TextureAssociation .
<https://www.opengis.net/ont/citygml/common/textureParameterization> rdfs:domain [ a owl:Class ;
owl:unionOf ( app:TextureAssociation app:ParameterizedTexture ) ] ;
rdfs:range [ a owl:Class ;
owl:unionOf ( app:TextureAssociation app:AbstractTextureParameterization ) ] ;
skos:definition "Relates to the texture coordinates or transformation matrices used for parameterization."@en .

app:AbstractSurfaceData a owl:Class ;
rdfs:label "AbstractSurfaceData"@en ;
Expand Down
63 changes: 30 additions & 33 deletions citygml-owl/CityOWL/bridge.ttl → citygml-owl/CityRDF/bridge.ttl
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
@prefix dct: <http://purl.org/dc/terms/> .
@prefix iso19150-2: <http://def.isotc211.org/iso19150/-2/2012/base#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

Expand Down Expand Up @@ -185,13 +185,13 @@ brid:bridgeRoom a owl:ObjectProperty ;
rdfs:range brid:BridgeRoom ;
skos:definition "Relates the rooms to the Bridge or BridgePart."@en .

<https://www.opengis.net/ont/citygml/common/address> skos:definition "Relates the addresses to the Bridge or BridgePart."@en ;
schema:domainIncludes brid:AbstractBridge ;
schema:rangeIncludes core:Address .
<https://www.opengis.net/ont/citygml/common/address> rdfs:domain brid:AbstractBridge ;
rdfs:range core:Address ;
skos:definition "Relates the addresses to the Bridge or BridgePart."@en .

<https://www.opengis.net/ont/citygml/common/boundary> skos:definition "Relates to the surfaces that bound the BridgeRoom. This relation is inherited from the Core module."@en ;
schema:domainIncludes brid:BridgeRoom ;
schema:rangeIncludes core:AbstractThematicSurface .
<https://www.opengis.net/ont/citygml/common/boundary> rdfs:domain brid:BridgeRoom ;
rdfs:range core:AbstractThematicSurface ;
skos:definition "Relates to the surfaces that bound the BridgeRoom. This relation is inherited from the Core module."@en .

brid:BridgeConstructiveElement a owl:Class ;
rdfs:label "BridgeConstructiveElement"@en ;
Expand All @@ -215,17 +215,17 @@ brid:isMovable a owl:DatatypeProperty ;
rdfs:range xsd:boolean ;
skos:definition "Indicates whether the Bridge or BridgePart can be moved to allow for watercraft to pass."@en .

<https://www.opengis.net/ont/citygml/common/bridgeFurniture> skos:definition "Relates the furniture objects to the Bridge or BridgePart."@en,
"Relates the furniture objects to the BridgeRoom."@en ;
schema:domainIncludes brid:AbstractBridge,
brid:BridgeRoom ;
schema:rangeIncludes brid:BridgeFurniture .
<https://www.opengis.net/ont/citygml/common/bridgeFurniture> rdfs:domain [ a owl:Class ;
owl:unionOf ( brid:BridgeRoom brid:AbstractBridge ) ] ;
rdfs:range brid:BridgeFurniture ;
skos:definition "Relates the furniture objects to the Bridge or BridgePart."@en,
"Relates the furniture objects to the BridgeRoom."@en .

<https://www.opengis.net/ont/citygml/common/bridgeInstallation> skos:definition "Relates the installation objects to the Bridge or BridgePart."@en,
"Relates to the installation objects to the BridgeRoom."@en ;
schema:domainIncludes brid:AbstractBridge,
brid:BridgeRoom ;
schema:rangeIncludes brid:BridgeInstallation .
<https://www.opengis.net/ont/citygml/common/bridgeInstallation> rdfs:domain [ a owl:Class ;
owl:unionOf ( brid:BridgeRoom brid:AbstractBridge ) ] ;
rdfs:range brid:BridgeInstallation ;
skos:definition "Relates the installation objects to the Bridge or BridgePart."@en,
"Relates to the installation objects to the BridgeRoom."@en .

brid:BridgeFurniture a owl:Class ;
rdfs:label "BridgeFurniture"@en ;
Expand Down Expand Up @@ -292,12 +292,20 @@ brid:BridgeRoom a owl:Class ;
core:AbstractUnoccupiedSpace .

<https://www.opengis.net/ont/citygml/common/function> rdfs:label "function"@en ;
skos:definition "Specifies the intended purposes of the BridgeConstructiveElement."@en ;
schema:rangeIncludes brid:BridgeConstructiveElementFunctionValue .
skos:definition "Specifies the intended purposes of the BridgeConstructiveElement."@en .

<https://www.opengis.net/ont/citygml/common/usage> rdfs:label "usage"@en ;
skos:definition "Specifies the actual uses of the BridgeConstructiveElement."@en ;
schema:rangeIncludes brid:BridgeConstructiveElementUsageValue .
skos:definition "Specifies the actual uses of the BridgeConstructiveElement."@en .

brid:BridgeConstructiveElementFunctionValue a owl:Class ;
rdfs:label "BridgeConstructiveElementFunctionValue"@en ;
rdfs:subClassOf skos:Concept ;
skos:definition "BridgeConstructiveElementFunctionValue is a code list that enumerates the different purposes of a BridgeConstructiveElement."@en .

brid:BridgeConstructiveElementUsageValue a owl:Class ;
rdfs:label "BridgeConstructiveElementUsageValue"@en ;
rdfs:subClassOf skos:Concept ;
skos:definition "BridgeConstructiveElementUsageValue is a code list that enumerates the different uses of a BridgeConstructiveElement."@en .

brid:AbstractBridge a owl:Class ;
rdfs:label "AbstractBridge"@en ;
Expand Down Expand Up @@ -339,19 +347,8 @@ brid:AbstractBridge a owl:Class ;
owl:onProperty brid:isMovable ],
con:AbstractConstruction .

brid:BridgeConstructiveElementFunctionValue a owl:Class ;
rdfs:label "BridgeConstructiveElementFunctionValue"@en ;
rdfs:subClassOf skos:Concept ;
skos:definition "BridgeConstructiveElementFunctionValue is a code list that enumerates the different purposes of a BridgeConstructiveElement."@en .

brid:BridgeConstructiveElementUsageValue a owl:Class ;
rdfs:label "BridgeConstructiveElementUsageValue"@en ;
rdfs:subClassOf skos:Concept ;
skos:definition "BridgeConstructiveElementUsageValue is a code list that enumerates the different uses of a BridgeConstructiveElement."@en .

<https://www.opengis.net/ont/citygml/common/class> rdfs:label "class"@en ;
skos:definition "Indicates the specific type of the BridgeConstructiveElement."@en ;
schema:rangeIncludes brid:BridgeConstructiveElementClassValue .
skos:definition "Indicates the specific type of the BridgeConstructiveElement."@en .

brid:BridgeConstructiveElementClassValue a owl:Class ;
rdfs:label "BridgeConstructiveElementClassValue"@en ;
Expand Down
Loading

0 comments on commit 2c9d284

Please sign in to comment.