@prefix core: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core#> .
@prefix iso19150-2: <http://def.isotc211.org/iso19150/-2/2012/base#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sc: <http://shapechange.net/resources/ont/base#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix veg: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/vegetation#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/vegetation> a owl:Ontology ;
    rdfs:label "Vegetation"@en ;
    owl:imports <http://def.isotc211.org/iso19150/-2/2012/base>,
        <http://shapechange.net/resources/ont/base>,
        <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core.ttl> ;
    skos:definition "The Vegetation module supports representation of vegetation objects with vegetation-specific thematic classes. CityGML’s vegetation model distinguishes between solitary vegetation objects like trees, and vegetation areas which represent biotopes like forests or other plant communities."@en .

veg:AbstractVegetationObject.adeOfAbstractVegetationObject a owl:ObjectProperty ;
    rdfs:label "adeOfAbstractVegetationObject"@en ;
    rdfs:domain veg:AbstractVegetationObject ;
    rdfs:range veg:ADEOfAbstractVegetationObject ;
    skos:definition "Augments AbstractVegetationObject with properties defined in an ADE."@en .

veg:PlantCover.adeOfPlantCover a owl:ObjectProperty ;
    rdfs:label "adeOfPlantCover"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range veg:ADEOfPlantCover ;
    skos:definition "Augments the PlantCover with properties defined in an ADE."@en .

veg:PlantCover.function a owl:ObjectProperty ;
    rdfs:label "function"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the intended purposes of the PlantCover."@en .

veg:PlantCover.usage a owl:ObjectProperty ;
    rdfs:label "usage"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the actual uses of the PlantCover."@en .

veg:SolitaryVegetationObject.adeOfSolitaryVegetationObject a owl:ObjectProperty ;
    rdfs:label "adeOfSolitaryVegetationObject"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range veg:ADEOfSolitaryVegetationObject ;
    skos:definition "Augments the SolitaryVegetationObject with properties defined in an ADE."@en .

veg:SolitaryVegetationObject.function a owl:ObjectProperty ;
    rdfs:label "function"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the intended purposes of the SolitaryVegetationObject."@en .

veg:SolitaryVegetationObject.usage a owl:ObjectProperty ;
    rdfs:label "usage"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the actual uses of the SolitaryVegetationObject."@en .

veg:ADEOfAbstractVegetationObject a owl:Class ;
    rdfs:label "ADEOfAbstractVegetationObject"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfAbstractVegetationObject acts as a hook to define properties within an ADE that are to be added to AbstractVegetationObject."@en .

veg:ADEOfPlantCover a owl:Class ;
    rdfs:label "ADEOfPlantCover"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfPlantCover acts as a hook to define properties within an ADE that are to be added to a PlantCover."@en .

veg:ADEOfSolitaryVegetationObject a owl:Class ;
    rdfs:label "ADEOfSolitaryVegetationObject"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfSolitaryVegetationObject acts as a hook to define properties within an ADE that are to be added to a SolitaryVegetationObject."@en .

veg:PlantCover.averageHeight a owl:DatatypeProperty ;
    rdfs:label "averageHeight"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the average height of the PlantCover."@en .

veg:PlantCover.class a owl:ObjectProperty ;
    rdfs:label "class"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range owl:Class ;
    skos:definition "Indicates the specific type of the PlantCover."@en .

veg:PlantCover.maxHeight a owl:DatatypeProperty ;
    rdfs:label "maxHeight"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the maximum height of the PlantCover."@en .

veg:PlantCover.minHeight a owl:DatatypeProperty ;
    rdfs:label "minHeight"@en ;
    rdfs:domain veg:PlantCover ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the minimum height of the PlantCover."@en .

veg:SolitaryVegetationObject.class a owl:ObjectProperty ;
    rdfs:label "class"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range owl:Class ;
    skos:definition "Indicates the specific type of the SolitaryVegetationObject."@en .

veg:SolitaryVegetationObject.crownDiameter a owl:DatatypeProperty ;
    rdfs:label "crownDiameter"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the diameter of the SolitaryCityObject's crown."@en .

veg:SolitaryVegetationObject.height a owl:DatatypeProperty ;
    rdfs:label "height"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range sc:Measure ;
    skos:definition "Distance between the highest point of the vegetation object and the lowest point of the terrain at the bottom of the object."@en .

veg:SolitaryVegetationObject.maxRootBallDepth a owl:DatatypeProperty ;
    rdfs:label "maxRootBallDepth"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the vertical distance between the lowest point of the SolitaryVegetationObject's root ball and the terrain surface."@en .

veg:SolitaryVegetationObject.rootBallDiameter a owl:DatatypeProperty ;
    rdfs:label "rootBallDiameter"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the diameter of the SolitaryCityObject's root ball."@en .

veg:SolitaryVegetationObject.species a owl:ObjectProperty ;
    rdfs:label "species"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range owl:Class ;
    skos:definition "Indicates the botanical name of the SolitaryVegetationObject."@en .

veg:SolitaryVegetationObject.trunkDiameter a owl:DatatypeProperty ;
    rdfs:label "trunkDiameter"@en ;
    rdfs:domain veg:SolitaryVegetationObject ;
    rdfs:range sc:Measure ;
    skos:definition "Specifies the diameter of the SolitaryCityObject's trunk."@en .

veg:AbstractVegetationObject a owl:Class ;
    rdfs:label "AbstractVegetationObject"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom veg:ADEOfAbstractVegetationObject ;
            owl:onProperty veg:AbstractVegetationObject.adeOfAbstractVegetationObject ],
        core:AbstractOccupiedSpace ;
    skos:definition "AbstractVegetationObject is the abstract superclass for all kinds of vegetation objects."@en .

veg:PlantCover a owl:Class ;
    rdfs:label "PlantCover"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:PlantCover.usage ],
        [ a owl:Restriction ;
            owl:allValuesFrom veg:ADEOfPlantCover ;
            owl:onProperty veg:PlantCover.adeOfPlantCover ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:PlantCover.minHeight ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:PlantCover.maxHeight ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty veg:PlantCover.class ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:PlantCover.minHeight ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:PlantCover.averageHeight ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:PlantCover.function ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:PlantCover.class ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:PlantCover.averageHeight ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:PlantCover.maxHeight ],
        veg:AbstractVegetationObject ;
    owl:disjointWith veg:SolitaryVegetationObject ;
    skos:definition "A PlantCover represents a space covered by vegetation."@en .

veg:SolitaryVegetationObject a owl:Class ;
    rdfs:label "SolitaryVegetationObject"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.trunkDiameter ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.crownDiameter ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.trunkDiameter ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.height ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.maxRootBallDepth ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty veg:SolitaryVegetationObject.class ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:SolitaryVegetationObject.species ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:SolitaryVegetationObject.usage ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.height ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:SolitaryVegetationObject.function ],
        [ a owl:Restriction ;
            owl:allValuesFrom veg:ADEOfSolitaryVegetationObject ;
            owl:onProperty veg:SolitaryVegetationObject.adeOfSolitaryVegetationObject ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.crownDiameter ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty veg:SolitaryVegetationObject.species ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.maxRootBallDepth ],
        [ a owl:Restriction ;
            owl:allValuesFrom sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.rootBallDiameter ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange sc:Measure ;
            owl:onProperty veg:SolitaryVegetationObject.rootBallDiameter ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty veg:SolitaryVegetationObject.class ],
        veg:AbstractVegetationObject ;
    skos:definition "A SolitaryVegetationObject represents individual vegetation objects, e.g. trees or bushes."@en .

