Skip to main content

A simple python implementation of the W3C PROV data model

Project description

A python library for W3C Provenance Data Model supporting PROV-O.

Kleio is free software released under the MIT license.

Features

  • An implementation of the W3C PROV Data Model in Python

  • Supports serialization and deserialization as PROV-O in RDF/XML, Turtle, TriG, N3, NTriples, and JSON-LD formats

  • Supports provenance-of-provenance (PROV bundles) via named graphs

  • Built using RDFlib

Getting Started

Kleio can be installed from PyPi using the pip installer:

$ pip install kleio

From kleio use the prov module to generate PROV records and output PROV-O.

from kleio import prov

prov.bind_ns("test", "http://tw.rpi.edu/ns/test#")

entity = prov.Entity("test:entity")
entity.set_label("example entity")

activity = prov.Activity("test:activity")
activity.set_label("example activity")

entity.set_was_generated_by(activity)
print(prov.serialize(format="turtle"))

output:

@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix test: <http://tw.rpi.edu/ns/test#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<test:activity> a prov:Activity ;
    rdfs:label "example activity" ;
    prov:generated <test:entity> ;
    prov:influenced <test:entity> .

<test:entity> a prov:Entity ;
    rdfs:label "example entity" ;
    prov:wasGeneratedBy <test:activity> ;
    prov:wasInfluencedBy <test:activity> .

Kleio can also be used to load and update existing PROV-O records.

from kleio import prov

# load the existing PROV-O graph
prov.graph.load("load-example.ttl", format="turtle")

# get a reference to the existing entity with id="test:entity"
entity = prov.Entity("test:entity")

# ... update entity ...

Support

More information is available on the project webpage:

https://github.com/tetherless-world/kleio

Continuous integration status details available from Travis CI:

Build Status

The documentation can be built by doing:

$ python setup.py build_sphinx

And is also available from ReadTheDocs:

http://kleio.readthedocs.org/en/latest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kleio-0.2.0.tar.gz (11.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page