Skip to content

Commit 08b873a

Browse files
committed
Add sensor platforms
1 parent 4a88344 commit 08b873a

File tree

3 files changed

+155
-1
lines changed

3 files changed

+155
-1
lines changed

.ogc/catalog.ttl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
_:ad4gd-pilot3 a dcat:Catalog;
88
dct:title "AD4GD Pilot 3 semantic catalog" ;
9-
dcat:dataset _:properties, _:propertiesEntailments, _:procedures, _:sensors, _:manufacturers ;
9+
dcat:dataset _:properties, _:propertiesEntailments, _:procedures, _:sensors, _:manufacturers, _:platforms ;
1010
dcfg:hasProfileSource "sparql:http://defs-dev.opengis.net/fuseki/query" ;
1111
dcfg:ignoreProfileArtifactErrors true ;
1212
.
@@ -47,6 +47,15 @@ _:manufacturers a dcat:Dataset, dcfg:UpliftConfiguration ;
4747
] ;
4848
.
4949

50+
_:platforms a dcat:Dataset, dcfg:UpliftConfiguration ;
51+
dct:description "Sensor platforms uplift" ;
52+
dcfg:glob "generic/sensor-platforms.yml" ;
53+
dcfg:hasUpliftDefinition [
54+
dcfg:order 1 ;
55+
dcfg:file "generic/uplift/sensor-platforms-uplift.yml" ;
56+
] ;
57+
.
58+
5059

5160
_:propertiesEntailments a dcat:Dataset, dcfg:DomainConfiguration ;
5261
dct:description "Properties entailments" ;

generic/sensor-platforms.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
base: https://w3id.org/ad4gd/air-quality/sensor-platforms # Base URI (no trailing slash!)
2+
label: AD4GD air quality sensor platforms # Label for collection
3+
## Optional: add description
4+
# description: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
5+
6+
platforms:
7+
8+
## Format for sensor platforms:
9+
# id: # URI slug
10+
# label: Label for the term # Required
11+
# manufacturers: # List of manufacturers (omit if unknown or "various")
12+
# - manufacturer1 # refers to the key for the manufacturer entry in sensor-manufacturers.yml
13+
# sensors: # Required
14+
# - sensor1 # refers to the key for the sensor entry in sensors.yml
15+
# description: Term description # Optional
16+
# sameAs: # List of "same as" URIs, optional
17+
# - https://another.vocabulary.com/another/term
18+
# references: # List of websites with definitions, data sheets, etc. (non-semantic)
19+
# - https://en.wikipedia.org/wiki/Term
20+
21+
AirRohr:
22+
name: AirRohr
23+
manufacturers:
24+
- Sensor.Community
25+
description: |
26+
Build your DIY sensor and become part of the worldwide, opendata & civictech network. With airRohr you can measure air pollution yourself.
27+
From: https://sensor.community/en/sensors/airrohr/
28+
sensors:
29+
- SDS011
30+
- BME280
31+
references:
32+
- https://sensor.community/en/sensors/airrohr/
33+
- https://nettigo.eu/products/sensor-community-kit-sds011-bme280-english-language-harness-cable-edition
34+
35+
PlumeFlow2:
36+
name: PlumeFlow2
37+
manufacturers:
38+
- plume-labs
39+
description: |
40+
The Plume Labs Flow 2 is a wearable air quality sensor that provides real-time measurements of particulate matter (PM1.0, PM2.5 and PM­10) mass concentrations, VOC and NO2 concentrations. Data can be visualized and exported using the phone application for Android and iPhone via Bluetooth.
41+
We created Flow to answer a question: “what is in the air I breathe.” In the spring of 2023 we made the tough decision to dedicate this knowledge, system, and tech to advancing research, raising awareness, and fostering action. As a result Flow and Flow 2 are no longer for sale.
42+
From: https://www.aqmd.gov/aq-spec/sensordetail/plume-labs---flow-2
43+
sensors:
44+
- SDS011
45+
- PlumeFlow2TH
46+
- PlumeFlow2VOC
47+
- PlumeFlow2CO2
48+
references:
49+
- https://plumelabs.com/en/flow/
50+
- https://www.aqmd.gov/aq-spec/sensordetail/plume-labs---flow-2
51+
52+
Zephyr:
53+
name: Zephyr
54+
manufacturers:
55+
- earthsense
56+
description: |
57+
The Zephyr® is an award-winning, certified, indicative ambient air quality monitor that accurately measures harmful gases and particle matter.
58+
Zephyr® monitors provide detailed air quality measurements in real-time to help identify pollution hotspots at a localised level such as busy road junctions. Extensive networks can be easily deployed for city-wide pollution data used to aid the development of smarter and cleaner towns and cities.
59+
From: https://www.earthsense.co.uk/_files/ugd/847642_d42371301be448bab9ee526499e1e0bb.pdf
60+
sensors:
61+
- ZephyrTH
62+
- ZephyrP
63+
- ZephyrPM
64+
- ZephyrVOC
65+
- ZephyrCO
66+
- ZephyrNO
67+
- ZephyrO3
68+
- ZephyrSO2
69+
- ZephyrH2S
70+
references:
71+
- https://www.earthsense.co.uk/zephyr
72+
- https://www.earthsense.co.uk/_files/ugd/847642_d42371301be448bab9ee526499e1e0bb.pdf
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
transform:
2+
# Create concept scheme
3+
# Flatten object to array with "key" property
4+
# Map properties to IRIs
5+
# Remove empty values
6+
# TODO: rest of known properties
7+
- |
8+
def to_iri: gsub(" "; "-") | gsub("[^A-Za-z0-9_-]"; "") ;
9+
(.base | sub("/+$"; "")) as $BASE
10+
| .platforms |= [ to_entries | .[] |
11+
.value + { "@id": "\($BASE)/\(.key | to_iri)", "rdfs:subClassOf": "sosa:Platform" }
12+
| (.manufacturers |= (if type == "array" then map("manuf:\(to_iri)") else null end))
13+
| (.sensors |= (if type == "array" then map("sensor:\(to_iri)") else null end))
14+
| del(..|select(. == ""))
15+
]
16+
| ."dct:source" = { "@id": "https://ad4gd.eu/" }
17+
18+
types:
19+
$: skos:ConceptScheme
20+
$.platforms[*]: skos:Concept
21+
22+
context:
23+
$:
24+
# TODO: URIs
25+
'@base': https://w3id.org/ad4gd/sensor-platforms/
26+
manuf: https://w3id.org/ad4gd/manufacturers/
27+
sensor: https://w3id.org/ad4gd/sensors/
28+
sosa: http://www.w3.org/ns/sosa/
29+
ssn: http://www.w3.org/ns/ssn/
30+
dct: http://purl.org/dc/terms/
31+
rdfs: http://www.w3.org/2000/01/rdf-schema#
32+
skos: http://www.w3.org/2004/02/skos/core#
33+
owl: http://www.w3.org/2002/07/owl#
34+
qudt: http://qudt.org/schema/qudt/
35+
unit: http://qudt.org/vocab/unit/
36+
qb: http://purl.org/linked-data/cube#
37+
ad4gd-prop: https://w3id.org/ad4gd/properties/
38+
ad4gd-procedure: https://w3id.org/ad4gd/procedures/
39+
sdo: https://schema.org/
40+
ad4gd: 'urn:ad4gd:'
41+
base: '@id'
42+
key: '@id'
43+
platforms:
44+
'@reverse': skos:inScheme
45+
subClassOf:
46+
'@id': rdfs:subClassOf
47+
'@type': '@id'
48+
observed_properties:
49+
'@id': sosa:observes
50+
'@type': '@id'
51+
'@context':
52+
'@base': https://w3id.org/ad4gd/properties/
53+
name: skos:prefLabel
54+
label: skos:prefLabel
55+
description: dct:description
56+
references:
57+
'@id': rdfs:seeAlso
58+
'@type': '@id'
59+
hasUnit:
60+
'@id': qudt:hasUnit
61+
'@type': '@id'
62+
broader:
63+
'@id': skos:broader
64+
'@type': '@id'
65+
procedures:
66+
'@id': ssn:implements
67+
'@type': '@id'
68+
manufacturers:
69+
'@id': sdo:manufacturer
70+
'@type': '@id'
71+
sensors:
72+
'@id': sosa:hosts
73+
'@type': '@id'

0 commit comments

Comments
 (0)