Git Product home page Git Product logo

gmark's Introduction

gMark

gMark is a domain- and query language-independent framework targeting highly tunable generation of both graph instances and graph query workloads based on user-defined schemas.

For more details about gMark, please refer to our technical report: http://arxiv.org/abs/1511.08386

gMark was demonstrated in VLDB 2016. The gMark research paper was published in the TKDE journal.

If you use gMark, please cite:

@article{BBCFLA17,
  author = {Bagan, G. and Bonifati, A. and Ciucanu, R. and Fletcher, G. H. L. and Lemay, A. and Advokaat, N.},
  title = {{gMark}: Schema-Driven Generation of Graphs and Queries},
  journal = {IEEE Transactions on Knowledge and Data Engineering},
  volume = {29},
  number = {4},
  pages = {856--869},
  year = {2017}
}

and/or

@article{BBCFLA16,
  author = {Bagan, G. and Bonifati, A. and Ciucanu, R. and Fletcher, G. H. L. and Lemay, A. and Advokaat, N.},
  title = {Generating Flexible Workloads for Graph Databases},
  journal = {PVLDB},
  volume = {9},
  number = {13},
  pages = {1457--1460},
  year = {2016}
}

How to use gMark

To compile the code:

cd demo/scripts
./compile-all.sh

In the rest of the readme, suppose that we are in demo/scripts.

To generate an entire workflow, use the prepared script play.sh:

./play.sh

This executes the following three steps:

1. Generation of the graph and query workload in internal format, and html reports for both

cd ../../src
./test -c ../use-cases/test.xml -g ../demo/play/play-graph.txt -w ../demo/play/play-workload.xml -r ../demo/play/

where the parameters are:

  • -c : the configuration file
  • -g : the output file for the graph instance
  • -w : the output file for the query workload generated on this instance (in internal format)
  • -r : the output directory for the html reports

and optionally

  • -a : to use aliases for the predicates in the generated graph and queries
  • -n : to specify the number of nodes in the graph (it overrides the parameter from the config file)

The provided configuration files in the directory use-cases are:

  • test.xml : schema of a bibliographical graph database
  • shop.xml : schema of an online shop (our gMark encoding of the default schema from WatDiv)
  • social-network.xml : schema of a social network (our gMark encoding of the schema from LDBC SNB)
  • uniprot.xml : schema of a protein network (our gMark encoding of the schema extracted from UniProt)

2. Translation of the queries into the four concrete syntaxes

cd querytranslate
./test -w ../../demo/play/play-workload.xml -o ../../demo/play/play-translated

where the parameters are:

  • -w : the query workload in internal format generated at step 1.
  • -o : the output directory for the translations of the queries

3. Generation of the query workload interface

cd ../queryinterface
./test -w ../../demo/play/play-workload.xml -t ../../demo/play/play-translated -o ../../demo/play/play-interface

where the parameters are:

  • -w : the query workload in internal format generated at step 1.
  • -t : the translations of the queries generated at step 2.
  • -o : the output directory for the query workload interface

Provided examples

We provide several examples of generated graphs, query workloads in internal format, html reports, translated queries, and query workload interfaces.

You can find them in the directory demo, subdirectories test, test-a, shop, shop-a, social, social-a, uniprot, uniprot-a.

These scenarios basically correspond to the aforementioned four configuration files from use-cases, and for each of them we generated versions without or with aliases (i.e., using integers as predicates or using real-world predicates specified in the configuration file, respectively).

gmark's People

Contributors

gbagan avatar graphmark avatar radu1 avatar tcalmant avatar wilcovl avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.