@prefix core: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/2.0/core#> .
@prefix gmlowl: <http://www.opengis.net/ont/gml#> .
@prefix iso19136-bt: <http://def.isotc211.org/iso19136/2007/BasicTypes#> .
@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 wtr: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/2.0/waterbody#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/2.0/waterbody> a owl:Ontology ;
    rdfs:label "WaterBody"@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 "WaterBody"@en .

wtr:AbstractWaterObject a owl:Class ;
    rdfs:label "AbstractWaterObject"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf core:AbstractCityObject ;
    skos:definition "SIG3D: Abstract superclass of WaterBody."@en ;
    skos:prefLabel "AbstractWaterObject"@en .

wtr:WaterBody.boundedBy a owl:ObjectProperty ;
    rdfs:label "boundedBy"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range wtr:AbstractWaterBoundarySurface ;
    skos:definition "SIG3D: Relation between WaterBody and WaterBoundarySurface"@en ;
    skos:prefLabel "boundedBy"@en .

wtr:WaterBody.function a owl:ObjectProperty ;
    rdfs:label "function"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range iso19136-bt:Code ;
    skos:definition "SIG3D: Specified function of WaterBody as given by the relevant national regulations, information communities, or specific applications."@en ;
    skos:prefLabel "function"@en .

wtr:WaterBody.usage a owl:ObjectProperty ;
    rdfs:label "usage"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range iso19136-bt:Code ;
    skos:definition "SIG3D: Actual usage of WaterBody as given by the relevant national regulations, information communities, or specific applications."@en ;
    skos:prefLabel "usage"@en .

wtr:WaterClosureSurface a owl:Class ;
    rdfs:label "WaterClosureSurface"@en ;
    rdfs:subClassOf wtr:AbstractWaterBoundarySurface ;
    skos:definition "SIG3D: Exterior or interior boundary surface, which provides imaginary boundaries, used to describe parts of the outer shell of WaterBody."@en ;
    skos:prefLabel "WaterClosureSurface"@en .

wtr:WaterGroundSurface a owl:Class ;
    rdfs:label "WaterGroundSurface"@en ;
    rdfs:subClassOf wtr:AbstractWaterBoundarySurface ;
    skos:definition "SIG3D: Exterior boundary surface of the submerged bottom of a water body, used to describe parts of the outer shell of WaterBody."@en ;
    skos:prefLabel "WaterGroundSurface"@en .

wtr:AbstractWaterBoundarySurface.lod2Surface a owl:ObjectProperty ;
    rdfs:label "lod2Surface"@en ;
    rdfs:domain wtr:AbstractWaterBoundarySurface ;
    rdfs:range gmlowl:Surface ;
    skos:definition "SIG3D:  Relation to a LOD2 surface geometry of AbstractWaterBoundarySurface.The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod2Surface"@en .

wtr:AbstractWaterBoundarySurface.lod3Surface a owl:ObjectProperty ;
    rdfs:label "lod3Surface"@en ;
    rdfs:domain wtr:AbstractWaterBoundarySurface ;
    rdfs:range gmlowl:Surface ;
    skos:definition "SIG3D: Relation to a LOD3 surface geometry of AbstractWaterBoundarySurface The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod3Surface"@en .

wtr:AbstractWaterBoundarySurface.lod4Surface a owl:ObjectProperty ;
    rdfs:label "lod4Surface"@en ;
    rdfs:domain wtr:AbstractWaterBoundarySurface ;
    rdfs:range gmlowl:Surface ;
    skos:definition "SIG3D:  Relation to a LOD4 surface geometry of AbstractWaterBoundarySurface.The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod4Surface"@en .

wtr:WaterBody.class a owl:ObjectProperty ;
    rdfs:label "class"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range iso19136-bt:Code ;
    skos:definition "SIG3D: Classification of WaterBody as given by the relevant national regulations, information communities, or specific applications."@en ;
    skos:prefLabel "class"@en .

wtr:WaterBody.lod0MultiCurve a owl:ObjectProperty ;
    rdfs:label "lod0MultiCurve"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:MultiCurve ;
    skos:definition "SIG3D: Relation to a LOD0 curve geometry of WaterBody.The LOD concept for module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod0MultiCurve"@en .

wtr:WaterBody.lod0MultiSurface a owl:ObjectProperty ;
    rdfs:label "lod0MultiSurface"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:MultiSurface ;
    skos:definition "SIG3D: Relation to a LOD0 surface geometry of WaterBody.The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod0MultiSurface"@en .

wtr:WaterBody.lod1MultiCurve a owl:ObjectProperty ;
    rdfs:label "lod1MultiCurve"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:MultiCurve ;
    skos:definition "SIG3D: Relation to a LOD0 curve geometry of WaterBody.The LOD concept for module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod1MultiCurve"@en .

wtr:WaterBody.lod1MultiSurface a owl:ObjectProperty ;
    rdfs:label "lod1MultiSurface"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:MultiSurface ;
    skos:definition "SIG3D: Relation to a LOD1 surface geometry of WaterBody.The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod1MultiSurface"@en .

wtr:WaterBody.lod1Solid a owl:ObjectProperty ;
    rdfs:label "lod1Solid"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:Solid ;
    skos:definition "SIG3D: Relation to a LOD1 solid geometry of WaterBody. The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod1Solid"@en .

wtr:WaterBody.lod2Solid a owl:ObjectProperty ;
    rdfs:label "lod2Solid"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:Solid ;
    skos:definition "SIG3D: Relation to a LOD2 solid geometry of WaterBody. The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod2Solid"@en .

wtr:WaterBody.lod3Solid a owl:ObjectProperty ;
    rdfs:label "lod3Solid"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:Solid ;
    skos:definition "SIG3D: Relation to a LOD3 solid geometry of WaterBody. The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod3Solid"@en .

wtr:WaterBody.lod4Solid a owl:ObjectProperty ;
    rdfs:label "lod4Solid"@en ;
    rdfs:domain wtr:WaterBody ;
    rdfs:range gmlowl:Solid ;
    skos:definition "SIG3D: Relation to a LOD4 solid geometry of WaterBody. The LOD concept for the module WaterBody is defined in chapter ..."@en ;
    skos:prefLabel "lod4Solid"@en .

wtr:WaterSurface a owl:Class ;
    rdfs:label "WaterSurface"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom iso19136-bt:Code ;
            owl:onProperty wtr:WaterSurface.waterLevel ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass iso19136-bt:Code ;
            owl:onProperty wtr:WaterSurface.waterLevel ],
        wtr:AbstractWaterBoundarySurface ;
    skos:definition "SIG3D: Exterior boundary surface of a boundary layer between water and the atmosphere, used to describe parts of the outer shell of WaterBody."@en ;
    skos:prefLabel "WaterSurface"@en .

wtr:WaterSurface.waterLevel a owl:ObjectProperty ;
    rdfs:label "waterLevel"@en ;
    rdfs:domain wtr:WaterSurface ;
    rdfs:range iso19136-bt:Code ;
    skos:definition "SIG3D: Codelist of the WaterSurface property waterLevel."@en ;
    skos:prefLabel "waterLevel"@en .

wtr:AbstractWaterBoundarySurface a owl:Class ;
    rdfs:label "AbstractWaterBoundarySurface"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Surface ;
            owl:onProperty wtr:AbstractWaterBoundarySurface.lod4Surface ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Surface ;
            owl:onProperty wtr:AbstractWaterBoundarySurface.lod2Surface ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Surface ;
            owl:onProperty wtr:AbstractWaterBoundarySurface.lod3Surface ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Surface ;
            owl:onProperty wtr:AbstractWaterBoundarySurface.lod2Surface ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Surface ;
            owl:onProperty wtr:AbstractWaterBoundarySurface.lod3Surface ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Surface ;
            owl:onProperty wtr:AbstractWaterBoundarySurface.lod4Surface ],
        core:AbstractCityObject ;
    skos:definition "SIG3D: Abstract superclass of boundary surfaces of WaterBody."@en ;
    skos:prefLabel "AbstractWaterBoundarySurface"@en .

wtr:WaterBody a owl:Class ;
    rdfs:label "WaterBody"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiSurface ;
            owl:onProperty wtr:WaterBody.lod1MultiSurface ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiCurve ;
            owl:onProperty wtr:WaterBody.lod0MultiCurve ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod4Solid ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod3Solid ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiCurve ;
            owl:onProperty wtr:WaterBody.lod0MultiCurve ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod1Solid ],
        [ a owl:Restriction ;
            owl:allValuesFrom iso19136-bt:Code ;
            owl:onProperty wtr:WaterBody.function ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod2Solid ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass iso19136-bt:Code ;
            owl:onProperty wtr:WaterBody.class ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod3Solid ],
        [ a owl:Restriction ;
            owl:allValuesFrom iso19136-bt:Code ;
            owl:onProperty wtr:WaterBody.usage ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiSurface ;
            owl:onProperty wtr:WaterBody.lod0MultiSurface ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod4Solid ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod1Solid ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiSurface ;
            owl:onProperty wtr:WaterBody.lod1MultiSurface ],
        [ a owl:Restriction ;
            owl:allValuesFrom wtr:AbstractWaterBoundarySurface ;
            owl:onProperty wtr:WaterBody.boundedBy ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:MultiCurve ;
            owl:onProperty wtr:WaterBody.lod1MultiCurve ],
        [ a owl:Restriction ;
            owl:allValuesFrom iso19136-bt:Code ;
            owl:onProperty wtr:WaterBody.class ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiSurface ;
            owl:onProperty wtr:WaterBody.lod0MultiSurface ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:MultiCurve ;
            owl:onProperty wtr:WaterBody.lod1MultiCurve ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:Solid ;
            owl:onProperty wtr:WaterBody.lod2Solid ],
        wtr:AbstractWaterObject ;
    skos:definition "SIG3D: Any significant accumulation of water, usually covering a part of the Earth"@en ;
    skos:prefLabel "WaterBody"@en .

[] a owl:AllDisjointClasses ;
    owl:members ( wtr:WaterClosureSurface wtr:WaterGroundSurface wtr:WaterSurface ) .

