import csv from rdflib import Graph, URIRef, Literal, Namespace from rdflib.namespace import RDF, RDFS, XSD # Define namespaces SINCERE = Namespace("http://sincere.org/s1#") graph = Graph() graph.bind("sincere", SINCERE) graph.bind("xsd", XSD) # Create initial triples for the station station_uri = URIRef(SINCERE + "davis2") # Read the CSV file and generate barometer triples csv_file = 'outside_humidity.csv' # Replace with your CSV file path with open(csv_file, newline='') as csvfile: reader = csv.DictReader(csvfile) # Print the headers to check what's inside print("CSV Headers:", reader.fieldnames) for i, row in enumerate(reader, start=1): # Normalize column names by stripping spaces and lowercasing them row = {key.strip().lower(): value.strip() for key, value in row.items()} print(row) humidity_uri = URIRef(SINCERE + f"davis2/humidity/{i}") # Add the barometer triples graph.add((station_uri, SINCERE.hasHumidity, humidity_uri)) graph.add((humidity_uri, RDF.type, SINCERE.Humidity)) graph.add((humidity_uri, SINCERE.value, Literal(row["outsidehumidity"], datatype=XSD.integer))) graph.add((humidity_uri, SINCERE.timestamp, Literal(row["ο»ώtime"], datatype=XSD.string))) # Save the RDF triples to a Turtle file output_file = 'humidity-translated.ttl' graph.serialize(destination=output_file, format='turtle') print(f"RDF triples saved to {output_file}")