@prefix core: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core#> .
@prefix dem: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/relief#> .
@prefix gmlowl: <http://www.opengis.net/ont/gml#> .
@prefix iso19107-cm: <http://def.isotc211.org/iso19107/2003/CoordinateGeometry#> .
@prefix iso19123: <http://def.isotc211.org/iso19123/2005/DiscreteCoverages#> .
@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 skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/relief> a owl:Ontology ;
    rdfs:label "Relief"@en ;
    owl:imports <http://def.isotc211.org/iso19150/-2/2012/base>,
        <http://www.opengis.net/ont/gml>,
        <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core.ttl> ;
    skos:definition "The Relief module supports representation of the terrain. CityGML supports terrain representations at different levels of detail, reflecting different accuracies or resolutions. Terrain may be specified as a regular raster or grid, as a TIN, by break lines, and/or by mass points."@en .

dem:AbstractReliefComponent.adeOfAbstractReliefComponent a owl:ObjectProperty ;
    rdfs:label "adeOfAbstractReliefComponent"@en ;
    rdfs:domain dem:AbstractReliefComponent ;
    rdfs:range dem:ADEOfAbstractReliefComponent ;
    skos:definition "Augments AbstractReliefComponent with properties defined in an ADE."@en .

dem:BreaklineRelief.adeOfBreaklineRelief a owl:ObjectProperty ;
    rdfs:label "adeOfBreaklineRelief"@en ;
    rdfs:domain dem:BreaklineRelief ;
    rdfs:range dem:ADEOfBreaklineRelief ;
    skos:definition "Augments the BreaklineRelief with properties defined in an ADE."@en .

dem:MassPointRelief.adeOfMassPointRelief a owl:ObjectProperty ;
    rdfs:label "adeOfMassPointRelief"@en ;
    rdfs:domain dem:MassPointRelief ;
    rdfs:range dem:ADEOfMassPointRelief ;
    skos:definition "Augments the MassPointRelief with properties defined in an ADE."@en .

dem:RasterRelief.adeOfRasterRelief a owl:ObjectProperty ;
    rdfs:label "adeOfRasterRelief"@en ;
    rdfs:domain dem:RasterRelief ;
    rdfs:range dem:ADEOfRasterRelief ;
    skos:definition "Augments the RasterRelief with properties defined in an ADE."@en .

dem:ReliefFeature.adeOfReliefFeature a owl:ObjectProperty ;
    rdfs:label "adeOfReliefFeature"@en ;
    rdfs:domain dem:ReliefFeature ;
    rdfs:range dem:ADEOfReliefFeature ;
    skos:definition "Augments the ReliefFeature with properties defined in an ADE."@en .

dem:TINRelief.adeOfTINRelief a owl:ObjectProperty ;
    rdfs:label "adeOfTINRelief"@en ;
    rdfs:domain dem:TINRelief ;
    rdfs:range dem:ADEOfTINRelief ;
    skos:definition "Augments the TINRelief with properties defined in an ADE."@en .

dem:ADEOfAbstractReliefComponent a owl:Class ;
    rdfs:label "ADEOfAbstractReliefComponent"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfAbstractReliefComponent acts as a hook to define properties within an ADE that are to be added to AbstractReliefComponent."@en .

dem:ADEOfBreaklineRelief a owl:Class ;
    rdfs:label "ADEOfBreaklineRelief"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfBreaklineRelief acts as a hook to define properties within an ADE that are to be added to a BreaklineRelief."@en .

dem:ADEOfMassPointRelief a owl:Class ;
    rdfs:label "ADEOfMassPointRelief"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfMassPointRelief acts as a hook to define properties within an ADE that are to be added to a MassPointRelief."@en .

dem:ADEOfRasterRelief a owl:Class ;
    rdfs:label "ADEOfRasterRelief"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfRasterRelief acts as a hook to define properties within an ADE that are to be added to a RasterRelief."@en .

dem:ADEOfReliefFeature a owl:Class ;
    rdfs:label "ADEOfReliefFeature"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfReliefFeature acts as a hook to define properties within an ADE that are to be added to a ReliefFeature."@en .

dem:ADEOfTINRelief a owl:Class ;
    rdfs:label "ADEOfTINRelief"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfTINRelief acts as a hook to define properties within an ADE that are to be added to a TINRelief."@en .

dem:AbstractReliefComponent.extent a owl:ObjectProperty ;
    rdfs:label "extent"@en ;
    rdfs:domain dem:AbstractReliefComponent ;
    rdfs:range gmlowl:Surface ;
    skos:definition "Indicates the geometrical extent of the terrain component. The geometrical extent is provided as a 2D Surface geometry."@en .

dem:AbstractReliefComponent.lod a owl:ObjectProperty ;
    rdfs:label "lod"@en ;
    rdfs:domain dem:AbstractReliefComponent ;
    rdfs:range core:IntegerBetween0and3 ;
    skos:definition "Indicates the Level of Detail of the terrain component."@en .

dem:BreaklineRelief.breaklines a owl:ObjectProperty ;
    rdfs:label "breaklines"@en ;
    rdfs:domain dem:BreaklineRelief ;
    rdfs:range gmlowl:MultiCurve ;
    skos:definition "Relates to the 3D MultiCurve geometry of the MassPointRelief. This association role is used to represent break lines."@en .

dem:BreaklineRelief.ridgeOrValleyLines a owl:ObjectProperty ;
    rdfs:label "ridgeOrValleyLines"@en ;
    rdfs:domain dem:BreaklineRelief ;
    rdfs:range gmlowl:MultiCurve ;
    skos:definition "Relates to the 3D MultiCurve geometry of the MassPointRelief. This association role is used to represent ridge or valley lines."@en .

dem:MassPointRelief.pointCloud a owl:ObjectProperty ;
    rdfs:label "pointCloud"@en ;
    rdfs:domain dem:MassPointRelief ;
    rdfs:range core:AbstractPointCloud ;
    skos:definition "Relates to the 3D PointCloud of the MassPointRelief."@en .

dem:MassPointRelief.reliefPoints a owl:ObjectProperty ;
    rdfs:label "reliefPoints"@en ;
    rdfs:domain dem:MassPointRelief ;
    rdfs:range gmlowl:MultiPoint ;
    skos:definition "Relates to the 3D MultiPoint geometry of the MassPointRelief."@en .

dem:RasterRelief.grid a owl:ObjectProperty ;
    rdfs:label "grid"@en ;
    rdfs:domain dem:RasterRelief ;
    rdfs:range iso19123:CV_DiscreteGridPointCoverage ;
    skos:definition "Relates to the DiscreteGridPointCoverage of the RasterRelief."@en .

dem:ReliefFeature.lod a owl:ObjectProperty ;
    rdfs:label "lod"@en ;
    rdfs:domain dem:ReliefFeature ;
    rdfs:range core:IntegerBetween0and3 ;
    skos:definition "Indicates the Level of Detail of the ReliefFeature."@en .

dem:ReliefFeature.reliefComponent a owl:ObjectProperty ;
    rdfs:label "reliefComponent"@en ;
    rdfs:domain dem:ReliefFeature ;
    rdfs:range dem:AbstractReliefComponent ;
    skos:definition "Relates to the terrain components that are part of the ReliefFeature."@en .

dem:TINRelief.tin a owl:ObjectProperty ;
    rdfs:label "tin"@en ;
    rdfs:domain dem:TINRelief ;
    rdfs:range iso19107-cm:GM_TriangulatedSurface ;
    skos:definition "Relates to the triangulated surface of the TINRelief."@en .

dem:RasterRelief a owl:Class ;
    rdfs:label "RasterRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dem:ADEOfRasterRelief ;
            owl:onProperty dem:RasterRelief.adeOfRasterRelief ],
        [ a owl:Restriction ;
            owl:allValuesFrom iso19123:CV_DiscreteGridPointCoverage ;
            owl:onProperty dem:RasterRelief.grid ],
        [ a owl:Restriction ;
            owl:onClass iso19123:CV_DiscreteGridPointCoverage ;
            owl:onProperty dem:RasterRelief.grid ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dem:AbstractReliefComponent ;
    skos:definition "A RasterRelief represents a terrain component as a regular raster or grid."@en .

dem:ReliefFeature a owl:Class ;
    rdfs:label "ReliefFeature"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dem:ADEOfReliefFeature ;
            owl:onProperty dem:ReliefFeature.adeOfReliefFeature ],
        [ a owl:Restriction ;
            owl:allValuesFrom dem:AbstractReliefComponent ;
            owl:onProperty dem:ReliefFeature.reliefComponent ],
        [ a owl:Restriction ;
            owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass dem:AbstractReliefComponent ;
            owl:onProperty dem:ReliefFeature.reliefComponent ],
        [ a owl:Restriction ;
            owl:allValuesFrom core:IntegerBetween0and3 ;
            owl:onProperty dem:ReliefFeature.lod ],
        [ a owl:Restriction ;
            owl:onClass core:IntegerBetween0and3 ;
            owl:onProperty dem:ReliefFeature.lod ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        core:AbstractSpaceBoundary ;
    skos:definition "A ReliefFeature is a collection of terrain components representing the Earth's surface, also known as the Digital Terrain Model."@en .

dem:TINRelief a owl:Class ;
    rdfs:label "TINRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dem:ADEOfTINRelief ;
            owl:onProperty dem:TINRelief.adeOfTINRelief ],
        [ a owl:Restriction ;
            owl:allValuesFrom iso19107-cm:GM_TriangulatedSurface ;
            owl:onProperty dem:TINRelief.tin ],
        [ a owl:Restriction ;
            owl:onClass iso19107-cm:GM_TriangulatedSurface ;
            owl:onProperty dem:TINRelief.tin ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dem:AbstractReliefComponent ;
    skos:definition "A TINRelief represents a terrain component as a triangulated irregular network."@en .

dem:BreaklineRelief a owl:Class ;
    rdfs:label "BreaklineRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dem:ADEOfBreaklineRelief ;
            owl:onProperty dem:BreaklineRelief.adeOfBreaklineRelief ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiCurve ;
            owl:onProperty dem:BreaklineRelief.breaklines ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiCurve ;
            owl:onProperty dem:BreaklineRelief.breaklines ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiCurve ;
            owl:onProperty dem:BreaklineRelief.ridgeOrValleyLines ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiCurve ;
            owl:onProperty dem:BreaklineRelief.ridgeOrValleyLines ],
        dem:AbstractReliefComponent ;
    skos:definition "A BreaklineRelief represents a terrain component with 3D lines. These lines denote break lines or ridge/valley lines."@en .

dem:MassPointRelief a owl:Class ;
    rdfs:label "MassPointRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dem:ADEOfMassPointRelief ;
            owl:onProperty dem:MassPointRelief.adeOfMassPointRelief ],
        [ a owl:Restriction ;
            owl:allValuesFrom core:AbstractPointCloud ;
            owl:onProperty dem:MassPointRelief.pointCloud ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass core:AbstractPointCloud ;
            owl:onProperty dem:MassPointRelief.pointCloud ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiPoint ;
            owl:onProperty dem:MassPointRelief.reliefPoints ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiPoint ;
            owl:onProperty dem:MassPointRelief.reliefPoints ],
        dem:AbstractReliefComponent ;
    skos:definition "A MassPointRelief represents a terrain component as a collection of 3D points."@en .

dem:AbstractReliefComponent a owl:Class ;
    rdfs:label "AbstractReliefComponent"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:onClass core:IntegerBetween0and3 ;
            owl:onProperty dem:AbstractReliefComponent.lod ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom dem:ADEOfAbstractReliefComponent ;
            owl:onProperty dem:AbstractReliefComponent.adeOfAbstractReliefComponent ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Surface ;
            owl:onProperty dem:AbstractReliefComponent.extent ],
        [ a owl:Restriction ;
            owl:allValuesFrom core:IntegerBetween0and3 ;
            owl:onProperty dem:AbstractReliefComponent.lod ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Surface ;
            owl:onProperty dem:AbstractReliefComponent.extent ],
        core:AbstractSpaceBoundary ;
    skos:definition "An AbstractReliefComponent represents an element of the terrain surface - either a TIN, a raster or grid, mass points or break lines."@en .

[] a owl:AllDisjointClasses ;
    owl:members ( dem:BreaklineRelief dem:MassPointRelief dem:RasterRelief dem:TINRelief ) .

