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

s4envi: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 ;
  rdfs:subClassOf <https://saref.etsi.org/core/Measurement> .

<https://saref.etsi.org/core/relatesToProperty> a rdf:Property ;
  rdfs:label "relates to property"@en ;
  rdfs:comment "A relation between a measurement and the property such measurement is about."@en ;
  rdfs:range <https://saref.etsi.org/core/Property> .

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

<https://saref.etsi.org/core/isMeasuredIn> a rdf:Property ;
  rdfs:comment "is measured in"@en ;
  rdfs:range <https://saref.etsi.org/core/UnitOfMeasure> .

<https://saref.etsi.org/core/hasValue> a rdf:Property ;
  rdfs:label "has value"@en ;
  rdfs:comment "A relationship defining the value of a certain property, e.g., energy or power"@en ;
  rdfs:range xsd:float .

s4envi:PeriodMeasurement a rdfs:Class ;
  rdfs:label "Period measurement"@en ;
  rdfs:comment "Represents the measured value over a period property. It is also linked to the period unit of measure in which the value is expressed and the timestamp of the measurement."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Measurement> .

s4envi:Actuator a rdfs:Class ;
  rdfs:label "Actuator"@en ;
  rdfs:comment "Device that can act over at least one property."@en ;
  rdfs:subClassOf s4envi:Device .

<http://www.w3.org/2003/01/geo/wgs84_pos#location> a rdf:Property ;
  rdfs:label "location"@en ;
  rdfs:comment "The relation between something and the point,  or other geometrical thing in space, where it is.  For example, the realtionship 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:range <http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing> .

<https://saref.etsi.org/core/hasDescription> a rdf:Property ;
  rdfs:label "has description"@en ;
  rdfs:comment "A relationship providing a description of an entity (e.g., device)"@en ;
  rdfs:range xsd:string .

s4envi:isContainedIn a rdf:Property ;
  rdfs:label "is contained in"@en ;
  rdfs:comment "A relation between a physical object and the physical object in which it might be contained."@en ;
  rdfs:range s4envi:PhysicalObject .

s4envi:isComponentOf a rdf:Property ;
  rdfs:label "is component of"@en ;
  rdfs:comment "A relation between a system and the system it belongs to as a component."@en ;
  rdfs:range s4envi:System .

s4envi:hasTransmissionPeriod a rdf:Property ;
  rdfs:label "has transmission period"@en ;
  rdfs:comment "The relation between a device and the period in which it transmit information."@en ;
  rdfs:range s4envi:PeriodMeasurement .

s4envi:hasRevisionNumber a rdf:Property ;
  rdfs:label "has revision number"@en ;
  rdfs:comment "A relationship defining the revision number of a certain entity (e.g., a device)"@en ;
  rdfs:range xsd:string .

<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)"@en ;
  rdfs:range xsd:string .

s4envi:hasVersion a rdf:Property ;
  rdfs:label "has version"@en ;
  rdfs:comment "A relationship defining the version  of a certain entity (e.g., a device)"@en ;
  rdfs:range xsd:string .

s4envi:hasDigitalRepresentation a rdf:Property ;
  rdfs:label "has digital representation"@en ;
  rdfs:comment "A relation between a physical object and the digital representation in which it is encapsulated."@en ;
  rdfs:range s4envi:DigitalRepresentation .

s4envi:hasFrequencyMeasurement a rdf:Property ;
  rdfs:label "has frequency measurement"@en ;
  rdfs:comment "The relation between a device and the frequency in which it makes measurements."@en ;
  rdfs:range s4envi:FrequencyMeasurement .

s4envi:contains a rdf:Property ;
  rdfs:label "contains"@en ;
  rdfs:comment "A relation between a physical object and the physical objects that can be contained in it."@en ;
  rdfs:range s4envi:PhysicalObject .

s4envi:isConnectedTo a rdf:Property ;
  rdfs:label "is connected to"@en ;
  rdfs:comment "A relation between a system and the system to which it is connected."@en ;
  rdfs:range s4envi:System .

s4envi:usesCommunicationProtocol a rdf:Property ;
  rdfs:label "uses communication protocol"@en ;
  rdfs:comment "A relation between a system and the communication protocol it uses."@en ;
  rdfs:range s4envi:CommunicationProtocol .

s4envi:affectsProperty a rdf:Property ;
  rdfs:label "affects property"@en ;
  rdfs:comment "A relation between an actuator with the property or properties it can act on"@en ;
  rdfs:range <https://saref.etsi.org/core/Property> .

s4envi:usesCommunicationInterface a rdf:Property ;
  rdfs:label "uses communication interface"@en ;
  rdfs:comment "A relation between a system and the communication interface it uses."@en ;
  rdfs:range s4envi:CommunicationInterface .

s4envi:hasComponent a rdf:Property ;
  rdfs:label "has component"@en ;
  rdfs:comment "A relation between a system and the system in which it might be decomposed."@en ;
  rdfs:range s4envi:System .

s4envi:LightPoint a rdfs:Class ;
  rdfs:label "Light point"@en ;
  rdfs:comment "An spatial point from where a light is projected. It might belong to a lamppost."@en ;
  rdfs:subClassOf <http://www.w3.org/2003/01/geo/wgs84_pos#Point> .

s4envi:projectsLight a rdf:Property ;
  rdfs:label "projects light"@en ;
  rdfs:comment "A relation between a lamppost or a light point and the light (or lights) they might project."@en ;
  rdfs:range s4envi:Light .

s4envi:PhysicalObject a rdfs:Class ;
  rdfs:label "Physical object"@en ;
  rdfs:comment "Any Object that has a proper space region.  (Definition extracted from DUL ontology)"@en ;
  rdfs:subClassOf <http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing> .

s4envi:Device a rdfs:Class ;
  rdfs:label "Device"@en ;
  rdfs:comment "A thing made or adapted for a particular purpose, especially a piece of mechanical or electronic equipment. For example ‘a measuring device’ (definition taken from https://en.oxforddictionaries.com/definition/device). In this ontology it refers to the devices for environmental purposes."@en ;
  rdfs:subClassOf s4envi:System , <https://saref.etsi.org/core/Device> .

<http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing> a rdfs:Class ;
  rdfs:label "Spatial thing"@en ;
  rdfs:comment "Anything with spatial extent, i.e. size, shape, or position. e.g. people, places, bowling balls, as well as abstract areas like cubes."@en .

s4envi:Lamppost a rdfs:Class ;
  rdfs:label "Lamppost"@en ;
  rdfs:comment "A tall pole with a light at the top."@en ;
  rdfs:subClassOf s4envi:Device .

s4envi:hasLightPoint a rdf:Property ;
  rdfs:label "has light point"@en ;
  rdfs:comment "A relation between a lamppost and its light points"@en ;
  rdfs:range s4envi:LightPoint .

s4envi:hasShield a rdf:Property ;
  rdfs:label "has shield"@en ;
  rdfs:comment "A relationship stating whether a lamppost has a shield."@en ;
  rdfs:range xsd:boolean .

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

<https://saref.etsi.org/core/measuresProperty> a rdf:Property ;
  rdfs:label "measures property"@en ;
  rdfs:comment "A relation between a sensor and the property o properties it can take measurement about."@en ;
  rdfs:range <https://saref.etsi.org/core/Property> .

<https://saref.etsi.org/core/makesMeasurement> a rdf:Property ;
  rdfs:label "makes measurement"@en ;
  rdfs:comment "A relation between a sensor and the measurements it makes. Such measurement will link together the valur of the measurement, its unit of measure and the property to which it relates."@en ;
  rdfs:range <https://saref.etsi.org/core/Measurement> .

s4envi:DigitalRepresentation a rdfs:Class ;
  rdfs:label "Digital representation"@en ;
  rdfs:comment "A digital representation encapsulates a physical object accessible via Web services"@en .

s4envi:isAccesibleThrough a rdf:Property ;
  rdfs:label "is accesible through"@en ;
  rdfs:comment "The relation between a digital representation and the service which it is accesible through."@en ;
  rdfs:range <https://saref.etsi.org/core/Service> .

s4envi:hasCreationDate a rdf:Property ;
  rdfs:label "has creation date"@en ;
  rdfs:comment "A relationship defining the creation date of an entity (e.g., a digital representation)."@en ;
  rdfs:range xsd:dateTime .

s4envi:hasTag a rdf:Property ;
  rdfs:label "has tag"@en ;
  rdfs:comment "A relationship stating the tags that can be assigned to an entity (e.g., a digital representation)."@en ;
  rdfs:range xsd:string .

s4envi:hasIdentifier a rdf:Property ;
  rdfs:label "has identifier"@en ;
  rdfs:comment "A relationship providing the identifier of an entity (e.g., digital representation)"@en ;
  rdfs:range xsd:string .

s4envi:encapsulates a rdf:Property ;
  rdfs:label "encapsulates"@en ;
  rdfs:comment "A relation between a digital representation and the physical objects it represents."@en ;
  rdfs:range s4envi:PhysicalObject .

s4envi:CommunicationInterface a rdfs:Class ;
  rdfs:label "Communication interface"@en ;
  rdfs:comment "An interface defines which primitive operations and services the lower layer makes available to the upper one, when referring to network layers. (Definition adapted from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en .

s4envi:Color a rdfs:Class ;
  rdfs:label "Color"@en ;
  rdfs:comment "Color of the emitted light. It might be indicated by named colors or using other type of color values like hexadecimal for RGB, color temperature, etc."@en .

<https://saref.etsi.org/core/UnitOfMeasure> a rdfs:Class ;
  rdfs:label "Unit of measure"@en ;
  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 the Smart Appliances ontology, but this list can be extended."@en .

s4envi:Geometry a rdfs:Class ;
  rdfs:label "Geometry"@en ;
  rdfs:comment "Represents the shape of the light emission. It might be instantiated by individuals like \"spherical\", \"cylindrical\", etc. even though it is open to more comples representation of geometries using other vocabularies."@en .

<https://saref.etsi.org/core/Device> a rdfs:Class ;
  rdfs:label "Device"@en ;
  rdfs:comment "A tangible object designed to accomplish a particular task in households, common public buildings or offices. 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 the start and stop function."@en .

s4envi:HeightMeasurement a rdfs:Class ;
  rdfs:label "Height measurement"@en ;
  rdfs:comment "Represents the measured value made over a height property. It is also linked to the height unit of measure in which the value is expressed and the timestamp of the measurement."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Measurement> .

<http://www.w3.org/2003/01/geo/wgs84_pos#Point> a rdfs:Class ;
  rdfs:label "Point"@en ;
  rdfs:comment "A point, typically described using a coordinate system relative to Earth, such as WGS84. Uniquely identified by lat/long/alt. i.e. spaciallyIntersects(P1, P2) :- lat(P1, LAT), long(P1, LONG), alt(P1, ALT), at(P2, LAT), long(P2, LONG), alt(P2, ALT). sameThing(P1, P2) :- type(P1, Point), type(P2, Point), spaciallyIntersects(P1, P2)."@en .

s4envi:TESS a rdfs:Class ;
  rdfs:label "TESS (Telescope Encoder and Sky Sensor)"@en ;
  rdfs:comment "The Telescope Encoder and Sky Sensor (TESS) is a Sky Brightness and Cloud detector developed as a device for a remote observatory. A TESS can observe the light magnitude and other properties as ambient temperature and sky temperature."@en ;
  rdfs:subClassOf s4envi:Photometer .

<https://saref.etsi.org/core/Service> a rdfs:Class ;
  rdfs:label "Service"@en ;
  rdfs:comment "A service is a representation of a function to a network that makes the function discoverable, registerable, remotely controllable by other devices in the network. A service can represent one or more functions. A Service is offered by a device that wants (a certain set of) its function(s) to be discoverable, registerable, remotely controllable by other devices in the network. A Service must specify the device that is offering the service, the function(s) to be represented, and the (input and output) parameters necessary to operate the service."@en .

s4envi:CompassDirection a rdfs:Class ;
  rdfs:label "Compass direction"@en ;
  rdfs:comment "The four cardinal directions or cardinal points are the directions of north, east, south, and west, commonly denoted by their initials: N, E, S, W. East and west are at right angles to north and south, with east being in the clockwise direction of rotation from north and west being directly opposite east. Intermediate points between the four cardinal directions form the points of the compass. (definition taken from https://en.wikipedia.org/wiki/Cardinal_direction)"@en .

s4envi:System a rdfs:Class ;
  rdfs:label "System"@en ;
  rdfs:comment "A group of related hardware units or programs or both, especially when dedicated to a single application. (Definition taken from https://en.oxforddictionaries.com/definition/system)"@en ;
  rdfs:subClassOf s4envi:PhysicalObject .

s4envi:Photometer a rdfs:Class ;
  rdfs:label "Photometer"@en ;
  rdfs:comment "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Sensor> .

<http://www.w3.org/2006/time#TemporalUnit> a rdfs:Class ;
  rdfs:label "Temporal unit"@en ;
  rdfs:comment "A temporal unit of measure, which provides a scale factor for a time quantity."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/UnitOfMeasure> .

s4envi:Light a rdfs:Class ;
  rdfs:label "Light"@en ;
  rdfs:comment "A light source, which may be a lantern, a street light, a floodlight, a signal lamp or any other device whose primary purpose is the generation of light. (Definition taken from http://wiki.openstreetmap.org/wiki/Proposed_features/Key:light_source#Description)"@en .

s4envi:hasFlash a rdf:Property ;
  rdfs:label "has flash"@en ;
  rdfs:comment "A relationship stating whether a light has flash."@en ;
  rdfs:range xsd:boolean .

s4envi:isProjectedFromHeight a rdf:Property ;
  rdfs:label "is projected from height"@en ;
  rdfs:comment "A relation between a light and the height measurement from which it is projected."@en ;
  rdfs:range s4envi:HeightMeasurement .

s4envi:hasGeometry a rdf:Property ;
  rdfs:label "has geometry"@en ;
  rdfs:comment "A relation between a light emitted and the shape it is projected in."@en ;
  rdfs:range s4envi:Geometry .

s4envi:isProjectedInDirection a rdf:Property ;
  rdfs:label "is projected in direction"@en ;
  rdfs:comment "A relation between a light and the direction in which it is projected."@en ;
  rdfs:range s4envi:CompassDirection .

s4envi:hasColor a rdf:Property ;
  rdfs:label "has color"@en ;
  rdfs:comment "A relation between a light emitted and its color."@en ;
  rdfs:range s4envi:Color .

s4envi:hasProjectionAngle a rdf:Property ;
  rdfs:label "has projection angle"@en ;
  rdfs:comment "A relationship defining the projection angle of an entity (e.g., a light)."@en ;
  rdfs:range xsd:float .

s4envi:CommunicationProtocol a rdfs:Class ;
  rdfs:label "Communication protocol"@en ;
  rdfs:comment "A protocol is an agreement between the communicating parties on how communication is to proceed. (Definition taken from \"Tanenbaum, A. S. (2003). Computer networks, 4-th edition. ed: Prentice Hall.\")"@en .

<https://saref.etsi.org/core/Measurement> a rdfs:Class ;
  rdfs:label "Measurement"@en ;
  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 .

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

<https://saref.etsi.org/core/Property> a rdfs:Class ;
  rdfs:label "Property"@en ;
  rdfs:comment "An aspect of an entity that can be observable by a sensor."@en .

s4envi:FrequencyUnit a rdfs:Class ;
  rdfs:label "Frequency unit"@en ;
  rdfs:comment "Unit of measure for the quantity frequency."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/UnitOfMeasure> .

<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_second-time> a s4envi:FrequencyUnit ;
  rdfs:label "Reciprocal second"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_hour> a s4envi:FrequencyUnit ;
  rdfs:label "Reciprocal hour"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_year> a s4envi:FrequencyUnit ;
  rdfs:label "Reciprocal year"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/hertz> a s4envi:FrequencyUnit ;
  rdfs:label "Hertz"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_day> a s4envi:FrequencyUnit ;
  rdfs:label "Reciprocal day"@en .

s4envi:LengthUnit a rdfs:Class ;
  rdfs:label "Length unit"@en ;
  rdfs:comment "Unit of measure for the quantity lenght."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/UnitOfMeasure> .

<http://www.wurvoc.org/vocabularies/om-1.8/centimetre> a s4envi:LengthUnit ;
  rdfs:label "Centimetre"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/decametre> a s4envi:LengthUnit ;
  rdfs:label "Decametre"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/decimetre> a s4envi:LengthUnit ;
  rdfs:label "Decimetre"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/hectometre> a s4envi:LengthUnit ;
  rdfs:label "Hectometre"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/millimetre> a s4envi:LengthUnit ;
  rdfs:label "Milimetre"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/metre> a s4envi:LengthUnit ;
  rdfs:label "Metre"@en .

<http://www.wurvoc.org/vocabularies/om-1.8/kilometre> a s4envi:LengthUnit ;
  rdfs:label "Kilometre"@en .

s4envi:LightProperty a rdfs:Class ;
  rdfs:label "Light property"@en ;
  rdfs:comment "An aspect of light that can be observable by a sensor."@en ;
  rdfs:subClassOf <https://saref.etsi.org/core/Property> .

s4envi:Illuminance a s4envi:LightProperty ;
  rdfs:label "Illuminance"@en ;
  rdfs:comment "An individual representing the light property illuminance."@en .

s4envi:LightAbsorption a s4envi:LightProperty ;
  rdfs:label "Light absorption"@en ;
  rdfs:comment "An individual representing the light property light absorption."@en .

s4envi:Irradiance a s4envi:LightProperty ;
  rdfs:label "Irradiance"@en ;
  rdfs:comment "An individual representing the light property irradiance."@en .

s4envi:Luminiscence a s4envi:LightProperty ;
  rdfs:label "Luminiscence"@en ;
  rdfs:comment "An individual representing the light property luminiscence."@en .

s4envi:Phosphorescence a s4envi:LightProperty ;
  rdfs:label "Phosphorescence"@en ;
  rdfs:comment "An individual representing the light property phosphorescence."@en .

s4envi:ReflectionOfLight a s4envi:LightProperty ;
  rdfs:label "Reflection of light"@en ;
  rdfs:comment "An individual representing the light property reflection of light."@en .

s4envi:ScatteringOfLight a s4envi:LightProperty ;
  rdfs:label "Scattering of light"@en ;
  rdfs:comment "An individual representing the light property scattering of light."@en .

s4envi:LightMagnitude a s4envi:LightProperty ;
  rdfs:label "Light magnitude"@en ;
  rdfs:comment "An individual representing the light property light magnitude."@en .

s4envi:Fluorescence a s4envi:LightProperty ;
  rdfs:label "Fluorescence"@en ;
  rdfs:comment "An individual representing the light property fluorescence."@en .
