Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: HPCI-Lab
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 1.32 MB
Statistics
  • Stars: 3
  • Watchers: 3
  • Forks: 4
  • Open Issues: 0
  • Releases: 7
Created over 2 years ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codemeta

README.md

Provenance as a Service

yProv is a provenance service aimed at addressing multi-level provenance as well as reproducibility challenges in climate analytics experiments. It allows scientists to manage provenance information compliant with the W3C PROV standard in a more structured way and navigate and explore the provenance space across multiple dimensions, thus enabling the possibility to get coarse- or fine-grained information according to the level of interest.

yProv is a joint project between University of Trento and CMCC.

The deployment consists of two Docker containers: - yProv Web Service front-end - Neo4J graph database engine back-end

Preliminary setup

  • Create a named volume to make Neo4j data persistent docker volume create neo4j_data
  • Create a named volume to export logs to the host machine docker volume create neo4j_logs
  • Create a named volume to make yProv configuration and data persistent to the host machine docker volume create yprov_data Create a Docker network to enable communication between the two Docker containers
  • Create a Docker network docker network create yprov_net

Deployment from DockerHub

  • Run the Neo4j container docker run \ --name db \ --network=yprov_net \ -p 7474:7474 -p 7687:7687 \ -d \ -v neo4j_data:/data \ -v neo4j_logs:/logs \ -v $HOME/neo4j/import:/var/lib/neo4j/import \ -v $HOME/neo4j/plugins:/plugins \ --env NEO4J_AUTH=neo4j/password \ --env NEO4J_ACCEPT_LICENSE_AGREEMENT=eval \ -e NEO4J_apoc_export_file_enabled=true \ -e NEO4J_apoc_import_file_enabled=true \ -e NEO4J_apoc_import_file_use__neo4j__config=true \ -e NEO4J_PLUGINS=\[\"apoc\"\] \ neo4j:enterprise
  • Run the yProv container docker run \ --restart on-failure \ --name web \ --network=yprov_net \ -p 3000:3000 \ -d \ -v yprov_data:/app/conf \ --env USER=neo4j \ --env PASSWORD=password \ hpci/yprov:latest

Deployment from sources

You can also build the yProv image by your own (using the available Dockerfile) and start the two containers.

  • Build the yProv image docker build . -t yprov_web
  • Run the bash script to start the two containers ./deploy_service.sh

yProv CLI

yProv includes a Command Line Interface to interact with the service in a more convenient way. Please refer to this documentation to install the CLI.

Get started

You can find some ready-to-use examples to get started with yProv under the examples folder.

Advanced options

Load Neo4j plugins

Method 1: NEO4J_PLUGINS utility

You can configure the Neo4j deployment to automatically download and install plugins. The NEO4J_PLUGINS environment variable can be used to specify the plugins to install.

Example: Install the APOC Core plugin (apoc) and the Graph Data Science plugin (graph-data-science)

You can use the Docker argument --env NEO4J_PLUGINS='["apoc", "graph-data-science"]'

Method 2: Installing plugins

To install plugins, including user-defined procedures, mount the folder or volume containing the plugin JARs to /plugins, for example: docker run \ ... -v $HOME/neo4j/plugins:/plugins \ neo4j:enterprise Neo4j automatically loads any plugins found in the /plugins folder on startup.

Change secret key

A secret key is used to encode & decode the JSON Web Token for user authentication. The default secret key can be overridden by setting the SECRET_KEY environment variable: docker run \ --name web \ --network=yprov_net \ -p 3000:3000 \ -d \ -v yprov_data:/app/conf \ --env USER=neo4j \ --env PASSWORD=password \ --env SECRET_KEY=my_secret_key \ hpci/yprov:latest

Owner

  • Name: HPCI-Lab
  • Login: HPCI-Lab
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: 'If you use yProv, please cite it as below'
title: yProv
type: software
authors:
  - family-names: Fiore
    given-names: Sandro
    email: sandro.fiore@unitn.it
    affiliation: University of Trento
  - family-names: Antonio
    given-names: Fabrizio
    email: fabrizio.antonio@cmcc.it
    affiliation: CMCC
date-released: 2025-01-14  
repository-code: 'https://github.com/HPCI-Lab/yProv'
license: MIT
version: 1.1
keywords:
  - provenance
  - W3C Provenance
  - multi-level provenance
  - yProv
abstract: >-
  yProv is a provenance service aimed at addressing multi-level provenance as well as reproducibility challenges in climate analytics experiments. 
  It  allows scientists to manage provenance information compliant with the W3C PROV standard in a more structured way and navigate and explore the provenance space 
  across multiple dimensions, thus enabling the possibility to get coarse- or fine-grained information according to the level requested.

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "Software",
  "name": "yProv",
  "description": "yProv is a provenance service aimed at addressing multi-level provenance as well as reproducibility challenges in climate analytics experiments. It allows scientists to manage provenance information compliant with the W3C PROV standard in a more structured way and navigate and explore the provenance space across multiple dimensions, thus enabling the possibility to get coarse- or fine-grained information according to the level of interest. yProv is a joint project between University of Trento and CMCC.",
  "author": [
    {
      "@type": "Person",
      "givenName": "Sandro",
      "familyName": "Fiore",
      "email": "sandro.fiore@unitn.it",
      "affiliation": {
        "@type": "Organization",
        "name": "University of Trento"
      }
    },
    {
      "@type": "Person",
      "givenName": "Fabrizio",
      "familyName": "Antonio",
      "email": "fabrizio.antonio@cmcc.it",
      "affiliation": {
        "@type": "Organization",
        "name": "CMCC"
      }
    }
  ],
  "datePublished": "2025-01-14",
  "license": "MIT",
  "version": "1.1.0",
  "codeRepository": "https://github.com/HPCI-Lab/yProv",
  "keywords": [
    "provenance",
    "W3C Provenance",
    "multi-level provenance",
    "yProv"
  ],
  "programmingLanguage": "Python"
}

GitHub Events

Total
  • Release event: 1
  • Delete event: 11
  • Member event: 2
  • Push event: 42
  • Pull request event: 4
  • Fork event: 3
  • Create event: 14
Last Year
  • Release event: 1
  • Delete event: 11
  • Member event: 2
  • Push event: 42
  • Pull request event: 4
  • Fork event: 3
  • Create event: 14

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 10 minutes
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 10 minutes
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • Yousaf95 (1)
  • jclock98 (1)
  • anfab (1)
Top Labels
Issue Labels
Pull Request Labels