From 2366401c584bf7f2428febeddfabd966a6e08d08 Mon Sep 17 00:00:00 2001 From: valexande Date: Thu, 10 Oct 2024 23:02:39 +0000 Subject: [PATCH] Upload files to "meteorogical_data" --- meteorogical_data/main-meteo.py | 95 ++++ meteorogical_data/measurement_data_rdf.py | 92 ++++ meteorogical_data/output_channel.ttl | 605 ++++++++++++++++++++++ meteorogical_data/output_device.ttl | 68 +++ 4 files changed, 860 insertions(+) create mode 100644 meteorogical_data/main-meteo.py create mode 100644 meteorogical_data/measurement_data_rdf.py create mode 100644 meteorogical_data/output_channel.ttl create mode 100644 meteorogical_data/output_device.ttl diff --git a/meteorogical_data/main-meteo.py b/meteorogical_data/main-meteo.py new file mode 100644 index 0000000..209e5d4 --- /dev/null +++ b/meteorogical_data/main-meteo.py @@ -0,0 +1,95 @@ +from flask import Flask, request, jsonify +from measurement_data_rdf import measurement_main +from device_data_rdf import device +import requests + +app = Flask(__name__) + +# Define the base URL and endpoints for the external API +base_url = 'https://api.reinvent.witmo.eu' +device_endpoint_database = '/api/v1/sincere/{database}/device/{device_id}' +meta_data_endpoint = '/api/v1/sincere/{database}/meta_data/{measurement}/{channel_id}' +device_endpoint_channel = '/api/v1/sincere/{database}/device/{device_id}' +meta_data_endpoint_channel = '/api/v1/sincere/{database}/meta_data/{measurement}/{channel_id}' + +@app.route('/meteo-device-channels', methods=['POST']) +def meteo_device(): + # Get JSON data from the request + data = request.get_json() + + if not data or 'database' not in data or 'device_id' not in data: + return jsonify({"error": "Invalid input, expected JSON with 'database' and 'device_id'"}), 400 + + database = data['database'] + device_id = data['device_id'] + + # Construct the full URL + url = base_url + device_endpoint_database.format(database=database, device_id=device_id) + + # Make the GET request to the external API + response = requests.get(url) + + # Check if the request was successful + if response.status_code == 200: + response_data = response.json() + channels = response_data.get('data', {}).get('channels', []) + device_data_json = device(channels, database, device_id) + device_data_json.parse_device_data() + return jsonify({"device_id": device_id, "channels": channels}) + else: + return jsonify( + {"error": f"Failed to retrieve data: {response.status_code} - {response.text}"}), response.status_code + +@app.route('/meteo-device-channels', methods=['POST']) +def meteo_device_channels(): + data = request.get_json() + if not data or 'database' not in data or 'device_id' not in data: + return jsonify({"error": "Invalid input, expected JSON with 'database' and 'device_id'"}), 400 + + database = data['database'] + device_id = data['device_id'] + url = base_url + device_endpoint_channel.format(database=database, device_id=device_id) + response = requests.get(url) + + if response.status_code == 200: + response_data = response.json() + channels = response_data.get('data', {}).get('channels', []) + return jsonify({"device_id": device_id, "channels": channels}) + else: + return jsonify({"error": f"Failed to retrieve data: {response.status_code} - {response.text}"}), response.status_code + +@app.route('/meta-data', methods=['POST']) +def get_meta_data(): + data = request.get_json() + if not data or 'database' not in data or 'measurement' not in data or 'channel_id' not in data: + return jsonify({"error": "Invalid input, expected JSON with 'database', 'measurement', and 'channel_id'"}), 400 + + database = data['database'] + measurement = data['measurement'] + channel_id = data['channel_id'] + datetime_from = data.get('datetime_from') + datetime_end = data.get('datetime_end') + limit = data.get('limit', 100) + page = data.get('page', 0) + pagination = data.get('pagination', True) + + url = base_url + meta_data_endpoint_channel.format(database=database, measurement=measurement, channel_id=channel_id) + params = { + 'datetime_from': datetime_from, + 'datetime_end': datetime_end, + 'limit': limit, + 'page': page, + 'pagination': str(pagination).lower() + } + + response = requests.get(url, params=params) + + if response.status_code == 200: + measurement_data_json = measurement_main(response.json()) + measurement_data_json.parse_measurement_data() + return jsonify(response.json()) + else: + return jsonify({"error": f"Failed to retrieve data: {response.status_code} - {response.text}"}), response.status_code + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000) diff --git a/meteorogical_data/measurement_data_rdf.py b/meteorogical_data/measurement_data_rdf.py new file mode 100644 index 0000000..1567162 --- /dev/null +++ b/meteorogical_data/measurement_data_rdf.py @@ -0,0 +1,92 @@ +from rdflib import Graph, Namespace, URIRef, Literal, RDF, RDFS, XSD +from SPARQLWrapper import SPARQLWrapper, POST, BASIC, URLENCODED + +class measurement_main(): + + def __init__(self, measurement_data_json): + self.measurement_data_json = measurement_data_json + + def read_ttl_and_store_in_graphdb(self, ttl_file_path, graphdb_endpoint, graphdb_repository, username=None, + password=None): + """ + Reads RDF data from a Turtle file and stores it in a GraphDB repository. + + :param ttl_file_path: Path to the Turtle file. + :param graphdb_endpoint: URL of the GraphDB endpoint. + :param graphdb_repository: Name of the GraphDB repository. + :param username: (Optional) Username for GraphDB authentication. + :param password: (Optional) Password for GraphDB authentication. + """ + # Create a graph + graph = Graph() + + # Parse the Turtle file + graph.parse(ttl_file_path, format="turtle") + + # Serialize the graph to a string in N-Triples format + ntriples_data = graph.serialize(format='nt') + + # If ntriples_data is bytes, decode it to string + if isinstance(ntriples_data, bytes): + ntriples_data = ntriples_data.decode('utf-8') + + # Create a SPARQLWrapper instance for the GraphDB endpoint + sparql = SPARQLWrapper(f"{graphdb_endpoint}/repositories/{graphdb_repository}/statements") + sparql.setMethod(POST) + sparql.setRequestMethod(URLENCODED) + sparql.addParameter('update', f""" + INSERT DATA {{ + {ntriples_data} + }} + """) + + # Set credentials if provided + if username and password: + sparql.setHTTPAuth(BASIC) + sparql.setCredentials(username, password) + + # Send the request to the GraphDB repository + sparql.query() + + def parse_measurement_data(self): + # Create a new RDF graph + g = Graph() + # Define a custom namespace + ontology = Namespace("http://sincere.org/s1#") + resource = Namespace("http://sincere.org/s1/resource/") + g.bind('sincere', ontology) + + actual_page = self.measurement_data_json["actual_page"] + count = self.measurement_data_json["count"] + pagination = self.measurement_data_json["pagination"] + status = self.measurement_data_json["status"] + total_pages = self.measurement_data_json["total_pages"] + count = 1 + for channel in self.measurement_data_json["data"]: + channel_id = channel["channel_id"] + data_value = channel["data_value"] + measurement = channel["measurement"] + time = channel["time"] + g.add((resource["channel_" + channel_id], RDF.type, ontology.Channel)) + g.add((resource["measurement_" + channel_id + "_" + str(count)], RDF.type, ontology.Measurement)) + g.add((resource["channel_" + channel_id], ontology.hasMeasurement, resource["measurement_" + channel_id + "_" + str(count)])) + g.add((resource["measurement_" + channel_id + "_" + str(count)], ontology.value, Literal(data_value, datatype=XSD.float))) + g.add((resource["measurement_" + channel_id + "_" + str(count)], ontology.measurement, Literal(measurement, datatype=XSD.string))) + g.add((resource["measurement_" + channel_id + "_" + str(count)], ontology.time, Literal(time, datatype=XSD.string))) + count += 1 + + # Create RDF triples + # Serialize and save the RDF graph to a TTL file + file_path = "output_channel.ttl" + g.serialize(destination=file_path, format="turtle") + + + graphdb_endpoint = 'http://localhost:7200' # Replace with the URL of your GraphDB endpoint + graphdb_repository = 'weather_measurement' # Replace with the name of your GraphDB repository + username = 'admin' # Replace with your GraphDB username (if required) + password = 'root' # Replace with your GraphDB password (if required) + + self.read_ttl_and_store_in_graphdb(file_path, graphdb_endpoint, graphdb_repository, username, password) + print("Data was mapped in GraphDB") + + return 1 \ No newline at end of file diff --git a/meteorogical_data/output_channel.ttl b/meteorogical_data/output_channel.ttl new file mode 100644 index 0000000..24386ba --- /dev/null +++ b/meteorogical_data/output_channel.ttl @@ -0,0 +1,605 @@ +@prefix sincere: . +@prefix xsd: . + + a sincere:Channel ; + sincere:hasMeasurement , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:15:16.493232Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:04:39.876514Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:43:30.270395Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:25:51.756217Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:27:58.665917Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:30:05.811680Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:06:47.045964Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:08:54.056017Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:32:12.799163Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:11:01.871089Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:13:09.375152Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:34:19.934996Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T06:56:04.187697Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:36:27.337548Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:38:34.350711Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:49:10.824622Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:51:19.804007Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:40:41.667416Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:53:26.656887Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:55:33.871369Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:42:48.751683Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:44:55.679065Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:57:40.767142Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:17:23.574848Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:47:02.997652Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:59:47.702070Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:01:57.874734Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:23:12.007186Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:04:07.977892Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:25:18.971153Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:27:25.919134Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:06:15.447160Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:08:22.411144Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:29:33.306608Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:19:30.563439Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:10:29.503737Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:12:36.559131Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:31:40.272217Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:33:47.382996Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:35:54.280886Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:14:43.488189Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:16:50.975155Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:18:57.885853Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:38:01.616541Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:21:05.134968Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:21:37.481856Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:40:08.501949Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:42:15.578226Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:44:22.627179Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:46:29.738293Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:57:05.545543Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:59:12.729662Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:01:20.831171Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:48:36.479403Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:03:37.395739Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:50:44.221932Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:23:44.683146Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:52:51.255442Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:05:44.491828Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:07:51.551871Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T08:54:58.474976Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:10:04.291721Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:12:11.148558Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:31:18.605740Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:33:25.696935Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:35:32.755051Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:14:18.207853Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T06:58:11.143141Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:37:39.816083Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:16:25.500428Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:18:35.935768Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:20:42.783074Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:39:46.751173Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:22:50.004573Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:24:56.927196Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:41:53.743857Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:27:04.336806Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:29:11.272861Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:00:18.208855Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:44:01.083144Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:46:08.633062Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T09:48:15.567726Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:07:27.099883Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:09:33.994565Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:11:41.204398Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:13:51.133676Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:15:58.172623Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:18:05.373409Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:20:12.238509Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T07:02:29.157782Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:22:19.628941Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:24:26.578923Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:26:33.567079Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:28:40.757275Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:30:47.685641Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:32:54.533522Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:35:01.991612Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:37:09.241760Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:39:16.204439Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + + a sincere:Measurement ; + sincere:measurement "weather_v1"^^xsd:string ; + sincere:time "2024-09-18T10:41:23.266180Z"^^xsd:string ; + sincere:value "0.0"^^xsd:float . + diff --git a/meteorogical_data/output_device.ttl b/meteorogical_data/output_device.ttl new file mode 100644 index 0000000..6e1f478 --- /dev/null +++ b/meteorogical_data/output_device.ttl @@ -0,0 +1,68 @@ +@prefix rdfs: . +@prefix sincere: . +@prefix xsd: . + + a sincere:Device ; + rdfs:label "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:database "algete_meteo"^^xsd:string ; + sincere:hasChannel , + , + , + , + , + . + + a sincere:Channel ; + rdfs:label "11ccd1df-4a13-4200-9eaa-d14d7aea2b10"^^xsd:string ; + sincere:constant "None"^^xsd:string ; + sincere:device_id "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:item "ReactivePower"^^xsd:string ; + sincere:number 40004 ; + sincere:unit "kVar"^^xsd:string ; + sincere:writable false . + + a sincere:Channel ; + rdfs:label "3547eb24-f8cc-4182-b43f-cd2fa0a757bb"^^xsd:string ; + sincere:constant "None"^^xsd:string ; + sincere:device_id "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:item "Volt"^^xsd:string ; + sincere:number 40000 ; + sincere:unit "V"^^xsd:string ; + sincere:writable false . + + a sincere:Channel ; + rdfs:label "613d0398-1977-4fcb-9c02-c198fe390fe1"^^xsd:string ; + sincere:constant "None"^^xsd:string ; + sincere:device_id "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:item "ActivePower"^^xsd:string ; + sincere:number 40003 ; + sincere:unit "kW"^^xsd:string ; + sincere:writable false . + + a sincere:Channel ; + rdfs:label "7a2900c4-578c-422d-a94e-0b49c898fd65"^^xsd:string ; + sincere:constant "None"^^xsd:string ; + sincere:device_id "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:item "Current"^^xsd:string ; + sincere:number 40001 ; + sincere:unit "A"^^xsd:string ; + sincere:writable false . + + a sincere:Channel ; + rdfs:label "91cd9fa8-c716-49fe-b836-b5370e091e1a"^^xsd:string ; + sincere:constant "None"^^xsd:string ; + sincere:device_id "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:item "ActiveEnergyConsumed"^^xsd:string ; + sincere:number 40046 ; + sincere:unit "kWh"^^xsd:string ; + sincere:writable false . + + a sincere:Channel ; + rdfs:label "a7cc4c2e-30a0-4666-a901-a98dda5e57d5"^^xsd:string ; + sincere:constant "None"^^xsd:string ; + sincere:device_id "5230f6a7-d30d-42a3-8f3d-458e791af7b2"^^xsd:string ; + sincere:item "ActiveEnergyGenerated"^^xsd:string ; + sincere:number 40056 ; + sincere:unit "kWh"^^xsd:string ; + sincere:writable false . +