@prefix core: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/core#> .
@prefix dyn: <https://dataset-dl.liris.cnrs.fr/rdf-owl-urban-data-ontologies/Ontologies/CityGML/3.0/dynamizer#> .
@prefix gmlowl: <http://www.opengis.net/ont/gml#> .
@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 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/CityGML/3.0/dynamizer> a owl:Ontology ;
    rdfs:label "Dynamizer"@en ;
    owl:imports <http://www.w3.org/2006/time>,
        <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 Dynamizer module supports the injection of timeseries data for individual attributes of CityGML features. Timeseries data can either be retrieved from external Sensor APIs (e.g. OGC SensorThings API, OGC Sensor Observation Services, MQTT, proprietary platforms), external standardized timeseries files (e.g. OGC TimeseriesML or OGC Observations & Measurements), external tabulated files (e.g CSV) or can be represented inline as basic time-value pairs."@en .

dyn:AbstractAtomicTimeseries.adeOfAbstractAtomicTimeseries a owl:ObjectProperty ;
    rdfs:label "adeOfAbstractAtomicTimeseries"@en ;
    rdfs:domain dyn:AbstractAtomicTimeseries ;
    rdfs:range dyn:ADEOfAbstractAtomicTimeseries ;
    skos:definition "Augments AbstractAtomicTimeseries with properties defined in an ADE."@en .

dyn:AbstractTimeseries.adeOfAbstractTimeseries a owl:ObjectProperty ;
    rdfs:label "adeOfAbstractTimeseries"@en ;
    rdfs:domain dyn:AbstractTimeseries ;
    rdfs:range dyn:ADEOfAbstractTimeseries ;
    skos:definition "Augments AbstractTimeseries with properties defined in an ADE."@en .

dyn:CompositeTimeseries.adeOfCompositeTimeseries a owl:ObjectProperty ;
    rdfs:label "adeOfCompositeTimeseries"@en ;
    rdfs:domain dyn:CompositeTimeseries ;
    rdfs:range dyn:ADEOfCompositeTimeseries ;
    skos:definition "Augments the CompositeTimeseries with properties defined in an ADE."@en .

dyn:Dynamizer.adeOfDynamizer a owl:ObjectProperty ;
    rdfs:label "adeOfDynamizer"@en ;
    rdfs:domain dyn:Dynamizer ;
    rdfs:range dyn:ADEOfDynamizer ;
    skos:definition "Augments the Dynamizer with properties defined in an ADE."@en .

dyn:GenericTimeseries.adeOfGenericTimeseries a owl:ObjectProperty ;
    rdfs:label "adeOfGenericTimeseries"@en ;
    rdfs:domain dyn:GenericTimeseries ;
    rdfs:range dyn:ADEOfGenericTimeseries ;
    skos:definition "Augments the GenericTimeseries with properties defined in an ADE."@en .

dyn:StandardFileTimeseries.adeOfStandardFileTimeseries a owl:ObjectProperty ;
    rdfs:label "adeOfStandardFileTimeseries"@en ;
    rdfs:domain dyn:StandardFileTimeseries ;
    rdfs:range dyn:ADEOfStandardFileTimeseries ;
    skos:definition "Augments the StandardFileTimeseries with properties defined in an ADE."@en .

dyn:TabulatedFileTimeseries.adeOfTabulatedFileTimeseries a owl:ObjectProperty ;
    rdfs:label "adeOfTabulatedFileTimeseries"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range dyn:ADEOfTabulatedFileTimeseries ;
    skos:definition "Augments the TabulatedFileTimeseries with properties defined in an ADE."@en .

dyn:ADEOfAbstractAtomicTimeseries a owl:Class ;
    rdfs:label "ADEOfAbstractAtomicTimeseries"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfAbstractAtomicTimeseries acts as a hook to define properties within an ADE that are to be added to AbstractAtomicTimeseries."@en .

dyn:ADEOfAbstractTimeseries a owl:Class ;
    rdfs:label "ADEOfAbstractTimeseries"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfAbstractTimeseries acts as a hook to define properties within an ADE that are to be added to AbstractTimeseries."@en .

dyn:ADEOfCompositeTimeseries a owl:Class ;
    rdfs:label "ADEOfCompositeTimeseries"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfCompositeTimeseries acts as a hook to define properties within an ADE that are to be added to a CompositeTimeseries."@en .

dyn:ADEOfDynamizer a owl:Class ;
    rdfs:label "ADEOfDynamizer"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfDynamizer acts as a hook to define properties within an ADE that are to be added to a Dynamizer."@en .

dyn:ADEOfGenericTimeseries a owl:Class ;
    rdfs:label "ADEOfGenericTimeseries"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfGenericTimeseries acts as a hook to define properties within an ADE that are to be added to a GenericTimeseries."@en .

dyn:ADEOfStandardFileTimeseries a owl:Class ;
    rdfs:label "ADEOfStandardFileTimeseries"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfStandardFileTimeseries acts as a hook to define properties within an ADE that are to be added to a StandardFileTimeseries."@en .

dyn:ADEOfTabulatedFileTimeseries a owl:Class ;
    rdfs:label "ADEOfTabulatedFileTimeseries"@en ;
    iso19150-2:isAbstract true ;
    skos:definition "ADEOfTabulatedFileTimeseries acts as a hook to define properties within an ADE that are to be added to a TabulatedFileTimeseries."@en .

dyn:AbstractAtomicTimeseries.observationProperty a owl:DatatypeProperty ;
    rdfs:label "observationProperty"@en ;
    rdfs:domain dyn:AbstractAtomicTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the phenomenon for which the atomic timeseries provides observation values."@en .

dyn:AbstractAtomicTimeseries.uom a owl:DatatypeProperty ;
    rdfs:label "uom"@en ;
    rdfs:domain dyn:AbstractAtomicTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the unit of measurement of the observation values."@en .

dyn:AbstractTimeseries.firstTimestamp a owl:ObjectProperty ;
    rdfs:label "firstTimestamp"@en ;
    rdfs:domain dyn:AbstractTimeseries ;
    rdfs:range time:TemporalPosition ;
    skos:definition "Specifies the beginning of the timeseries."@en .

dyn:AbstractTimeseries.lastTimestamp a owl:ObjectProperty ;
    rdfs:label "lastTimestamp"@en ;
    rdfs:domain dyn:AbstractTimeseries ;
    rdfs:range time:TemporalPosition ;
    skos:definition "Specifies the end of the timeseries."@en .

dyn:CompositeTimeseries.component a owl:ObjectProperty ;
    rdfs:label "component"@en ;
    rdfs:domain dyn:CompositeTimeseries ;
    rdfs:range dyn:TimeseriesComponent ;
    skos:definition "Relates to the atomic and composite timeseries that are part of the CompositeTimeseries. The referenced timeseries are sequentially ordered."@en .

dyn:Dynamizer.attributeRef a owl:DatatypeProperty ;
    rdfs:label "attributeRef"@en ;
    rdfs:domain dyn:Dynamizer ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the attribute of a CityGML feature whose value is overridden or replaced by the (dynamic) values specified by the Dynamizer."@en .

dyn:Dynamizer.dynamicData a owl:ObjectProperty ;
    rdfs:label "dynamicData"@en ;
    rdfs:domain dyn:Dynamizer ;
    rdfs:range dyn:AbstractTimeseries ;
    skos:definition "Relates to the timeseries data that is given either inline within a CityGML dataset or by a link to an external file containing timeseries data."@en .

dyn:Dynamizer.endTime a owl:ObjectProperty ;
    rdfs:label "endTime"@en ;
    rdfs:domain dyn:Dynamizer ;
    rdfs:range time:TemporalPosition ;
    skos:definition "Specifies the end of the time span for which the Dynamizer provides dynamic values."@en .

dyn:Dynamizer.sensorConnection a owl:ObjectProperty ;
    rdfs:label "sensorConnection"@en ;
    rdfs:domain dyn:Dynamizer ;
    rdfs:range dyn:SensorConnection ;
    skos:definition "Relates to the sensor API that delivers timeseries data."@en .

dyn:Dynamizer.startTime a owl:ObjectProperty ;
    rdfs:label "startTime"@en ;
    rdfs:domain dyn:Dynamizer ;
    rdfs:range time:TemporalPosition ;
    skos:definition "Specifies the beginning of the time span for which the Dynamizer provides dynamic values."@en .

dyn:GenericTimeseries.timeValuePair a owl:ObjectProperty ;
    rdfs:label "timeValuePair"@en ;
    rdfs:domain dyn:GenericTimeseries ;
    rdfs:range dyn:TimeValuePair ;
    skos:definition "Relates to the time-value-pairs that are part of the GenericTimeseries."@en .

dyn:GenericTimeseries.valueType a owl:DatatypeProperty ;
    rdfs:label "valueType"@en ;
    rdfs:domain dyn:GenericTimeseries ;
    rdfs:range dyn:TimeseriesTypeValue ;
    skos:definition "Indicates the specific type of all time-value-pairs that are part of the GenericTimeseries."@en .

dyn:SensorConnection.authType a owl:ObjectProperty ;
    rdfs:label "authType"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the type of authentication required to be able to access the Sensor API."@en .

dyn:SensorConnection.baseURL a owl:DatatypeProperty ;
    rdfs:label "baseURL"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:anyURI ;
    skos:definition "Specifies the base URL of the Sensor API request."@en .

dyn:SensorConnection.connectionType a owl:ObjectProperty ;
    rdfs:label "connectionType"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range owl:Class ;
    skos:definition "Indicates the type of Sensor API to which the SensorConnection refers."@en .

dyn:SensorConnection.datastreamID a owl:DatatypeProperty ;
    rdfs:label "datastreamID"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the datastream that is retrieved by the SensorConnection."@en .

dyn:SensorConnection.linkToObservation a owl:DatatypeProperty ;
    rdfs:label "linkToObservation"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the complete URL to the observation request."@en .

dyn:SensorConnection.linkToSensorDescription a owl:DatatypeProperty ;
    rdfs:label "linkToSensorDescription"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the complete URL to the sensor description request."@en .

dyn:SensorConnection.mqttServer a owl:DatatypeProperty ;
    rdfs:label "mqttServer"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the name of the MQTT Server. This attribute is relevant when the MQTT Protocol is used to connect to a Sensor API."@en .

dyn:SensorConnection.mqttTopic a owl:DatatypeProperty ;
    rdfs:label "mqttTopic"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Names the specific datastream that is retrieved by the SensorConnection. This attribute is relevant when the MQTT Protocol is used to connect to a Sensor API."@en .

dyn:SensorConnection.observationID a owl:DatatypeProperty ;
    rdfs:label "observationID"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the unique identifier of the observation that is retrieved by the SensorConnection."@en .

dyn:SensorConnection.observationProperty a owl:DatatypeProperty ;
    rdfs:label "observationProperty"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the phenomenon for which the SensorConnection provides observations."@en .

dyn:SensorConnection.sensorID a owl:DatatypeProperty ;
    rdfs:label "sensorID"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the unique identifier of the sensor from which the SensorConnection retrieves observations."@en .

dyn:SensorConnection.sensorLocation a owl:ObjectProperty ;
    rdfs:label "sensorLocation"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range core:AbstractCityObject ;
    skos:definition "Relates the sensor to the city object where it is located."@en .

dyn:SensorConnection.sensorName a owl:DatatypeProperty ;
    rdfs:label "sensorName"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the name of the sensor from which the SensorConnection retrieves observations."@en .

dyn:SensorConnection.uom a owl:DatatypeProperty ;
    rdfs:label "uom"@en ;
    rdfs:domain dyn:SensorConnection ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the unit of measurement of the observations."@en .

dyn:StandardFileTimeseries.fileLocation a owl:DatatypeProperty ;
    rdfs:label "fileLocation"@en ;
    rdfs:domain dyn:StandardFileTimeseries ;
    rdfs:range xsd:anyURI ;
    skos:definition "Specifies the URI that points to the external timeseries file."@en .

dyn:StandardFileTimeseries.fileType a owl:ObjectProperty ;
    rdfs:label "fileType"@en ;
    rdfs:domain dyn:StandardFileTimeseries ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the format used to represent the timeseries data."@en .

dyn:StandardFileTimeseries.mimeType a owl:ObjectProperty ;
    rdfs:label "mimeType"@en ;
    rdfs:domain dyn:StandardFileTimeseries ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the MIME type of the external timeseries file."@en .

dyn:TabulatedFileTimeseries.decimalSymbol a owl:DatatypeProperty ;
    rdfs:label "decimalSymbol"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Indicates which symbol is used to separate the integer part from the fractional part of a decimal number."@en .

dyn:TabulatedFileTimeseries.fieldSeparator a owl:DatatypeProperty ;
    rdfs:label "fieldSeparator"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Indicates which symbol is used to separate the individual values in the tabulated file."@en .

dyn:TabulatedFileTimeseries.fileLocation a owl:DatatypeProperty ;
    rdfs:label "fileLocation"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:anyURI ;
    skos:definition "Specifies the URI that points to the external timeseries file."@en .

dyn:TabulatedFileTimeseries.fileType a owl:ObjectProperty ;
    rdfs:label "fileType"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the format used to represent the timeseries data."@en .

dyn:TabulatedFileTimeseries.idColumnName a owl:DatatypeProperty ;
    rdfs:label "idColumnName"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the name of the column that stores the identifier of the time-value-pair."@en .

dyn:TabulatedFileTimeseries.idColumnNo a owl:DatatypeProperty ;
    rdfs:label "idColumnNo"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:integer ;
    skos:definition "Specifies the number of the column that stores the identifier of the time-value-pair."@en .

dyn:TabulatedFileTimeseries.idValue a owl:DatatypeProperty ;
    rdfs:label "idValue"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the value of the identifier for which the time-value-pairs are to be selected."@en .

dyn:TabulatedFileTimeseries.mimeType a owl:ObjectProperty ;
    rdfs:label "mimeType"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range owl:Class ;
    skos:definition "Specifies the MIME type of the external timeseries file."@en .

dyn:TabulatedFileTimeseries.numberOfHeaderLines a owl:DatatypeProperty ;
    rdfs:label "numberOfHeaderLines"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:integer ;
    skos:definition "Indicates the number of lines at the beginning of the tabulated file that represent headers."@en .

dyn:TabulatedFileTimeseries.timeColumnName a owl:DatatypeProperty ;
    rdfs:label "timeColumnName"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the name of the column that stores the timestamp of the time-value-pair."@en .

dyn:TabulatedFileTimeseries.timeColumnNo a owl:DatatypeProperty ;
    rdfs:label "timeColumnNo"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:integer ;
    skos:definition "Specifies the number of the column that stores the timestamp of the time-value-pair."@en .

dyn:TabulatedFileTimeseries.valueColumnName a owl:DatatypeProperty ;
    rdfs:label "valueColumnName"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the name of the column that stores the value of the time-value-pair."@en .

dyn:TabulatedFileTimeseries.valueColumnNo a owl:DatatypeProperty ;
    rdfs:label "valueColumnNo"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range xsd:integer ;
    skos:definition "Specifies the number of the column that stores the value of the time-value-pair."@en .

dyn:TabulatedFileTimeseries.valueType a owl:DatatypeProperty ;
    rdfs:label "valueType"@en ;
    rdfs:domain dyn:TabulatedFileTimeseries ;
    rdfs:range dyn:TimeseriesTypeValue ;
    skos:definition "Indicates the specific type of the timeseries data."@en .

dyn:TimeValuePair.appearanceValue a owl:ObjectProperty ;
    rdfs:label "appearanceValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range core:AbstractAppearance ;
    skos:definition "Specifies the \"Appearance\" value of the TimeValuePair."@en .

dyn:TimeValuePair.boolValue a owl:DatatypeProperty ;
    rdfs:label "boolValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range xsd:boolean ;
    skos:definition "Specifies the \"Boolean\" value of the TimeValuePair."@en .

dyn:TimeValuePair.doubleValue a owl:DatatypeProperty ;
    rdfs:label "doubleValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range xsd:double ;
    skos:definition "Specifies the \"Double\" value of the TimeValuePair."@en .

dyn:TimeValuePair.geometryValue a owl:ObjectProperty ;
    rdfs:label "geometryValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range gmlowl:AbstractGeometry ;
    skos:definition "Specifies the geometry value of the TimeValuePair."@en .

dyn:TimeValuePair.implicitGeometryValue a owl:ObjectProperty ;
    rdfs:label "implicitGeometryValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range core:ImplicitGeometry ;
    skos:definition "Specifies the \"ImplicitGeometry\" value of the TimeValuePair."@en .

dyn:TimeValuePair.intValue a owl:DatatypeProperty ;
    rdfs:label "intValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range xsd:integer ;
    skos:definition "Specifies the \"Integer\" value of the TimeValuePair."@en .

dyn:TimeValuePair.stringValue a owl:DatatypeProperty ;
    rdfs:label "stringValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range xsd:string ;
    skos:definition "Specifies the \"String\" value of the TimeValuePair."@en .

dyn:TimeValuePair.timestamp a owl:ObjectProperty ;
    rdfs:label "timestamp"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range time:TemporalPosition ;
    skos:definition "Specifies the timepoint at which the value of the TimeValuePair is valid."@en .

dyn:TimeValuePair.uriValue a owl:DatatypeProperty ;
    rdfs:label "uriValue"@en ;
    rdfs:domain dyn:TimeValuePair ;
    rdfs:range xsd:anyURI ;
    skos:definition "Specifies the \"URI\" value of the TimeValuePair."@en .

dyn:TimeseriesComponent.additionalGap a owl:ObjectProperty ;
    rdfs:label "additionalGap"@en ;
    rdfs:domain dyn:TimeseriesComponent ;
    rdfs:range time:TemporalDuration ;
    skos:definition "Specifies how much extra time is added after all repetitions as an additional gap."@en .

dyn:TimeseriesComponent.repetitions a owl:DatatypeProperty ;
    rdfs:label "repetitions"@en ;
    rdfs:domain dyn:TimeseriesComponent ;
    rdfs:range xsd:integer ;
    skos:definition "Specifies how often the timeseries that is referenced by the TimeseriesComponent should be iterated."@en .

dyn:TimeseriesComponent.timeseries a owl:ObjectProperty ;
    rdfs:label "timeseries"@en ;
    rdfs:domain dyn:TimeseriesComponent ;
    rdfs:range dyn:AbstractTimeseries ;
    skos:definition "Relates a timeseries to the TimeseriesComponent."@en .

dyn:CompositeTimeseries a owl:Class ;
    rdfs:label "CompositeTimeseries"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfCompositeTimeseries ;
            owl:onProperty dyn:CompositeTimeseries.adeOfCompositeTimeseries ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:TimeseriesComponent ;
            owl:onProperty dyn:CompositeTimeseries.component ],
        [ a owl:Restriction ;
            owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass dyn:TimeseriesComponent ;
            owl:onProperty dyn:CompositeTimeseries.component ],
        dyn:AbstractTimeseries ;
    skos:definition "A CompositeTimeseries is a (possibly recursive) aggregation of atomic and composite timeseries. The components of a composite timeseries must have non-overlapping time intervals."@en .

dyn:GenericTimeseries a owl:Class ;
    rdfs:label "GenericTimeseries"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfGenericTimeseries ;
            owl:onProperty dyn:GenericTimeseries.adeOfGenericTimeseries ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:TimeValuePair ;
            owl:onProperty dyn:GenericTimeseries.timeValuePair ],
        [ a owl:Restriction ;
            owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass dyn:TimeValuePair ;
            owl:onProperty dyn:GenericTimeseries.timeValuePair ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:TimeseriesTypeValue ;
            owl:onProperty dyn:GenericTimeseries.valueType ],
        [ a owl:Restriction ;
            owl:onDataRange dyn:TimeseriesTypeValue ;
            owl:onProperty dyn:GenericTimeseries.valueType ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dyn:AbstractAtomicTimeseries ;
    skos:definition "A GenericTimeseries represents time-varying data in the form of embedded time-value-pairs of a specific data type for a single contiguous time interval."@en .

dyn:StandardFileTimeseries a owl:Class ;
    rdfs:label "StandardFileTimeseries"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:onDataRange xsd:anyURI ;
            owl:onProperty dyn:StandardFileTimeseries.fileLocation ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty dyn:StandardFileTimeseries.fileType ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:anyURI ;
            owl:onProperty dyn:StandardFileTimeseries.fileLocation ],
        [ a owl:Restriction ;
            owl:onClass owl:Class ;
            owl:onProperty dyn:StandardFileTimeseries.fileType ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty dyn:StandardFileTimeseries.mimeType ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty dyn:StandardFileTimeseries.mimeType ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfStandardFileTimeseries ;
            owl:onProperty dyn:StandardFileTimeseries.adeOfStandardFileTimeseries ],
        dyn:AbstractAtomicTimeseries ;
    skos:definition "A StandardFileTimeseries represents time-varying data for a single contiguous time interval. The data is provided in an external file referenced in the StandardFileTimeseries. The data within the external file is encoded according to a dedicated format for the representation of timeseries data such as using the OGC TimeseriesML or OGC Observations & Measurements Standard. The data type of the data has to be specified within the external file."@en .

dyn:AbstractAtomicTimeseries a owl:Class ;
    rdfs:label "AbstractAtomicTimeseries"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:AbstractAtomicTimeseries.uom ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfAbstractAtomicTimeseries ;
            owl:onProperty dyn:AbstractAtomicTimeseries.adeOfAbstractAtomicTimeseries ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:AbstractAtomicTimeseries.observationProperty ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:AbstractAtomicTimeseries.uom ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:AbstractAtomicTimeseries.observationProperty ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        dyn:AbstractTimeseries ;
    owl:disjointWith dyn:CompositeTimeseries ;
    skos:definition "AbstractAtomicTimeseries represents the attributes and relationships that are common to all kinds of atomic timeseries (GenericTimeseries, TabulatedFileTimeseries, StandardFileTimeseries). An atomic timeseries represents time-varying data of a specific data type for a single contiguous time interval."@en .

dyn:Dynamizer a owl:Class ;
    rdfs:label "Dynamizer"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass time:TemporalPosition ;
            owl:onProperty dyn:Dynamizer.startTime ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:Dynamizer.attributeRef ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:SensorConnection ;
            owl:onProperty dyn:Dynamizer.sensorConnection ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:Dynamizer.attributeRef ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass time:TemporalPosition ;
            owl:onProperty dyn:Dynamizer.endTime ],
        [ a owl:Restriction ;
            owl:allValuesFrom time:TemporalPosition ;
            owl:onProperty dyn:Dynamizer.startTime ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass dyn:AbstractTimeseries ;
            owl:onProperty dyn:Dynamizer.dynamicData ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass dyn:SensorConnection ;
            owl:onProperty dyn:Dynamizer.sensorConnection ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:AbstractTimeseries ;
            owl:onProperty dyn:Dynamizer.dynamicData ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfDynamizer ;
            owl:onProperty dyn:Dynamizer.adeOfDynamizer ],
        [ a owl:Restriction ;
            owl:allValuesFrom time:TemporalPosition ;
            owl:onProperty dyn:Dynamizer.endTime ],
        core:AbstractDynamizer ;
    skos:definition "A Dynamizer is an object that injects timeseries data for an individual attribute of the city object in which it is included. The timeseries data overrides the static value of the referenced city object attribute in order to represent dynamic (time-dependent) variations of its value."@en .

dyn:TimeseriesComponent a owl:Class ;
    rdfs:label "TimeseriesComponent"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom dyn:AbstractTimeseries ;
            owl:onProperty dyn:TimeseriesComponent.timeseries ],
        [ a owl:Restriction ;
            owl:onClass dyn:AbstractTimeseries ;
            owl:onProperty dyn:TimeseriesComponent.timeseries ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom time:TemporalDuration ;
            owl:onProperty dyn:TimeseriesComponent.additionalGap ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass time:TemporalDuration ;
            owl:onProperty dyn:TimeseriesComponent.additionalGap ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty dyn:TimeseriesComponent.repetitions ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:integer ;
            owl:onProperty dyn:TimeseriesComponent.repetitions ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ] ;
    skos:definition "TimeseriesComponent represents an element of a CompositeTimeseries."@en .

dyn:TimeseriesTypeValue a rdfs:Datatype ;
    rdfs:label "TimeseriesTypeValue"@en ;
    owl:equivalentClass [ a rdfs:Datatype ;
            owl:oneOf ( "int" "double" "string" "geometry" "uri" "bool" "implicitGeometry" "appearance" ) ] ;
    skos:definition "TimeseriesTypeValue enumerates the possible value types for GenericTimeseries and TimeValuePair."@en .

dyn:AbstractTimeseries a owl:Class ;
    rdfs:label "AbstractTimeseries"@en ;
    iso19150-2:isAbstract true ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass time:TemporalPosition ;
            owl:onProperty dyn:AbstractTimeseries.firstTimestamp ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass time:TemporalPosition ;
            owl:onProperty dyn:AbstractTimeseries.lastTimestamp ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfAbstractTimeseries ;
            owl:onProperty dyn:AbstractTimeseries.adeOfAbstractTimeseries ],
        [ a owl:Restriction ;
            owl:allValuesFrom time:TemporalPosition ;
            owl:onProperty dyn:AbstractTimeseries.firstTimestamp ],
        [ a owl:Restriction ;
            owl:allValuesFrom time:TemporalPosition ;
            owl:onProperty dyn:AbstractTimeseries.lastTimestamp ],
        core:AbstractFeature ;
    skos:definition "AbstractTimeseries is the abstract superclass representing any type of timeseries data."@en .

dyn:TimeValuePair a owl:Class ;
    rdfs:label "TimeValuePair"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:allValuesFrom core:ImplicitGeometry ;
            owl:onProperty dyn:TimeValuePair.implicitGeometryValue ],
        [ a owl:Restriction ;
            owl:onClass time:TemporalPosition ;
            owl:onProperty dyn:TimeValuePair.timestamp ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:anyURI ;
            owl:onProperty dyn:TimeValuePair.uriValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:integer ;
            owl:onProperty dyn:TimeValuePair.intValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom core:AbstractAppearance ;
            owl:onProperty dyn:TimeValuePair.appearanceValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass core:AbstractAppearance ;
            owl:onProperty dyn:TimeValuePair.appearanceValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TimeValuePair.stringValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:anyURI ;
            owl:onProperty dyn:TimeValuePair.uriValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:boolean ;
            owl:onProperty dyn:TimeValuePair.boolValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass gmlowl:AbstractGeometry ;
            owl:onProperty dyn:TimeValuePair.geometryValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:boolean ;
            owl:onProperty dyn:TimeValuePair.boolValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:double ;
            owl:onProperty dyn:TimeValuePair.doubleValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:double ;
            owl:onProperty dyn:TimeValuePair.doubleValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TimeValuePair.stringValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty dyn:TimeValuePair.intValue ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass core:ImplicitGeometry ;
            owl:onProperty dyn:TimeValuePair.implicitGeometryValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom gmlowl:AbstractGeometry ;
            owl:onProperty dyn:TimeValuePair.geometryValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom time:TemporalPosition ;
            owl:onProperty dyn:TimeValuePair.timestamp ] ;
    skos:definition "A TimeValuePair represents a value that is valid for a given timepoint. For each TimeValuePair, only one of the value properties can be used mutually exclusive. Which value property has to be provided depends on the selected value type in the GenericTimeSeries feature, in which the TimeValuePair is included."@en .

dyn:TabulatedFileTimeseries a owl:Class ;
    rdfs:label "TabulatedFileTimeseries"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.idValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.fieldSeparator ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.timeColumnName ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.timeColumnNo ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.decimalSymbol ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.decimalSymbol ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:TimeseriesTypeValue ;
            owl:onProperty dyn:TabulatedFileTimeseries.valueType ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty dyn:TabulatedFileTimeseries.fileType ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.idColumnName ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.fieldSeparator ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty dyn:TabulatedFileTimeseries.mimeType ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty dyn:TabulatedFileTimeseries.mimeType ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.numberOfHeaderLines ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:anyURI ;
            owl:onProperty dyn:TabulatedFileTimeseries.fileLocation ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.numberOfHeaderLines ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.valueColumnNo ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.timeColumnName ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.valueColumnNo ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.idColumnName ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.idColumnNo ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.idValue ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.idColumnNo ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.valueColumnName ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:anyURI ;
            owl:onProperty dyn:TabulatedFileTimeseries.fileLocation ],
        [ a owl:Restriction ;
            owl:onClass owl:Class ;
            owl:onProperty dyn:TabulatedFileTimeseries.fileType ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:integer ;
            owl:onProperty dyn:TabulatedFileTimeseries.timeColumnNo ],
        [ a owl:Restriction ;
            owl:onDataRange dyn:TimeseriesTypeValue ;
            owl:onProperty dyn:TabulatedFileTimeseries.valueType ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom dyn:ADEOfTabulatedFileTimeseries ;
            owl:onProperty dyn:TabulatedFileTimeseries.adeOfTabulatedFileTimeseries ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:TabulatedFileTimeseries.valueColumnName ],
        dyn:AbstractAtomicTimeseries ;
    skos:definition "A TabulatedFileTimeseries represents time-varying data of a specific data type for a single contiguous time interval. The data is provided in an external file referenced in the TabulatedFileTimeseries. The file contains table structured data using an appropriate file format such as comma-separated values (CSV), Microsoft Excel (XLSX) or Google Spreadsheet. The timestamps and the values are given in specific columns of the table. Each row represents a single time-value-pair. A subset of rows can be selected using the idColumn and idValue attributes."@en .

dyn:SensorConnection a owl:Class ;
    rdfs:label "SensorConnection"@en ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:anyURI ;
            owl:onProperty dyn:SensorConnection.baseURL ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.mqttTopic ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.sensorName ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.linkToSensorDescription ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass owl:Class ;
            owl:onProperty dyn:SensorConnection.authType ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.observationID ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.linkToObservation ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty dyn:SensorConnection.authType ],
        [ a owl:Restriction ;
            owl:allValuesFrom core:AbstractCityObject ;
            owl:onProperty dyn:SensorConnection.sensorLocation ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.mqttServer ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.mqttServer ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:anyURI ;
            owl:onProperty dyn:SensorConnection.baseURL ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.datastreamID ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.observationProperty ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.observationID ],
        [ a owl:Restriction ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.observationProperty ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.sensorID ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.datastreamID ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.linkToObservation ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.sensorName ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.sensorID ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.uom ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onClass core:AbstractCityObject ;
            owl:onProperty dyn:SensorConnection.sensorLocation ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.mqttTopic ],
        [ a owl:Restriction ;
            owl:onClass owl:Class ;
            owl:onProperty dyn:SensorConnection.connectionType ;
            owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ],
        [ a owl:Restriction ;
            owl:allValuesFrom owl:Class ;
            owl:onProperty dyn:SensorConnection.connectionType ],
        [ a owl:Restriction ;
            owl:allValuesFrom xsd:string ;
            owl:onProperty dyn:SensorConnection.uom ],
        [ a owl:Restriction ;
            owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
            owl:onDataRange xsd:string ;
            owl:onProperty dyn:SensorConnection.linkToSensorDescription ] ;
    skos:definition "A SensorConnection provides all details that are required to retrieve a specific datastream from an external sensor web service. This data type comprises the service type (e.g. OGC SensorThings API, OGC Sensor Observation Services, MQTT, proprietary platforms), the URL of the sensor service, the identifier for the sensor or thing, and its observed property as well as information about the required authentication method."@en .

[] a owl:AllDisjointClasses ;
    owl:members ( dyn:GenericTimeseries dyn:StandardFileTimeseries dyn:TabulatedFileTimeseries ) .

