Skip to main content

"Import W3C PROV documents into Neo4j using py2neo\'s OGM."

Project description

Welcome to prov2neo! 👋

License: MIT Badge: Made with Python Badge: PyPi Version Badge: PyPi Downloads Monthly Twitter: DLR Software Badge: Open in VSCode Badge: DOI Badge: W3C PROV Badge: Citation File Format Inside

prov2neo is a Python library and command line tool that imports W3C PROV documents into Neo4j.

prov2neo enables faster imports than comparable libs such as prov-db-connector with the limitation of being specialized for neo4j.

🏗️ Installation

Clone the project and use the provided setup.py to install prov2neo locally:

python setup.py install --user

Or install the latest release from PyPi:

pip install prov2neo

🚀 Usage

prov2neo can be used as a command line script or as a Python lib.

As a Command Line Script

usage: prov2neo [-h] [-f {provn,json,rdf,xml}] [-i INPUT [INPUT ...]] [-a ADDRESS]
                [-u USERNAME] [-p PASSWORD] [-n NAME]
                [-s {bolt,bolt+s,bolt+ssc,http,https,http+s,http+ssc}]

Import W3C PROV documents to Neo4j.

optional arguments:
  -h, --help            show this help message and exit
  -f {provn,json,rdf,xml}, --format {provn,json,rdf,xml}
                        input PROV format
  -i INPUT [INPUT ...], --input INPUT [INPUT ...]
                        input files, use '.' for stdin
  -a ADDRESS, --address ADDRESS
                        Neo4j address
  -u USERNAME, --username USERNAME
                        Neo4j username
  -p PASSWORD, --password PASSWORD
                        Neo4j password
  -n NAME, --name NAME  Neo4j target database name
  -s {bolt,bolt+s,bolt+ssc,http,https,http+s,http+ssc}, --scheme {bolt,bolt+s,bolt+ssc,http,https,http+s,http+ssc}
                        connection scheme to use when connecting to Neo4j

As a Python Lib

from prov.model import ProvDocument
from prov2neo.client import Client

# read graph from JSON serialization
graph = ProvDocument.deserialize(source="examples/horsemeat.json", format="json")

# create a prov2neo client
client = Client()
# connect to the neo4j instance
client.connect(
    address="localhost:7687",
    user="jane doe",
    password="**redacted**",
    name="database name",
    scheme="bolt"
)
# import the PROV graph
client.import_graph(graph)

prov2neo supports formats that the prov library provides:

🤝 Contributing

Contributions and pull requests are welcome!
For major changes, please open an issue first to discuss what you would like to change.

✨ Citable Software

This project contains a CITATION.cff file!

CITATION.cff files are plain text files with human- and machine-readable citation information for software (and datasets).
GitHub will link the correct citation automatically.
To find out more about GitHubs support for CITATION.cff files visit here

📝 License

Copyright © 2020-2022 German Aerospace Center (DLR) and individual contributors.
This project is MIT licensed.

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

prov2neo-1.2.2.tar.gz (13.5 kB view hashes)

Uploaded Source

Built Distribution

prov2neo-1.2.2-py3-none-any.whl (12.5 kB view hashes)

Uploaded Python 3

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