@prefix core: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/2.0/core#> .
@prefix dem: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/2.0/relief#> .
@prefix gmlowl: <http://www.opengis.net/ont/gml#> .
@prefix iso19123-dc: <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/2.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/2.0/core.ttl> ;
    skos:prefLabel "Relief"@en .

dem:AbstractReliefComponent.extent a owl:ObjectProperty ;
    rdfs:label "extent"@en ;
    rdfs:domain dem:AbstractReliefComponent ;
    rdfs:range gmlowl:Surface ;
    skos:definition "SIG3D: Polygon (optionally with holes) denoting the extent where the relief component is valid"@en ;
    skos:prefLabel "extent"@en .

dem:AbstractReliefComponent.lod a owl:ObjectProperty ;
    rdfs:label "lod"@en ;
    rdfs:domain dem:AbstractReliefComponent ;
    rdfs:range core:IntegerBetween0and4 ;
    skos:definition "SIG3D: Number denoting the LOD of the relief component. The LOD concept for the relief is defined in chapter ..."@en ;
    skos:prefLabel "lod"@en .

dem:BreaklineRelief.breaklines a owl:ObjectProperty ;
    rdfs:label "breaklines"@en ;
    rdfs:domain dem:BreaklineRelief ;
    rdfs:range gmlowl:MultiCurve ;
    skos:definition "SIG3D: Relation to 3D lines (gml:MultiCurve) denoting break lines."@en ;
    skos:prefLabel "breaklines"@en .

dem:BreaklineRelief.ridgeOrValleyLines a owl:ObjectProperty ;
    rdfs:label "ridgeOrValleyLines"@en ;
    rdfs:domain dem:BreaklineRelief ;
    rdfs:range gmlowl:MultiCurve ;
    skos:definition "SIG3D: Relation to 3D lines (gml:MultiCurve) denoting ridge or valley lines"@en ;
    skos:prefLabel "ridgeOrValleyLines"@en .

dem:MassPointRelief a owl:Class ;
    rdfs:label "MassPointRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiPoint ;
            owl:onProperty dem:MassPointRelief.reliefPoints ],
        [ a owl:Restriction ;
            owl:onClass gmlowl:MultiPoint ;
            owl:onProperty dem:MassPointRelief.reliefPoints ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dem:AbstractReliefComponent ;
    skos:definition "SIG3D: Relief component represented by 3D points."@en ;
    skos:prefLabel "MassPointRelief"@en .

dem:MassPointRelief.reliefPoints a owl:ObjectProperty ;
    rdfs:label "reliefPoints"@en ;
    rdfs:domain dem:MassPointRelief ;
    rdfs:range gmlowl:MultiPoint ;
    skos:definition "SIG3D: Relation to 3D points (gml:MultiPoint)."@en ;
    skos:prefLabel "reliefPoints"@en .

dem:RasterRelief a owl:Class ;
    rdfs:label "RasterRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom iso19123-dc:CV_DiscreteGridPointCoverage ;
            owl:onProperty dem:RasterRelief.grid ],
        [ a owl:Restriction ;
            owl:onClass iso19123-dc:CV_DiscreteGridPointCoverage ;
            owl:onProperty dem:RasterRelief.grid ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dem:AbstractReliefComponent ;
    skos:definition "SIG3D: Relief component represented by a (GML) raster/grid."@en ;
    skos:prefLabel "RasterRelief"@en .

dem:RasterRelief.grid a owl:ObjectProperty ;
    rdfs:label "grid"@en ;
    rdfs:domain dem:RasterRelief ;
    rdfs:range iso19123-dc:CV_DiscreteGridPointCoverage ;
    skos:prefLabel "grid"@en .

dem:ReliefFeature a owl:Class ;
    rdfs:label "ReliefFeature"@en ;
    rdfs:subClassOf [ 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:IntegerBetween0and4 ;
            owl:onProperty dem:ReliefFeature.lod ],
        [ a owl:Restriction ;
            owl:onClass core:IntegerBetween0and4 ;
            owl:onProperty dem:ReliefFeature.lod ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        core:AbstractCityObject ;
    skos:definition "SIG3D: Feature aggregating the relief components which belong together."@en ;
    skos:prefLabel "ReliefFeature"@en .

dem:ReliefFeature.lod a owl:ObjectProperty ;
    rdfs:label "lod"@en ;
    rdfs:domain dem:ReliefFeature ;
    rdfs:range core:IntegerBetween0and4 ;
    skos:definition "SIG3D: Number denoting the LOD of the relief feature. The LOD concept for the relief is defined in chapter ..."@en ;
    skos:prefLabel "lod"@en .

dem:ReliefFeature.reliefComponent a owl:ObjectProperty ;
    rdfs:label "reliefComponent"@en ;
    rdfs:domain dem:ReliefFeature ;
    rdfs:range dem:AbstractReliefComponent ;
    skos:definition "SIG3D: Relation of a ReliefFeature to its components."@en ;
    skos:prefLabel "reliefComponent"@en .

dem:TINRelief a owl:Class ;
    rdfs:label "TINRelief"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:TriangulatedSurface ;
            owl:onProperty dem:TINRelief.tin ],
        [ a owl:Restriction ;
            owl:onClass gmlowl:TriangulatedSurface ;
            owl:onProperty dem:TINRelief.tin ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dem:AbstractReliefComponent ;
    skos:definition "SIG3D: Relief component represented as triangulated irregular network."@en ;
    skos:prefLabel "TINRelief"@en .

dem:TINRelief.tin a owl:ObjectProperty ;
    rdfs:label "tin"@en ;
    rdfs:domain dem:TINRelief ;
    rdfs:range gmlowl:TriangulatedSurface ;
    skos:definition "SIG3D: Relation to a triangulated irregular network provided by GML (gml:TriangulatedSurface)."@en ;
    skos:prefLabel "tin"@en .

dem:BreaklineRelief a owl:Class ;
    rdfs:label "BreaklineRelief"@en ;
    rdfs:subClassOf [ 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 "SIG3D: Relief component represented by 3D lines denoting break lines or ridge/valley lines"@en ;
    skos:prefLabel "BreaklineRelief"@en .

dem:AbstractReliefComponent a owl:Class ;
    rdfs:label "AbstractReliefComponent"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom core:IntegerBetween0and4 ;
            owl:onProperty dem:AbstractReliefComponent.lod ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Surface ;
            owl:onProperty dem:AbstractReliefComponent.extent ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Surface ;
            owl:onProperty dem:AbstractReliefComponent.extent ],
        [ a owl:Restriction ;
            owl:onClass core:IntegerBetween0and4 ;
            owl:onProperty dem:AbstractReliefComponent.lod ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        core:AbstractCityObject ;
    skos:definition "SIG3D: Abstract superclass of TINRelief, MassPointRelief, RasterRelief and BreaklineRelief"@en ;
    skos:prefLabel "AbstractReliefComponent"@en .

[] a owl:AllDisjointClasses ;
    owl:members ( dem:BreaklineRelief dem:MassPointRelief dem:RasterRelief dem:TINRelief ) .

