@prefix :      <https://saref.etsi.org/saref4envi/> .
@prefix geo:   <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix s4envi: <https://saref.etsi.org/saref4envi/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml:   <http://www.w3.org/XML/1998/namespace> .
@prefix saref: <https://saref.etsi.org/core/> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix time:  <http://www.w3.org/2006/time#> .
@prefix vann:  <http://purl.org/vocab/vann/> .

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

s4envi:isAccesibleThrough
        a             owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment  "The relation between a digital representation and the service which it is accesible through."@en ;
        rdfs:label    "is accesible through"@en .

s4envi:hasFlash  a    owl:FunctionalProperty , owl:DatatypeProperty ;
        rdfs:comment  "A relationship stating whether a light has flash."@en ;
        rdfs:label    "has flash"@en ;
        rdfs:range    xsd:boolean .

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

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

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

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

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

geo:SpatialThing  a       owl:Class ;
        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 ;
        rdfs:isDefinedBy  geo: ;
        rdfs:label        "Spatial thing"@en ;
        owl:disjointWith  s4envi:Geometry , s4envi:CommunicationInterface , saref:Measurement , saref:Service , s4envi:DigitalRepresentation , s4envi:Color , s4envi:CompassDirection , s4envi:CommunicationProtocol .

s4envi:Actuator  a       owl:Class ;
        rdfs:comment     "Device that can act over at least one property."@en ;
        rdfs:label       "Actuator"@en ;
        rdfs:subClassOf  s4envi:Device ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  saref:Property ;
                           owl:onProperty     s4envi:affectsProperty
                         ] .

s4envi:Device  a         owl:Class ;
        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:label       "Device"@en ;
        rdfs:subClassOf  s4envi:System , saref:Device ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     saref:hasManufacturer
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:PhysicalObject ;
                           owl:onProperty     s4envi:isContainedIn
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onDataRange              xsd:string ;
                           owl:onProperty               s4envi:hasVersion
                         ] ;
        rdfs:subClassOf  [ a                            owl:Restriction ;
                           owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                           owl:onDataRange              xsd:string ;
                           owl:onProperty               s4envi:hasRevisionNumber
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:FrequencyMeasurement ;
                           owl:onProperty     s4envi:hasFrequencyMeasurement
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     s4envi:hasRevisionNumber
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     s4envi:hasVersion
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:PeriodMeasurement ;
                           owl:onProperty     s4envi:hasTransmissionPeriod
                         ] .

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

dcterms:license  a  owl:AnnotationProperty .

saref:Service  a          owl:Class ;
        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 ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "Service"@en ;
        owl:disjointWith  saref:UnitOfMeasure , s4envi:Color , s4envi:CompassDirection , s4envi:Geometry , s4envi:Light , s4envi:CommunicationProtocol .

s4envi:LengthUnit  a     owl:Class ;
        rdfs:comment     "Unit of measure for the quantity lenght."@en ;
        rdfs:label       "Length unit"@en ;
        rdfs:subClassOf  saref:UnitOfMeasure .

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

s4envi:PeriodMeasurement
        a                owl:Class ;
        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:label       "Period measurement"@en ;
        rdfs:subClassOf  saref:Measurement ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               time:TemporalUnit ;
                           owl:onProperty            saref:isMeasuredIn ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    s4envi:Period ;
                           owl:onProperty  saref:relatesToProperty
                         ] .

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

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

s4envi:hasDigitalRepresentation
        a             owl:InverseFunctionalProperty , owl:ObjectProperty ;
        rdfs:comment  "A relation between a physical object and the digital representation in which it is encapsulated."@en ;
        rdfs:label    "has digital representation"@en .

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

s4envi:Lamppost  a       owl:Class ;
        rdfs:comment     "A tall pole with a light at the top."@en ;
        rdfs:label       "Lamppost"@en ;
        rdfs:subClassOf  s4envi:Device ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:boolean ;
                           owl:onProperty     s4envi:hasShield
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:Light ;
                           owl:onProperty     s4envi:projectsLight
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:LightPoint ;
                           owl:onProperty     s4envi:hasLightPoint
                         ] .

s4envi:Geometry  a        owl:Class ;
        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 ;
        rdfs:label        "Geometry"@en ;
        owl:disjointWith  s4envi:Light .

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

vann:preferredNamespacePrefix
        a       owl:AnnotationProperty .

s4envi:usesCommunicationInterface
        a             owl:ObjectProperty ;
        rdfs:comment  "A relation between a system and the communication interface it uses."@en ;
        rdfs:label    "uses communication interface"@en .

saref:Property  a         owl:Class ;
        rdfs:comment      "An aspect of an entity that can be observable by a sensor."@en ;
        rdfs:label        "Property"@en ;
        owl:disjointWith  saref:Service , s4envi:CommunicationProtocol , saref:UnitOfMeasure , s4envi:CommunicationInterface , s4envi:CompassDirection , s4envi:Light , s4envi:Geometry .

s4envi:encapsulates  a  owl:FunctionalProperty , owl:ObjectProperty ;
        rdfs:comment   "A relation between a digital representation and the physical objects it represents."@en ;
        rdfs:label     "encapsulates"@en ;
        owl:inverseOf  s4envi:hasDigitalRepresentation .

s4envi:isComponentOf  a  owl:TransitiveProperty , owl:ObjectProperty ;
        rdfs:comment  "A relation between a system and the system it belongs to as a component."@en ;
        rdfs:label    "is component of"@en .

s4envi:TESS  a           owl:Class ;
        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:label       "TESS (Telescope Encoder and Sky Sensor)"@en ;
        rdfs:subClassOf  s4envi:Photometer .

s4envi:PhysicalObject
        a                owl:Class ;
        rdfs:comment     "Any Object that has a proper space region.  (Definition extracted from DUL ontology)"@en ;
        rdfs:label       "Physical object"@en ;
        rdfs:subClassOf  geo:SpatialThing ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     saref:hasDescription
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:PhysicalObject ;
                           owl:onProperty     s4envi:isContainedIn
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:DigitalRepresentation ;
                           owl:onProperty     s4envi:hasDigitalRepresentation
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:PhysicalObject ;
                           owl:onProperty     s4envi:contains
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  geo:SpatialThing ;
                           owl:onProperty     geo:location
                         ] .

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

saref:hasManufacturer
        a                 owl:DatatypeProperty ;
        rdfs:comment      "A relationship identifying the manufacturer of an entity (e.g., device)"@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "has manufacturer"@en .

s4envi:Color  a           owl:Class ;
        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 ;
        rdfs:label        "Color"@en ;
        owl:disjointWith  s4envi:Light , s4envi:Geometry , s4envi:DigitalRepresentation , s4envi:CompassDirection , s4envi:CommunicationProtocol , s4envi:CommunicationInterface .

s4envi:contains  a     owl:ObjectProperty ;
        rdfs:comment   "A relation between a physical object and the physical objects that can be contained in it."@en ;
        rdfs:label     "contains"@en ;
        owl:inverseOf  s4envi:isContainedIn .

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

s4envi:Frequency  a   saref:Property , owl:NamedIndividual ;
        rdfs:comment  "An individual representing the property frequency."@en ;
        rdfs:label    "Frequency"@en .

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

vann:preferredNamespaceUri
        a       owl:AnnotationProperty .

dcterms:source  a  owl:AnnotationProperty .

saref:relatesToProperty
        a                 owl:ObjectProperty ;
        rdfs:comment      "A relation between a measurement and the property such measurement is about."@en ;
        rdfs:isDefinedBy  "https://saref.etsi.org/core/" ;
        rdfs:label        "relates to property"@en .

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

s4envi:usesCommunicationProtocol
        a             owl:ObjectProperty ;
        rdfs:comment  "A relation between a system and the communication protocol it uses."@en ;
        rdfs:label    "uses communication protocol"@en .

s4envi:Light  a          owl:Class ;
        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 ;
        rdfs:label       "Light"@en ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:float ;
                           owl:onProperty     s4envi:hasProjectionAngle
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:boolean ;
                           owl:onProperty     s4envi:hasFlash
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:CompassDirection ;
                           owl:onProperty     s4envi:isProjectedInDirection
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:HeightMeasurement ;
                           owl:onProperty     s4envi:isProjectedFromHeight
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:Geometry ;
                           owl:onProperty     s4envi:hasGeometry
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:Color ;
                           owl:onProperty     s4envi:hasColor
                         ] .

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

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

saref:isMeasuredIn  a     owl:ObjectProperty ;
        rdfs:comment      "is measured in"@en , "A relation between a measurement and the unit of measure in which the measurement value is expressed."@en ;
        rdfs:isDefinedBy  "https://saref.etsi.org/core/" .

s4envi:CompassDirection
        a                 owl:Class ;
        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 ;
        rdfs:label        "Compass direction"@en ;
        owl:disjointWith  s4envi:Light , s4envi:Geometry , s4envi:DigitalRepresentation .

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

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

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

s4envi:Photometer  a     owl:Class ;
        rdfs:comment     "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ;
        rdfs:label       "Photometer"@en ;
        rdfs:subClassOf  saref:Sensor ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      saref:measuresProperty ;
                           owl:someValuesFrom  s4envi:LightProperty
                         ] .

saref:makesMeasurement
        a                 owl:ObjectProperty ;
        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:isDefinedBy  "https://saref.etsi.org/core/" ;
        rdfs:label        "makes measurement"@en .

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

dcterms:title  a  owl:AnnotationProperty .

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

s4envi:hasComponent  a  owl:TransitiveProperty , owl:ObjectProperty ;
        rdfs:comment   "A relation between a system and the system in which it might be decomposed."@en ;
        rdfs:label     "has component"@en ;
        owl:inverseOf  s4envi:isComponentOf .

time:TemporalUnit  a      owl:Class ;
        rdfs:comment      "A temporal unit of measure, which provides a scale factor for a time quantity."@en ;
        rdfs:isDefinedBy  time: ;
        rdfs:label        "Temporal unit"@en ;
        rdfs:subClassOf   saref:UnitOfMeasure .

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

s4envi:FrequencyUnit  a  owl:Class ;
        rdfs:comment     "Unit of measure for the quantity frequency."@en ;
        rdfs:label       "Frequency unit"@en ;
        rdfs:subClassOf  saref:UnitOfMeasure .

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

dcterms:modified  a  owl:AnnotationProperty .

s4envi:affectsProperty
        a             owl:ObjectProperty ;
        rdfs:comment  "A relation between an actuator with the property or properties it can act on"@en ;
        rdfs:label    "affects property"@en .

dcterms:creator  a  owl:AnnotationProperty .

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

s4envi:FrequencyMeasurement
        a                owl:Class ;
        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:label       "Frequency measurement"@en ;
        rdfs:subClassOf  saref:Measurement ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               s4envi:FrequencyUnit ;
                           owl:onProperty            saref:isMeasuredIn ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    s4envi:Frequency ;
                           owl:onProperty  saref:relatesToProperty
                         ] .

s4envi:HeightMeasurement
        a                owl:Class ;
        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:label       "Height measurement"@en ;
        rdfs:subClassOf  saref:Measurement ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               s4envi:LengthUnit ;
                           owl:onProperty            saref:isMeasuredIn ;
                           owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                         ] ;
        rdfs:subClassOf  [ a               owl:Restriction ;
                           owl:hasValue    s4envi:Height ;
                           owl:onProperty  saref:relatesToProperty
                         ] .

saref:Device  a           owl:Class ;
        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 ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "Device"@en .

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

s4envi:hasLightPoint  a  owl:ObjectProperty ;
        rdfs:comment  "A relation between a lamppost and its light points"@en ;
        rdfs:label    "has light point"@en .

s4envi:  a                             owl:Ontology ;
        rdfs:comment                   "Information about changes compared to version 1.1.1: \n - Updated namespaces for compatibility with SAREF v3."@en ;
        rdfs:seeAlso                   <https://www.etsi.org/deliver/etsi_ts/103400_103499/10341002/01.01.02_60/ts_10341002v010102p.pdf> ;
        dcterms:creator                <http://purl.org/net/mpoveda> , <http://www.garcia-castro.com/foaf.rdf#me> ;
        dcterms:description            "This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc."@en ;
        dcterms:issued                 "2020-06-05"^^xsd:date ;
        dcterms:license                <https://forge.etsi.org/etsi-software-license> ;
        dcterms:modified               "2020-06-05"^^xsd:date ;
        dcterms:publisher              <https://www.etsi.org/> ;
        dcterms:source                 <https://saref.etsi.org/sources/saref4envi/> ;
        dcterms:title                  "SAREF extension for environment"@en ;
        vann:preferredNamespacePrefix  "s4envi" ;
        vann:preferredNamespaceUri     "https://saref.etsi.org/saref4envi/" ;
        owl:versionIRI                 <https://saref.etsi.org/saref4envi/v1.1.2/> ;
        owl:versionInfo                "v1.1.2" .

geo:Point  a              owl:Class ;
        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 ;
        rdfs:isDefinedBy  geo: ;
        rdfs:label        "Point"@en .

dcterms:description  a  owl:AnnotationProperty .

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

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

s4envi:hasColor  a    owl:ObjectProperty ;
        rdfs:comment  "A relation between a light emitted and its color."@en ;
        rdfs:label    "has color"@en .

s4envi:LightProperty  a  owl:Class ;
        rdfs:comment     "An aspect of light that can be observable by a sensor."@en ;
        rdfs:label       "Light property"@en ;
        rdfs:subClassOf  saref:Property .

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

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

saref:Measurement  a      owl:Class ;
        rdfs:comment      "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ;
        rdfs:label        "Measurement"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:float ;
                            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:UnitOfMeasure ;
                            owl:onProperty            saref:isMeasuredIn ;
                            owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                          ] ;
        rdfs:subClassOf   [ a                         owl:Restriction ;
                            owl:onDataRange           xsd:float ;
                            owl:onProperty            saref:hasValue ;
                            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:Property ;
                            owl:onProperty            saref:relatesToProperty ;
                            owl:qualifiedCardinality  "1"^^xsd:nonNegativeInteger
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:UnitOfMeasure ;
                            owl:onProperty     saref:isMeasuredIn
                          ] ;
        owl:disjointWith  s4envi:DigitalRepresentation , saref:Service , s4envi:CompassDirection , saref:UnitOfMeasure , s4envi:Geometry , saref:Property , s4envi:Light , s4envi:CommunicationInterface , s4envi:CommunicationProtocol .

s4envi:LightPoint  a     owl:Class ;
        rdfs:comment     "An spatial point from where a light is projected. It might belong to a lamppost."@en ;
        rdfs:label       "Light point"@en ;
        rdfs:subClassOf  geo:Point ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:Light ;
                           owl:onProperty     s4envi:projectsLight
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  geo:SpatialThing ;
                           owl:onProperty     geo:location
                         ] .

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

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

s4envi:DigitalRepresentation
        a                 owl:Class ;
        rdfs:comment      "A digital representation encapsulates a physical object accessible via Web services"@en ;
        rdfs:label        "Digital representation"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  s4envi:PhysicalObject ;
                            owl:onProperty     s4envi:encapsulates
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:dateTime ;
                            owl:onProperty     s4envi:hasCreationDate
                          ] ;
        rdfs:subClassOf   [ a                            owl:Restriction ;
                            owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onDataRange              xsd:dateTime ;
                            owl:onProperty               s4envi:hasCreationDate
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  saref:Service ;
                            owl:onProperty     s4envi:isAccesibleThrough
                          ] ;
        rdfs:subClassOf   [ a                            owl:Restriction ;
                            owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onDataRange              xsd:string ;
                            owl:onProperty               s4envi:hasIdentifier
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:string ;
                            owl:onProperty     s4envi:hasIdentifier
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:string ;
                            owl:onProperty     saref:hasDescription
                          ] ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:string ;
                            owl:onProperty     s4envi:hasTag
                          ] ;
        owl:disjointWith  s4envi:Light , s4envi:Geometry .

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 the Smart Appliances ontology, but this list can be extended."@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "Unit of measure"@en ;
        owl:disjointWith  s4envi:Color , s4envi:CommunicationInterface , s4envi:Light , s4envi:CommunicationProtocol , s4envi:DigitalRepresentation , s4envi:Geometry , s4envi:CompassDirection .

s4envi:isConnectedTo  a  owl:SymmetricProperty , owl:ObjectProperty ;
        rdfs:comment  "A relation between a system and the system to which it is connected."@en ;
        rdfs:label    "is connected to"@en .

saref:hasValue  a         owl:DatatypeProperty ;
        rdfs:comment      "A relationship defining the value of a certain property, e.g., energy or power"@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "has value"@en .

saref:hasDescription  a   owl:DatatypeProperty ;
        rdfs:comment      "A relationship providing a description of an entity (e.g., device)"@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "has description"@en .

s4envi:CommunicationInterface
        a                 owl:Class ;
        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 ;
        rdfs:label        "Communication interface"@en ;
        rdfs:subClassOf   [ a                  owl:Restriction ;
                            owl:allValuesFrom  xsd:string ;
                            owl:onProperty     s4envi:hasVersion
                          ] ;
        rdfs:subClassOf   [ a                            owl:Restriction ;
                            owl:maxQualifiedCardinality  "1"^^xsd:nonNegativeInteger ;
                            owl:onDataRange              xsd:string ;
                            owl:onProperty               s4envi:hasVersion
                          ] ;
        owl:disjointWith  s4envi:CommunicationProtocol , s4envi:Light , s4envi:Geometry , s4envi:CompassDirection , s4envi:DigitalRepresentation .

s4envi:Period  a      saref:Property , owl:NamedIndividual ;
        rdfs:comment  "An individual representing the property period."@en ;
        rdfs:label    "Period"@en .

s4envi:System  a         owl:Class ;
        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:label       "System"@en ;
        rdfs:subClassOf  s4envi:PhysicalObject ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:CommunicationProtocol ;
                           owl:onProperty     s4envi:usesCommunicationProtocol
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:CommunicationInterface ;
                           owl:onProperty     s4envi:usesCommunicationInterface
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:System ;
                           owl:onProperty     s4envi:isConnectedTo
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:System ;
                           owl:onProperty     s4envi:isComponentOf
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  s4envi:System ;
                           owl:onProperty     s4envi:hasComponent
                         ] .

s4envi:Height  a      saref:Property , owl:NamedIndividual ;
        rdfs:comment  "An individual representing the property height."@en ;
        rdfs:label    "Height"@en .

s4envi:hasShield  a   owl:FunctionalProperty , owl:DatatypeProperty ;
        rdfs:comment  "A relationship stating whether a lamppost has a shield."@en ;
        rdfs:label    "has shield"@en ;
        rdfs:range    xsd:boolean .

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

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

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.\nA device that has category saref:Sensor and performs a saref:SensingFunction."@en ;
        rdfs:isDefinedBy  saref: ;
        rdfs:label        "Sensor"@en ;
        rdfs:subClassOf   saref:Device ;
        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
                          ] .

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

s4envi:CommunicationProtocol
        a                 owl:Class ;
        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 ;
        rdfs:label        "Communication protocol"@en ;
        owl:disjointWith  s4envi:Light , s4envi:Geometry , s4envi:DigitalRepresentation , s4envi:CompassDirection .

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