<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="https://paper.9bon.org/ontologies/sensorthings/1.3" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:terms="http://purl.org/dc/terms/" xml:base="https://paper.9bon.org/ontologies/sensorthings/1.3">
    <owl:Ontology rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3">
        <owl:versionIRI rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3/version1"/>
        <dc:creator>BonhyeonGu</dc:creator>
        <terms:created rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2023-08-05T12:09:53+09:00</terms:created>
        <terms:license>Creative Commons NoDerivatives (CC BY-ND)</terms:license>
        <terms:modified>2026-06-22T12:00:00+09:00</terms:modified>
        <rdfs:comment xml:lang="en">An OWL MultiSensor ontology derived from the Sensing part of the OGC SensorThings API for observation-metadata-centric digital twins in smart cities. It reifies the measurement result and its metadata (ObservedProperty, UnitOfMeasurement, ObservationDataType) as classes and adds the IndexPoint construct for semantic metadata aggregation over MultiDatastream observations.</rdfs:comment>
        <terms:bibliographicCitation>B.-H. Gu, H.-K. Lam, T.-K. Kim, S.-Y. Ok, and S.-H. Lee, "Observation-Metadata-Centric Digital Twin Ontology for Heterogeneous MultiSensor Data in Smart Cities," IEEE Internet of Things Journal, vol. 13, no. 9, pp. 18893-18908, May 2026, doi: 10.1109/JIOT.2026.3661277.</terms:bibliographicCitation>
        <rdfs:seeAlso rdf:resource="https://doi.org/10.1109/JIOT.2026.3661277"/>
    </owl:Ontology>
    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Annotation properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->
    <!-- http://purl.org/dc/elements/1.1/creator -->
    <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/creator"/>
    <!-- http://purl.org/dc/elements/1.1/description -->
    <owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/description"/>
    <!-- http://purl.org/dc/terms/created -->
    <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/created"/>
    <!-- http://purl.org/dc/terms/license -->
    <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/license"/>
    <!-- http://purl.org/dc/terms/modified -->
    <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/modified"/>
    <!-- http://purl.org/dc/terms/bibliographicCitation -->
    <owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/bibliographicCitation"/>
    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasActuator -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasActuator">
        <rdfs:label xml:lang="en">has Actuator</rdfs:label>
        <rdfs:comment xml:lang="en">Links a TaskingCapability to the Actuator it controls, exactly one. STA UML basis: the TaskingCapability-to-Actuator navigation (Tasking Core, Part 2).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isActuatorOfCapability"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasCapabilityParameter -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasCapabilityParameter">
        <rdfs:label xml:lang="en">has Capability Parameter</rdfs:label>
        <rdfs:comment xml:lang="en">Links a TaskingCapability to the taskable parameters it exposes (CapabilityParameter). STA UML basis: reifies the entries of a TaskingCapability's taskingParameters (Tasking Core, Part 2); introduced by this ontology.</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isParameterOfCapability"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasFeatureOfInterest -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasFeatureOfInterest">
        <rdfs:label xml:lang="en">has Feature of Interest</rdfs:label>
        <rdfs:comment xml:lang="en">Links an Observation to the FeatureOfInterest it concerns, exactly one. STA UML basis: the Observation-to-FeatureOfInterest navigation (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isFeatureOfInterestByObservation"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasHistoricalLocation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasHistoricalLocation">
        <rdfs:label xml:lang="en">has Historical Location</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Thing to its time-stamped HistoricalLocations. STA UML basis: the Thing-to-HistoricalLocations navigation (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isHistoricalLocationByThing"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasIndexPoint -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasIndexPoint">
        <rdfs:label xml:lang="en">has Index Point</rdfs:label>
        <rdfs:comment xml:lang="en">Links a MultiDatastream to its IndexPoints, the nodes used for semantic metadata aggregation. Novel construct: no STA UML counterpart.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasLocation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasLocation">
        <rdfs:label xml:lang="en">has Location</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Thing or HistoricalLocation to its Location entity. Distinct from hasGeoLocation, which targets the reified geometry value. STA UML basis: the Thing-to-Locations and HistoricalLocation-to-Location navigations (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
        <rdfs:comment>Is a different property than &#8220;hasGeoLocation&#8221; For more information, see 'location' and 'Location' in the UML of the 'OGC Sensorthings API'.</rdfs:comment>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasMultiDatastream -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasMultiDatastream">
        <rdfs:label xml:lang="en">has Multi-Datastream</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Thing to the MultiDatastreams it owns. STA UML basis: the Thing-to-MultiDatastreams navigation (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isMultiDatastreamByThing"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservation">
        <rdfs:label xml:lang="en">has Observation</rdfs:label>
        <rdfs:comment xml:lang="en">Links a MultiDatastream to its Observations. STA UML basis: the MultiDatastream-to-Observations navigation (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationOfMultiDatastream"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservedProperty -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservedProperty">
        <rdfs:label xml:lang="en">has Observed Property</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Result to the ObservedProperty it measures; one of the three explicit metadata links that replace STA's index alignment. STA UML basis: reifies the index alignment between an Observation result value and the MultiDatastream's ObservedProperties (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservedPropertyByResult"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasSensor -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasSensor">
        <rdfs:label xml:lang="en">has Sensor</rdfs:label>
        <rdfs:comment xml:lang="en">Links a MultiDatastream to the Sensor that produces it, exactly one. STA UML basis: the MultiDatastream-to-Sensor navigation (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isSensorByMultiDatastream"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasTask -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasTask">
        <rdfs:label xml:lang="en">has Task</rdfs:label>
        <rdfs:comment xml:lang="en">Links a TaskingCapability to the Tasks issued against it. STA UML basis: the TaskingCapability-to-Tasks navigation (Tasking Core, Part 2).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskOfCapability"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Task"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasTaskPayload -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasTaskPayload">
        <rdfs:label xml:lang="en">has Task Payload</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Task to the parameter values supplied for it (TaskPayload). STA UML basis: reifies a Task's taskingParameters (Tasking Core, Part 2); introduced by this ontology.</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskPayloadOf"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Task"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskPayload"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasTaskingCapability -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasTaskingCapability">
        <rdfs:label xml:lang="en">has Tasking Capability</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Thing, or its Actuator, to its TaskingCapabilities. STA UML basis: the Thing-to-TaskingCapabilities and Actuator-to-TaskingCapabilities navigations (Tasking Core, Part 2).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskingCapabilityOf"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasThing -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasThing">
        <rdfs:label xml:lang="en">has Thing</rdfs:label>
        <rdfs:comment xml:lang="en">Associates a resource with its STA Thing. In the geospatial integration it links a CityGML spatial unit, such as a Room, to the sensor Thing installed there. STA UML basis: the reverse navigation to the Thing entity (Sensing); extended here to bridge a CityGML spatial unit to its sensor Thing.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasFeature -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasFeature">
        <rdfs:label xml:lang="en">has Feature</rdfs:label>
        <rdfs:comment xml:lang="en">Links a FeatureOfInterest to its reified GeoJSON geometry value (Feature). Corresponds to STA's lowercase feature property. STA UML basis: the feature value (GeoJSON geometry) of a FeatureOfInterest (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Feature"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasGeoLocation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasGeoLocation">
        <rdfs:label xml:lang="en">has Geo-Location</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Location to its reified GeoJSON geometry value (GeoLocation). Value-level counterpart of hasLocation; corresponds to STA's lowercase location property. STA UML basis: the location value (GeoJSON geometry) of a Location (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#GeoLocation"/>
        <rdfs:comment>Is a different property than &#8220;hasLocation&#8221; For more information, see 'location' and 'Location' in the UML of the 'OGC Sensorthings API'.</rdfs:comment>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservationDataType -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservationDataType">
        <rdfs:label xml:lang="en">has Observation Data Type</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Result to its observation data-type metadata. STA UML basis: reifies the index alignment between an Observation result value and the MultiDatastream's multiObservationDataTypes (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationDataTypeByResult"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationDataType"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasResult -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasResult">
        <rdfs:label xml:lang="en">has Result</rdfs:label>
        <rdfs:comment xml:lang="en">Links an Observation to its reified Result individuals, one per measured property. STA UML basis: reifies the result of an Observation (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isResultByObservation"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasUnitOfMeasurement -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasUnitOfMeasurement">
        <rdfs:label xml:lang="en">has Unit of Measurement</rdfs:label>
        <rdfs:comment xml:lang="en">Links a Result to its UnitOfMeasurement metadata. STA UML basis: reifies the index alignment between an Observation result value and the (Multi)Datastream's unitOfMeasurement(s) (Sensing).</rdfs:comment>
        <owl:inverseOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isUnitOfMeasurementByResult"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isActuatorOfCapability -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isActuatorOfCapability">
        <rdfs:label xml:lang="en">is Actuator of Capability</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Actuator that a TaskingCapability controls. Inverse of hasActuator. STA UML basis: inverse of the TaskingCapability-to-Actuator navigation (Tasking Core, Part 2).</rdfs:comment>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isFeatureOfInterestByObservation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isFeatureOfInterestByObservation">
        <rdfs:label xml:lang="en">is Feature of Interest by Observation</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies an Observation about a FeatureOfInterest. Inverse of hasFeatureOfInterest. STA UML basis: inverse of the Observation-to-FeatureOfInterest navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isHistoricalLocationByThing -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isHistoricalLocationByThing">
        <rdfs:label xml:lang="en">is Historical Location by Thing</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Thing of a HistoricalLocation. Inverse of hasHistoricalLocation. STA UML basis: inverse of the Thing-to-HistoricalLocations navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isIndexPointByMultiDatastream -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isIndexPointByMultiDatastream">
        <rdfs:label xml:lang="en">is Index Point by Multi-Datastream</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the single MultiDatastream an IndexPoint aggregates. Novel construct: no STA UML counterpart.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isLocationByHistoricalLocation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isLocationByHistoricalLocation">
        <rdfs:label xml:lang="en">is Location by Historical Location</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the HistoricalLocation a Location belongs to. STA UML basis: inverse of the HistoricalLocation-to-Location navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isLocationByThing -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isLocationByThing">
        <rdfs:label xml:lang="en">is Location by Thing</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Thing a Location belongs to. STA UML basis: inverse of the Thing-to-Locations navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isMultiDatastreamByThing -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isMultiDatastreamByThing">
        <rdfs:label xml:lang="en">is Multi-Datastream by Thing</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the owning Thing of a MultiDatastream. Inverse of hasMultiDatastream. STA UML basis: inverse of the Thing-to-MultiDatastreams navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationOfMultiDatastream -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationOfMultiDatastream">
        <rdfs:label xml:lang="en">is Observation of Multi-Datastream</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the MultiDatastream of an Observation. Inverse of hasObservation. STA UML basis: inverse of the MultiDatastream-to-Observations navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isObservedPropertyByResult -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservedPropertyByResult">
        <rdfs:label xml:lang="en">is Observed Property by Result</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies a Result described by an ObservedProperty. Inverse of hasObservedProperty. STA UML basis: inverse of the reified Result-to-ObservedProperty link (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isParameterOfCapability -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isParameterOfCapability">
        <rdfs:label xml:lang="en">is Parameter of Capability</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the TaskingCapability a CapabilityParameter belongs to. Inverse of hasCapabilityParameter. STA UML basis: introduced by this ontology over a TaskingCapability's taskingParameters (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isPointedToByIndexPoint -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isPointedToByIndexPoint">
        <rdfs:label xml:lang="en">is pointed to by Index Point</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the IndexPoint that aggregates a given metadata individual (an ObservationMetadata) or Result. Conceptual inverse of the pointTo* properties. Novel construct: no STA UML counterpart.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isSensorByMultiDatastream -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isSensorByMultiDatastream">
        <rdfs:label xml:lang="en">is Sensor by Multi-Datastream</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the MultiDatastream a Sensor produces. Inverse of hasSensor. STA UML basis: inverse of the MultiDatastream-to-Sensor navigation (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskOfCapability -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskOfCapability">
        <rdfs:label xml:lang="en">is Task of Capability</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the TaskingCapability a Task was issued against. Inverse of hasTask. STA UML basis: inverse of the TaskingCapability-to-Tasks navigation (Tasking Core, Part 2).</rdfs:comment>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Task"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskPayloadOf -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskPayloadOf">
        <rdfs:label xml:lang="en">is Task Payload of</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Task a TaskPayload belongs to. Inverse of hasTaskPayload. STA UML basis: introduced by this ontology over a Task's taskingParameters (Tasking Core, Part 2).</rdfs:comment>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskPayload"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Task"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskingCapabilityOf -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskingCapabilityOf">
        <rdfs:label xml:lang="en">is Tasking Capability of</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Thing a TaskingCapability belongs to. Inverse of hasTaskingCapability. STA UML basis: inverse of the Thing-to-TaskingCapabilities navigation (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isGeoLocationByLocation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isGeoLocationByLocation">
        <rdfs:label xml:lang="en">is Geo-Location by Location</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Location a GeoLocation value belongs to. STA UML basis: inverse of the Location location-value link (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#GeoLocation"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationDataTypeByResult -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationDataTypeByResult">
        <rdfs:label xml:lang="en">is Observation Data Type by Result</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies a Result that uses an ObservationDataType. Inverse of hasObservationDataType. STA UML basis: inverse of the reified Result-to-data-type link (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationDataType"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isResultByObservation -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isResultByObservation">
        <rdfs:label xml:lang="en">is Result by Observation</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies the Observation a Result belongs to. Inverse of hasResult. STA UML basis: inverse of the Observation result reification (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#isUnitOfMeasurementByResult -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#isUnitOfMeasurementByResult">
        <rdfs:label xml:lang="en">is Unit of Measurement by Result</rdfs:label>
        <rdfs:comment xml:lang="en">Identifies a Result that uses a UnitOfMeasurement. Inverse of hasUnitOfMeasurement. STA UML basis: inverse of the reified Result-to-unit link (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#InverseFunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#pointToMetadata -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToMetadata">
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata"/>
        <rdfs:label xml:lang="en">points to Metadata</rdfs:label>
        <rdfs:comment xml:lang="en">Super-property of the three IndexPoint metadata pointers pointToObservedProperty, pointToUnitOfMeasurement and pointToObservationDataType. It supports the restriction IndexPoint subClassOf pointToMetadata exactly 1 ObservationMetadata, stating that each IndexPoint is keyed by exactly one metadata individual, a constraint that cannot be expressed per metadata type. Novel construct: no STA UML counterpart.</rdfs:comment>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#pointToObservedProperty -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToObservedProperty">
        <rdfs:subPropertyOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToMetadata"/>
        <rdfs:label xml:lang="en">points to Observed Property</rdfs:label>
        <rdfs:comment xml:lang="en">Links an IndexPoint to the ObservedProperty metadata individual it aggregates, when an ObservedProperty is the shared metadata for this index. Novel construct: no STA UML counterpart; sub-property of pointToMetadata.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#pointToUnitOfMeasurement -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToUnitOfMeasurement">
        <rdfs:subPropertyOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToMetadata"/>
        <rdfs:label xml:lang="en">points to Unit of Measurement</rdfs:label>
        <rdfs:comment xml:lang="en">Links an IndexPoint to the UnitOfMeasurement metadata individual it aggregates, when a UnitOfMeasurement is the shared metadata for this index. Novel construct: no STA UML counterpart; sub-property of pointToMetadata.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#pointToObservationDataType -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToObservationDataType">
        <rdfs:subPropertyOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToMetadata"/>
        <rdfs:label xml:lang="en">points to Observation Data Type</rdfs:label>
        <rdfs:comment xml:lang="en">Links an IndexPoint to the ObservationDataType metadata individual it aggregates, when an ObservationDataType is the shared metadata for this index. Novel construct: no STA UML counterpart; sub-property of pointToMetadata.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationDataType"/>
    </owl:ObjectProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#pointToResult -->
    <owl:ObjectProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToResult">
        <rdfs:label xml:lang="en">points to Result</rdfs:label>
        <rdfs:comment xml:lang="en">Links an IndexPoint to every Result that shares its aggregated metadata, so all like-typed results are reachable from one node. Novel construct: no STA UML counterpart.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AsymmetricProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint"/>
        <rdfs:range rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
    </owl:ObjectProperty>
    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Data properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasDataType -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDataType">
        <rdfs:label xml:lang="en">has Data Type</rdfs:label>
        <rdfs:comment xml:lang="en">Data type of a taskable parameter (CapabilityParameter). STA UML basis: the data-type facet of an entry in a TaskingCapability's taskingParameters, which STA encodes with the SWE Common data model (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasMaxValue -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasMaxValue">
        <rdfs:label xml:lang="en">has Max Value</rdfs:label>
        <rdfs:comment xml:lang="en">Upper bound of the allowed range of a taskable parameter (CapabilityParameter). STA UML basis: a SWE Common AllowedValues constraint within a TaskingCapability's taskingParameters (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasMinValue -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasMinValue">
        <rdfs:label xml:lang="en">has Min Value</rdfs:label>
        <rdfs:comment xml:lang="en">Lower bound of the allowed range of a taskable parameter (CapabilityParameter). STA UML basis: a SWE Common AllowedValues constraint within a TaskingCapability's taskingParameters (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasParameterName -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasParameterName">
        <rdfs:label xml:lang="en">has Parameter Name</rdfs:label>
        <rdfs:comment xml:lang="en">Name of a taskable parameter (CapabilityParameter). STA UML basis: the name of an entry in a TaskingCapability's taskingParameters (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskPayload"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasTargetValue -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasTargetValue">
        <rdfs:label xml:lang="en">has Target Value</rdfs:label>
        <rdfs:comment xml:lang="en">Value supplied for a parameter when a Task is issued (TaskPayload). STA UML basis: a value in a Task's taskingParameters key-value block (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskPayload"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasCoordinates -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasCoordinates">
        <rdfs:label xml:lang="en">has coordinates</rdfs:label>
        <rdfs:comment xml:lang="en">Coordinate payload of a reified GeoJSON geometry value, a GeoLocation or a Feature. STA UML basis: the coordinates member of the GeoJSON geometry in a Location location or FeatureOfInterest feature (GeoJSON per RFC 7946, referenced by STA Sensing); not a scalar STA field.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#GeoLocation"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasCreationTime -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasCreationTime">
        <rdfs:label xml:lang="en">has Creation Time</rdfs:label>
        <rdfs:comment xml:lang="en">Time at which a Task was created, assigned by the service. STA UML basis: the creationTime field of the Task entity (Tasking Core, Part 2).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Task"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasDefinition -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDefinition">
        <rdfs:label xml:lang="en">has definition</rdfs:label>
        <rdfs:comment xml:lang="en">Canonical definition or URI of an ObservedProperty or UnitOfMeasurement, per STA's definition field. STA UML basis: the definition field of ObservedProperty and of the unitOfMeasurement complex type (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription">
        <rdfs:label xml:lang="en">has description</rdfs:label>
        <rdfs:comment xml:lang="en">Free-text description of a sensing entity. Corresponds to STA's description field. STA UML basis: the description field shared across STA entities (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasEncodingType -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasEncodingType">
        <rdfs:label xml:lang="en">has encoding type</rdfs:label>
        <rdfs:comment xml:lang="en">Encoding type of a resource's content or geometry, for example a GeoJSON media type, per STA. STA UML basis: the encodingType field of Sensor, Location and FeatureOfInterest (Sensing) and of Actuator (Tasking).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasMetadata -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasMetadata">
        <rdfs:label xml:lang="en">has metadata</rdfs:label>
        <rdfs:comment xml:lang="en">Metadata reference or descriptor of a Sensor, per STA's metadata field. STA UML basis: the metadata field of the Sensor entity (Sensing) and the Actuator entity (Tasking).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasName -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName">
        <rdfs:label xml:lang="en">has name</rdfs:label>
        <rdfs:comment xml:lang="en">Human-readable name string of a sensing entity such as a Thing, Sensor, MultiDatastream, ObservedProperty, Location, FeatureOfInterest or UnitOfMeasurement. Corresponds to STA's name field. STA UML basis: the name field shared across STA entities (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasPhenomenonTime -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasPhenomenonTime">
        <rdfs:label xml:lang="en">has phenomenon time</rdfs:label>
        <rdfs:comment xml:lang="en">Time at which an Observation's observed phenomenon occurred, per STA. STA UML basis: the phenomenonTime field of the Observation entity (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasResultTime -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasResultTime">
        <rdfs:label xml:lang="en">has result time</rdfs:label>
        <rdfs:comment xml:lang="en">Time at which an Observation's result was produced, per STA. STA UML basis: the resultTime field of the Observation entity (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasSymbol -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasSymbol">
        <rdfs:label xml:lang="en">has symbol</rdfs:label>
        <rdfs:comment xml:lang="en">Unit symbol of a UnitOfMeasurement, for example the symbol for degrees Celsius. STA UML basis: the symbol member of the unitOfMeasurement complex type (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#token"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasTime -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasTime">
        <rdfs:label xml:lang="en">has time</rdfs:label>
        <rdfs:comment xml:lang="en">Timestamp of a HistoricalLocation. STA UML basis: the time field of the HistoricalLocation entity (Sensing).</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasType -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasType">
        <rdfs:label xml:lang="en">has type</rdfs:label>
        <rdfs:comment xml:lang="en">GeoJSON geometry type of a reified geometry value, a GeoLocation or a Feature, for example Point or Polygon. STA UML basis: the type member of the GeoJSON geometry in a Location location or FeatureOfInterest feature (GeoJSON per RFC 7946, referenced by STA Sensing).</rdfs:comment>
        <rdfs:domain>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Feature"/>
                    <rdf:Description rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#GeoLocation"/>
                </owl:unionOf>
            </owl:Class>
        </rdfs:domain>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#hasValue -->
    <owl:DatatypeProperty rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#hasValue">
        <rdfs:label xml:lang="en">has value</rdfs:label>
        <rdfs:comment xml:lang="en">Literal measurement value carried by a Result. Separating the value here lets two results with identical literals remain distinct individuals. STA UML basis: the result value of an Observation (Sensing), separated here as a literal on the reified Result.</rdfs:comment>
        <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
        <rdfs:domain rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
        <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
    </owl:DatatypeProperty>
    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator">
        <rdfs:label xml:lang="en">Actuator</rdfs:label>
        <rdfs:comment xml:lang="en">A taskable actuating device controlled through the Tasking part of the model, described by hasName, hasDescription, hasEncodingType and hasMetadata. STA UML basis: the Actuator entity (Tasking Core, Part 2).</rdfs:comment>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#CapabilityParameter">
        <rdfs:label xml:lang="en">Capability Parameter</rdfs:label>
        <rdfs:comment xml:lang="en">One taskable parameter exposed by a TaskingCapability, giving its name (hasParameterName), data type (hasDataType) and allowed range (hasMinValue and hasMaxValue). STA UML basis: reifies one entry of a TaskingCapability's taskingParameters, which STA encodes as a SWE Common data record (Tasking Core, Part 2); introduced by this ontology, with no standalone STA entity.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasParameterName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest">
        <rdfs:label xml:lang="en">Feature of Interest</rdfs:label>
        <rdfs:comment xml:lang="en">The real-world feature an Observation is about, following the STA Sensing model. Described by hasName, hasDescription and hasEncodingType, with its structured GeoJSON geometry reified into the Feature class. STA UML basis: the FeatureOfInterest entity (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasFeature"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Feature"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasEncodingType"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#HistoricalLocation">
        <rdfs:label xml:lang="en">Historical Location</rdfs:label>
        <rdfs:comment xml:lang="en">An STA Sensing entity recording a time-stamped previous Location of a Thing, enabling location history. Carries hasTime and links to its Thing and Location. STA UML basis: the HistoricalLocation entity (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasLocation"/>
                <owl:someValuesFrom rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Location"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isHistoricalLocationByThing"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasTime"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#IndexPoint">
        <rdfs:label xml:lang="en">Index Point</rdfs:label>
        <rdfs:comment xml:lang="en">The model's novel semantic-metadata-aggregation construct. For one MultiDatastream it consolidates each distinct metadata individual (an ObservationMetadata: an ObservedProperty, UnitOfMeasurement or ObservationDataType) into a single node that points to every Result sharing that metadata, so the complete set of like-typed results is retrievable without iterating over all Observations. Linked via hasIndexPoint, pointToResult (at least one), and exactly one metadata key through pointToMetadata, realized by one of its sub-properties pointToObservedProperty / pointToUnitOfMeasurement / pointToObservationDataType. Novel construct: no STA UML counterpart.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToResult"/>
                <owl:minQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minQualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isIndexPointByMultiDatastream"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#pointToMetadata"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Location -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Location">
        <rdfs:label xml:lang="en">Location</rdfs:label>
        <rdfs:comment xml:lang="en">The geographic location of a Thing, following the STA Sensing model. Descriptive fields are given by data properties, while the structured GeoJSON geometry value is reified into the separate GeoLocation class. Distinct from the geometry value: compare hasLocation with hasGeoLocation. STA UML basis: the Location entity (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasEncodingType"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream">
        <rdfs:label xml:lang="en">Multi-Datastream</rdfs:label>
        <rdfs:comment xml:lang="en">The central observation grouping of the model: a possibly virtual MultiSensor stream that produces several semantically distinct measurement values within a single Observation. Adopted from STA as the canonical pattern that subsumes the single-property Datastream, where a Datastream is the special case of exactly one ObservedProperty. Links a Thing, a Sensor, its Observations and its IndexPoints. STA UML basis: the MultiDatastream entity of the Sensing MultiDatastream extension, which subsumes the single-property Datastream entity.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasSensor"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isMultiDatastreamByThing"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Observation -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation">
        <rdfs:label xml:lang="en">Observation</rdfs:label>
        <rdfs:comment xml:lang="en">An observation event of a MultiDatastream, time-stamped by hasPhenomenonTime and hasResultTime. In the observation-centric representation a single Observation links to one or more reified Result individuals rather than to a flat array of values. STA UML basis: the Observation entity (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasResult"/>
                <owl:minQualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minQualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Result"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasFeatureOfInterest"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#FeatureOfInterest"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isObservationOfMultiDatastream"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#MultiDatastream"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasPhenomenonTime"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasResultTime"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata">
        <rdfs:label xml:lang="en">Observation Metadata</rdfs:label>
        <rdfs:comment xml:lang="en">Abstract grouping of the three per-Result metadata classes (ObservedProperty, UnitOfMeasurement and ObservationDataType). It gives the pointToMetadata property a single range and lets the model state that each IndexPoint is keyed by exactly one metadata individual regardless of its kind. Named for the paper's observation-metadata-centric design. Novel construct: no STA UML counterpart, and distinct from STA's Sensor.metadata field, which is carried by the data property hasMetadata.</rdfs:comment>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty">
        <rdfs:subClassOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata"/>
        <rdfs:label xml:lang="en">Observed Property</rdfs:label>
        <rdfs:comment xml:lang="en">The phenomenon a measurement quantifies, for example Temperature or Humidity, modeled as a shared metadata class under the rule mapping enumeration-type properties to referenced classes. Carries hasName, hasDefinition and hasDescription, and is reused across results via uniform individual identification so identical semantics map to a single individual. STA UML basis: the ObservedProperty entity (Sensing, Part 1); grouped here under the novel ObservationMetadata superclass.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDefinition"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Root -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Root">
        <rdfs:label xml:lang="en">Root</rdfs:label>
        <rdfs:comment xml:lang="en">Undefined utility class: declared with no data or object properties, no axioms, and no instances in the dataset, and with no OGC SensorThings counterpart. It appears vestigial and is recommended for removal unless a later revision assigns it a role.</rdfs:comment>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Sensor">
        <rdfs:label xml:lang="en">Sensor</rdfs:label>
        <rdfs:comment xml:lang="en">The sensing device or procedure behind a MultiDatastream, following the STA Sensing model. Described by hasName, hasEncodingType and hasMetadata; each MultiDatastream is produced by exactly one Sensor. STA UML basis: the Sensor entity (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasEncodingType"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasMetadata"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Task -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Task">
        <rdfs:label xml:lang="en">Task</rdfs:label>
        <rdfs:comment xml:lang="en">A single tasking request issued against a TaskingCapability, time-stamped by hasCreationTime and carrying its supplied parameter values through a TaskPayload. STA UML basis: the Task entity (Tasking Core, Part 2).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskOfCapability"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasCreationTime"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#dateTimeStamp"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#TaskPayload -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskPayload">
        <rdfs:label xml:lang="en">Task Payload</rdfs:label>
        <rdfs:comment xml:lang="en">The concrete parameter values supplied when a Task is issued, exposed through hasTargetValue. STA UML basis: reifies a Task's taskingParameters, which STA encodes as a SWE Common key-value data block (Tasking Core, Part 2); introduced by this ontology, with no standalone STA entity.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasParameterName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#TaskingCapability">
        <rdfs:label xml:lang="en">Tasking Capability</rdfs:label>
        <rdfs:comment xml:lang="en">Specifies the set of taskable parameters of an Actuator and links the owning Thing, the controlled Actuator and the issued Tasks. STA UML basis: the TaskingCapability entity (Tasking Core, Part 2).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasActuator"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Actuator"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isTaskingCapabilityOf"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Thing -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Thing">
        <rdfs:label xml:lang="en">Thing</rdfs:label>
        <rdfs:comment xml:lang="en">An STA Sensing entity representing a physical or virtual object in the smart-city digital twin, such as a MultiSensor device or, via the room-as-a-Thing view, an indoor space. It groups the Locations, HistoricalLocations and MultiDatastreams associated with that object. STA UML basis: the Thing entity (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDescription"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Feature -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Feature">
        <rdfs:label xml:lang="en">Feature (geometry value)</rdfs:label>
        <rdfs:comment xml:lang="en">Reified GeoJSON geometry value carried by a FeatureOfInterest, holding hasCoordinates and hasType, under the rule mapping a structured data type with fields to a class. Structurally identical to GeoLocation; corresponds to STA's lowercase feature value. STA UML basis: the feature value (GeoJSON geometry) of a FeatureOfInterest (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasCoordinates"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasType"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#GeoLocation -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#GeoLocation">
        <rdfs:label xml:lang="en">Geo-Location (geometry value)</rdfs:label>
        <rdfs:comment xml:lang="en">Reified GeoJSON geometry value carried by a Location, holding hasCoordinates and hasType. Introduced under the UML-to-OWL rule that maps a structured data type with fields to a class with associated data properties. Corresponds to STA's lowercase location value; renamed GeoLocation to avoid colliding with the Location entity. STA UML basis: the location value (GeoJSON geometry) of a Location (Sensing, Part 1).</rdfs:comment>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationDataType -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationDataType">
        <rdfs:subClassOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata"/>
        <rdfs:label xml:lang="en">Observation Data Type</rdfs:label>
        <rdfs:comment xml:lang="en">The observation data-type metadata of a Result, for example OM_Measurement, modeled as a shared class under the enumeration-type-to-class rule. Referenced from a Result via hasObservationDataType; for a MultiDatastream the per-property data types correspond to STA's multiObservationDataTypes array. Renamed from MultiObservationDataType in v1.3: because the result-and-metadata arrays are reified into one individual per Result, each ObservationDataType is singular and STA's array-level "multi" no longer applies. STA UML basis: one element of a MultiDatastream's multiObservationDataTypes array (Sensing); grouped here under the novel ObservationMetadata superclass.</rdfs:comment>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#Result -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#Result">
        <rdfs:label xml:lang="en">Result</rdfs:label>
        <rdfs:comment xml:lang="en">Reified measurement result at the heart of the observation-centric representation. It separates the literal value via hasValue, so two results with identical literals stay distinct, and explicitly links its metadata through hasObservedProperty, hasUnitOfMeasurement and hasObservationDataType, replacing STA's implicit index-aligned arrays. STA UML basis: reifies the result of an Observation (Sensing, Part 1).</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservedProperty"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservedProperty"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasObservationDataType"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationDataType"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasUnitOfMeasurement"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#isResultByObservation"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onClass rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#Observation"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasValue"/>
                <owl:qualifiedCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:qualifiedCardinality>
                <owl:onDataRange rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
    <!-- https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement -->
    <owl:Class rdf:about="https://paper.9bon.org/ontologies/sensorthings/1.3#UnitOfMeasurement">
        <rdfs:subClassOf rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#ObservationMetadata"/>
        <rdfs:label xml:lang="en">Unit of Measurement</rdfs:label>
        <rdfs:comment xml:lang="en">The unit metadata of a Result, for example Degree Celsius or Percent, modeled as a shared class under the enumeration-type-to-class rule. Carries hasName, hasSymbol and hasDefinition and is referenced from a Result via hasUnitOfMeasurement. STA UML basis: the unitOfMeasurement complex field of Datastream/MultiDatastream (Sensing); grouped here under the novel ObservationMetadata superclass.</rdfs:comment>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasDefinition"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasName"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            </owl:Restriction>
        </rdfs:subClassOf>
        <rdfs:subClassOf>
            <owl:Restriction>
                <owl:onProperty rdf:resource="https://paper.9bon.org/ontologies/sensorthings/1.3#hasSymbol"/>
                <owl:someValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#token"/>
            </owl:Restriction>
        </rdfs:subClassOf>
    </owl:Class>
</rdf:RDF>
<!-- Generated by the OWL API (version 4.5.25.2023-02-15T19:15:49Z) https://github.com/owlcs/owlapi -->
