Italian version here
A powerful web tool based on React and D3.js for visualizing and interacting with Provenance graphs. It allows users to load data from JSON files or URLs and offers interactive features for exploring large-scale graphs with various customization and sharing options.
yProv Explorer is an application designed to provide an immediate and intuitive view of Provenance. Leveraging React and D3.js, users can dynamically and interactively navigate between entities, agents, and activities, highlighting relationships and connections.
Here is a simplified overview:
yProv-Explorer/
├── captures/
│ ├── example1.jpeg
│ ├── example2.png
│ └── example3.jpeg
├── netlify/
│ └── functions/
│ └── proxy.js
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ │ ├── DownloadsButton/
│ │ ├── FileUploadButton/
│ │ ├── FullscreenButton/
│ │ ├── Graph/
│ │ ├── GraphContainer/
│ │ ├── GraphInfo/
│ │ ├── GraphSettings/
│ │ ├── JsonLabel/
│ │ ├── NavigationButton/
│ │ ├── NodeInfo/
│ │ ├── SearchBar/
│ │ └── SearchNode/
│ ├── main/
│ │ ├── main.css
│ │ └── Main.js
│ ├── App.js
│ ├── index.css
│ ├── index.js
│ ├── proxy-server.mjs
│ ├── reportWebVitals.js
│ ├── setupTests.js
│ └── unified-loader.js
├── utilities/
│ └── provenance_creator.py
├── .gitignore
├── LICENSE
├── netlify.toml
├── package-lock.json
├── package.json
├── README_ENG.md
└── README.md
Here is a preview of the graph generated by the application:
- Orange nodes (rounded rectangles) represent entities.
- Green rectangles represent activities.
- Purple house-shaped node represents an agent.
- Red links represent "wasGeneratedBy".
- Green links represent "wasDerivedFrom".
- Orange link represents "wasAttributedTo".
- Interactive graph exploration: Pan, zoom, and drag nodes.
- Customizable visualization: Toggle node labels, link labels, and adjust node spacing.
- File upload and URL support: Load graphs via file upload or pasting a URL.
- Node highlighting and sharing: Click nodes to highlight them, update the URL with the selected node, and share the direct link.
- Link visibility control: Show or hide specific types of links (e.g., "used", "wasDerivedFrom", "wasGeneratedBy").
- Fullscreen visualization: Maximize the graph for better analysis.
- Navigation through history: Use the browser bar to move between previously clicked nodes.
- Graph statistics: View the total number of nodes and breakdown by type (entity, activity, agent).
- Node link navigation: Follow node connections in the details panel.
- Graph screenshot export: Save the current graph view as a PNG file.
Visit the deployed application on Netlify for a live preview:
Want to run the project locally? Follow these steps:
- Node.js (v16 or later recommended)
- npm
- Clone the repository and navigate to the directory:
git clone https://github.com/Zefkilis2002/yProv-Explorer cd yProv-Explorer - Install dependencies:
npm install npm start
- Open your browser at http://localhost:3000 to view the application.
- Load from File: Click the upload button and select a JSON file containing Provenance data.
- Load from URL: Paste the URL of a JSON file or a REST endpoint.
- Pan and Zoom: Use the mouse or dedicated controls for navigation.
- Node Selection: Click a node to view additional information.
- Node Distance: Customize the repulsion/attraction force for better visualization.
- Dynamic URL: Clicking a node updates the URL with a parameter identifying the selected node.
- Direct Link: Share this URL so others can access the same node directly.
- Konstantinos Zefkilis;
- Sandro Luigi Fiore;
- Marco Robol.
