@jbr-experiment/watdiv

WatDiv experiment handler for JBR

Usage no npm install needed!

<script type="module">
  import jbrExperimentWatdiv from 'https://cdn.skypack.dev/@jbr-experiment/watdiv';
</script>

README

JBR Experiment - LDBC SNB Decentralized

Build status Coverage Status npm version

A jbr experiment type for the Waterloo SPARQL Diversity Test Suite (WatDiv).

Requirements

  • Node.js (1.12 or higher)
  • Docker (required for invoking WatDiv Docker)
  • jbr (required for initializing, preparing, and running experiments on the command line)

Quick start

1. Install jbr

jbr is a command line tool that enables experiments to be initialized, prepared, and started. It can be installed from the npm registry:

$ npm install -g jbr

or

$ yarn global add jbr

2. Initialize a new experiment

Using the jbr CLI tool, initialize a new experiment:

$ jbr init watdiv my-experiment
$ cd my-experiment

This will create a new my-experiment directory with default configs for this experiment type.

3. Configure the required hooks

This experiment type requires you to configure a certain SPARQL endpoint to send queries to for the hookSparqlEndpoint. A value for this hook can be set as follows, such as sparql-endpoint-comunica:

$ jbr set-hook hookSparqlEndpoint sparql-endpoint-comunica

4. Prepare the experiment

In order to run all preprocessing steps, such as creating all required datasets, invoke the prepare step:

$ jbr prepare

All prepared files will be contained in the generated/ directory:

generated/
  dataset.hdt
  dataset.hdt.index.v1-1
  dataset.nt
  queries/

5. Run the experiment

Once the experiment has been fully configured and prepared, you can run it:

$ jbr run

Once the run step completes, results will be present in the output/ directory.

Output

The following output is generated after an experiment has run.

output/query-times.csv:

name;id;results;time;timestamps
interactive-short-4;0;0;7;
interactive-short-4;1;0;5;
interactive-short-4;2;0;6;
interactive-short-4;3;0;3;
interactive-short-4;4;0;3;
interactive-short-5;0;0;0;
interactive-short-5;1;0;0;
interactive-short-5;2;0;0;
interactive-short-5;3;0;0;
interactive-short-5;4;0;0;

Configuration

The default generated configuration file (jbr-experiment.json) for this experiment looks as follows:

{
  "@context": [
    "https://linkedsoftwaredependencies.org/bundles/npm/jbr/^1.0.0/components/context.jsonld",
    "https://linkedsoftwaredependencies.org/bundles/npm/@jbr-experiment/watdiv/^1.0.0/components/context.jsonld"
  ],
  "@id": "urn:jrb:test-watdiv2",
  "@type": "ExperimentWatDiv",
  "datasetScale": 1,
  "queryCount": 5,
  "queryRecurrence": 1,
  "generateHdt": true,
  "endpointUrl": "http://localhost:3001/sparql",
  "queryRunnerReplication": 3,
  "queryRunnerWarmupRounds": 1,
  "queryRunnerRecordTimestamps": true,
  "hookSparqlEndpoint": {
    "@id": "urn:jrb:test-watdiv2:hookSparqlEndpoint",
    "@type": "HookNonConfigured"
  }
}

Any config changes require re-running the prepare step.

More background information on these config options can be found in the README of WatDiv Docker.

Configuration fields

  • datasetScale: Scale factor (1 ~= 100K triples), defaults to 1.
  • queryCount: Query count per type.
  • queryRecurrence: Query recurrence factor.
  • generateHdt: If a dataset.hdt should also be generated.
  • endpointUrl: URL through which the SPARQL endpoint of the hookSparqlEndpoint hook will be exposed.
  • queryRunnerReplication: Number of replication runs for sparql-benchmark-runner.
  • queryRunnerWarmupRounds: Number of warmup runs for sparql-benchmark-runner.
  • queryRunnerRecordTimestamps: Flag to indicate if result arrival timestamps must be recorded sparql-benchmark-runner.

License

jbr.js is written by Ruben Taelman.

This code is copyrighted by Ghent University – imec and released under the MIT license.