@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix saref: <https://saref.etsi.org/core/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix s4agri: <https://saref.etsi.org/saref4agri/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix sosa: <http://www.w3.org/ns/sosa/> .
@prefix geo: <http://www.opengis.net/ont/geosparql#> .
@prefix ssn: <http://www.w3.org/ns/ssn/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://dbpedia.org/resource/DBM>
    a owl:NamedIndividual, saref:UnitOfMeasure ;
    rdfs:label "decibel-milliwatts"@en .

<http://purl.obolibrary.org/obo/TAXRANK_0000000>
    a owl:Class ;
    rdfs:label "Taxon rank"@en .

<http://purl.obolibrary.org/obo/TAXRANK_1000000>
    a owl:ObjectProperty ;
    rdfs:label "has taxon rank"@en .

dcterms:contributor
    a owl:AnnotationProperty .

dcterms:created
    a owl:AnnotationProperty .

dcterms:creator
    a owl:AnnotationProperty .

dcterms:description
    a owl:AnnotationProperty .

dcterms:issued
    a owl:AnnotationProperty .

dcterms:license
    a owl:AnnotationProperty .

dcterms:modified
    a owl:AnnotationProperty .

dcterms:publisher
    a owl:AnnotationProperty .

dcterms:source
    a owl:AnnotationProperty .

dcterms:title
    a owl:AnnotationProperty .

vann:preferredNamespacePrefix
    a owl:AnnotationProperty .

vann:preferredNamespaceUri
    a owl:AnnotationProperty .

<http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius>
    a owl:NamedIndividual, saref:UnitOfMeasure ;
    rdfs:label "degree Celsius"@en .

<http://www.ontology-of-units-of-measure.org/resource/om-2/millibar>
    a owl:NamedIndividual, saref:UnitOfMeasure ;
    rdfs:label "millibar"@en .

<http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre>
    a owl:NamedIndividual, saref:UnitOfMeasure ;
    rdfs:label "millimetre"@en .

<http://www.ontology-of-units-of-measure.org/resource/om-2/millivolt>
    a owl:NamedIndividual, saref:UnitOfMeasure ;
    rdfs:label "millivolt"@en .

geo:Feature
    a owl:Class ;
    rdfs:comment "This class represents the top-level feature type. This class is equivalent to GFI_Feature defined in ISO 19156:2011, and it is superclass of all feature types."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql>, <http://www.opengis.net/ont/gml> ;
    rdfs:label "Feature"@en ;
    rdfs:subClassOf geo:SpatialObject, [
        a owl:Restriction ;
        owl:allValuesFrom geo:Geometry ;
        owl:onProperty geo:hasGeometry
    ] ;
    owl:disjointWith geo:Geometry .

geo:Geometry
    a owl:Class ;
    rdfs:comment "The class represents the top-level geometry type. This class is equivalent to the UML class GM_Object defined in ISO 19107, and it is superclass of all geometry types."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql> ;
    rdfs:label "Geometry"@en ;
    rdfs:subClassOf geo:SpatialObject .

geo:SpatialObject
    a owl:Class ;
    rdfs:comment "The class spatial-object represents everything that can have a spatial representation. It is superclass of feature and geometry."@en ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql> ;
    rdfs:label "SpatialObject"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:allValuesFrom wgs84:Point ;
        owl:onProperty wgs84:location
    ], [
        a owl:Restriction ;
        owl:allValuesFrom geo:SpatialObject ;
        owl:onProperty geo:sfWithin
    ], [
        a owl:Restriction ;
        owl:allValuesFrom geo:SpatialObject ;
        owl:onProperty geo:sfContains
    ], [
        a owl:Restriction ;
        owl:allValuesFrom geo:Geometry ;
        owl:onProperty geo:hasGeometry
    ] .

geo:hasGeometry
    a owl:ObjectProperty ;
    rdfs:comment "A spatial representation for a given feature."@en ;
    rdfs:domain geo:Feature ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql#> ;
    rdfs:label "has geometry"@en ;
    rdfs:range geo:Geometry .

geo:sfContains
    a owl:ObjectProperty ;
    rdfs:comment "Exists if the subject SpatialObject spatially contains the object SpatialObject. DE-9IM: T*****FF*"@en ;
    rdfs:domain geo:SpatialObject ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql>, <http://www.opengis.net/spec/geosparql/1.0> ;
    rdfs:label "contains"@en ;
    rdfs:range geo:SpatialObject .

geo:sfWithin
    a owl:ObjectProperty ;
    rdfs:comment "Exists if the subject SpatialObject is spatially within the object SpatialObject. DE-9IM: T*F**F***"@en ;
    rdfs:domain geo:SpatialObject ;
    rdfs:isDefinedBy <http://www.opengis.net/ont/geosparql>, <http://www.opengis.net/spec/geosparql/1.0> ;
    rdfs:label "within"@en ;
    rdfs:range geo:SpatialObject .

xsd:date
    a rdfs:Datatype .

xsd:duration
    a rdfs:Datatype .

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

wgs84:SpatialThing
    a owl:Class .

wgs84:alt
    a owl:DatatypeProperty ;
    rdfs:comment "The WGS84 altitude of a SpatialThing (decimal meters above the local reference ellipsoid)."@en ;
    rdfs:domain wgs84:SpatialThing ;
    rdfs:label "altitude"@en .

wgs84:lat
    a owl:DatatypeProperty ;
    rdfs:comment "The WGS84 latitude of a SpatialThing (decimal degrees)."@en ;
    rdfs:domain wgs84:SpatialThing ;
    rdfs:label "latitude"@en .

wgs84: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:label "location"@en ;
    rdfs:subPropertyOf foaf:based_near .

wgs84:long
    a owl:ObjectProperty ;
    rdfs:comment "The WGS84 longitude of a SpatialThing (decimal degrees)."@en ;
    rdfs:domain wgs84:SpatialThing ;
    rdfs:label "longitude"@en .

<http://www.w3.org/2004/02/skos/core#definition>
    a owl:AnnotationProperty .

<http://www.w3.org/2004/02/skos/core#prefLabel>
    a owl:AnnotationProperty .

time:Instant
    a owl:Class ;
    rdfs:comment "A temporal entity with zero extent or duration"@en ;
    rdfs:isDefinedBy <http://www.w3.org/2006/time#> ;
    rdfs:label "Instant"@en ;
    rdfs:subClassOf time:TemporalEntity .

time:Interval
    a owl:Class ;
    rdfs:comment "A temporal entity with an extent or duration"@en ;
    rdfs:isDefinedBy <http://www.w3.org/2006/time#> ;
    rdfs:label "Time interval"@en ;
    rdfs:subClassOf time:TemporalEntity .

time:TemporalEntity
    a owl:Class ;
    rdfs:comment "A temporal interval or instant."@en ;
    rdfs:isDefinedBy <http://www.w3.org/2006/time#> ;
    rdfs:label "Temporal entity"@en .

<http://www.w3.org/ns/prov#hadPrimarySource>
    a owl:AnnotationProperty .

sosa:Platform
    a owl:Class ;
    rdfs:comment "A Platform is an entity that hosts other entities, particularly Sensors, Actuators, Samplers, and other Platforms (definition taken from http://www.w3.org/ns/sosa/Platform)"@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/sosa/> ;
    rdfs:label "Platform"@en .

sosa:hosts
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a platform and the systems it hosts."@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/sosa/> ;
    rdfs:label "host"@en ;
    owl:inverseOf sosa:isHostedBy .

sosa:isHostedBy
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a system and its hosting platform."@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/sosa/> ;
    rdfs:label "is hosted by"@en .

ssn:Deployment
    a owl:Class ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "Deployment"@en .

ssn:System
    a owl:Class ;
    rdfs:comment "System is a unit of abstraction for pieces of infrastructure that implement Procedures. A System may have components, its subsystems, which are other Systems. (Definition taken from http://www.w3.org/ns/ssn/System)"@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "System"@en .

ssn:deployedOnPlatform
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a deployment and the platform(s) involved in the deployment."@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "deployed on platform"@en ;
    owl:inverseOf ssn:inDeployment .

ssn:deployedSystem
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a deployment and the system deployed."@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "deployed system"@en ;
    owl:inverseOf ssn:hasDeployment .

ssn:hasDeployment
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "has deployment"@en .

ssn:hasSubSystem
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "has subsystem"@en .

ssn:inDeployment
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a platform and the deployment(s) that takes place in the platform."@en ;
    rdfs:isDefinedBy <http://www.w3.org/ns/ssn/> ;
    rdfs:label "in deployment"@en .

foaf:Agent
    a owl:Class ;
    rdfs:label "Agent"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onProperty foaf:member ;
        owl:someValuesFrom foaf:Agent
    ] .

foaf:Person
    a owl:Class ;
    rdfs:label "Person"@en ;
    rdfs:subClassOf foaf:Agent .

foaf:based_near
    a owl:ObjectProperty .

foaf:member
    a owl:ObjectProperty ;
    rdfs:label "member"@en .

saref:Actuator
    a owl:Class ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Actuator"@en ;
    rdfs:subClassOf saref:Device .

saref:Command
    a owl:Class ;
    rdfs:comment "A directive that a device must support to perform a certain function. A command may act upon a state, but does not necessarily act upon a state. For example, the ON command acts upon the ON/OFF state, but the GET command does not act upon any state, it simply gives a directive to retrieve a certain value. We propose here a list of commands that are relevant for the purpose of SAREF, but this list can be extended."@en ;
    rdfs:label "Command"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty saref:hasDescription
    ], [
        a owl:Restriction ;
        owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onClass saref:Function ;
        owl:onProperty saref:isCommandOf
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:State ;
        owl:onProperty saref:actsUpon
    ] .

saref:Device
    a owl:Class ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Device"@en ;
    rdfs:subClassOf ssn:System .

saref:FeatureOfInterest
    a owl:Class ;
    rdfs:comment <https://saref.etsi.org/core/> ;
    rdfs:label "Feature of interest"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:allValuesFrom saref:Measurement ;
        owl:onProperty saref:hasMeasurement
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Property ;
        owl:onProperty saref:hasProperty
    ] .

saref:Function
    a owl:Class ;
    rdfs:comment "The functionality necessary to accomplish the task for which a Device is designed. A device can be designed to perform more than one function. Functions can be structured in categories (subclasses) that reflect different points of view, for example, considering the specific application area for which a function can be used (e.g., light, temperature, motion, heat, power, etc.), or the capability that a function can support (e.g., receive, reply, notify, etc.), and so forth. "@en ;
    rdfs:label "Function"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onClass saref:Command ;
        owl:onProperty saref:hasCommand
    ] .

saref:Humidity
    a owl:Class ;
    rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a humidity unit"@en ;
    rdfs:label "Humidity"@en, "Humidiy"@en ;
    rdfs:subClassOf saref:Property .

saref:Measurement
    a owl:Class ;
    rdfs:comment "Represents the measured value made over a property. It is also linked to the unit of measure in which the value is expressed and the timestamp of the measurement."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Measurement"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:onDataRange xsd:float ;
        owl:onProperty saref:hasValue ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:UnitOfMeasure ;
        owl:onProperty saref:isMeasuredIn
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Property ;
        owl:onProperty saref:relatesToProperty
    ], [
        a owl:Restriction ;
        owl:onClass saref:Property ;
        owl:onProperty saref:relatesToProperty ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:allValuesFrom xsd:dateTime ;
        owl:onProperty saref:hasTimestamp
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:FeatureOfInterest ;
        owl:onProperty saref:isMeasurementOf
    ], [
        a owl:Restriction ;
        owl:onClass saref:UnitOfMeasure ;
        owl:onProperty saref:isMeasuredIn ;
        owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger
    ], [
        a owl:Restriction ;
        owl:cardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty saref:hasValue
    ] ;
    owl:disjointWith saref:Property, saref:UnitOfMeasure .

saref:Property
    a owl:Class ;
    rdfs:comment "An aspect of an entity that can be observable by a sensor."@en, "Anything that can be sensed, measured or controlled in households, common public buildings or offices. We propose here a list of properties that are relevant for the purpose of SAREF, but this list can be extended."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Property"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:allValuesFrom saref:Device ;
        owl:onProperty saref:isMeasuredByDevice
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Device ;
        owl:onProperty saref:isControlledByDevice
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:FeatureOfInterest ;
        owl:onProperty saref:isPropertyOf
    ], [
        a owl:Restriction ;
        owl:allValuesFrom saref:Measurement ;
        owl:onProperty saref:relatesToMeasurement
    ] ;
    owl:disjointWith saref:UnitOfMeasure .

saref:Sensor
    a owl:Class ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "Sensor"@en ;
    rdfs:subClassOf saref:Device .

saref:State
    a owl:Class ;
    rdfs:comment "The state in which a device can be found, e.g, ON/OFF/STANDBY, or ONLINE/OFFLINE. We propose here a list of states that are relevant for the purpose of SAREF, but this list can be extended."@en ;
    rdfs:label "State"@en .

saref:Task
    a owl:Class ;
    rdfs:comment "The goal for which a device is designed (from a user perspective). For example, a washing machine is designed for the task of washing. We propose here a list of tasks that are relevant for the purpose of SAREF, but this list can be extended."@en ;
    rdfs:label "Task"@en ;
    rdfs:subClassOf [
        a owl:Restriction ;
        owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onClass saref:Device ;
        owl:onProperty saref:isAccomplishedBy
    ] .

saref:Temperature
    a owl:Class ;
    rdfs:comment "A saref:Property related to some measurements that are characterized by a certain value that is measured in a temperature unit (degree_Celsius, degree_Fahrenheit, or degree_kelvin)"@en ;
    rdfs:label "Temperature"@en ;
    rdfs:subClassOf saref:Property .

saref:Time
    a owl:Class ;
    rdfs:comment "A saref:Property that allows to specify the time concept in terms of instants or intervals according to the imported W3C Time ontology."@en ;
    rdfs:label "Time"@en ;
    rdfs:subClassOf saref:Property .

saref:UnitOfMeasure
    a owl:Class ;
    rdfs:comment "The unit of measure is a standard for measurement of a quantity, such as a Property. For example,  Power is a property and Watt is a unit of power that represents a definite predetermined power: when we say 10 Watt, we actually mean 10 times the definite predetermined power called \"watt\". Our definition is based on the definition of unit of measure in the Ontology of units of Measure (OM). We propose here a list of some units of measure that are relevant for the purpose of SAREF, but this list can be extended, also using some other ontologies rather than the Ontology of units of Measure (OM)."@en, "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 <http://www.wurvoc.org/vocabularies/om-1.6/Unit_of_measure>, <https://saref.etsi.org/core/> ;
    rdfs:label "Unit of measure"@en .

saref:accomplishes
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between a certain entity (e.g., a device) and the task it accomplishes"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "accomplishes"@en ;
    owl:inverseOf saref:isAccomplishedBy .

saref:actsUpon
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between a command and a state"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "acts upon"@en .

saref:controlsProperty
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "controls property"@en .

saref:hasCommand
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between an entity (such as a function) and a command"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has command"@en ;
    owl:inverseOf saref:isCommandOf .

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

saref:hasFunction
    a owl:ObjectProperty ;
    rdfs:comment "A relationship identifying the type of function of a device"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has function"@en .

saref:hasManufacturer
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship identifying the manufacturer of an entity (e.g., device)"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has manufacturer"@en ;
    rdfs:range xsd:string .

saref:hasMeasurement
    a owl:ObjectProperty ;
    rdfs:comment "Relation betwwen a feature of interest and the measurments that are about it."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is feature of interest of"@en .

saref:hasModel
    a owl:DatatypeProperty ;
    rdfs:comment "A relationship identifying the model of an entity (e.g., device)"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has model"@en ;
    rdfs:range xsd:string .

saref:hasProperty
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a feature of interest and its properties."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has property"@en ;
    owl:inverseOf saref:isPropertyOf .

saref:hasState
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has state"@en .

saref:hasTimestamp
    a owl:DatatypeProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has timestamp"@en .

saref:hasValue
    a owl:DatatypeProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has value"@en .

saref:isAccomplishedBy
    a owl:ObjectProperty ;
    rdfs:comment "A relationship indentifying the task accomplished by a certain entity (e.g., a device)"@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is accomplished by"@en .

saref:isCommandOf
    a owl:ObjectProperty ;
    rdfs:comment "A relationship between a command and a function."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is command of"@en .

saref:isControlledByDevice
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is controlled by device"@en .

saref:isMeasuredByDevice
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is measured by device"@en .

saref:isMeasuredIn
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is measured in"@en .

saref:isMeasurementOf
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a measurement and the feature of interest being measured."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "has feature of interest"@en ;
    owl:inverseOf saref:hasMeasurement .

saref:isPropertyOf
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a property and a feature of interest in which such property appears."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "is property of"@en .

saref:makesMeasurement
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "makes measurement"@en ;
    owl:inverseOf saref:measurementMadeBy .

saref:measurementMadeBy
    a owl:ObjectProperty ;
    rdfs:comment "Relation between a measurement and the device that made it."@en ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "measurement made by"@en .

saref:measuresProperty
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "measures property"@en .

saref:relatesToMeasurement
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "relates to measurement"@en .

saref:relatesToProperty
    a owl:ObjectProperty ;
    rdfs:isDefinedBy <https://saref.etsi.org/core/> ;
    rdfs:label "relates to property"@en .

<https://saref.etsi.org/saref4agri/>
    dcterms:contributor <https://www.researchgate.net/profile/Jack_Verhoosel> ;
    dcterms:created "2019-04-15"^^xsd:date ;
    dcterms:creator <http://w3id.org/people/mpoveda>, <http://www.garcia-castro.com/foaf.rdf#me>, <https://www.linkedin.com/in/lauradaniele>, <https://www.linkedin.com/in/mderoode> ;
    dcterms:description "SAREF4AGRI is an extension of SAREF for the agriculture and food domain. SAREF4AGRI is specified and published by ETSI in the TS 103 410-6 associated to this ontology file. The list of use cases, standards and requirements that guided the creation of SAREF4AGRI are described in the associated ETSI TR 103 511."@en, "This ontology extends the SAREF ontology for the Agricultural domain. This work has been developed in the context of the STF 534 (https://portal.etsi.org/STF/STFs/STFHomePages/STF534.aspx), which was established with the goal to create three SAREF extensions, one of them for the Agricultural domain."@en ;
    dcterms:issued "2019-04-30"^^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/saref4agri/> ;
    dcterms:title "SAREF4AGRI: an extension of SAREF for the agriculture and food domain"@en ;
    vann:preferredNamespacePrefix "s4agri" ;
    vann:preferredNamespaceUri "https://saref.etsi.org/saref4agri/" ;
    a owl:Ontology ;
    rdfs:seeAlso <https://www.etsi.org/deliver/etsi_ts/103400_103499/10341006/01.01.02_60/ts_10341006v010102p.pdf> ;
    owl:versionIRI <https://saref.etsi.org/saref4agri/v1.1.2/> ;
    owl:versionInfo "v1.1.2" .

s4agri:AirTemperature
    a owl:NamedIndividual, saref:Temperature ;
    rdfs:comment "The degree or intensity of heat present in the air."@en ;
    rdfs:label "Air temperature"@en .

s4agri:AmbientHumidity
    a owl:NamedIndividual, saref:Humidity ;
    rdfs:comment "The amount of water vapour in the air."@en ;
    rdfs:label "Ambient humidity"@en .

s4agri:Animal
    a owl:Class ;
    rdfs:comment "An individual and identifiable living organism that feeds on organic matter, typically having specialized sense organs and nervous system and able to respond rapidly to stimuli."@en ;
    rdfs:label "Animal"@en ;
    rdfs:subClassOf saref:FeatureOfInterest, [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onDataRange xsd:dateTime ;
        owl:onProperty s4agri:hasDeathDate
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onDataRange xsd:string ;
        owl:onProperty s4agri:hasName
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:isLocatedIn ;
        owl:someValuesFrom geo:Feature
    ], [
        a owl:Restriction ;
        owl:onProperty <http://purl.obolibrary.org/obo/TAXRANK_1000000> ;
        owl:someValuesFrom <http://purl.obolibrary.org/obo/TAXRANK_0000000>
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onClass s4agri:ID ;
        owl:onProperty s4agri:hasID
    ], [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onDataRange xsd:dateTime ;
        owl:onProperty s4agri:hasBirthDate
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:isMemberOf ;
        owl:someValuesFrom s4agri:AnimalGroup
    ] .

s4agri:AnimalGroup
    a owl:Class ;
    rdfs:comment "A collection of one or multiple animals."@en ;
    rdfs:label "Animal Group"@en ;
    rdfs:subClassOf saref:FeatureOfInterest, [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onDataRange xsd:string ;
        owl:onProperty s4agri:hasName
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:isLocatedIn ;
        owl:someValuesFrom geo:Feature
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:hasMember ;
        owl:someValuesFrom s4agri:Animal
    ] .

s4agri:Building
    a owl:Class ;
    rdfs:comment "A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space)."@en ;
    rdfs:label "Building"@en ;
    rdfs:subClassOf geo:Feature, [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty s4agri:hasName
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:contains ;
        owl:someValuesFrom s4agri:BuildingSpace
    ] .

s4agri:BuildingSpace
    a owl:Class ;
    rdfs:comment "An entity used to define the physical spaces of the building. A building space contains devices or building objects."@en ;
    rdfs:label "Building space"@en ;
    rdfs:subClassOf geo:Feature .

s4agri:Crop
    a owl:Class ;
    rdfs:comment "A collection of cultivated plants that is grown on a large scale commercially, especially a cereal, fruit, or vegetable."@en ;
    rdfs:label "Crop"@en ;
    rdfs:subClassOf saref:FeatureOfInterest, [
        a owl:Restriction ;
        owl:onProperty s4agri:hasPlantDate ;
        owl:someValuesFrom xsd:dateTime
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:hasHarvestDate ;
        owl:someValuesFrom xsd:dateTime
    ], [
        a owl:Restriction ;
        owl:onProperty <http://purl.obolibrary.org/obo/TAXRANK_1000000> ;
        owl:someValuesFrom <http://purl.obolibrary.org/obo/TAXRANK_0000000>
    ] .

s4agri:Deployment
    a owl:Class ;
    rdfs:comment "Deployment"@en, "The scenario, including temporal and spatial information, in which the systems and devices are installed."@en ;
    rdfs:label "Deployment"@en ;
    rdfs:subClassOf ssn:Deployment, [
        a owl:Restriction ;
        owl:onProperty s4agri:isDeployedAtSpace ;
        owl:someValuesFrom geo:SpatialObject
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:hasDeploymentPeriod ;
        owl:someValuesFrom time:TemporalEntity
    ], [
        a owl:Restriction ;
        owl:onProperty ssn:deployedSystem ;
        owl:someValuesFrom ssn:System
    ], [
        a owl:Restriction ;
        owl:onProperty ssn:deployedOnPlatform ;
        owl:someValuesFrom sosa:Platform
    ] .

s4agri:EatingActivitySensor
    a owl:Class ;
    rdfs:comment "Eating activity sensor"@en ;
    rdfs:label "Eating activity sensor"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:Farm
    a owl:Class ;
    rdfs:comment "A plot of land used for the scope of farming which can contain buildings and parcels."@en ;
    rdfs:label "Farm"@en ;
    rdfs:subClassOf geo:Feature, [
        a owl:Restriction ;
        owl:maxCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onProperty s4agri:hasName
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:contains ;
        owl:someValuesFrom s4agri:Parcel
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:contains ;
        owl:someValuesFrom s4agri:Building
    ] .

s4agri:FarmHolding
    a owl:Class ;
    rdfs:comment "A class to decsribe a saref4agri farm holding as subcass of an org:Organization"@en ;
    rdfs:label "Farm holding"@en ;
    rdfs:subClassOf <https://schema.org/Organization>, [
        a owl:Restriction ;
        owl:allValuesFrom xsd:string ;
        owl:onProperty s4agri:hasName
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:managesFarm ;
        owl:someValuesFrom s4agri:Farm
    ] .

s4agri:Farmer
    a owl:Class ;
    rdfs:comment "A class to decsribe a saref4agri farmer as subcass of a foaf:Person"@en ;
    rdfs:label "Farmer"@en ;
    rdfs:subClassOf foaf:Person, [
        a owl:Restriction ;
        owl:onProperty s4agri:managesFarm ;
        owl:someValuesFrom s4agri:Farm
    ], [
        a owl:Restriction ;
        owl:allValuesFrom xsd:string ;
        owl:onProperty s4agri:hasName
    ] .

s4agri:ID
    a owl:Class ;
    rdfs:comment "ID"@en ;
    rdfs:label "ID"@en .

s4agri:Intake
    a owl:Class ;
    rdfs:comment "The amount of food or other substance taken into the body of an animal or into the soil."@en ;
    rdfs:label "Intake"@en .

s4agri:IrrigationWater
    a owl:NamedIndividual, saref:Property ;
    rdfs:comment "The amount of water falling in the soil by irrigation methods."@en ;
    rdfs:label "Irrigation water"@en .

s4agri:MilkingSensor
    a owl:Class ;
    rdfs:comment "Milking sensor"@en ;
    rdfs:label "Milking sensor"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:MovementActivitySensor
    a owl:Class ;
    rdfs:comment "Movement activity sensor"@en ;
    rdfs:label "Movement activity sensor"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:Parcel
    a owl:Class ;
    rdfs:comment "An area of land, which might be used for grazing animals or planting crops. The parcel is defined as an undividable logical area of land which contains homogeneous items."@en ;
    rdfs:label "Parcel"@en ;
    rdfs:subClassOf geo:Feature, [
        a owl:Restriction ;
        owl:maxQualifiedCardinality "1"^^xsd:nonNegativeInteger ;
        owl:onDataRange xsd:string ;
        owl:onProperty s4agri:hasName
    ], [
        a owl:Restriction ;
        owl:onProperty s4agri:contains ;
        owl:someValuesFrom s4agri:Crop
    ] .

s4agri:PlantGrowthStage
    a owl:NamedIndividual, saref:Property ;
    rdfs:comment "The level or stage of growth of the plant."@en ;
    rdfs:label "Plant growth stage"@en .

s4agri:Platform
    a owl:Class ;
    rdfs:comment "Platform"@en ;
    rdfs:label "Platform"@en ;
    rdfs:subClassOf sosa:Platform .

s4agri:Pluviometer
    a owl:Class ;
    rdfs:comment "A sensor that measures the rain fall."@en ;
    rdfs:label "Pluviometer"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:Precipitation
    a owl:NamedIndividual, saref:Property ;
    rdfs:comment "The amount of water falling in the soil by natural process (e.g. rain)."@en ;
    rdfs:label "Precipitation"@en .

s4agri:Soil
    a owl:Class ;
    rdfs:comment "Upper layer of the earth in which plants grow."@en ;
    rdfs:label "Soil"@en ;
    rdfs:subClassOf saref:FeatureOfInterest .

s4agri:SoilMoisture
    a owl:NamedIndividual, saref:Property ;
    rdfs:comment "The amount of water or humidity contained in the soil."@en ;
    rdfs:label "Soil moisture"@en .

s4agri:SoilTemperature
    a owl:NamedIndividual, saref:Temperature ;
    rdfs:comment "The degree or intensity of heat present in the soil."@en ;
    rdfs:label "Soil temperature"@en .

s4agri:SoilTensiometer
    a owl:Class ;
    rdfs:comment "A sensor that measures the soil moisture."@en ;
    rdfs:label "Soil tensiometer"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:Thermometer
    a owl:Class ;
    rdfs:comment "Thermometer"@en ;
    rdfs:label "Thermometer"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:WateringGun
    a owl:Class ;
    rdfs:comment "An actuator to irrigate an space."@en ;
    rdfs:label "Watering gun"@en ;
    rdfs:subClassOf saref:Actuator .

s4agri:WateringSystem
    a owl:Class ;
    rdfs:comment "Watering system"@en ;
    rdfs:label "Watering system"@en ;
    rdfs:subClassOf ssn:System .

s4agri:WateringValve
    a owl:Class ;
    rdfs:comment "Watering valve"@en ;
    rdfs:label "Watering valve"@en ;
    rdfs:subClassOf saref:Actuator .

s4agri:WeatherStation
    a owl:Class ;
    rdfs:comment "A sensor o system that measure weather conditions."@en ;
    rdfs:label "Weather station"@en ;
    rdfs:subClassOf ssn:System, saref:Sensor .

s4agri:WeightSensor
    a owl:Class ;
    rdfs:comment "Weight sensor"@en ;
    rdfs:label "Weight sensor"@en ;
    rdfs:subClassOf saref:Sensor .

s4agri:Yield
    a owl:Class ;
    rdfs:comment "The produced amount of food for animals or of agricultural products."@en ;
    rdfs:label "Yield"@en .

s4agri:contains
    a owl:ObjectProperty ;
    rdfs:comment "contains"@en ;
    rdfs:label "contains"@en ;
    rdfs:subPropertyOf geo:sfContains ;
    owl:inverseOf s4agri:isContainedIn .

s4agri:generates
    a owl:ObjectProperty ;
    rdfs:comment "A relation to represent the yield generated by a Crop."@en ;
    rdfs:label "generates"@en ;
    rdfs:subPropertyOf saref:hasProperty .

s4agri:hasBirthDate
    a owl:DatatypeProperty ;
    rdfs:comment "A relation to express the birth date of an animal."@en ;
    rdfs:label "has birth date"@en ;
    rdfs:range xsd:dateTime .

s4agri:hasDeathDate
    a owl:DatatypeProperty ;
    rdfs:comment "A relation to express the death date of an animal."@en ;
    rdfs:label "has death date"@en ;
    rdfs:range xsd:dateTime .

s4agri:hasDeploymentPeriod
    a owl:ObjectProperty ;
    rdfs:comment "Relation to indicate the temporal duration or period of a deployment."@en, "has deployment period"@en ;
    rdfs:label "has deployment period"@en .

s4agri:hasHarvestDate
    a owl:DatatypeProperty ;
    rdfs:comment "A relation to express the day the crop is harvested."@en ;
    rdfs:label "has harvest date"@en ;
    rdfs:range xsd:dateTime ;
    rdfs:subPropertyOf owl:topDataProperty .

s4agri:hasID
    a owl:ObjectProperty ;
    rdfs:comment "A relation to express the unique identifier of an animal."@en ;
    rdfs:label "has id"@en ;
    rdfs:range s4agri:ID ;
    rdfs:subPropertyOf owl:topObjectProperty .

s4agri:hasMember
    a owl:ObjectProperty ;
    rdfs:comment "A relation to represent  the members of an AnimalGroup."@en ;
    rdfs:label "has member"@en ;
    owl:inverseOf s4agri:isMemberOf .

s4agri:hasName
    a owl:DatatypeProperty ;
    rdfs:comment "A relation to express the name of an entity (e.g.,animal)."@en ;
    rdfs:label "has name"@en ;
    rdfs:range xsd:string .

s4agri:hasPlantDate
    a owl:DatatypeProperty ;
    rdfs:comment "A relation to express the day the crop is planted."@en ;
    rdfs:label "has plant date"@en ;
    rdfs:range xsd:dateTime ;
    rdfs:subPropertyOf owl:topDataProperty .

s4agri:hasReceived
    a owl:ObjectProperty ;
    rdfs:comment "has received"@en ;
    rdfs:label "has received"@en ;
    owl:inverseOf s4agri:receives .

s4agri:isContainedIn
    a owl:ObjectProperty ;
    rdfs:comment "is contained in"@en ;
    rdfs:label "is contained in"@en .

s4agri:isDeployedAtSpace
    a owl:ObjectProperty ;
    rdfs:comment "Relation to indicate the geographical componet of a deployment."@en, "is deployed at space"@en ;
    rdfs:label "is deployed at space"@en .

s4agri:isLocatedIn
    a owl:ObjectProperty ;
    rdfs:comment "A relation to express the physical location of a saref4agri entity (e.g., an animal)"@en ;
    rdfs:label "is located in"@en ;
    owl:inverseOf s4agri:isLocationOf .

s4agri:isLocationOf
    a owl:ObjectProperty ;
    rdfs:comment "is location of"@en ;
    rdfs:label "is location of"@en .

s4agri:isMemberOf
    a owl:ObjectProperty ;
    rdfs:comment "A relation to express that an animal can be part of groups."@en ;
    rdfs:label "is member of"@en .

s4agri:managesFarm
    a owl:ObjectProperty ;
    rdfs:comment "manages farm"@en ;
    rdfs:label "manages farm"@en .

s4agri:receives
    a owl:ObjectProperty ;
    rdfs:comment "A relation to represent the intake/consumption of certain substances in a Crop."@en ;
    rdfs:label "receives"@en ;
    rdfs:subPropertyOf saref:hasMeasurement .

<https://schema.org/Organization>
    a owl:Class ;
    rdfs:label "Organization"@en ;
    rdfs:subClassOf foaf:Agent .

