PREFIX iotlite: <http://purl.oclc.org/NET/UNIS/fiware/iot-lite#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

iotlite:Metadata a rdfs:Class ;
  rdfs:comment "Class used to describe properties that cannot be described by QuantityKind and Units. i.e. the resolution of a sensor."@en .

iotlite:metadataValue a rdf:Property ;
  rdfs:comment "Value of the metadata" ;
  rdfs:domain iotlite:Metadata ;
  rdfs:range xsd:string .

iotlite:metadataType a rdf:Property ;
  rdfs:comment "Defines the type pf the metadata value (e.g. resolution of the sensor)." ;
  rdfs:domain iotlite:Metadata ;
  rdfs:range xsd:string .

iotlite:ActuatingDevice a rdfs:Class ;
  rdfs:comment "Device that can actuate over an object or QuantityKind."@en ;
  rdfs:subClassOf <http://purl.oclc.org/NET/ssnx/ssn#Device> .

<http://purl.oclc.org/NET/ssnx/ssn#onPlatform> a rdf:Property ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#System> ;
  rdfs:range <http://purl.oclc.org/NET/ssnx/ssn#Platform> .

iotlite:hasCoverage a rdf:Property ;
  rdfs:comment "Links the devices with their coverages." ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#Device> ;
  rdfs:range iotlite:Coverage .

iotlite:isSubSystemOf a rdf:Property ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#System> ;
  rdfs:range <http://purl.oclc.org/NET/ssnx/ssn#System> .

iotlite:exposedBy a rdf:Property ;
  rdfs:comment "A device is exposed by a service." ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#Device> ;
  rdfs:range iotlite:Service .

iotlite:id a rdf:Property ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#Device> ;
  rdfs:range xsd:string .

<http://purl.oclc.org/NET/ssnx/ssn#hasSubSystem> a rdf:Property ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#System> ;
  rdfs:range <http://purl.oclc.org/NET/ssnx/ssn#System> .

<http://www.w3.org/2003/01/geo/wgs84_pos#Point> a rdfs:Class .

iotlite:altRelative a rdf:Property ;
  rdfs:domain <http://www.w3.org/2003/01/geo/wgs84_pos#Point> ;
  rdfs:range xsd:string .

<http://www.w3.org/2003/01/geo/wgs84_pos#long> a rdf:Property ;
  rdfs:domain <http://www.w3.org/2003/01/geo/wgs84_pos#Point> ;
  rdfs:range xsd:string .

<http://www.w3.org/2003/01/geo/wgs84_pos#lat> a rdf:Property ;
  rdfs:domain <http://www.w3.org/2003/01/geo/wgs84_pos#Point> ;
  rdfs:range xsd:string .

iotlite:relativeLocation a rdf:Property ;
  rdfs:domain <http://www.w3.org/2003/01/geo/wgs84_pos#Point> ;
  rdfs:range xsd:string .

<http://www.w3.org/2003/01/geo/wgs84_pos#alt> a rdf:Property ;
  rdfs:domain <http://www.w3.org/2003/01/geo/wgs84_pos#Point> ;
  rdfs:range xsd:string .

<http://purl.oclc.org/NET/ssnx/ssn#SensingDevice> a rdfs:Class ;
  rdfs:subClassOf <http://purl.oclc.org/NET/ssnx/ssn#Device> , <http://purl.oclc.org/NET/ssnx/ssn#Sensor> .

iotlite:hasQuantityKind a rdf:Property ;
  rdfs:comment "Links a sensor or an attribute with the quantity  kind it measures (e.g. A sensor -sensor1- measures temperature: sensor1 hasQuantityKind temperature)." ;
  rdfs:domain iotlite:Attribute ;
  rdfs:range <http://purl.org/NET/ssnx/qu/qu#QuantityKind> .

iotlite:hasSensingDevice a rdf:Property ;
  rdfs:comment "Links a sensor with a sensing device the same way as SSN." ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#Sensor> ;
  rdfs:range <http://purl.oclc.org/NET/ssnx/ssn#SensingDevice> .

iotlite:hasUnit a rdf:Property ;
  rdfs:comment "Links the sensor with the units of the quantity kind it measures (e.g. A sensor -sensor1- measures temperature in Celsius: senso1 hasUnit celsius)." ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#Sensor> ;
  rdfs:range <http://purl.org/NET/ssnx/qu/qu#Unit> .

<http://purl.oclc.org/NET/ssnx/ssn#System> a rdfs:Class .

iotlite:Object a rdfs:Class ;
  rdfs:comment "IoT entity"@en .

iotlite:isAssociatedWith a rdf:Property ;
  rdfs:comment "Defines the associations between objects and sensors (e.g. A table (object) has an attribute (temperature at the table) which is associated with a sensor (the temperature sensor of the room). " ;
  rdfs:domain iotlite:Entity ;
  rdfs:range iotlite:Service .

iotlite:hasAttribute a rdf:Property ;
  rdfs:comment "Links the devices with their attributes." ;
  rdfs:domain iotlite:Entity ;
  rdfs:range iotlite:Attribute .

<http://purl.oclc.org/NET/ssnx/ssn#Sensor> a rdfs:Class .

<http://purl.org/NET/ssnx/qu/qu#Unit> a rdfs:Class .

iotlite:Attribute a rdfs:Class ;
  rdfs:comment "An attribute of an IoT object that can be exposed by an IoT service (i.e. a room (IoT Object) has a temperature (Attribute), that can be exposed by a temperature sensor (IoT device)."@en .

iotlite:TagDevice a rdfs:Class ;
  rdfs:comment "Tag Device such as QR code or bar code."@en ;
  rdfs:subClassOf <http://purl.oclc.org/NET/ssnx/ssn#Device> .

iotlite:Rectangle a rdfs:Class ;
  rdfs:comment "Teh coverage is made up by giving two points which are the oposite corners of a rentangle."@en ;
  rdfs:subClassOf iotlite:Coverage .

iotlite:Circle a rdfs:Class ;
  rdfs:comment "Circle coverage it needs the location of the sensor as the centre of the circle and the radius as a DataProperty."@en ;
  rdfs:subClassOf iotlite:Coverage .

iotlite:radius a rdf:Property ;
  rdfs:comment "Specifies the radius of a circle coverage defined by a point -the center of the circle- and its radius." ;
  rdfs:domain iotlite:Circle ;
  rdfs:range xsd:double .

<http://purl.org/NET/ssnx/qu/qu#QuantityKind> a rdfs:Class .

<http://purl.oclc.org/NET/ssnx/ssn#Platform> a rdfs:Class .

iotlite:isMobile a rdf:Property ;
  rdfs:domain <http://purl.oclc.org/NET/ssnx/ssn#Platform> ;
  rdfs:range xsd:boolean .

iotlite:Polygon a rdfs:Class ;
  rdfs:comment "The coverage is made up by linking several points by strait lines."@en ;
  rdfs:subClassOf iotlite:Coverage .

<http://purl.oclc.org/NET/ssnx/ssn#Device> a rdfs:Class ;
  rdfs:subClassOf <http://purl.oclc.org/NET/ssnx/ssn#System> .

iotlite:Entity a rdfs:Class .

iotlite:Coverage a rdfs:Class ;
  rdfs:comment "The coverage of an IoT device (i.e. a temperature sensor inside a room has a coverage of that room)."@en .

iotlite:VirtualEntity a rdfs:Class ;
  rdfs:subClassOf iotlite:Entity .

iotlite:Service a rdfs:Class ;
  rdfs:comment "Service provided by an IoT Device"@en .

iotlite:exposes a rdf:Property ;
  rdfs:comment "For service-oriented queries. The inverse of exposedBy." ;
  rdfs:domain iotlite:Service ;
  rdfs:range <http://purl.oclc.org/NET/ssnx/ssn#Device> .

iotlite:interfaceDescription a rdf:Property ;
  rdfs:comment "Description of the service." ;
  rdfs:domain iotlite:Service ;
  rdfs:range xsd:anyURI .

iotlite:interfaceType a rdf:Property ;
  rdfs:comment "Defines the type of interface of the service endpoint." ;
  rdfs:domain iotlite:Service ;
  rdfs:range xsd:string .

iotlite:endpoint a rdf:Property ;
  rdfs:comment "Endpoint of the service. It is usually a URL where the service is available." ;
  rdfs:domain iotlite:Service ;
  rdfs:range xsd:anyURI .

iotlite:hasMetadata a rdf:Property ;
  rdfs:comment "Links any concept with metadata about that concept." ;
  rdfs:range iotlite:Metadata .

<http://www.w3.org/2003/01/geo/wgs84_pos#location> a rdf:Property ;
  rdfs:range <http://www.w3.org/2003/01/geo/wgs84_pos#Point> .
