# Auto-generated from iotic-rdf-ontology repository, 3rd/pip_demo. Edits will be overwritten!

@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#> .
@prefix pip_demo: <http://data.iotics.com/pip_demo#> .
@prefix sw: <https://schema.org/SoftwareApplication#> .

# Classes

pip_demo:Sensor
    a rdfs:Class ;
    rdfs:label "Sensor"@en ;
    rdfs:comment "A device used to make digital observations about a subject."@en ;
.

pip_demo:AirQualitySensor
    a rdfs:Class ;
    rdfs:label "Air Quality Sensor"@en ;
    rdfs:comment "A type of sensor used to measure air quality."@en ;
    rdfs:subClassOf pip_demo:Sensor;
.

pip_demo:KPI
    a rdfs:Class ;
    rdfs:label "KPI"@en ;
    rdfs:comment "A Key Performance Indicator used across the PIP demonstrator. Generated by the University Synthesizer application. Parent Class only - not used for shadow twins."@en ;
    rdfs:subClassOf sw:SoftwareApplication;
.

pip_demo:24hSummary
    a rdfs:Class ;
    rdfs:label "Last 24 Hour Summary"@en ;
    rdfs:comment "A Key Performance Indicator used across the PIP demonstrator for rolling averages over the prior 24 hour period. Used to create shadow twins for selective sharing."@en ;
    rdfs:subClassOf pip_demo:KPI;
.

pip_demo:HourlySummary
    a rdfs:Class ;
    rdfs:label "Last Hour Summary"@en ;
    rdfs:comment "A Key Performance Indicator used across the PIP demonstrator for rolling averages over the prior 1 hour period. Used to create shadow twins for selective sharing."@en ;
    rdfs:subClassOf pip_demo:KPI;
.

# Properties

pip_demo:hasManufacturer
    a rdf:Property ;
    rdfs:label "Manufacturer"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The company responsible for the original manufacture of the device."@en ;
    rdfs:range xsd:string
.

pip_demo:hasMinOpTemp
    a rdf:Property ;
    rdfs:label "Minimum Operating Temperature"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The minimum temperature in degrees Celsius at which the device is designed to operate reliably."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasMaxOpTemp
    a rdf:Property ;
    rdfs:label "Maximum Operating Temperature"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The maximum temperature in degrees Celsius at which the device is designed to operate reliably."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasMinStoreTemp
    a rdf:Property ;
    rdfs:label "Minimum Storage Temperature"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The minimum temperature in degrees Celsius at which the device may be stored safely."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasMaxStoreTemp
    a rdf:Property ;
    rdfs:label "Maximum Storage Temperature"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The maximum temperature in degrees Celsius at which the device may be stored safely."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasAveDraw
    a rdf:Property ;
    rdfs:label "Average Current Draw"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The average electrical current in milliamperes drawn by the device."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasPeakDraw
    a rdf:Property ;
    rdfs:label "Peak Current Draw"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The peak electrical current in milliamperes drawn by the device."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasDimHeight
    a rdf:Property ;
    rdfs:label "Height Dimension"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The height dimension of the device excluding any mountings or connectors in millimetres."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasDimWidth
    a rdf:Property ;
    rdfs:label "Width Dimension"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The width dimension of the device excluding any mountings or connectors in millimetres."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasDimDepth
    a rdf:Property ;
    rdfs:label "Depth Dimension"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The depth dimension of the device excluding any mountings or connectors in millimetres."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasWeight
    a rdf:Property ;
    rdfs:label "Weight"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The weight of the device excluding any mountings or connectors in grams."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasUpdateInterval
    a rdf:Property ;
    rdfs:label "Update Interval"@en ;
    rdfs:domain pip_demo:Sensor ;
    rdfs:comment "The expected interval between observations made by the device in seconds."@en ;
    rdfs:range xsd:decimal
.

pip_demo:measures
    a rdf:Property ;
    rdfs:label "measures"@en ;
    rdfs:domain pip_demo:AirQualitySensor ;
    rdfs:comment """The subject for which air quality observations are made. 
                    This is a URI pointing to a pollutant defined here https://dd.eionet.europa.eu/vocabulary/aq/pollutant/"""@en ;
    rdfs:range xsd:uri
.

pip_demo:hasMinParticleMeasure
    a rdf:Property ;
    rdfs:label "Minimum Particle Measurement"@en ;
    rdfs:domain pip_demo:AirQualitySensor ;
    rdfs:comment "The minimum particle size the device can detect in micrometres."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasMaxParticleMeasure
    a rdf:Property ;
    rdfs:label "Maximum Particle Measurement"@en ;
    rdfs:domain pip_demo:AirQualitySensor ;
    rdfs:comment "The maximum particle size the device can detect in micrometres."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasAccuracy
    a rdf:Property ;
    rdfs:label "Measurement Accuracy"@en ;
    rdfs:domain pip_demo:AirQualitySensor ;
    rdfs:comment "The accuracy of the particle size observations in micrometres per square metre."@en ;
    rdfs:range xsd:decimal
.

pip_demo:hasSummarizationPeriod
    a rdf:Property ;
    rdfs:label "Summarization Period"@en ;
    rdfs:domain pip_demo:HourlySummary ;
    rdfs:domain pip_demo:24hSummary ;
    rdfs:comment "The period of time over which values are summarized."@en ;
    rdfs:range xsd:String
.
# note the range should probably utilise a list instead of a string

pip_demo:hasSummarizationOperation
    a rdf:Property ;
    rdfs:label "Summarization Operation"@en ;
    rdfs:domain pip_demo:HourlySummary ;
    rdfs:domain pip_demo:24hSummary ;
    rdfs:comment "The summarization operation (e.g. average, max, min) performed on the data."@en ;
    rdfs:range xsd:String
.
# note the range should probably utilise a list instead of a string

pip_demo:hasProjectName
    a rdf:Property ;
    rdfs:label "Project name"@en ;
    rdfs:domain pip_demo:KPI ;
    rdfs:domain pip_demo:HourlySummary ;
    rdfs:domain pip_demo:24hSummary ;
    rdfs:comment "The name of the project the class is associated with."@en ;
    rdfs:range xsd:String
.