@prefix core: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core#> .
@prefix doc: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/Document/3.0/document#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/Document/3.0/document> a owl:Ontology ;
    rdfs:label "Document"@en ;
    owl:imports <http://www.w3.org/2006/time>,
        <http://def.isotc211.org/iso19150/-2/2012/base>,
        <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core.ttl> .

doc:DocumentableVersion a owl:Class ;
    rdfs:label "DocumentableVersion"@en .

doc:DocumentableVersionTransition a owl:Class ;
    rdfs:label "DocumentableVersionTransition"@en .

doc:Document.tag a owl:ObjectProperty ;
    rdfs:label "tag"@en ;
    rdfs:domain doc:Document ;
    rdfs:range doc:Tag .

doc:Document.title a owl:DatatypeProperty ;
    rdfs:label "title"@en ;
    rdfs:domain doc:Document ;
    rdfs:range xsd:string .

doc:Document.uri a owl:DatatypeProperty ;
    rdfs:label "uri"@en ;
    rdfs:domain doc:Document ;
    rdfs:range xsd:anyURI .

doc:Reference.purpose a owl:DatatypeProperty ;
    rdfs:label "purpose"@en ;
    rdfs:domain doc:Reference ;
    rdfs:range xsd:string .

doc:Tag.count a owl:DatatypeProperty ;
    rdfs:label "count"@en ;
    rdfs:domain doc:Tag ;
    rdfs:range xsd:integer .

doc:Reference.coveragePeriod a owl:ObjectProperty ;
    rdfs:label "coveragePeriod"@en ;
    rdfs:domain doc:Reference ;
    rdfs:range time:Interval .

doc:Reference.purposeType a owl:ObjectProperty ;
    rdfs:label "purposeType"@en ;
    rdfs:domain doc:Reference ;
    rdfs:range owl:Class .

doc:Reference.referenceText a owl:DatatypeProperty ;
    rdfs:label "referenceText"@en ;
    rdfs:domain doc:Reference ;
    rdfs:range xsd:string .

doc:Reference.referringDate a owl:DatatypeProperty ;
    rdfs:label "referringDate"@en ;
    rdfs:domain doc:Reference ;
    rdfs:range xsd:dateTime .

doc:Tag.text a owl:DatatypeProperty ;
    rdfs:label "text"@en ;
    rdfs:domain doc:Tag ;
    rdfs:range xsd:string .

doc:Document a owl:Class ;
    rdfs:label "Document"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom doc:Tag ;
            owl:onProperty doc:Document.tag ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:anyURI ;
            owl:onProperty doc:Document.uri ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty doc:Document.title ],
        core:AbstractFeatureWithLifespan .

doc:Tag a owl:Class ;
    rdfs:label "Tag"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty doc:Tag.count ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty doc:Tag.text ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty doc:Tag.text ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ] .

doc:Reference a owl:Class ;
    rdfs:label "Reference"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom time:Interval ;
            owl:onProperty doc:Reference.coveragePeriod ],
        [ a owl:Restriction ;
            owl:onClass time:Interval ;
            owl:onProperty doc:Reference.coveragePeriod ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty doc:Reference.purposeType ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:dateTime ;
            owl:onProperty doc:Reference.referringDate ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty doc:Reference.referenceText ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty doc:Reference.referenceText ],
        [ a owl:Restriction ;
            owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty doc:Reference.purposeType ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty doc:Reference.purpose ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:dateTime ;
            owl:onProperty doc:Reference.referringDate ] .

