Skip to content

yannramusat/TPG

Repository files navigation

Transforming Property Graphs

Declarative property graph transformations.

Introduction

  1. This repository contains the Appendix of our paper.
  2. This repository contains the datasets and the source code for our experiments.

Prerequisites

iBench

We made iBench an optional dependency by providing input data for each scenario in the folder output-ibench-data.

You can install iBench from our fork. (We patched the build process of the official repository.)

Neo4j Installation & Configuration

We are connecting to a local Neo4j Community Edition instance to perform the experiments.

This instance should be configured with the default settings commonly found in $NEO4J_CONF/neo4j.conf; but to access CSV files located anywhere in the local filesystem, we need to make sure that Neo4j is additionally configured this way:

#server.directories.import=import
dbms.security.auth_enabled=false
#dbms.security.allow_csv_import_from_file_urls=true

Hence, no credentials are needed and we can freely use LOAD CSV to import the data generated by iBench into Neo4j.

Start the server by typing: sudo /opt/neo4j/bin/neo4j start.
Note: Do this instead of sudo -u neo4j /opt/neo4j/bin/neo4j start to avoid permission errors when loading files.

This software is configured to connect to localhost with the default port and with no authentication.

Folder Structure

.
├── figures                  # Source code for figure generation
├── icij                     # Experiments on the ICIJ database
├── input-ibench-config      # Configuration files for iBench
├── output-ibench-data       # Input data (CSV format)
├── results                  # Experimental results
├── scenarios                # Cypher scripts implementing the transformations
├── user-study               # Materials related to the user study
├── Appendix.pdf             # The file containing the Appendix
└── ...

Installation & Run experiments

First, uncomment from main.py the figure(s) that you want to generate.

Using venv

git clone git@github.com:yannramusat/TPG.git
cd TPG
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 main.py
...
deactivate

Specs

We ran the experiments on the following system:

  • HP EliteBook 840 G3 (L3C67AV)
  • Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
  • 32GiB system memory (2133 MHz)

And used the following toolchain:

  • java-openJDK-17
  • Neo4j Community Edition 5.9.0
  • Neo4j Python Driver 5.9.0