diff --git a/README.md b/README.md index 8e074d0..2ee597c 100644 --- a/README.md +++ b/README.md @@ -995,7 +995,7 @@ PROV-JSON uses these core concepts: ```json { "prefix": { - "dataprov": "http://dataprov.org/ontology/", + "dataprov": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl", "prov": "http://www.w3.org/ns/prov#", "xsd": "http://www.w3.org/2001/XMLSchema#" }, @@ -1110,7 +1110,7 @@ This enables complete provenance chains to be embedded while maintaining W3C PRO Dataprov extends the [W3C PROV Ontology](https://www.w3.org/TR/prov-o/) with domain-specific classes and properties for tracking data file provenance in processing pipelines. -**Namespace URI:** `https://github.com/RI-SE/dataprov/ontology/` +**Namespace URI:** `https://ri-se.github.io/dataprov/ontology/dataprov.ttl#` **Prefix:** `dataprov:` **Version:** 3.0.0 diff --git a/dataprov/dataprov.py b/dataprov/dataprov.py index 673cacd..dc17c8f 100644 --- a/dataprov/dataprov.py +++ b/dataprov/dataprov.py @@ -63,7 +63,7 @@ from typing import Any DATAPROV_VERSION = "3.0" -DATAPROV_NS = "https://ri-se.github.io/dataprov/ontology/" +DATAPROV_NS = "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#" PROV_NS = "http://www.w3.org/ns/prov#" XSD_NS = "http://www.w3.org/2001/XMLSchema#" diff --git a/dataprov/dataprov_prov_schema.json b/dataprov/dataprov_prov_schema.json index 68db60f..140174d 100644 --- a/dataprov/dataprov_prov_schema.json +++ b/dataprov/dataprov_prov_schema.json @@ -12,7 +12,7 @@ "properties": { "dataprov": { "type": "string", - "const": "https://ri-se.github.io/dataprov/ontology/" + "const": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#" }, "prov": { "type": "string", diff --git a/ontology/README.md b/ontology/README.md index 8e762eb..c72222f 100644 --- a/ontology/README.md +++ b/ontology/README.md @@ -6,7 +6,7 @@ This directory contains the formal ontology for the Dataprov provenance tracking The Dataprov ontology extends the [W3C PROV Ontology](https://www.w3.org/TR/prov-o/) with additional classes and properties specifically designed for tracking data file provenance in processing pipelines. -**Namespace URI:** `https://ri-se.github.io/dataprov/ontology/` +**Namespace URI:** `https://ri-se.github.io/dataprov/ontology/dataprov.ttl#` **Prefix:** `dataprov:` **Version:** 3.0.0 **Format:** Turtle (RDF) @@ -114,7 +114,7 @@ The Dataprov ontology extends the [W3C PROV Ontology](https://www.w3.org/TR/prov ```json { "prefix": { - "dataprov": "https://ri-se.github.io/dataprov/ontology/", + "dataprov": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#", "prov": "http://www.w3.org/ns/prov#", "xsd": "http://www.w3.org/2001/XMLSchema#" }, @@ -167,7 +167,7 @@ You can add custom namespace properties to your provenance files: ```json { "prefix": { - "dataprov": "https://ri-se.github.io/dataprov/ontology/", + "dataprov": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#", "prov": "http://www.w3.org/ns/prov#", "myapp": "https://myorganization.com/ontology/myapp#" }, diff --git a/ontology/dataprov.jsonld b/ontology/dataprov.jsonld index 22749a7..ff58581 100644 --- a/ontology/dataprov.jsonld +++ b/ontology/dataprov.jsonld @@ -1,127 +1,127 @@ { "@context": { - "@vocab": "https://ri-se.github.io/dataprov/ontology/", + "@vocab": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#", "prov": "http://www.w3.org/ns/prov#", "xsd": "http://www.w3.org/2001/XMLSchema#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#", "owl": "http://www.w3.org/2002/07/owl#", "RootEntity": { - "@id": "https://ri-se.github.io/dataprov/ontology/RootEntity", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#RootEntity", "@type": "@id" }, "DataFile": { - "@id": "https://ri-se.github.io/dataprov/ontology/DataFile", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#DataFile", "@type": "@id" }, "checksum": { - "@id": "https://ri-se.github.io/dataprov/ontology/checksum", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#checksum", "@type": "xsd:string" }, "format": { - "@id": "https://ri-se.github.io/dataprov/ontology/format", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#format", "@type": "xsd:string" }, "sizeBytes": { - "@id": "https://ri-se.github.io/dataprov/ontology/sizeBytes", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#sizeBytes", "@type": "xsd:nonNegativeInteger" }, "createdAt": { - "@id": "https://ri-se.github.io/dataprov/ontology/createdAt", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#createdAt", "@type": "xsd:dateTime" }, "originalPath": { - "@id": "https://ri-se.github.io/dataprov/ontology/originalPath", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#originalPath", "@type": "xsd:string" }, "bundleChecksum": { - "@id": "https://ri-se.github.io/dataprov/ontology/bundleChecksum", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#bundleChecksum", "@type": "xsd:string" }, "externalPath": { - "@id": "https://ri-se.github.io/dataprov/ontology/externalPath", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#externalPath", "@type": "xsd:string" }, "operation": { - "@id": "https://ri-se.github.io/dataprov/ontology/operation", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#operation", "@type": "xsd:string" }, "arguments": { - "@id": "https://ri-se.github.io/dataprov/ontology/arguments", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#arguments", "@type": "xsd:string" }, "outputLog": { - "@id": "https://ri-se.github.io/dataprov/ontology/outputLog", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#outputLog", "@type": "xsd:string" }, "warnings": { - "@id": "https://ri-se.github.io/dataprov/ontology/warnings", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#warnings", "@type": "xsd:string" }, "drl": { - "@id": "https://ri-se.github.io/dataprov/ontology/drl", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#drl", "@type": "xsd:integer" }, "toolName": { - "@id": "https://ri-se.github.io/dataprov/ontology/toolName", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#toolName", "@type": "xsd:string" }, "toolVersion": { - "@id": "https://ri-se.github.io/dataprov/ontology/toolVersion", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#toolVersion", "@type": "xsd:string" }, "toolSource": { - "@id": "https://ri-se.github.io/dataprov/ontology/toolSource", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#toolSource", "@type": "xsd:string" }, "user": { - "@id": "https://ri-se.github.io/dataprov/ontology/user", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#user", "@type": "xsd:string" }, "hostname": { - "@id": "https://ri-se.github.io/dataprov/ontology/hostname", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#hostname", "@type": "xsd:string" }, "agentType": { - "@id": "https://ri-se.github.io/dataprov/ontology/agentType", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#agentType", "@type": "xsd:string" }, "name": { - "@id": "https://ri-se.github.io/dataprov/ontology/name", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#name", "@type": "xsd:string" }, "runtime": { - "@id": "https://ri-se.github.io/dataprov/ontology/runtime", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#runtime", "@type": "xsd:string" }, "runtimeVersion": { - "@id": "https://ri-se.github.io/dataprov/ontology/runtimeVersion", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#runtimeVersion", "@type": "xsd:string" }, "platform": { - "@id": "https://ri-se.github.io/dataprov/ontology/platform", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#platform", "@type": "xsd:string" }, "machine": { - "@id": "https://ri-se.github.io/dataprov/ontology/machine", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#machine", "@type": "xsd:string" }, "processor": { - "@id": "https://ri-se.github.io/dataprov/ontology/processor", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#processor", "@type": "xsd:string" }, "hadProvenance": { - "@id": "https://ri-se.github.io/dataprov/ontology/hadProvenance", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#hadProvenance", "@type": "@id" }, "metadata": { - "@id": "https://ri-se.github.io/dataprov/ontology/metadata", + "@id": "https://ri-se.github.io/dataprov/ontology/dataprov.ttl#metadata", "@type": "@id" } } diff --git a/ontology/dataprov.ttl b/ontology/dataprov.ttl index 961c893..3a29ee3 100644 --- a/ontology/dataprov.ttl +++ b/ontology/dataprov.ttl @@ -3,10 +3,10 @@ @prefix owl: . @prefix xsd: . @prefix prov: . -@prefix dataprov: . +@prefix dataprov: . @prefix dcterms: . - + a owl:Ontology ; rdfs:label "Dataprov Ontology" ; rdfs:comment "Extension ontology for W3C PROV to support data provenance tracking in processing pipelines" ; @@ -27,14 +27,14 @@ dataprov:RootEntity rdfs:subClassOf prov:Entity ; rdfs:label "Root Entity" ; rdfs:comment "The initial source entity in a provenance chain, representing the starting point of data processing." ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:DataFile a owl:Class ; rdfs:subClassOf prov:Entity ; rdfs:label "Data File" ; rdfs:comment "A file entity representing data at various stages in the processing pipeline." ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . # # File/Entity Properties @@ -46,7 +46,7 @@ dataprov:checksum rdfs:comment "SHA256 checksum of a file for integrity verification. Format: 'sha256:hexvalue'" ; rdfs:domain prov:Entity ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:format a owl:DatatypeProperty ; @@ -54,7 +54,7 @@ dataprov:format rdfs:comment "File format or type (e.g., 'CSV', 'JSON', 'MP4')" ; rdfs:domain dataprov:DataFile ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:sizeBytes a owl:DatatypeProperty ; @@ -62,7 +62,7 @@ dataprov:sizeBytes rdfs:comment "File size in bytes" ; rdfs:domain prov:Entity ; rdfs:range xsd:nonNegativeInteger ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:createdAt a owl:DatatypeProperty ; @@ -70,7 +70,7 @@ dataprov:createdAt rdfs:comment "ISO 8601 timestamp when the entity was originally created" ; rdfs:domain prov:Entity ; rdfs:range xsd:dateTime ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:originalPath a owl:DatatypeProperty ; @@ -78,7 +78,7 @@ dataprov:originalPath rdfs:comment "Original file path for bundled/inlined provenance files" ; rdfs:domain prov:Bundle ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:bundleChecksum a owl:DatatypeProperty ; @@ -86,7 +86,7 @@ dataprov:bundleChecksum rdfs:comment "SHA256 checksum of a bundled provenance file" ; rdfs:domain prov:Bundle ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:externalPath a owl:DatatypeProperty ; @@ -94,7 +94,7 @@ dataprov:externalPath rdfs:comment "File path to an external provenance file" ; rdfs:domain prov:Bundle ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . # # Activity/Processing Properties @@ -106,7 +106,7 @@ dataprov:operation rdfs:comment "Description of the operation or transformation performed by an activity" ; rdfs:domain prov:Activity ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:arguments a owl:DatatypeProperty ; @@ -114,7 +114,7 @@ dataprov:arguments rdfs:comment "Command-line arguments or parameters used for the activity" ; rdfs:domain prov:Activity ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:outputLog a owl:DatatypeProperty ; @@ -122,7 +122,7 @@ dataprov:outputLog rdfs:comment "Console or log output from the tool execution" ; rdfs:domain prov:Activity ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:warnings a owl:DatatypeProperty ; @@ -130,7 +130,7 @@ dataprov:warnings rdfs:comment "Warning messages generated during the activity" ; rdfs:domain prov:Activity ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:drl a owl:DatatypeProperty ; @@ -138,7 +138,7 @@ dataprov:drl rdfs:comment "Data Readiness Level (0-9) indicating the maturity/quality of the data. See: https://en.wikipedia.org/wiki/Data_readiness_level" ; rdfs:domain prov:Activity ; rdfs:range xsd:integer ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . # # Agent/Tool Properties @@ -150,7 +150,7 @@ dataprov:toolName rdfs:comment "Name of the software tool or application" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:toolVersion a owl:DatatypeProperty ; @@ -158,7 +158,7 @@ dataprov:toolVersion rdfs:comment "Version identifier of the software tool" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:toolSource a owl:DatatypeProperty ; @@ -166,7 +166,7 @@ dataprov:toolSource rdfs:comment "Source, vendor, or organization that provided the tool" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:user a owl:DatatypeProperty ; @@ -174,7 +174,7 @@ dataprov:user rdfs:comment "Username of the person who executed the activity" ; rdfs:domain prov:Agent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:hostname a owl:DatatypeProperty ; @@ -182,7 +182,7 @@ dataprov:hostname rdfs:comment "Hostname of the machine where the activity was executed" ; rdfs:domain prov:Agent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:agentType a owl:DatatypeProperty ; @@ -190,7 +190,7 @@ dataprov:agentType rdfs:comment "Type of agent: 'human' or 'automated'" ; rdfs:domain prov:Agent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:name a owl:DatatypeProperty ; @@ -198,7 +198,7 @@ dataprov:name rdfs:comment "Name of a person, organization, or agent" ; rdfs:domain prov:Agent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . # # Environment Properties @@ -210,7 +210,7 @@ dataprov:runtime rdfs:comment "Runtime environment name (e.g., 'Python', 'Node.js', 'Java')" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:runtimeVersion a owl:DatatypeProperty ; @@ -218,7 +218,7 @@ dataprov:runtimeVersion rdfs:comment "Version of the runtime environment" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:platform a owl:DatatypeProperty ; @@ -226,7 +226,7 @@ dataprov:platform rdfs:comment "Operating system platform (e.g., 'Linux', 'Windows', 'macOS')" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:machine a owl:DatatypeProperty ; @@ -234,7 +234,7 @@ dataprov:machine rdfs:comment "Machine architecture (e.g., 'x86_64', 'arm64')" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . dataprov:processor a owl:DatatypeProperty ; @@ -242,7 +242,7 @@ dataprov:processor rdfs:comment "CPU processor information" ; rdfs:domain prov:SoftwareAgent ; rdfs:range xsd:string ; - rdfs:isDefinedBy . + rdfs:isDefinedBy . # # Relationship Properties @@ -254,4 +254,4 @@ dataprov:hadProvenance rdfs:comment "Links to a provenance file or bundle documenting the history of an entity" ; rdfs:domain prov:Usage ; rdfs:range [ owl:unionOf ( prov:Bundle xsd:anyURI ) ] ; - rdfs:isDefinedBy . + rdfs:isDefinedBy .