@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix s4syst: <https://saref.etsi.org/saref4syst/> .
@prefix schema: <http://schema.org/> .
@prefix s4city: <https://saref.etsi.org/saref4city/> .
@prefix voaf: <http://purl.org/vocommons/voaf#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix saref: <https://saref.etsi.org/core/> .
@prefix s4wear: <https://saref.etsi.org/saref4wear/> .
@prefix j.0: <http://www.w3.org/XML/1998/namespace/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ssn-system: <http://www.w3.org/ns/ssn/systems/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

dcterms:contributor
    a owl:AnnotationProperty .

dcterms:created
    a owl:AnnotationProperty .

dcterms:creator
    a owl:AnnotationProperty .

dcterms:description
    a owl:AnnotationProperty .

dcterms:issued
    a owl:AnnotationProperty .

dcterms:license
    a owl:AnnotationProperty .

dcterms:modified
    a owl:AnnotationProperty .

dcterms:publisher
    a owl:AnnotationProperty .

dcterms:source
    a owl:AnnotationProperty .

dcterms:title
    a owl:AnnotationProperty .

vann:preferredNamespacePrefix
    a owl:AnnotationProperty .

vann:preferredNamespaceUri
    a owl:AnnotationProperty .

voaf:Vocabulary
    a owl:Class ;
    rdfs:comment "A vocabulary used in the linked data cloud. An instance of voaf:Vocabulary relies on or is used by at least another instance of voaf:Vocabulary."@en ;
    rdfs:label "Vocabulary"@en .

schema:Organization
    a owl:Class ;
    rdfs:comment "An organization."@en ;
    rdfs:label "Organization"@en .

schema:Person
    a owl:Class ;
    rdfs:comment "A person."@en ;
    rdfs:label "Person"@en .

schema:affiliation
    a owl:ObjectProperty ;
    rdfs:comment "An organization that this person is affiliated with. For example, a school/university, a club, or a team."@en ;
    rdfs:label "affiliation"@en .

schema:familyName
    a owl:AnnotationProperty .

schema:givenName
    a owl:AnnotationProperty .

schema:name
    a owl:AnnotationProperty .

<http://www.garcia-castro.com/foaf.rdf#me>
    schema:affiliation <https://www.upm.es/> ;
    schema:familyName "García-Castro" ;
    schema:givenName "Raúl" ;
    a schema:Person, owl:NamedIndividual ;
    rdfs:comment "Raul Garcia Castro"@en ;
    rdfs:label "Raul Garcia Castro"@en .

geo:Feature
    a owl:Class ;
    rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "Feature"@en ;
    rdfs:subClassOf geo:SpatialObject .

geo:Geometry
    a owl:Class ;
    rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "Geometry"@en ;
    rdfs:subClassOf geo:SpatialObject .

geo:SpatialObject
    a owl:Class ;
    rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "Spatial object"@en .

geo:hasGeometry
    a owl:ObjectProperty ;
    rdfs:comment "A spatial representation for a given feature."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "hasGeometry"@en .

geo:sfContains
    a owl:ObjectProperty ;
    rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "sfContains"@en .

geo:sfWithin
    a owl:ObjectProperty ;
    rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "sfWithin"@en .

wgs84:Point
    a owl:Class ;
    rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84."@en ;
    rdfs:isDefinedBy <http://www.w3.org/2003/01/geo/wgs84_pos#> ;
    rdfs:label "Point"@en ;
    rdfs:subClassOf geo:Geometry .

wgs84:location
    a owl:ObjectProperty ;
    rdfs:comment "The relation between something and the point, or other geometrical thing in space, where it is.  For example, the relationship between a radio tower and a Point with a given lat and long. Or a relationship between a park and its outline as a closed arc of points, or a road and its location as a arc (a sequence of points). Clearly in practice there will be limit to the accuracy of any such statement, but one would expect an accuracy appropriate for the size of the object and uses such as mapping."@en ;
    rdfs:isDefinedBy <http://www.w3.org/2003/01/geo/wgs84_pos#> ;
    rdfs:label "location" .

ssn-system:SystemCapability
    a owl:Class ;
    rdfs:comment """Describes normal measurement, actuation, sampling properties such as accuracy, range, precision, etc. of a System under some specified Conditions such as a temperature range.
The capabilities specified here are those that affect the primary purpose of the System, while those in OperatingRange represent the system's normal operating environment, including Conditions that don't affect the Observations or the Actuations."""@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/systems/> ;
    rdfs:label "System capability"@en .

ssn-system:hasSystemCapability
    a owl:ObjectProperty ;
    rdfs:comment "Relation from a System to a SystemCapability describing the capabilities of the System under certain Conditions."@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/systems/> ;
    rdfs:label "has system capability"@en .

foaf:Person
    a owl:Class ;
    rdfs:comment "A person"@en ;
    rdfs:label "Person"@en .

foaf:name
    a owl:AnnotationProperty .

saref:ActuatingFunction
    a owl:Class ;
    rdfs:comment "A function that allows to transmit data to actuators, such as level settings (e.g., temperature) or binary switching (e.g., open/close, on/off)."@en ;
    rdfs:label "Actuating function"@en ;
    rdfs:subClassOf saref:Function .

saref:Actuator
    a owl:Class ;
    rdfs:comment "A device responsible for moving or controlling a mechanism or system by performing an actuating function."@en ;
    rdfs:label "Actuator"@en ;
    rdfs:subClassOf saref:Device .

saref:Device
    a owl:Class ;
    rdfs:comment "A tangible object designed to accomplish a particular task. In order to accomplish this task, the device performs one or more functions. For example, a washing machine is designed to wash (task) and to accomplish this task it performs a start and stop function."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Device"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:allValuesFrom saref:Property ;
        owl:onProperty saref:measuresProperty
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Measurement ;
        owl:onProperty saref:makesMeasurement
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Property ;
        owl:onProperty saref:controlsProperty
    ] .

saref:EventFunction
    a owl:Class ;
    rdfs:comment "A function that allows to notify about some relevant activity; e.g., that a certain threshold value has been exceeded or that some object has moved."@en ;
    rdfs:label "Event function"@en ;
    rdfs:subClassOf saref:Function .

saref:FeatureOfInterest
    a owl:Class ;
    rdfs:comment "A feature of interest represents any real world entity from which a property is measured."@en ;
    rdfs:label "Feature of interest"@en .

saref:Function
    a owl:Class ;
    rdfs:comment "The functionality necessary to accomplish the task for which a device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth."@en ;
    rdfs:label "Function"@en .

saref:Measurement
    a owl:Class ;
    rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Measurement"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onClass saref:UnitOfMeasure ;
        owl:onProperty saref:isMeasuredIn ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:onClass saref:Property ;
        owl:onProperty saref:relatesToProperty ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:FeatureOfInterest ;
        owl:onProperty saref:isMeasurementOf
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Property ;
        owl:onProperty saref:relatesToProperty
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty saref:hasValue
    ], [
        a owl:Restriction ;
        owl:allValuesFrom xsd:dateTime ;
        owl:onProperty saref:hasTimestamp
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:UnitOfMeasure ;
        owl:onProperty saref:isMeasuredIn
    ] .

saref:Property
    a owl:Class ;
    rdfs:comment "A quality of a feature of interest that can be measured; an aspect of a feature of interest that is intrinsic to and cannot exist without the feature."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Property"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:allValuesFrom saref:Measurement ;
        owl:onProperty saref:relatesToMeasurement
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Device ;
        owl:onProperty saref:isMeasuredByDevice
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Device ;
        owl:onProperty saref:isControlledByDevice
    ] .

saref:SensingFunction
    a owl:Class ;
    rdfs:comment "A function that allows to transmit data from sensors, such as measurement values (e.g., temperature) or sensing data (e.g., occupancy)."@en ;
    rdfs:label "Sensing function"@en ;
    rdfs:subClassOf saref:Function .

saref:Sensor
    a owl:Class ;
    rdfs:comment "A device that detects and responds to events or changes in the physical environment such as light, motion, or temperature changes. Further, a device of category saref:Sensor that performs a saref:SensingFunction."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Sensor"@en ;
    rdfs:subClassOf saref:Device .

saref:UnitOfMeasure
    a owl:Class ;
    rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example,  Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \\\"watt\\\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Unit of measure"@en .

saref:consistsOf
    a owl:ObjectProperty ;
    rdfs:comment "A relationship indicating a composite entity that consists of other entities (e.g., a temperature/humidity sensor that consists of a temperature sensor and a humidity sensor)"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "consists of"@en .

saref:controlsProperty
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the property that can be controlled by a certain device."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "controls property"@en .

saref:hasFunction
    a owl:ObjectProperty ;
    rdfs:comment "A relationship identifying the function of a device."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has function"@en ;
    rdfs:range saref:Function .

saref:hasProperty
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between a feature of interest and a property of that feature."@en ;
    rdfs:label "has property"@en .

saref:hasTimestamp
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship stating the timestamp of an entity (e.g. a measurement)."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has timestamp"@en .

saref:hasValue
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power. Note that, even if numeric values are expected to enable reasoning, measurement values could use other datatypes."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has value"@en .

saref:isControlledByDevice
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the devices that can control a certain property."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is controlled by device"@en .

saref:isMeasuredByDevice
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the devices that can measure a certain property."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is measured by device"@en .

saref:isMeasuredIn
    a owl:ObjectProperty ;
    rdfs:comment "A relationship identifying the unit of measure used for a certain entity."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is measured in"@en .

saref:isMeasurementOf
    a owl:ObjectProperty .

saref:makesMeasurement
    a owl:ObjectProperty ;
    rdfs:comment "A relation between a device and the measurements it makes. Such measurement will link together the value of the measurement, its unit of measure and the property to which it relates."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "makes measurement"@en ;
    owl:inverseOf saref:measurementMadeBy .

saref:measurementMadeBy
    a owl:ObjectProperty ;
    rdfs:comment "A relation between a measurement and the device that made it."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "measurement made by"@en .

saref:measuresProperty
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the property that can be measured by a certain device."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "measures property"@en .

saref:relatesToMeasurement
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between a property and the measurements it relates to."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "relates to measurement"@en .

saref:relatesToProperty
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between a measurement and the property it relates to."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "relates to property"@en .

s4city:AdministrativeArea
    a owl:Class ;
    rdfs:comment "An administrative division, unit, entity, area or region, also referred to as a subnational entity, constituent unit, or country subdivision, is a portion of a country or other region delineated for the purpose of administration. (https://en.wikipedia.org/wiki/Administrative_division)."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/saref4city/> ;
    rdfs:label "Administrative area"@en ;
    rdfs:subClassOf geo:Feature .

s4city:CityObject
    a owl:Class ;
    rdfs:comment "Generic class for describing city objects."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/saref4city/> ;
    rdfs:label "City object"@en ;
    rdfs:subClassOf geo:Feature .

s4city:Event
    a owl:Class ;
    rdfs:comment "Temporary and scheduled event, like a festival or competition. (Definition taken from Wikidata)."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/saref4city/> ;
    rdfs:label "Event"@en ;
    rdfs:subClassOf s4wear:Occurrence, [
        a owl:Restriction ;
        owl:allValuesFrom s4city:Facility ;
        owl:onProperty s4city:takesPlaceAtFacility
    ] .

s4city:Facility
    a owl:Class ;
    rdfs:comment "A place, amenity, or piece of equipment provided for a particular purpose. (Definition taken from https://en.oxforddictionaries.com/definition/facility)."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/saref4city/> ;
    rdfs:label "Facility"@en ;
    rdfs:subClassOf geo:Feature .

s4city:takesPlaceAtFacility
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying in which facility and event takes place."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/saref4city/> ;
    rdfs:label "takes place at facility"@en .

s4syst:connectedTo
    a owl:ObjectProperty ;
    rdfs:comment "Links a system to a system it is connected to. Connected systems interact in some way. The exact meaning of \"interact\" is defined by sub properties of s4syst:connectedTo. Property s4syst:connectedTo is symmetric. This property can be qualified using class s4syst:Connection, which connects the two systems. If there is a connection between several systems, then one may infer these systems are pairwise connected."@en ;
    rdfs:label "connected to"@en .

<https://saref.etsi.org/saref4wear/>
    dcterms:created "2019-01-01"^^xsd:date ;
    dcterms:creator <http://www.garcia-castro.com/foaf.rdf#me>, <https://www.linkedin.com/in/maurodragoni/MauroDragoni> ;
    dcterms:description "SAREF4WEAR is an extension of SAREF for Wearables"@en ;
    dcterms:issued "2020-02-01"^^xsd:date ;
    dcterms:license <https://forge.etsi.org/etsi-software-license> ;
    dcterms:modified "2020-06-06"^^xsd:date ;
    dcterms:publisher <https://www.etsi.org/> ;
    dcterms:source <https://saref.etsi.org/sources/saref4wear/> ;
    dcterms:title "SAREF4WEAR: an extension of SAREF for Wearables"@en ;
    vann:preferredNamespacePrefix "s4wear" ;
    vann:preferredNamespaceUri "https://saref.etsi.org/saref4wear/" ;
    a owl:Ontology ;
    rdfs:seeAlso <https://www.etsi.org/deliver/etsi_ts/103400_103499/10341009/01.01.01_60/ts_10341009v010101p.pdf> ;
    owl:versionIRI <https://saref.etsi.org/saref4wear/v1.1.1/> ;
    owl:versionInfo "v1.1.1" .

s4wear:AcousticEmission
    a owl:NamedIndividual, s4wear:EmissionProperty ;
    rdfs:comment "The acoustic emission of the wearable."@en ;
    rdfs:label "Acoustic emission"@en .

s4wear:AirQuality
    a owl:NamedIndividual, s4wear:EnvironmentalProperty ;
    rdfs:comment "The quality of air in the environment."@en ;
    rdfs:label "Air quality"@en .

s4wear:BatteryRemainingTime
    a owl:NamedIndividual, s4wear:ElectricalProperty ;
    rdfs:comment "The time until the battery of the wearable is discharged."@en ;
    rdfs:label "Battery remaining time"@en .

s4wear:BiometricProperty
    a owl:Class ;
    rdfs:comment "Class to group those properties related to the biometric characteristics of wearers."@en ;
    rdfs:label "Biometric property"@en ;
    rdfs:subClassOf s4wear:WearerProperty .

s4wear:CommunicatingFunction
    a owl:Class ;
    rdfs:comment "A function that allows a device to communicate with another device."@en ;
    rdfs:label "Communicating function"@en ;
    rdfs:subClassOf saref:EventFunction .

s4wear:ControllingFunction
    a owl:Class ;
    rdfs:comment "A function that allows to control a device from another device."@en ;
    rdfs:label "Controlling function"@en ;
    rdfs:subClassOf saref:Function .

s4wear:CrowdProperty
    a owl:Class ;
    rdfs:comment "Class to group those properties related to crowds."@en ;
    rdfs:label "Crowd property"@en ;
    rdfs:subClassOf saref:Property .

s4wear:CrowdSize
    a owl:NamedIndividual, s4wear:CrowdProperty ;
    rdfs:comment "The size of a crowd."@en ;
    rdfs:label "Crowd size"@en .

s4wear:ElectricalProperty
    a owl:Class ;
    rdfs:comment "Class to group those electrical properties related to wearables."@en ;
    rdfs:label "Electrical property"@en ;
    rdfs:subClassOf s4wear:WearableProperty .

s4wear:ElectricalSafetyProperty
    a owl:Class ;
    rdfs:comment "Class to group those electrical safety properties related to wearables."@en ;
    rdfs:label "Electrical safety property"@en ;
    rdfs:subClassOf s4wear:WearableProperty .

s4wear:EmissionProperty
    a owl:Class ;
    rdfs:comment "Class to group those emission properties related to wearables."@en ;
    rdfs:label "Emission property"@en ;
    rdfs:subClassOf s4wear:WearableProperty .

s4wear:EnvironmentalProperty
    a owl:Class ;
    rdfs:comment "Class to group those properties related to the environment of a wearer."@en ;
    rdfs:label "Environmental property"@en ;
    rdfs:subClassOf saref:Property .

s4wear:FabricWearable
    a owl:Class ;
    rdfs:comment "A fabric wearable is a fabric integrating the sensors directly into its fibers."@en ;
    rdfs:label "Fabric wearable"@en ;
    rdfs:subClassOf s4wear:TextileBasedWearable .

s4wear:HeartRate
    a owl:NamedIndividual, s4wear:BiometricProperty ;
    rdfs:comment "The heart rate of the wearer."@en ;
    rdfs:label "Heart rate"@en .

s4wear:HeatEmission
    a owl:NamedIndividual, s4wear:EmissionProperty ;
    rdfs:comment "The heat emission of the wearable."@en ;
    rdfs:label "Heat emission"@en .

s4wear:InBodyWearable
    a owl:Class ;
    rdfs:comment "An in-body wearable is a wearable located inside a physical body."@en ;
    rdfs:label "In-body wearable"@en ;
    rdfs:subClassOf [
        a owl:Class ;
        owl:intersectionOf (s4wear:Wearable
            [
                a owl:Restriction ;
                owl:onProperty s4wear:isLocatedIn ;
                owl:someValuesFrom s4wear:Wearer
            ]
        )
    ] .

s4wear:Interface
    a owl:Class ;
    rdfs:comment "An interface is the mechanism with which a device can receive or transmit data to another device."@en ;
    rdfs:label "Interface"@en .

s4wear:LivingOrganism
    a owl:Class ;
    rdfs:comment "A living organism is any entity composed of cells."@en ;
    rdfs:label "Living organism"@en ;
    rdfs:subClassOf geo:Feature, saref:FeatureOfInterest .

s4wear:MemoryStorage
    a owl:Class ;
    rdfs:comment "A memory storage is an hardware component intended to store data within the device."@en ;
    rdfs:label "Memory storage"@en ;
    rdfs:subClassOf saref:Device .

s4wear:NavigatingFunction
    a owl:Class ;
    rdfs:comment "A function that allows a device to provide navigation information."@en ;
    rdfs:label "Navigating function"@en ;
    rdfs:subClassOf saref:Function .

s4wear:NearBodyWearable
    a owl:Class ;
    rdfs:comment "A near-body wearable is a wearable located near a physical body."@en ;
    rdfs:label "Near-body wearable"@en ;
    rdfs:subClassOf [
        a owl:Class ;
        owl:intersectionOf (s4wear:Wearable
            [
                a owl:Restriction ;
                owl:onProperty s4wear:isLocatedNear ;
                owl:someValuesFrom s4wear:Wearer
            ]
        )
    ] .

s4wear:Occurrence
    a owl:Class ;
    rdfs:comment "An occurrence is the fact of something existing or being found in a place."@en ;
    rdfs:label "Occurrence"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:allValuesFrom geo:Feature ;
        owl:onProperty s4wear:takesPlaceAt
    ] .

s4wear:OnBodyWearable
    a owl:Class ;
    rdfs:comment "An on-body wearable is a wearable having a direct contact with a physical body."@en ;
    rdfs:label "On-body wearable"@en ;
    rdfs:subClassOf [
        a owl:Class ;
        owl:intersectionOf (s4wear:Wearable
            [
                a owl:Restriction ;
                owl:onProperty s4wear:isLocatedOn ;
                owl:someValuesFrom s4wear:Wearer
            ]
        )
    ] .

s4wear:Policy
    a owl:Class ;
    rdfs:comment "A policy is a set of guidelines adopted during the wearable building process and defining how a wearables operates."@en ;
    rdfs:label "Policy"@en .

s4wear:PowerSupply
    a owl:Class ;
    rdfs:comment "A power supply is an hardware component intended to plug a device to a power grid."@en ;
    rdfs:label "Power supply"@en ;
    rdfs:subClassOf saref:Device .

s4wear:QueueSize
    a owl:NamedIndividual, s4wear:CrowdProperty ;
    rdfs:comment "The size of a queue."@en ;
    rdfs:label "Queue size"@en .

s4wear:RadioFrequencyEmission
    a owl:NamedIndividual, s4wear:EmissionProperty ;
    rdfs:comment "The radio frequency emission of the wearable."@en ;
    rdfs:label "Radio frequency emission"@en .

s4wear:Software
    a owl:Class ;
    rdfs:comment "A software is a computer program."@en ;
    rdfs:label "Software"@en ;
    rdfs:subClassOf saref:FeatureOfInterest .

s4wear:SoundLevel
    a owl:NamedIndividual, s4wear:EnvironmentalProperty ;
    rdfs:comment "The level of sound in the environment."@en ;
    rdfs:label "Sound level"@en .

s4wear:Temperature
    a owl:NamedIndividual, s4wear:EnvironmentalProperty ;
    rdfs:comment "The temperature of the environment."@en ;
    rdfs:label "Temperature"@en .

s4wear:TextileBasedSensor
    a owl:Class ;
    rdfs:comment "A textile-based sensor is a sensor directly integrated into a textile artifact."@en ;
    rdfs:label "Textile-based sensor"@en ;
    rdfs:subClassOf saref:Sensor .

s4wear:TextileBasedWearable
    a owl:Class ;
    rdfs:comment "A textile-based wearable is a wearable directly integrated into a textile artifact."@en ;
    rdfs:label "Textile-based wearable"@en ;
    rdfs:subClassOf s4wear:OnBodyWearable .

s4wear:User
    a owl:Class ;
    rdfs:comment "A user is an entity using a wearable."@en ;
    rdfs:label "User"@en ;
    rdfs:subClassOf saref:FeatureOfInterest .

s4wear:Wearable
    a owl:Class ;
    rdfs:comment "A wearable device is a device that is intended to be located near, on or in an organism."@en ;
    rdfs:label "Wearable device"@en ;
    rdfs:subClassOf geo:Feature, saref:Device, [
        a owl:Restriction ;
        owl:allValuesFrom s4wear:WearableProperty ;
        owl:onProperty saref:hasProperty
    ], [
        a owl:Restriction ;
        owl:allValuesFrom ssn-system:SystemCapability ;
        owl:onProperty ssn-system:hasSystemCapability
    ] .

s4wear:WearableProperty
    a owl:Class ;
    rdfs:comment "Class to group those properties related to wearables."@en ;
    rdfs:label "Wearable property"@en ;
    rdfs:subClassOf saref:Property .

s4wear:Wearer
    a owl:Class ;
    rdfs:comment "A wearer is any living organism that is sensed by a wearable."@en ;
    rdfs:label "Wearer"@en ;
    rdfs:subClassOf geo:SpatialObject, [
        a owl:Restriction ;
        owl:allValuesFrom s4wear:WearerProperty ;
        owl:onProperty saref:hasProperty
    ], [
        a owl:Class ;
        owl:intersectionOf (s4wear:LivingOrganism
            [
                a owl:Restriction ;
                owl:onProperty s4wear:featureIsMeasuredByDevice ;
                owl:someValuesFrom s4wear:Wearable
            ]
        )
    ] .

s4wear:WearerProperty
    a owl:Class ;
    rdfs:comment "Class to group those properties related to wearers."@en ;
    rdfs:label "Wearer property"@en ;
    rdfs:subClassOf saref:Property .

s4wear:WearerTemperature
    a owl:NamedIndividual, s4wear:BiometricProperty ;
    rdfs:comment "The temperature of the wearer."@en ;
    rdfs:label "Wearer temperature"@en .

s4wear:controlsFeature
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the features of interest that are controlled by a device."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "controls feature"@en ;
    rdfs:range saref:FeatureOfInterest .

s4wear:featureIsControlledByDevice
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the devices that control a feature of interest."@en ;
    rdfs:domain saref:FeatureOfInterest ;
    rdfs:label "feature is controlled by device"@en ;
    rdfs:range saref:Device .

s4wear:featureIsMeasuredByDevice
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the devices that measure a feature of interest."@en ;
    rdfs:domain saref:FeatureOfInterest ;
    rdfs:label "feature is measured by device"@en ;
    rdfs:range saref:Device .

s4wear:followsPolicy
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the policy followed by a wearable device."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "follows policy"@en ;
    rdfs:range s4wear:Policy .

s4wear:hasCapacity
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the capacity of a facility."@en ;
    rdfs:domain s4city:Facility ;
    rdfs:label "has capacity"@en ;
    rdfs:range xsd:long .

s4wear:hasCommand
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining a command triggered by an actuating function."@en ;
    rdfs:domain saref:ActuatingFunction ;
    rdfs:label "has command"@en ;
    rdfs:range xsd:string .

s4wear:hasDataTransmissionRate
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the data transmission rate of a wearable."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has data transmission rate"@en ;
    rdfs:range xsd:double .

s4wear:hasHeight
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the height dimension of a wearable."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has height"@en ;
    rdfs:range xsd:double .

s4wear:hasInterface
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the interface with which a device is equipped."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "has interface"@en ;
    rdfs:range s4wear:Interface .

s4wear:hasLength
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the length dimension of a wearable."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has length"@en ;
    rdfs:range xsd:double .

s4wear:hasPowerSupply
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the type of power supply equipping a device."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "has power supply"@en ;
    rdfs:range s4wear:PowerSupply .

s4wear:hasSensor
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying a sensor integrated into a device."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "has sensor"@en ;
    rdfs:range saref:Sensor .

s4wear:hasStorage
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the storage capacity of a wearable."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has storage"@en ;
    rdfs:range xsd:double .

s4wear:hasWeight
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the weight of a wearable device."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has weight"@en ;
    rdfs:range xsd:double .

s4wear:hasWidth
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the width dimention of a wearable."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "has width"@en ;
    rdfs:range xsd:double .

s4wear:installs
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying in which facility a device has been installed."@en ;
    rdfs:domain s4city:Facility ;
    rdfs:label "installs"@en ;
    rdfs:range saref:Device .

s4wear:interactsWith
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the interaction between a user and a device."@en ;
    rdfs:domain s4wear:User ;
    rdfs:label "interacts with"@en ;
    rdfs:range saref:Device .

s4wear:isDetectedBy
    a owl:ObjectProperty ;
    rdfs:comment "Defines the relationship between an occurrence and the device detecting it." ;
    rdfs:domain s4wear:Occurrence ;
    rdfs:label "is detected by"@en ;
    rdfs:range saref:Device .

s4wear:isLocated
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the location of a wearer with respect to a wearable."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "is located"@en ;
    rdfs:range s4wear:Wearer .

s4wear:isLocatedIn
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the location of a wearer with respect to an in-body wearable."@en ;
    rdfs:domain s4wear:InBodyWearable ;
    rdfs:label "is located in"@en ;
    rdfs:range s4wear:Wearer ;
    rdfs:subPropertyOf s4wear:isLocated .

s4wear:isLocatedNear
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the location of a wearer with respect to an near-body wearable."@en ;
    rdfs:domain s4wear:NearBodyWearable ;
    rdfs:label "is located near"@en ;
    rdfs:range s4wear:Wearer ;
    rdfs:subPropertyOf s4wear:isLocated .

s4wear:isLocatedOn
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the location of a wearer with respect to an on-body wearable."@en ;
    rdfs:domain s4wear:OnBodyWearable ;
    rdfs:label "is located on"@en ;
    rdfs:range s4wear:Wearer ;
    rdfs:subPropertyOf s4wear:isLocated .

s4wear:isTriggeredBy
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the function actuating the work of a device."@en ;
    rdfs:domain saref:ActuatingFunction ;
    rdfs:label "is triggered by"@en ;
    rdfs:range saref:Device ;
    owl:inverseOf s4wear:triggers .

s4wear:meansOfTransport
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship stating the means of transport on which the wearable is operating."@en ;
    rdfs:domain saref:FeatureOfInterest ;
    rdfs:label "means of transport"@en ;
    rdfs:range xsd:string .

s4wear:measuresFeature
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the features of interest that are measured by a device."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "measures feature"@en ;
    rdfs:range saref:FeatureOfInterest .

s4wear:monitors
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the monitoring activity of a device on another device."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "monitors"@en ;
    rdfs:range saref:Device .

s4wear:sendsInformationTo
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the sending information operation between two wearables."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "sends information to"@en ;
    rdfs:range s4wear:Wearable ;
    rdfs:subPropertyOf s4syst:connectedTo .

s4wear:sendsNotificationsTo
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the sending notification operation between two wearables."@en ;
    rdfs:domain s4wear:Wearable ;
    rdfs:label "sends notifications to"@en ;
    rdfs:range s4wear:Wearer ;
    rdfs:subPropertyOf s4syst:connectedTo .

s4wear:takesPlaceAt
    a owl:ObjectProperty ;
    rdfs:comment "The place where an occurrence takes place."@en ;
    rdfs:label "takes place at"@en .

s4wear:triggers
    a owl:ObjectProperty ;
    rdfs:comment "A relationship specifying the function actuating the work of a device."@en ;
    rdfs:domain saref:Device ;
    rdfs:label "triggers"@en ;
    rdfs:range saref:ActuatingFunction .

s4wear:wearerAgeRange
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship stating the age range of a wearer."@en ;
    rdfs:domain s4wear:Wearer ;
    rdfs:label "wearer age range"@en ;
    rdfs:range xsd:string .

s4wear:wearerStatus
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship defining the status of a wearer."@en ;
    rdfs:domain s4wear:Wearer ;
    rdfs:label "wearer status"@en ;
    rdfs:range xsd:string .

<https://www.fbk.eu/>
    schema:name "Fondazione Bruno Kessler" ;
    a schema:Organization, owl:NamedIndividual ;
    rdfs:comment "Fondazione Bruno Kessler"@en ;
    rdfs:label "Fondazione Bruno Kessler"@en .

<https://www.linkedin.com/in/maurodragoni/MauroDragoni>
    schema:affiliation <https://www.fbk.eu/> ;
    schema:familyName "Dragoni" ;
    schema:givenName "Mauro" ;
    a schema:Person, owl:NamedIndividual ;
    rdfs:comment "Mauro Dragoni"@en ;
    rdfs:label "Mauro Dragoni"@en .

<https://www.upm.es/>
    schema:name "Universidad Politécnica de Madrid" ;
    a schema:Organization, owl:NamedIndividual ;
    rdfs:comment "Universidad Politécnica de Madrid"@en ;
    rdfs:label "Universidad Politécnica de Madrid"@en .

