PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX s4ehaw: <https://saref.etsi.org/saref4ehaw/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

<https://saref.etsi.org/saref4envi/FrequencyMeasurement> a rdfs:Class ;
  rdfs:label "Frequency measurement"@en ;
  rdfs:comment "Represents the measured value made over a frequency property. It is also linked to the frequency unit of measure in which the value is expressed and the timestamp of the measurement."@en .

<https://saref.etsi.org/saref4envi/FrequencyUnit> a rdfs:Class .

s4ehaw:BanCommunicationType a rdfs:Class ;
  rdfs:label "BAN Communication type"@en ;
  rdfs:comment "The BAN communication function type, i.e. periodic, event driven or on request."@en .

<https://saref.etsi.org/core/Command> a rdfs:Class .

s4ehaw:Contact a rdfs:Class ;
  rdfs:label "Contact"@en ;
  rdfs:comment "A BAN has one or multiple contacts, i.e. some health actors, e.g. the patient or user that is monitored through this BAN, the caregiver that is using this BAN for monitoring purposes..."@en .

s4ehaw:HealthActor a rdfs:Class ;
  rdfs:label "Health actor"@en ;
  rdfs:comment "The eHealth actors like e.g. caregivers, patients, users, helpers..."@en ;
  rdfs:subClassOf <http://xmlns.com/foaf/0.1/Agent> .

s4ehaw:firstName a rdf:Property ;
  rdfs:label "first name"@en ;
  rdfs:comment "The first name of a health actor."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range xsd:string .

s4ehaw:usesBan a rdf:Property ;
  rdfs:label "uses ban"@en ;
  rdfs:comment "A health actor (e.g. a caregiver, a patient or a helper) uses a BAN for collecting, aggregating and relaying vital parameters."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range s4ehaw:Ban .

s4ehaw:dob a rdf:Property ;
  rdfs:label "date of birth"@en ;
  rdfs:comment "The date of birth of a health actor."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range xsd:dateTime .

s4ehaw:hasGender a rdf:Property ;
  rdfs:label "has gender"@en ;
  rdfs:comment "The gender of a health actor."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4ehaw:hasMbox a rdf:Property ;
  rdfs:label "has mbox"@en ;
  rdfs:comment "An email address (or mail box) of an health actor: a URI with the 'mailto' scheme as defined by RFC 6068."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range xsd:anyURI .

s4ehaw:hasActivity a rdf:Property ;
  rdfs:label "has activity"@en ;
  rdfs:comment "A health actor may have one or multiple activities."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range s4ehaw:Activity .

s4ehaw:phone a rdf:Property ;
  rdfs:label "phone"@en ;
  rdfs:comment "The phone number of a health actor, in international format."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range xsd:string .

s4ehaw:lastName a rdf:Property ;
  rdfs:label "last name"@en ;
  rdfs:comment "The familly name of a health actor."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range xsd:string .

s4ehaw:hasAgeCategory a rdf:Property ;
  rdfs:label "has age category"@en ;
  rdfs:comment "The age group of a health actor, e.g. old or young."@en ;
  rdfs:domain s4ehaw:HealthActor ;
  rdfs:range s4ehaw:AgeCategory .

s4ehaw:Mode a rdfs:Class ;
  rdfs:label "Mode"@en ;
  rdfs:comment "The dynamic characteristics of a eHealth Device that vary during its lifetime or its BAN lifetime."@en .

s4ehaw:modeName a rdf:Property ;
  rdfs:label "mode name"@en ;
  rdfs:comment "The mode name of a device, e.g. sleeping."@en ;
  rdfs:domain s4ehaw:Mode ;
  rdfs:range xsd:string .

<https://saref.etsi.org/saref4envi/Frequency> a rdfs:Class .

s4ehaw:Location a rdfs:Class ;
  rdfs:label "Location"@en ;
  rdfs:comment "The location, i.e. a position against the body (on - body surface – or in the body – implant –) and a physical location (i.e. a postal address and/or a current geolocation when available)."@en .

s4ehaw:NocturnalActivity a rdfs:Class ;
  rdfs:label "Nocturnal activity"@en ;
  rdfs:comment "The patient/user activities that occur during the night."@en ;
  rdfs:subClassOf s4ehaw:Activity .

s4ehaw:activityDuration a rdf:Property ;
  rdfs:label "activity duration"@en ;
  rdfs:comment "The duration of an activity, in second."@en ;
  rdfs:domain s4ehaw:Activity ;
  rdfs:range xsd:float .

s4ehaw:activityKind a rdf:Property ;
  rdfs:label "activity kind"@en ;
  rdfs:comment "The kind of atcivities that a patient or a user can have, i.e. e.g. sleeping in bed, sitting on a chair, using the shower, etc."@en ;
  rdfs:domain s4ehaw:Activity ;
  rdfs:range xsd:string .

s4ehaw:OperatingConstraint a rdfs:Class ;
  rdfs:label "Operating constraint"@en ;
  rdfs:comment "An empty container for describing the operating constraints of a device, e.g. recommended humidity and temperature range..."@en .

s4ehaw:MeasurementCollectionSession a rdfs:Class ;
  rdfs:label "Measurement collection session"@en ;
  rdfs:comment "Task in which a health actor (mainly a patient or a user) is subject of measurement collection (recording) by both some measurement-related health Device (e.g. Sensor, Wearable, ECG Device...) and a health actor (mainly a caregiver)."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Task> .

s4ehaw:hasParticipant a rdf:Property ;
  rdfs:label "has participant"@en ;
  rdfs:comment "A measurement session has health actors as participants (caregiver controling the session, patient monitored during the session)."@en ;
  rdfs:domain s4ehaw:MeasurementCollectionSession ;
  rdfs:range s4ehaw:HealthActor .

<https://saref.etsi.org/core/Function> a rdfs:Class .

s4ehaw:hasData a rdf:Property ;
  rdfs:label "has data"@en ;
  rdfs:comment "A function has one or many data, for example a tracking function shall include latitude, longitude and speed data."@en ;
  rdfs:domain <https://saref.etsi.org/core/Function> ;
  rdfs:range s4ehaw:Data .

s4ehaw:DeviceCharacteristic a rdfs:Class ;
  rdfs:label "Device characteristic"@en ;
  rdfs:comment "A health device has device characteristic describing the physical characteristics of the health device."@en .

s4ehaw:hasMode a rdf:Property ;
  rdfs:label "has mode"@en ;
  rdfs:comment "Each device has modes of operations that model its dynamic characteristic varying during its lifetime, e.g. active, hold, beacon..."@en ;
  rdfs:domain s4ehaw:DeviceCharacteristic ;
  rdfs:range s4ehaw:Mode .

s4ehaw:hasComputingPower a rdf:Property ;
  rdfs:label "has computing power"@en ;
  rdfs:comment "A health device characteristic describing the processing power or capabilities of the device (e.g. processor ID and manufacturer, duty cycle, available flash/RM memory, maximum flash/RAM memory...)."@en ;
  rdfs:domain s4ehaw:DeviceCharacteristic ;
  rdfs:range s4ehaw:ComputingPower .

s4ehaw:hasPowerSource a rdf:Property ;
  rdfs:label "has power source"@en ;
  rdfs:comment "A health device characteristic is its  power sources, mainly describing energy source and battery related capabilities of the health device (number of power source, source type, rechargeable or not, available power level...)."@en ;
  rdfs:domain s4ehaw:DeviceCharacteristic ;
  rdfs:range s4ehaw:PowerSource .

s4ehaw:deviceCharacteristicName a rdf:Property ;
  rdfs:label "device characteristic name"@en ;
  rdfs:comment "The commercial name of a device."@en ;
  rdfs:domain s4ehaw:DeviceCharacteristic ;
  rdfs:range xsd:string .

s4ehaw:velocity a rdf:Property ;
  rdfs:label "velocity"@en ;
  rdfs:comment "The velocity of a moving device (in m/s)."@en ;
  rdfs:domain s4ehaw:DeviceCharacteristic ;
  rdfs:range xsd:float .

s4ehaw:dimension a rdf:Property ;
  rdfs:label "dimension"@en ;
  rdfs:comment "The dimension of the device i.e. height*weight*length string."@en ;
  rdfs:domain s4ehaw:DeviceCharacteristic ;
  rdfs:range xsd:string .

s4ehaw:HealthSensor a rdfs:Class ;
  rdfs:label "Health sensor"@en ;
  rdfs:comment "Health-related Sensor, equivalent to SAREF Sensor."@en ;
  rdfs:subClassOf s4ehaw:HealthDevice .

s4ehaw:availableRam a rdf:Property ;
  rdfs:label "available ram"@en ;
  rdfs:comment "Indicates the available volatile memory space (in byte) of a health device. It is a dynamic attribute."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range xsd:long .

s4ehaw:hasInterface a rdf:Property ;
  rdfs:label "has interface"@en ;
  rdfs:comment "A health device has one or multiple interfaces (Bluetooth, UWB, IEEE 802.15.6, serial interface...)."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range s4ehaw:Interface .

s4ehaw:inCurrentMode a rdf:Property ;
  rdfs:label "in current mode"@en ;
  rdfs:comment "Each eHealth device has modes of operations that model its dynamic characteristic varying during its lifetime, e.g. active, hold, beacon..."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range s4ehaw:Mode .

s4ehaw:hasLocation a rdf:Property ;
  rdfs:label "has location"@en ;
  rdfs:comment "The location of an eHealth device, i.e. its position against the body (on body surface or in the body - implant -) and its physical location (i.e. its postal address and/or its current geolocation geolocation when available)."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range s4ehaw:Location .

s4ehaw:hasDeviceCharacteristic a rdf:Property ;
  rdfs:label "has device characteristic"@en ;
  rdfs:comment "A health device has device characteristic describing the physical characteristics of the health device, e.g. its dimensions."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range s4ehaw:DeviceCharacteristic .

s4ehaw:hasOperatingConstraint a rdf:Property ;
  rdfs:label "has operating constraint"@en ;
  rdfs:comment "The operating constraints of a health device, e.g. recommended humidity and temperature range..."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range s4ehaw:OperatingConstraint .

s4ehaw:remainingBatteryLevel a rdf:Property ;
  rdfs:label "remaining battery level"@en ;
  rdfs:comment "The level of remaining battery (if any : in percent) for a health device. It is a dynamic attribute."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range xsd:long .

s4ehaw:serialNb a rdf:Property ;
  rdfs:label "serial number"@en ;
  rdfs:comment "The serial number of a health device."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range xsd:string .

s4ehaw:availableFlash a rdf:Property ;
  rdfs:label "available flash"@en ;
  rdfs:comment "The available flash memory (in byte) of a health device. It is a dynamic attribute."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range xsd:long .

s4ehaw:isAttachedTo a rdf:Property ;
  rdfs:label "is attached to"@en ;
  rdfs:comment "A health Device is attached to a health actor such as a patient, a user and or a caregiver."@en ;
  rdfs:domain s4ehaw:HealthDevice ;
  rdfs:range s4ehaw:HealthActor .

s4ehaw:Interface a rdfs:Class ;
  rdfs:label "Interface"@en ;
  rdfs:comment "Used for modelling the interfaces of a health device (e.g. Bluetooth, UWB, IEEE 802.15.6, serial interface...)."@en .

s4ehaw:isGateway a rdf:Property ;
  rdfs:label "is gateway"@en ;
  rdfs:comment "This boolean variable indicates if the interface is a gateway or not."@en ;
  rdfs:domain s4ehaw:Interface ;
  rdfs:range xsd:boolean .

s4ehaw:interfaceProtocol a rdf:Property ;
  rdfs:label "interface protocol"@en ;
  rdfs:comment "The interface communication protocol can be e.g. BLE, serial, Ethernet..."@en ;
  rdfs:domain s4ehaw:Interface ;
  rdfs:range s4ehaw:CommunicationProtocol .

s4ehaw:transmissionRate a rdf:Property ;
  rdfs:label "transmission rate"@en ;
  rdfs:comment "The transmission rate of the interface, i.e. the number of bits transmitted per second (usually expressed in kbps or Mbps)."@en ;
  rdfs:domain s4ehaw:Interface ;
  rdfs:range xsd:float .

s4ehaw:interfaceAddress a rdf:Property ;
  rdfs:label "interface address"@en ;
  rdfs:comment "The interface address. The interface may have many addresses like MAC address, IP address or others."@en ;
  rdfs:domain s4ehaw:Interface ;
  rdfs:range xsd:string .

s4ehaw:interfaceDescription a rdf:Property ;
  rdfs:label "interface description"@en ;
  rdfs:comment "The interface type description."@en ;
  rdfs:domain s4ehaw:Interface ;
  rdfs:range xsd:string .

s4ehaw:Caregiver a rdfs:Class ;
  rdfs:label "Caregiver"@en ;
  rdfs:comment "For caregivers modelling."@en ;
  rdfs:subClassOf s4ehaw:HealthActor .

s4ehaw:hasPatient a rdf:Property ;
  rdfs:label "has patient"@en ;
  rdfs:comment "A caregiver may have one or multiple patients."@en ;
  rdfs:domain s4ehaw:Caregiver ;
  rdfs:range s4ehaw:Patient .

s4ehaw:ServiceProfile a rdfs:Class ;
  rdfs:label "Service profile"@en ;
  rdfs:comment "What the service does."@en .

s4ehaw:serviceName a rdf:Property ;
  rdfs:label "service name"@en ;
  rdfs:comment "The service name identify the offered service, e.g heart rate."@en ;
  rdfs:domain s4ehaw:ServiceProfile ;
  rdfs:range xsd:string .

s4ehaw:serviceDescription a rdf:Property ;
  rdfs:label "service description"@en ;
  rdfs:comment "The service description should describe the offered service like e.g. heart rate measurement."@en ;
  rdfs:domain s4ehaw:ServiceProfile ;
  rdfs:range xsd:string .

s4ehaw:OnRequestBanCommunicationType a rdfs:Class ;
  rdfs:label "On request BAN communication type"@en ;
  rdfs:comment "BAN communication function way of working of the type on request."@en ;
  rdfs:subClassOf s4ehaw:BanCommunicationType .

<https://saref.etsi.org/core/Device> a rdfs:Class .

s4ehaw:FunctionalDevice a rdfs:Class ;
  rdfs:label "Functional device"@en ;
  rdfs:comment "Functional Devices are non-purely eHealth/ageing-well devices that can be used for modelling/detecting activities or behaviours of patients/users, like for example beacons that can detect indoor positioning of a patient in a house."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Device> .

s4ehaw:ReminderCommand a rdfs:Class ;
  rdfs:label "Reminder command"@en ;
  rdfs:comment "Command used for sending reminder notifications to health actors, e.g. patients, users or Caregivers."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/NotifyCommand> .

s4ehaw:ServiceProcess a rdfs:Class ;
  rdfs:label "Service process"@en ;
  rdfs:comment "How the service works."@en .

s4ehaw:hasOutput a rdf:Property ;
  rdfs:label "has output"@en ;
  rdfs:comment "The output is e.g. the calculated value returned by the process, e.g the posture of a patient."@en ;
  rdfs:domain s4ehaw:ServiceProcess ;
  rdfs:range xsd:string .

s4ehaw:hasPrecondition a rdf:Property ;
  rdfs:label "has precondition"@en ;
  rdfs:comment "The conditions that are imposed over the inputs of the process and the process must hold to be successufully invoked."@en ;
  rdfs:domain s4ehaw:ServiceProcess ;
  rdfs:range xsd:string .

s4ehaw:hasCalculationMethod a rdf:Property ;
  rdfs:label "has calculation method"@en ;
  rdfs:comment "The service process has a calculation method to get the output or result, e.g. the calculation formula to determine the posture of a patient."@en ;
  rdfs:domain s4ehaw:ServiceProcess ;
  rdfs:range xsd:string .

s4ehaw:hasInput a rdf:Property ;
  rdfs:label "has input"@en ;
  rdfs:comment "The service process has data input like e.g. the patient ID, the timestamp, the read value from a sensor..."@en ;
  rdfs:domain s4ehaw:ServiceProcess ;
  rdfs:range xsd:string .

s4ehaw:hasResult a rdf:Property ;
  rdfs:label "has result"@en ;
  rdfs:comment "The process can have many results for the same output. Those results may include a message that should be displayed, an alert..."@en ;
  rdfs:domain s4ehaw:ServiceProcess ;
  rdfs:range xsd:string .

s4ehaw:hasEffect a rdf:Property ;
  rdfs:label "has effect"@en ;
  rdfs:comment "The effect of a service can be an alert, nothing, an activation of another process..."@en ;
  rdfs:domain s4ehaw:ServiceProcess ;
  rdfs:range xsd:string .

s4ehaw:PowerSource a rdfs:Class ;
  rdfs:label "Power source"@en ;
  rdfs:comment "The power sources of a health device, mainly describing energy source and battery related capabilities of the health device (number of power source, source type, rechargeable or not...)."@en .

s4ehaw:powerSourceType a rdf:Property ;
  rdfs:label "power source type"@en ;
  rdfs:comment "The type of power source of a health device. It can be solar, battery, electricity..."@en ;
  rdfs:domain s4ehaw:PowerSource ;
  rdfs:range xsd:string .

s4ehaw:rechargeable a rdf:Property ;
  rdfs:label "rechargeable"@en ;
  rdfs:comment "This boolean variable indicates if the power source is rechargeable or not, e.g. a rechargeable battery."@en ;
  rdfs:domain s4ehaw:PowerSource ;
  rdfs:range xsd:boolean .

s4ehaw:ComputingPower a rdfs:Class ;
  rdfs:label "Computing power"@en ;
  rdfs:comment "The computing power capabilities of a Health device."@en .

s4ehaw:frequency a rdf:Property ;
  rdfs:label "frequency"@en ;
  rdfs:comment "The frequency is the number of instructions an embedded processor - within a health device - can perform per second (MIPS)."@en ;
  rdfs:domain s4ehaw:ComputingPower ;
  rdfs:range xsd:float .

s4ehaw:maximumFlash a rdf:Property ;
  rdfs:label "maximum flash"@en ;
  rdfs:comment "Indicates the maximum flash memory space (in byte) of a health device."@en ;
  rdfs:domain s4ehaw:ComputingPower ;
  rdfs:range xsd:long .

s4ehaw:dutyCycle a rdf:Property ;
  rdfs:label "duty cycle"@en ;
  rdfs:comment "The duty cycle for each health device embedded processor, in percent."@en ;
  rdfs:domain s4ehaw:ComputingPower ;
  rdfs:range xsd:int .

s4ehaw:maximumRam a rdf:Property ;
  rdfs:label "maximum ram"@en ;
  rdfs:comment "Indicates the maximum volatile memory space (in byte) of a health device."@en ;
  rdfs:domain s4ehaw:ComputingPower ;
  rdfs:range xsd:long .

s4ehaw:Activity a rdfs:Class ;
  rdfs:label "Activity"@en ;
  rdfs:comment "The activity of a patient/user, i.e. daily and nocturnal activities."@en .

s4ehaw:ValidityConstraint a rdfs:Class ;
  rdfs:label "Validity constraint"@en ;
  rdfs:comment "Data may have validity constraint such as allowable value range."@en ;
  rdfs:subClassOf s4ehaw:DataConstraint .

s4ehaw:maximumValue a rdf:Property ;
  rdfs:label "maximum value"@en ;
  rdfs:comment "The maximum allowable value of a measurement."@en ;
  rdfs:domain s4ehaw:ValidityConstraint ;
  rdfs:range xsd:decimal .

s4ehaw:minimumValue a rdf:Property ;
  rdfs:label "minimum value"@en ;
  rdfs:comment "The minimum allowable value  of a measurement."@en ;
  rdfs:domain s4ehaw:ValidityConstraint ;
  rdfs:range xsd:decimal .

<https://saref.etsi.org/core/Service> a rdfs:Class .

s4ehaw:isDescribedBy a rdf:Property ;
  rdfs:label "is described by"@en ;
  rdfs:comment "A service is described by a service process (how the service works)."@en ;
  rdfs:domain <https://saref.etsi.org/core/Service> ;
  rdfs:range s4ehaw:ServiceProcess .

s4ehaw:supports a rdf:Property ;
  rdfs:label "supports"@en ;
  rdfs:comment "A service supports a service grounding (how to access the service)."@en ;
  rdfs:domain <https://saref.etsi.org/core/Service> ;
  rdfs:range s4ehaw:ServiceGrounding .

s4ehaw:presents a rdf:Property ;
  rdfs:label "presents"@en ;
  rdfs:comment "A service presents a service profile (what the service does)."@en ;
  rdfs:domain <https://saref.etsi.org/core/Service> ;
  rdfs:range s4ehaw:ServiceProfile .

s4ehaw:HealthWearable a rdfs:Class ;
  rdfs:label "Health wereable"@en ;
  rdfs:comment "Health-related Wearable, equivalent to SAREF4WEAR Wearable."@en ;
  rdfs:subClassOf s4ehaw:HealthDevice .

s4ehaw:ImplantLocation a rdfs:Class ;
  rdfs:label "Implant location"@en ;
  rdfs:comment "Implant Device (i.e. in body health device) position."@en ;
  rdfs:subClassOf s4ehaw:Location .

<http://www.w3.org/ns/ssn/systems/Precision> a rdfs:Class .

<http://purl.org/vocommons/voaf#Vocabulary> a rdfs:Class .

s4ehaw:HealthDevice a rdfs:Class ;
  rdfs:label "Health Device"@en ;
  rdfs:comment "Health devices, e.g. BAN hub, health sensor/actuator/Wereable."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Device> .

s4ehaw:BanHub a rdfs:Class ;
  rdfs:label "BAN hub"@en ;
  rdfs:comment "Hub of the BAN, mainly playing the role of both a data concentrator and a network gateway."@en ;
  rdfs:subClassOf s4ehaw:HealthDevice .

<http://xmlns.com/foaf/0.1/Agent> a rdfs:Class .

s4ehaw:HealthActuator a rdfs:Class ;
  rdfs:label "Health actuator"@en ;
  rdfs:comment "Health-related Actuator, equivalent to SAREF Actuator."@en ;
  rdfs:subClassOf s4ehaw:HealthDevice .

s4ehaw:Ban a rdfs:Class ;
  rdfs:label "BAN"@en ;
  rdfs:comment "Body Area Network."@en .

s4ehaw:hasContact a rdf:Property ;
  rdfs:label "has contact"@en ;
  rdfs:comment "A BAN has one or multiple contacts (e.g. the patient or user that is monitored through this BAN, the caregiver that is using this BAN for monitoring purposes)."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range s4ehaw:Contact .

s4ehaw:hasHub a rdf:Property ;
  rdfs:label "has hub"@en ;
  rdfs:comment "A Body Area Network or BAN elects one hub that mainly plays the role of both a data concentrator and a network gateway."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range s4ehaw:BanHub .

s4ehaw:banDensity a rdf:Property ;
  rdfs:label "BAN density"@en ;
  rdfs:comment "The BAN density, i.e. its number of node."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range xsd:long .

s4ehaw:hasBanCommunicationType a rdf:Property ;
  rdfs:label "has BAN communication type"@en ;
  rdfs:comment "A BAN has a BAN communication type that is the type of communication carried out between BAN devices and BAN Hub."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range s4ehaw:BanCommunicationType .

s4ehaw:phenomena a rdf:Property ;
  rdfs:label "phenomena"@en ;
  rdfs:comment "The BAN monitors a specific phenomenon (burned calories during exercises, glucose level...)."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range xsd:string .

s4ehaw:hasResponsibleParty a rdf:Property ;
  rdfs:label "has responsible party"@en ;
  rdfs:comment "A BAN that has a responsible party which plays the role of the legal entity responsible for this BAN (e.g. to contact in case of problem). It should be an organization or a person."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range s4ehaw:ResponsibleParty .

s4ehaw:contains a rdf:Property ;
  rdfs:label "contains"@en ;
  rdfs:comment "A Body Area Network or BAN contains one or multiple health devices"@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range s4ehaw:HealthDevice .

s4ehaw:banTopology a rdf:Property ;
  rdfs:label "BAN topology"@en ;
  rdfs:comment "The BAN physical topology type, i.e Adhoc or Star or Mesh or Others."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4ehaw:hasBanApplicationDomain a rdf:Property ;
  rdfs:label "has BAN application domain"@en ;
  rdfs:comment "The BAN application domain - healthcare, telemedicine, assisted living, sport training, pervasive computing, safety and emergency... -."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range s4ehaw:BanApplicationDomain .

s4ehaw:banGeolocation a rdf:Property ;
  rdfs:label "BAN geolocation"@en ;
  rdfs:comment "The geolocation of the BAN, when available and needed, shall be given relatively to the current location - geolocation as standardized ISO 6709, e.g. +40.75-074.00/  - of the patient wearing the BAN."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range xsd:string .

s4ehaw:lifetime a rdf:Property ;
  rdfs:label "lifetime"@en ;
  rdfs:comment "The BAN lifetime (in month), e.g. BAN for entertainment purposes should have a lifetime of weeks or few years whereas BAN dedicated for assisted living or anomaly monitoring should last for many years."@en ;
  rdfs:domain s4ehaw:Ban ;
  rdfs:range xsd:float .

s4ehaw:User a rdfs:Class ;
  rdfs:label "User"@en ;
  rdfs:comment "A health actor (patient included) that can be equiped with BANs or health devices for monitoring, control, care (specific case of patients) or support purposes."@en ;
  rdfs:subClassOf s4ehaw:HealthActor .

s4ehaw:hasImpairment a rdf:Property ;
  rdfs:label "has impairment"@en ;
  rdfs:comment "The impairment type of a user and a patient (as sub-class of user it also inherits impairment), e.g. aural, skeletal, ocular, mobility, intellectual..."@en ;
  rdfs:domain s4ehaw:User ;
  rdfs:range s4ehaw:Impairment .

s4ehaw:hasHabit a rdf:Property ;
  rdfs:label "has habit"@en ;
  rdfs:comment "The habits of a user and a patient (as sub-class of user it also inherits habit), e.g. smoking or overeating."@en ;
  rdfs:domain s4ehaw:User ;
  rdfs:range s4ehaw:Habit .

s4ehaw:hasPosture a rdf:Property ;
  rdfs:label "has posture"@en ;
  rdfs:comment "The posture of a user and a patient (as sub-class of user it also inherits habit), e.g. exercising, lying, running, sitting, walking..."@en ;
  rdfs:domain s4ehaw:User ;
  rdfs:range s4ehaw:Posture .

s4ehaw:EventDrivenBanCommunicationType a rdfs:Class ;
  rdfs:label "Event driven BAN communication type"@en ;
  rdfs:comment "BAN communication function way of working of the type event driven."@en ;
  rdfs:subClassOf s4ehaw:BanCommunicationType .

s4ehaw:Patient a rdfs:Class ;
  rdfs:label "Patient"@en ;
  rdfs:comment "A user of the type patient, i.e. a cared-for person by one or multiple caregivers."@en ;
  rdfs:subClassOf s4ehaw:User .

s4ehaw:hasChronicDisease a rdf:Property ;
  rdfs:label "has chronic disease"@en ;
  rdfs:comment "A patient can suffer from one or more chronic disease like Diabetes, azma, etc."@en ;
  rdfs:domain s4ehaw:Patient ;
  rdfs:range s4ehaw:ChronicDisease .

s4ehaw:hasPhysicalLocation a rdf:Property ;
  rdfs:label "has physical location"@en ;
  rdfs:comment "Defines the physical location of the patient, i.e. its postal address and/or its geolocation (when available)."@en ;
  rdfs:domain s4ehaw:Patient ;
  rdfs:range s4ehaw:PhysicalLocation .

s4ehaw:TimeSeriesMeasurement a rdfs:Class ;
  rdfs:label "Time series measurement"@en ;
  rdfs:comment "A sequence of data in a successive equally spaced points in time. The O&M ontology (ISO 19156) defines Time Series Observation  as an “observation whose result is a time-series”, while both Hl7 aECG and DICOM standards define the Series element as a sequence of data sharing a common frame of reference. In SAREF4health this concept is termed as Time Series Measurements since this sequence of data refers to time series measured by a health device."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Measurement> .

s4ehaw:hasValues a rdf:Property ;
  rdfs:label "has values"@en ;
  rdfs:comment "A relationship defining the set of values (an ordered array of numbers) of a certain property, e.g., heart rate. Attention: to assure ordering in the serialization format, it is necessary to use either rdf:Seq (RDF/XML) or @list (JSON-LD)."@en ;
  rdfs:domain s4ehaw:TimeSeriesMeasurement ;
  rdfs:range xsd:decimal .

<https://saref.etsi.org/saref4envi/hasFrequencyMeasurement> a rdf:Property ;
  rdfs:label "has frequency measurement"@en ;
  rdfs:comment "A measurement fucntion, in case of complex measurement like time series, has frequency measurement, i.e. the frequency in which it makes measurements."@en ;
  rdfs:domain s4ehaw:MeasurementFunction ;
  rdfs:range <https://saref.etsi.org/saref4envi/FrequencyMeasurement> .

<https://saref.etsi.org/core/NotifyCommand> a rdfs:Class .

s4ehaw:PeriodicBanCommunicationType a rdfs:Class ;
  rdfs:label "Periodic BAN communication type"@en ;
  rdfs:comment "BAN communication function way of working of the type periodic."@en ;
  rdfs:subClassOf s4ehaw:BanCommunicationType .

s4ehaw:sendingFrequency a rdf:Property ;
  rdfs:label "sending frequency"@en ;
  rdfs:comment "Defines the sending frequency (in ms), at an health device level, in case of pariodic BAN communication type."@en ;
  rdfs:domain s4ehaw:PeriodicBanCommunicationType ;
  rdfs:range xsd:float .

s4ehaw:CommunicationProtocol a rdfs:Class ;
  rdfs:label "Communication protocol"@en ;
  rdfs:comment "The communication protocol, e.g. BLE, serial, Ethernet..."@en .

<https://saref.etsi.org/core/Measurement> a rdfs:Class .

s4ehaw:LegalConstraint a rdfs:Class ;
  rdfs:label "Legal constraint"@en ;
  rdfs:comment "An empty container for describing the legal constraints a data can be submitted to, like e.g. anonymization."@en ;
  rdfs:subClassOf s4ehaw:DataConstraint .

s4ehaw:MeasurementFunction a rdfs:Class ;
  rdfs:label "Measurement function"@en ;
  rdfs:comment "The functionality necessary to accomplish the measurement task for which a measurement-related health Device (e.g. Sensor, Wearable, ECG Device...) is designed for, e.g. a heart rate measurement function."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Function> .

s4ehaw:sampleTime a rdf:Property ;
  rdfs:label "sample time"@en ;
  rdfs:comment "The sample time of a measurement function (a discrete integer)."@en ;
  rdfs:domain s4ehaw:MeasurementFunction ;
  rdfs:range xsd:int .

s4ehaw:precision a rdf:Property ;
  rdfs:label "precision"@en ;
  rdfs:comment "Precision refers to the degree of reproducibility of a measured quantity (when the same quantity is measured several times how close are the measurements from each other)."@en ;
  rdfs:domain s4ehaw:MeasurementFunction ;
  rdfs:range <http://www.w3.org/ns/ssn/systems/Precision> .

s4ehaw:latency a rdf:Property ;
  rdfs:label "latency"@en ;
  rdfs:comment "The latency is the time interval between the stimulation and response of a measurement function (in ms)."@en ;
  rdfs:domain s4ehaw:MeasurementFunction ;
  rdfs:range xsd:float .

s4ehaw:uom a rdf:Property ;
  rdfs:label "unit of measurement"@en ;
  rdfs:comment "Defines the unit of measure of a measurement function."@en ;
  rdfs:domain s4ehaw:MeasurementFunction ;
  rdfs:range <https://saref.etsi.org/core/UnitOfMeasure> .

s4ehaw:faultTolerence a rdf:Property ;
  rdfs:label "fault tolerence"@en ;
  rdfs:comment "Defines the error rate tolerated for a measurement function."@en ;
  rdfs:domain s4ehaw:MeasurementFunction ;
  rdfs:range xsd:double .

s4ehaw:Helper a rdfs:Class ;
  rdfs:label "Helper"@en ;
  rdfs:comment "Helper of patients/users, e.g. a patient's relative."@en ;
  rdfs:subClassOf s4ehaw:HealthActor .

s4ehaw:followsUser a rdf:Property ;
  rdfs:label "follows user"@en ;
  rdfs:comment "A helper may follow one or multiple users that can in particular be patients."@en ;
  rdfs:domain s4ehaw:Helper ;
  rdfs:range s4ehaw:User .

s4ehaw:ServiceGrounding a rdfs:Class ;
  rdfs:label "Service grounding"@en ;
  rdfs:comment "How to access the service."@en .

s4ehaw:portNumber a rdf:Property ;
  rdfs:label "port number"@en ;
  rdfs:comment "The port number used to offer the service."@en ;
  rdfs:domain s4ehaw:ServiceGrounding ;
  rdfs:range xsd:positiveInteger .

s4ehaw:groundingProtocol a rdf:Property ;
  rdfs:label "grounding protocol"@en ;
  rdfs:comment "The grounding protocol is the protocol used to transmit the message by the service, e.g. BLE."@en ;
  rdfs:domain s4ehaw:ServiceGrounding ;
  rdfs:range s4ehaw:CommunicationProtocol .

s4ehaw:ResponsibleParty a rdfs:Class ;
  rdfs:label "Responsible party"@en ;
  rdfs:comment "The legal entity responsible for a BAN, i.e. to contact in case of problem."@en ;
  rdfs:subClassOf s4ehaw:HealthActor .

s4ehaw:DataConstraint a rdfs:Class ;
  rdfs:label "Data constraint"@en ;
  rdfs:comment "The Data constraints, e.g. validity, legal..."@en .

<https://saref.etsi.org/core/UnitOfMeasure> a rdfs:Class .

s4ehaw:Data a rdfs:Class ;
  rdfs:label "Data"@en ;
  rdfs:comment "A function has one or many data, for example a tracking function shall include latitude, longitude and speed data."@en .

s4ehaw:format a rdf:Property ;
  rdfs:label "format"@en ;
  rdfs:comment "The format is a URI for a standard format like e.g. integer."@en ;
  rdfs:domain s4ehaw:Data ;
  rdfs:range xsd:anyURI .

s4ehaw:isDerivedData a rdf:Property ;
  rdfs:label "is derived data"@en ;
  rdfs:comment "Is derived data is a Boolean property to indicate if the data is a row data or a calculated/derived data from other one."@en ;
  rdfs:domain s4ehaw:Data ;
  rdfs:range xsd:boolean .

s4ehaw:hasMeasurement a rdf:Property ;
  rdfs:label "has measurement"@en ;
  rdfs:comment "Defines the relationship between data that has measurement."@en ;
  rdfs:domain s4ehaw:Data ;
  rdfs:range <https://saref.etsi.org/core/Measurement> .

s4ehaw:hasTimeSeriesMesurement a rdf:Property ;
  rdfs:label "has time series measurement"@en ;
  rdfs:comment "Data has time series measurements, a sequence taken at successive equally spaced points in time."@en ;
  rdfs:domain s4ehaw:Data ;
  rdfs:range s4ehaw:TimeSeriesMeasurement .

s4ehaw:dataSize a rdf:Property ;
  rdfs:label "data size"@en ;
  rdfs:comment "The data size represents the size of the data in bytes"@en ;
  rdfs:domain s4ehaw:Data ;
  rdfs:range xsd:positiveInteger .

s4ehaw:hasDataConstraint a rdf:Property ;
  rdfs:label "has data constraint"@en ;
  rdfs:comment "Data has data constraints (validity, legal...)."@en ;
  rdfs:domain s4ehaw:Data ;
  rdfs:range s4ehaw:DataConstraint .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

<https://saref.etsi.org/core/Task> a rdfs:Class .

<https://saref.etsi.org/core/Property> a rdfs:Class .

s4ehaw:DailyActivity a rdfs:Class ;
  rdfs:label "Daily activity"@en ;
  rdfs:comment "The patient/user activities that occur during daytime."@en ;
  rdfs:subClassOf s4ehaw:Activity .

s4ehaw:PhysicalLocation a rdfs:Class ;
  rdfs:label "Physical location"@en ;
  rdfs:comment "The physical location, i.e. a postal address and a geolocation when available."@en ;
  rdfs:subClassOf s4ehaw:Location .

s4ehaw:postalAddress a rdf:Property ;
  rdfs:label "postal address"@en ;
  rdfs:comment "Defines the postal address."@en ;
  rdfs:domain s4ehaw:PhysicalLocation ;
  rdfs:range xsd:string .

s4ehaw:geolocation a rdf:Property ;
  rdfs:label "geolocation"@en ;
  rdfs:comment "The geolocation, when available, shall be given relatively to the current location - geolocation as standardized ISO 6709, e.g. +40.75-074.00/ -."@en ;
  rdfs:domain s4ehaw:PhysicalLocation ;
  rdfs:range xsd:string .

s4ehaw:AlarmCommand a rdfs:Class ;
  rdfs:label "Alarm command"@en ;
  rdfs:comment "A command corresponding to alarm sending."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Command> .

<https://saref.etsi.org/core/consistsOf> a rdf:Property ;
  rdfs:label "consists of"@en ;
  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:range <https://w3id.org/linkml/Any> .

<https://saref.etsi.org/core/hasManufacturer> a rdf:Property ;
  rdfs:label "has manufacturer"@en ;
  rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device). The value is expected to be a string or a string with language tag."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

s4ehaw:BanApplicationDomain a rdfs:Class ;
  rdfs:label "BAN application domain"@en ;
  rdfs:comment "The BAN application domain, e.g. healthcare, telemedicine, assisted living, sport training, safety and emergency..."@en .

s4ehaw:Safety a s4ehaw:BanApplicationDomain ;
  rdfs:label "Safety"@en ;
  rdfs:comment "Safety sub-domain for BAN application."@en .

s4ehaw:PervasiveComputing a s4ehaw:BanApplicationDomain ;
  rdfs:label "Pervasive computing"@en ;
  rdfs:comment "Pervasive computing sub-domain for BAN application."@en .

s4ehaw:Telemedicine a s4ehaw:BanApplicationDomain ;
  rdfs:label "Telemedicine"@en ;
  rdfs:comment "Telemedicine sub-domain for BAN application."@en .

s4ehaw:SportTraining a s4ehaw:BanApplicationDomain ;
  rdfs:label "Sport Training"@en ;
  rdfs:comment "Sport training sub-domain for BAN application."@en .

s4ehaw:Prevention a s4ehaw:BanApplicationDomain ;
  rdfs:label "Prevention"@en ;
  rdfs:comment "Prevention sub-domain (e.g. preventive health) for BAN application."@en .

s4ehaw:AssistedLiving a s4ehaw:BanApplicationDomain ;
  rdfs:label "Assisted living"@en ;
  rdfs:comment "Assisted living sub-domain for BAN application."@en .

s4ehaw:Emergency a s4ehaw:BanApplicationDomain ;
  rdfs:label "Emergency"@en ;
  rdfs:comment "Emergency sub-domain for BAN application."@en .

s4ehaw:Healthcare a s4ehaw:BanApplicationDomain ;
  rdfs:label "Healthcare"@en ;
  rdfs:comment "Healthcare domain for BAN application."@en .

s4ehaw:BodySurfaceLocation a rdfs:Class ;
  rdfs:label "Body surface location"@en ;
  rdfs:comment "Defines a health device location in terms of a body surface position (i.e. on body health device)."@en ;
  rdfs:subClassOf s4ehaw:Location .

s4ehaw:ArmpitLocation a s4ehaw:BodySurfaceLocation ;
  rdfs:label "Armpit location"@en ;
  rdfs:comment "Armpit location, a user body surface location."@en .

s4ehaw:WristLocation a s4ehaw:BodySurfaceLocation ;
  rdfs:label "Wrist location"@en ;
  rdfs:comment "Wrist, a user body surface location."@en .

s4ehaw:AgeCategory a rdfs:Class ;
  rdfs:label "Age category"@en ;
  rdfs:comment "The age group of a health actor, e.g. old or young."@en .

s4ehaw:Young a s4ehaw:AgeCategory ;
  rdfs:label "Young"@en ;
  rdfs:comment "Young, one user age category."@en .

s4ehaw:Old a s4ehaw:AgeCategory ;
  rdfs:label "Old"@en ;
  rdfs:comment "Old, one user age category."@en .

s4ehaw:Posture a rdfs:Class ;
  rdfs:label "Posture"@en ;
  rdfs:comment "The posture of a health actor (mainly a patient or a user), e.g. exercising, lying, running, sitting, walking..."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Property> .

s4ehaw:Lying a s4ehaw:Posture ;
  rdfs:label "Lying"@en ;
  rdfs:comment "Posture of a lying user."@en .

s4ehaw:Walking a s4ehaw:Posture ;
  rdfs:label "Walking"@en ;
  rdfs:comment "Posture of a walking user."@en .

s4ehaw:Running a s4ehaw:Posture ;
  rdfs:label "Running"@en ;
  rdfs:comment "Posture of a running user."@en .

s4ehaw:Sitting a s4ehaw:Posture ;
  rdfs:label "Sitting"@en ;
  rdfs:comment "Posture of a sitting user."@en .

s4ehaw:Exercising a s4ehaw:Posture ;
  rdfs:label "Exercising"@en ;
  rdfs:comment "Posture of user doing exercises."@en .

s4ehaw:Habit a rdfs:Class ;
  rdfs:label "Habit"@en ;
  rdfs:comment "Defined for users (that can in particular be patients) habits modelling, e.g. smoking, alcohol drinking, overeating, undereating..."@en .

s4ehaw:AlcoholDrinking a s4ehaw:Habit ;
  rdfs:label "Alcohol drinking"@en ;
  rdfs:comment "Alcohol drinking habit (User level)."@en .

s4ehaw:Overeating a s4ehaw:Habit ;
  rdfs:label "Overeating"@en ;
  rdfs:comment "Overeating habit (User level)."@en .

s4ehaw:Undereating a s4ehaw:Habit ;
  rdfs:label "Undereating"@en ;
  rdfs:comment "Undereating habit (User level)."@en .

s4ehaw:Smoking a s4ehaw:Habit ;
  rdfs:label "Smoking"@en ;
  rdfs:comment "Smoking habit (User level)."@en .

s4ehaw:ChronicDisease a rdfs:Class ;
  rdfs:label "Chronic disease"@en ;
  rdfs:comment "For chronic disease modelling, e.g. diabetes, asthma..."@en .

s4ehaw:Diabetes a s4ehaw:ChronicDisease ;
  rdfs:label "Diabetes"@en ;
  rdfs:comment "Diabetes, a chronical disease that some users can have."@en .

s4ehaw:Asthma a s4ehaw:ChronicDisease ;
  rdfs:label "Asthma"@en ;
  rdfs:comment "Asthma, a chronical disease that some users can have."@en .

s4ehaw:Impairment a rdfs:Class ;
  rdfs:label "Impairment"@en ;
  rdfs:comment "Defined for users (that can in particular be patients) impairments modelling, e.g. aural impairment, skeletal impairment, ocular impairment, mobility impairment, intellectual impairment. Those non exhaustive impairments are compatible with the World Health Organization classification."@en .

s4ehaw:OcularImpairment a s4ehaw:Impairment ;
  rdfs:label "Ocular impairment"@en ;
  rdfs:comment "Ocular impairment (User level), i.e. impamnents of visual acuity."@en .

s4ehaw:SkeletalImpairment a s4ehaw:Impairment ;
  rdfs:label "Skeletal impairment"@en ;
  rdfs:comment "Skeletal impairment (User level), e.g. of head and trunk regions, limbs..."@en .

s4ehaw:MobilityImpairment a s4ehaw:Impairment ;
  rdfs:label "Mobility impairment"@en ;
  rdfs:comment "Mobility impairment (User level)."@en .

s4ehaw:IntellectualImpairment a s4ehaw:Impairment ;
  rdfs:label "Intellectual impairment"@en ;
  rdfs:comment "Skeletal impairment (User level), e.g. ..."@en .

s4ehaw:AuralImpairment a s4ehaw:Impairment ;
  rdfs:label "Aural impairment"@en ;
  rdfs:comment "Aural impairment (User level), i.e. impairments of auditory sensitivity."@en .
