@prefix : <http://saref.linkeddata.es/def/envi#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wot: <http://xmlns.com/wot/0.1/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rddl: <http://www.rddl.org/> .
@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/> .
@prefix saref: <https://w3id.org/saref#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@base <http://saref.linkeddata.es/def/envi> .

<http://saref.linkeddata.es/def/envi> rdf:type owl:Ontology ;
                                       owl:versionIRI <http://saref.linkeddata.es/def/v1/envi> ;
                                       dcterms:creator <http://purl.org/net/mpoveda> ;
                                       rdfs:comment "This ontology extends the SAREF ontology for the environment domain, specifically for the light pollution domain, including concepts like photometers, light, etc."@en ;
                                       dc:title "SAREF extension for environment"@en ;
                                       dcterms:creator <http://www.garcia-castro.com/foaf.rdf#me> ;
                                       vann:preferredNamespacePrefix "s4envi" ;
                                       dcterms:license <http://purl.org/NET/rdflicense/cc-by4.0> ;
                                       owl:versionInfo "1.0" ;
                                       dc:publisher <http://www.oeg-upm.net/> ;
                                       vann:preferredNamespaceUri "http://saref.linkeddata.es/def/envi#" .

#################################################################
#    Object Properties
#################################################################

###  http://saref.linkeddata.es/def/envi#affectsProperty
:affectsProperty rdf:type owl:ObjectProperty ;
                 rdfs:comment ""@en ;
                 rdfs:label "affects property"@en .


###  http://saref.linkeddata.es/def/envi#contains
:contains rdf:type owl:ObjectProperty ;
          owl:inverseOf :isContainedIn ;
          rdfs:comment ""@en ;
          rdfs:label "contains"@en .


###  http://saref.linkeddata.es/def/envi#encapsulates
:encapsulates rdf:type owl:ObjectProperty ;
              owl:inverseOf :hasDigitalRepresentation ;
              rdf:type owl:FunctionalProperty ;
              rdfs:comment ""@en ;
              rdfs:label "encapsulates"@en .


###  http://saref.linkeddata.es/def/envi#hasColor
:hasColor rdf:type owl:ObjectProperty ;
          rdfs:comment ""@en ;
          rdfs:label "has color"@en .


###  http://saref.linkeddata.es/def/envi#hasComponent
:hasComponent rdf:type owl:ObjectProperty ;
              owl:inverseOf :isComponentOf ;
              rdf:type owl:TransitiveProperty ;
              rdfs:comment ""@en ;
              rdfs:label "has component"@en .


###  http://saref.linkeddata.es/def/envi#hasDigitalRepresentation
:hasDigitalRepresentation rdf:type owl:ObjectProperty ,
                                   owl:InverseFunctionalProperty ;
                          rdfs:comment ""@en ;
                          rdfs:label "has digital representation"@en .


###  http://saref.linkeddata.es/def/envi#hasGeometry
:hasGeometry rdf:type owl:ObjectProperty ;
             rdfs:comment ""@en ;
             rdfs:label "has geometry"@en .


###  http://saref.linkeddata.es/def/envi#hasLightPoint
:hasLightPoint rdf:type owl:ObjectProperty ;
               rdfs:comment ""@en ;
               rdfs:label "has light point"@en .


###  http://saref.linkeddata.es/def/envi#hasMeasurementFrequency
:hasMeasurementFrequency rdf:type owl:ObjectProperty ;
                         rdfs:comment ""@en ;
                         rdfs:label "has measurement frequency"@en .


###  http://saref.linkeddata.es/def/envi#hasTransmissionPeriod
:hasTransmissionPeriod rdf:type owl:ObjectProperty ;
                       rdfs:comment ""@en ;
                       rdfs:label "has transmission period"@en .


###  http://saref.linkeddata.es/def/envi#isAccesibleThrough
:isAccesibleThrough rdf:type owl:ObjectProperty ,
                             owl:FunctionalProperty ;
                    rdfs:comment ""@en ;
                    rdfs:label "is accesible through"@en .


###  http://saref.linkeddata.es/def/envi#isComponentOf
:isComponentOf rdf:type owl:ObjectProperty ,
                        owl:TransitiveProperty ;
               rdfs:comment ""@en ;
               rdfs:label "is component of"@en .


###  http://saref.linkeddata.es/def/envi#isConnectedTo
:isConnectedTo rdf:type owl:ObjectProperty ,
                        owl:SymmetricProperty ;
               rdfs:comment ""@en ;
               rdfs:label "is connected to"@en .


###  http://saref.linkeddata.es/def/envi#isContainedIn
:isContainedIn rdf:type owl:ObjectProperty ;
               rdfs:label "is contained in"@en .


###  http://saref.linkeddata.es/def/envi#isProjectedFromHeight
:isProjectedFromHeight rdf:type owl:ObjectProperty ;
                       rdfs:comment ""@en ;
                       rdfs:label "is projected from height"@en .


###  http://saref.linkeddata.es/def/envi#isProjectedInDirection
:isProjectedInDirection rdf:type owl:ObjectProperty ;
                        rdfs:comment ""@en ;
                        rdfs:label "is projected in direction"@en .


###  http://saref.linkeddata.es/def/envi#makesMeasurement
:makesMeasurement rdf:type owl:ObjectProperty ;
                  rdfs:comment ""@en ;
                  rdfs:label "makes measurement"@en .


###  http://saref.linkeddata.es/def/envi#measuresProperty
:measuresProperty rdf:type owl:ObjectProperty ;
                  rdfs:comment ""@en ;
                  rdfs:label "measures property"@en .


###  http://saref.linkeddata.es/def/envi#projectsLight
:projectsLight rdf:type owl:ObjectProperty ;
               rdfs:comment ""@en ;
               rdfs:label "projects light"@en .


###  http://saref.linkeddata.es/def/envi#relatesToProperty
:relatesToProperty rdf:type owl:ObjectProperty ;
                   rdfs:comment ""@en ;
                   rdfs:label "relates to property"@en .


###  http://saref.linkeddata.es/def/envi#usesCommunicationInterface
:usesCommunicationInterface rdf:type owl:ObjectProperty ;
                            rdfs:comment ""@en ;
                            rdfs:label "uses communication interface"@en .


###  http://saref.linkeddata.es/def/envi#usesCommunicationProtocol
:usesCommunicationProtocol rdf:type owl:ObjectProperty ;
                           rdfs:comment ""@en ;
                           rdfs:label "uses communication protocol"@en .


###  http://www.w3.org/2003/01/geo/wgs84_pos#location
geo:location rdf:type 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 .


###  https://w3id.org/saref#isMeasuredIn
saref:isMeasuredIn rdf:type owl:ObjectProperty ;
                   rdfs:comment "is measured in"@en .


#################################################################
#    Data properties
#################################################################

###  http://saref.linkeddata.es/def/envi#hasCreationDate
:hasCreationDate rdf:type owl:DatatypeProperty ,
                          owl:FunctionalProperty ;
                 rdfs:range xsd:dateTime ;
                 rdfs:comment ""@en ;
                 rdfs:label "has creation date"@en .


###  http://saref.linkeddata.es/def/envi#hasFlash
:hasFlash rdf:type owl:DatatypeProperty ,
                   owl:FunctionalProperty ;
          rdfs:range xsd:boolean ;
          rdfs:comment ""@en ;
          rdfs:label "has flash"@en .


###  http://saref.linkeddata.es/def/envi#hasIdentifier
:hasIdentifier rdf:type owl:DatatypeProperty ;
               rdfs:range xsd:string ;
               rdfs:comment "A relationship providing the identifier of an entity (e.g., digital representation)"@en ;
               rdfs:label "has identifier"@en .


###  http://saref.linkeddata.es/def/envi#hasProjectionAngle
:hasProjectionAngle rdf:type owl:DatatypeProperty ,
                             owl:FunctionalProperty ;
                    rdfs:range xsd:float ;
                    rdfs:comment ""@en ;
                    rdfs:label "has projection angle"@en .


###  http://saref.linkeddata.es/def/envi#hasRevisionNumber
:hasRevisionNumber rdf:type owl:DatatypeProperty ;
                   rdfs:range xsd:string ;
                   rdfs:comment ""@en ;
                   rdfs:label "has revision number"@en .


###  http://saref.linkeddata.es/def/envi#hasShield
:hasShield rdf:type owl:DatatypeProperty ,
                    owl:FunctionalProperty ;
           rdfs:range xsd:boolean ;
           rdfs:comment ""@en ;
           rdfs:label "has shield"@en .


###  http://saref.linkeddata.es/def/envi#hasTag
:hasTag rdf:type owl:DatatypeProperty ;
        rdfs:range xsd:string ;
        rdfs:comment ""@en ;
        rdfs:label "has tag"@en .


###  http://saref.linkeddata.es/def/envi#hasTimestamp
:hasTimestamp rdf:type owl:DatatypeProperty ,
                       owl:FunctionalProperty ;
              rdfs:range xsd:dateTime ;
              rdfs:comment ""@en ;
              rdfs:label "has timestamp"@en .


###  http://saref.linkeddata.es/def/envi#hasVersion
:hasVersion rdf:type owl:DatatypeProperty ,
                     owl:FunctionalProperty ;
            rdfs:range xsd:string ;
            rdfs:comment ""@en ;
            rdfs:label "has version"@en .


###  https://w3id.org/saref#hasDescription
saref:hasDescription rdf:type owl:DatatypeProperty ;
                     rdfs:label "has description"@en .


###  https://w3id.org/saref#hasManufacturer
saref:hasManufacturer rdf:type owl:DatatypeProperty ;
                      rdfs:label "has manufacturer"@en .


###  https://w3id.org/saref#hasName
saref:hasName rdf:type owl:DatatypeProperty ;
              rdfs:label "has name"@en .


###  https://w3id.org/saref#hasValue
saref:hasValue rdf:type owl:DatatypeProperty ;
               rdfs:label "has value"@en .


#################################################################
#    Classes
#################################################################

###  http://saref.linkeddata.es/def/envi#Actuator
:Actuator rdf:type owl:Class ;
          rdfs:subClassOf :Device ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty :affectsProperty ;
                            owl:allValuesFrom :Property
                          ] ;
          rdfs:comment "Device that can act over at least one property."@en ;
          rdfs:label "Actuator"@en .


###  http://saref.linkeddata.es/def/envi#Color
:Color rdf:type 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 .


###  http://saref.linkeddata.es/def/envi#CommunicationInterface
:CommunicationInterface rdf:type owl:Class ;
                        rdfs:subClassOf [ rdf:type owl:Restriction ;
                                          owl:onProperty :hasVersion ;
                                          owl:allValuesFrom xsd:string
                                        ] ,
                                        [ rdf:type owl:Restriction ;
                                          owl:onProperty :hasVersion ;
                                          owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                          owl:onDataRange xsd:string
                                        ] ;
                        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 .


###  http://saref.linkeddata.es/def/envi#CommunicationProtocol
:CommunicationProtocol rdf:type 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 .


###  http://saref.linkeddata.es/def/envi#CompassDirection
:CompassDirection rdf:type 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 .


###  http://saref.linkeddata.es/def/envi#Device
:Device rdf:type owl:Class ;
        rdfs:subClassOf :System ,
                        saref:Device ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasMeasurementFrequency ;
                          owl:allValuesFrom :FrequencyMeasurement
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasTransmissionPeriod ;
                          owl:allValuesFrom :PeriodMeasurement
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :isContainedIn ;
                          owl:allValuesFrom :PhysicalObject
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasRevisionNumber ;
                          owl:allValuesFrom xsd:string
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasVersion ;
                          owl:allValuesFrom xsd:string
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty saref:hasManufacturer ;
                          owl:allValuesFrom xsd:string
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasRevisionNumber ;
                          owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                          owl:onDataRange xsd:string
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasVersion ;
                          owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                          owl:onDataRange xsd:string
                        ] ;
        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 .


###  http://saref.linkeddata.es/def/envi#DigitalRepresentation
:DigitalRepresentation rdf:type owl:Class ;
                       rdfs:subClassOf [ rdf:type owl:Restriction ;
                                         owl:onProperty :encapsulates ;
                                         owl:allValuesFrom :PhysicalObject
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :isAccesibleThrough ;
                                         owl:allValuesFrom saref:Service
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasCreationDate ;
                                         owl:allValuesFrom xsd:dateTime
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasIdentifier ;
                                         owl:allValuesFrom xsd:string
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasTag ;
                                         owl:allValuesFrom xsd:string
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty saref:hasDescription ;
                                         owl:allValuesFrom xsd:string
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty saref:hasName ;
                                         owl:allValuesFrom xsd:string
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasCreationDate ;
                                         owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                         owl:onDataRange xsd:dateTime
                                       ] ,
                                       [ rdf:type owl:Restriction ;
                                         owl:onProperty :hasIdentifier ;
                                         owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                         owl:onDataRange xsd:string
                                       ] ;
                       rdfs:comment "A digital representation encapsulates a physical object accessible via Web services"@en ;
                       rdfs:label "Digital representation"@en .


###  http://saref.linkeddata.es/def/envi#FrequencyMeasurement
:FrequencyMeasurement rdf:type owl:Class ;
                      rdfs:subClassOf :Measurement ,
                                      [ rdf:type owl:Restriction ;
                                        owl:onProperty :relatesToProperty ;
                                        owl:hasValue :Frequency
                                      ] ,
                                      [ rdf:type owl:Restriction ;
                                        owl:onProperty saref:isMeasuredIn ;
                                        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                        owl:onClass :FrequencyUnit
                                      ] ;
                      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 .


###  http://saref.linkeddata.es/def/envi#FrequencyUnit
:FrequencyUnit rdf:type owl:Class ;
               rdfs:subClassOf saref:UnitOfMeasure ;
               rdfs:comment "Unit of measure for the quantity frequency."@en ;
               rdfs:label "Frequency unit"@en .


###  http://saref.linkeddata.es/def/envi#Geometry
:Geometry rdf:type 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 .


###  http://saref.linkeddata.es/def/envi#HeightMeasurement
:HeightMeasurement rdf:type owl:Class ;
                   rdfs:subClassOf :Measurement ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty :relatesToProperty ;
                                     owl:hasValue :Height
                                   ] ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty saref:isMeasuredIn ;
                                     owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                     owl:onClass :LengthUnit
                                   ] ;
                   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 .


###  http://saref.linkeddata.es/def/envi#Lamppost
:Lamppost rdf:type owl:Class ;
          rdfs:subClassOf :Device ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty :hasLightPoint ;
                            owl:allValuesFrom :LightPoint
                          ] ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty :projectsLight ;
                            owl:allValuesFrom :Light
                          ] ,
                          [ rdf:type owl:Restriction ;
                            owl:onProperty :hasShield ;
                            owl:allValuesFrom xsd:boolean
                          ] ;
          rdfs:comment "A tall pole with a light at the top."@en ;
          rdfs:label "Lamppost"@en .


###  http://saref.linkeddata.es/def/envi#LengthUnit
:LengthUnit rdf:type owl:Class ;
            rdfs:subClassOf saref:UnitOfMeasure ;
            rdfs:comment "Unit of measure for the quantity lenght."@en ;
            rdfs:label "Length unit"@en .


###  http://saref.linkeddata.es/def/envi#Light
:Light rdf:type owl:Class ;
       rdfs:subClassOf [ rdf:type owl:Restriction ;
                         owl:onProperty :hasColor ;
                         owl:allValuesFrom :Color
                       ] ,
                       [ rdf:type owl:Restriction ;
                         owl:onProperty :hasGeometry ;
                         owl:allValuesFrom :Geometry
                       ] ,
                       [ rdf:type owl:Restriction ;
                         owl:onProperty :isProjectedFromHeight ;
                         owl:allValuesFrom :HeightMeasurement
                       ] ,
                       [ rdf:type owl:Restriction ;
                         owl:onProperty :isProjectedInDirection ;
                         owl:allValuesFrom :CompassDirection
                       ] ,
                       [ rdf:type owl:Restriction ;
                         owl:onProperty :hasFlash ;
                         owl:allValuesFrom xsd:boolean
                       ] ,
                       [ rdf:type owl:Restriction ;
                         owl:onProperty :hasProjectionAngle ;
                         owl:allValuesFrom xsd:float
                       ] ;
       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 .


###  http://saref.linkeddata.es/def/envi#LightPoint
:LightPoint rdf:type owl:Class ;
            rdfs:subClassOf geo:Point ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty :projectsLight ;
                              owl:allValuesFrom :Light
                            ] ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty geo:location ;
                              owl:allValuesFrom geo:SpatialThing
                            ] ;
            rdfs:comment "An spatial point from where a light is projected. It might belong to a lamppost."@en ;
            rdfs:label "Light point"@en .


###  http://saref.linkeddata.es/def/envi#LightProperty
:LightProperty rdf:type owl:Class ;
               rdfs:subClassOf :Property ;
               rdfs:comment "An aspect of light that can be observable by a sensor."@en ;
               rdfs:label "Light property"@en .


###  http://saref.linkeddata.es/def/envi#Measurement
:Measurement rdf:type owl:Class ;
             rdfs:subClassOf [ rdf:type owl:Restriction ;
                               owl:onProperty :relatesToProperty ;
                               owl:allValuesFrom :Property
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty saref:isMeasuredIn ;
                               owl:allValuesFrom saref:UnitOfMeasure
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :relatesToProperty ;
                               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                               owl:onClass :Property
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty saref:isMeasuredIn ;
                               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                               owl:onClass saref:UnitOfMeasure
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty :hasTimestamp ;
                               owl:allValuesFrom xsd:dateTime
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty saref:hasValue ;
                               owl:allValuesFrom xsd:float
                             ] ,
                             [ rdf:type owl:Restriction ;
                               owl:onProperty saref:hasValue ;
                               owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                               owl:onDataRange xsd:float
                             ] ;
             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 .


###  http://saref.linkeddata.es/def/envi#PeriodMeasurement
:PeriodMeasurement rdf:type owl:Class ;
                   rdfs:subClassOf :Measurement ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty :relatesToProperty ;
                                     owl:hasValue :Period
                                   ] ,
                                   [ rdf:type owl:Restriction ;
                                     owl:onProperty saref:isMeasuredIn ;
                                     owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
                                     owl:onClass time:TemporalUnit
                                   ] ;
                   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 .


###  http://saref.linkeddata.es/def/envi#Photometer
:Photometer rdf:type owl:Class ;
            rdfs:subClassOf :Sensor ,
                            [ rdf:type owl:Restriction ;
                              owl:onProperty :measuresProperty ;
                              owl:someValuesFrom :LightProperty
                            ] ;
            rdfs:comment "A photometer, generally, is an instrument that measures light intensity or optical properties of solutions or surfaces."@en ;
            rdfs:label "Photometer"@en .


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


###  http://saref.linkeddata.es/def/envi#Property
:Property rdf:type owl:Class ;
          rdfs:comment "An aspect of an entity that can be observable by a sensor."@en ;
          rdfs:label "Property"@en .


###  http://saref.linkeddata.es/def/envi#Sensor
:Sensor rdf:type owl:Class ;
        rdfs:subClassOf :Device ,
                        saref:Sensor ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :makesMeasurement ;
                          owl:allValuesFrom :Measurement
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :measuresProperty ;
                          owl:allValuesFrom :Property
                        ] ;
        rdfs:comment "A device that makes measurements of particular properties of a area of interes. For example, the light luminiscence."@en ;
        rdfs:label "Sensor"@en .


###  http://saref.linkeddata.es/def/envi#System
:System rdf:type owl:Class ;
        rdfs:subClassOf :PhysicalObject ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :hasComponent ;
                          owl:allValuesFrom :System
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :isComponentOf ;
                          owl:allValuesFrom :System
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :isConnectedTo ;
                          owl:allValuesFrom :System
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :usesCommunicationInterface ;
                          owl:allValuesFrom :CommunicationInterface
                        ] ,
                        [ rdf:type owl:Restriction ;
                          owl:onProperty :usesCommunicationProtocol ;
                          owl:allValuesFrom :CommunicationProtocol
                        ] ;
        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 .


###  http://saref.linkeddata.es/def/envi#TESS
:TESS rdf:type owl:Class ;
      rdfs:subClassOf :Photometer ;
      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 .


###  http://www.w3.org/2003/01/geo/wgs84_pos#Point
geo:Point rdf:type 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 .


###  http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing
geo:SpatialThing rdf:type 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 .


###  http://www.w3.org/2006/time#TemporalUnit
time:TemporalUnit rdf:type 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 .


###  https://w3id.org/saref#Device
saref:Device rdf:type 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 .


###  https://w3id.org/saref#Sensor
saref:Sensor rdf:type 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.
A device that has category saref:Sensor and performs a saref:SensingFunction."""@en ;
             rdfs:isDefinedBy saref: ;
             rdfs:label "Sensor"@en .


###  https://w3id.org/saref#Service
saref:Service rdf:type 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 .


###  https://w3id.org/saref#UnitOfMeasure
saref:UnitOfMeasure rdf:type 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 .


#################################################################
#    Individuals
#################################################################

###  http://saref.linkeddata.es/def/envi#Fluorescence
:Fluorescence rdf:type owl:NamedIndividual ,
                       :LightProperty ;
              rdfs:comment ""@en ;
              rdfs:label "Fluorescence"@en .


###  http://saref.linkeddata.es/def/envi#Frequency
:Frequency rdf:type owl:NamedIndividual ,
                    :Property ;
           rdfs:comment ""@en ;
           rdfs:label "Frequency"@en .


###  http://saref.linkeddata.es/def/envi#Height
:Height rdf:type owl:NamedIndividual ,
                 :Property ;
        rdfs:comment ""@en ;
        rdfs:label "Height"@en .


###  http://saref.linkeddata.es/def/envi#Illuminance
:Illuminance rdf:type owl:NamedIndividual ,
                      :LightProperty ;
             rdfs:comment ""@en ;
             rdfs:label "Illuminance"@en .


###  http://saref.linkeddata.es/def/envi#Irradiance
:Irradiance rdf:type owl:NamedIndividual ,
                     :LightProperty ;
            rdfs:comment ""@en ;
            rdfs:label "Irradiance"@en .


###  http://saref.linkeddata.es/def/envi#LightAbsorption
:LightAbsorption rdf:type owl:NamedIndividual ,
                          :LightProperty ;
                 rdfs:comment ""@en ;
                 rdfs:label "Light absorption"@en .


###  http://saref.linkeddata.es/def/envi#LightMagnitude
:LightMagnitude rdf:type owl:NamedIndividual ,
                         :LightProperty ;
                rdfs:comment ""@en ;
                rdfs:label "Light magnitude"@en .


###  http://saref.linkeddata.es/def/envi#Luminiscence
:Luminiscence rdf:type owl:NamedIndividual ,
                       :LightProperty ;
              rdfs:comment ""@en ;
              rdfs:label "Luminiscence"@en .


###  http://saref.linkeddata.es/def/envi#Period
:Period rdf:type owl:NamedIndividual ,
                 :Property ;
        rdfs:comment ""@en ;
        rdfs:label "Period"@en .


###  http://saref.linkeddata.es/def/envi#Phosphorescence
:Phosphorescence rdf:type owl:NamedIndividual ,
                          :LightProperty ;
                 rdfs:comment ""@en ;
                 rdfs:label "Phosphorescence"@en .


###  http://saref.linkeddata.es/def/envi#ReflectionOfLight
:ReflectionOfLight rdf:type owl:NamedIndividual ,
                            :LightProperty ;
                   rdfs:comment ""@en ;
                   rdfs:label "Reflection of light"@en .


###  http://saref.linkeddata.es/def/envi#ScatteringOfLight
:ScatteringOfLight rdf:type owl:NamedIndividual ,
                            :LightProperty ;
                   rdfs:comment ""@en ;
                   rdfs:label "Scattering of light"@en .


###  http://www.wurvoc.org/vocabularies/om-1.8/centimetre
<http://www.wurvoc.org/vocabularies/om-1.8/centimetre> rdf:type owl:NamedIndividual ,
                                                                :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/decametre
<http://www.wurvoc.org/vocabularies/om-1.8/decametre> rdf:type owl:NamedIndividual ,
                                                               :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/decimetre
<http://www.wurvoc.org/vocabularies/om-1.8/decimetre> rdf:type owl:NamedIndividual ,
                                                               :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/hectometre
<http://www.wurvoc.org/vocabularies/om-1.8/hectometre> rdf:type owl:NamedIndividual ,
                                                                :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/hertz
<http://www.wurvoc.org/vocabularies/om-1.8/hertz> rdf:type owl:NamedIndividual ,
                                                           :FrequencyUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/kilometre
<http://www.wurvoc.org/vocabularies/om-1.8/kilometre> rdf:type owl:NamedIndividual ,
                                                               :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/metre
<http://www.wurvoc.org/vocabularies/om-1.8/metre> rdf:type owl:NamedIndividual ,
                                                           :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/millimetre
<http://www.wurvoc.org/vocabularies/om-1.8/millimetre> rdf:type owl:NamedIndividual ,
                                                                :LengthUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_day
<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_day> rdf:type owl:NamedIndividual ,
                                                                    :FrequencyUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_hour
<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_hour> rdf:type owl:NamedIndividual ,
                                                                     :FrequencyUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_second-time
<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_second-time> rdf:type owl:NamedIndividual ,
                                                                            :FrequencyUnit .


###  http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_year
<http://www.wurvoc.org/vocabularies/om-1.8/reciprocal_year> rdf:type owl:NamedIndividual ,
                                                                     :FrequencyUnit .


###  Generated by the OWL API (version 4.2.6.20160910-2108) https://github.com/owlcs/owlapi
