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

s4city:CityObject  a      owl:Class ;
        rdfs:comment      "Generic class for describing city objects."@en ;
        rdfs:isDefinedBy  s4city: ;
        rdfs:label        "City object"@en ;
        rdfs:subClassOf   geosp:Feature .

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

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

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: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: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: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 .

geo: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  geo: ;
        rdfs:label        "location" .

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: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: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 .

geosp: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  geosp: ;
        rdfs:label        "Spatial object"@en .

dcterms:license  a  owl:AnnotationProperty .

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: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 .

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  ssn-system: ;
        rdfs:label        "has system capability"@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: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 .

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

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

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  s4city: ;
        rdfs:label        "Facility"@en ;
        rdfs:subClassOf   geosp:Feature .

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

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 .

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 .

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:RadioFrequencyEmission
        a             s4wear:EmissionProperty , owl:NamedIndividual ;
        rdfs:comment  "The radio frequency emission of the wearable."@en ;
        rdfs:label    "Radio frequency emission"@en .

dcterms:created  a  owl:AnnotationProperty .

s4wear:AcousticEmission
        a             s4wear:EmissionProperty , owl:NamedIndividual ;
        rdfs:comment  "The acoustic emission of the wearable."@en ;
        rdfs:label    "Acoustic emission"@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  saref:FeatureOfInterest , geosp:Feature .

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 .

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

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 .

vann:preferredNamespacePrefix
        a       owl:AnnotationProperty .

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  saref: ;
        rdfs:label        "Property"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Measurement ;
                            owl:onProperty     saref:relatesToMeasurement
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Device ;
                            owl:onProperty     saref:isMeasuredByDevice
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Device ;
                            owl:onProperty     saref:isControlledByDevice
                          ] .

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 .

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 .

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

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: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: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:User  a           owl:Class ;
        rdfs:comment     "A user is an entity using a wearable."@en ;
        rdfs:label       "User"@en ;
        rdfs:subClassOf  saref:FeatureOfInterest .

foaf:name  a    owl:AnnotationProperty .

schema:givenName  a  owl:AnnotationProperty .

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  saref: ;
        rdfs:label        "consists of"@en .

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 .

saref:measurementMadeBy
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relation between a measurement and the device that made it."@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "measurement made by"@en .

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

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 .

vann:preferredNamespaceUri
        a       owl:AnnotationProperty .

dcterms:source  a  owl:AnnotationProperty .

saref:relatesToProperty
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a measurement and the property it relates to."@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "relates to property"@en .

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

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: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: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: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  geosp:Feature ;
                           owl:onProperty     s4wear:takesPlaceAt
                         ] .

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

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 .

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.\nThe 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  ssn-system: ;
        rdfs:label        "System capability"@en .

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  geosp:SpatialObject ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4wear:WearerProperty ;
                           owl:onProperty     saref:hasProperty
                         ] ;
        rdfs:subClassOf  [ a                   owl:Class ;
                           owl:intersectionOf  ( s4wear:LivingOrganism
                                                 [ a                   owl:Restriction ;
                                                   owl:onProperty      s4wear:featureIsMeasuredByDevice ;
                                                   owl:someValuesFrom  s4wear:Wearable
                                                 ]
                                               )
                         ] .

geosp:hasGeometry  a      owl:ObjectProperty ;
        rdfs:comment      "A spatial representation for a given feature."@en ;
        rdfs:isDefinedBy  geosp: ;
        rdfs:label        "hasGeometry"@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 .

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

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  saref: ;
        rdfs:label        "makes measurement"@en ;
        owl:inverseOf     saref:measurementMadeBy .

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 .

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

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 .

dcterms:title  a  owl:AnnotationProperty .

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 .

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

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: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 .

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

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 .

saref:relatesToMeasurement
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship between a property and the measurements it relates to."@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "relates to measurement"@en .

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:  a                             owl:Ontology ;
        dcterms:created                "2019-01-01"^^xsd:date ;
        dcterms:creator                <https://www.linkedin.com/in/maurodragoni/MauroDragoni> , <http://www.garcia-castro.com/foaf.rdf#me> ;
        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/" ;
        owl:versionIRI                 <https://saref.etsi.org/saref4wear/v1.1.1/> ;
        owl:versionInfo                "v1.1.1" .

s4city:takesPlaceAtFacility
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship specifying in which facility and event takes place."@en ;
        rdfs:isDefinedBy  s4city: ;
        rdfs:label        "takes place at facility"@en .

dcterms:modified  a  owl:AnnotationProperty .

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: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 .

saref:controlsProperty
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relationship specifying the property that can be controlled by a certain device."@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "controls property"@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 .

schema:name  a  owl:AnnotationProperty .

dcterms:creator  a  owl:AnnotationProperty .

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

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

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

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 .

schema:familyName  a  owl:AnnotationProperty .

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 .

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: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 .

geosp:sfContains  a       owl:ObjectProperty ;
        rdfs:comment      "Exists if the subject SpatialObject spatially contains the object SpatialObject."@en ;
        rdfs:isDefinedBy  geosp: ;
        rdfs:label        "sfContains"@en .

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:WearableProperty
        a                owl:Class ;
        rdfs:comment     "Class to group those properties related to wearables."@en ;
        rdfs:label       "Wearable property"@en ;
        rdfs:subClassOf  saref:Property .

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  saref: ;
        rdfs:label        "Device"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Property ;
                            owl:onProperty     saref:measuresProperty
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Measurement ;
                            owl:onProperty     saref:makesMeasurement
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Property ;
                            owl:onProperty     saref:controlsProperty
                          ] .

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 .

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

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 .

geo:Point  a              owl:Class ;
        rdfs:comment      "A point, typically described using a coordinate system relative to Earth, such as WGS84."@en ;
        rdfs:isDefinedBy  geo: ;
        rdfs:label        "Point"@en ;
        rdfs:subClassOf   geosp:Geometry .

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 .

dcterms:description  a  owl:AnnotationProperty .

geosp:sfWithin  a         owl:ObjectProperty ;
        rdfs:comment      "Exists if the subject SpatialObject is spatially within the object SpatialObject."@en ;
        rdfs:isDefinedBy  geosp: ;
        rdfs:label        "sfWithin"@en .

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 .

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

saref:isMeasurementOf
        a       owl:ObjectProperty .

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: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 .

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  saref: ;
        rdfs:label        "Measurement"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:UnitOfMeasure ;
                            owl:onProperty     saref:isMeasuredIn
                          ] ;
        rdfs:subClassOf   [ a                owl:Restriction ;
                            owl:cardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onProperty   saref:hasValue
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Property ;
                            owl:onProperty     saref:relatesToProperty
                          ] ;
        rdfs:subClassOf   [ a                         owl:Restriction ;
                            owl:onClass               saref:Property ;
                            owl:onProperty            saref:relatesToProperty ;
                            owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:dateTime ;
                            owl:onProperty     saref:hasTimestamp
                          ] ;
        rdfs:subClassOf   [ a                         owl:Restriction ;
                            owl:onClass               saref:UnitOfMeasure ;
                            owl:onProperty            saref:isMeasuredIn ;
                            owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:FeatureOfInterest ;
                            owl:onProperty     saref:isMeasurementOf
                          ] .

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 .

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 .

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: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 .

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 .

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

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

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

dcterms:publisher  a  owl:AnnotationProperty .

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  saref: ;
        rdfs:label        "Unit of measure"@en .

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: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  saref: ;
        rdfs:label        "has value"@en .

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 .

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  s4city: ;
        rdfs:label        "Administrative area"@en ;
        rdfs:subClassOf   geosp:Feature .

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
                                                 ]
                                               )
                         ] .

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

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

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  saref:Device , geosp:Feature ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4wear:WearableProperty ;
                           owl:onProperty     saref:hasProperty
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  ssn-system:SystemCapability ;
                           owl:onProperty     ssn-system:hasSystemCapability
                         ] .

dcterms:contributor  a  owl:AnnotationProperty .

geosp: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  geosp: ;
        rdfs:label        "Feature"@en ;
        rdfs:subClassOf   geosp:SpatialObject .

dcterms:issued  a  owl:AnnotationProperty .

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  saref: ;
        rdfs:label        "Sensor"@en ;
        rdfs:subClassOf   saref:Device .

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 .

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 .

geosp: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  geosp: ;
        rdfs:label        "Geometry"@en ;
        rdfs:subClassOf   geosp:SpatialObject .

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: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 .
