Modular Materialisation of Datalog Programs

Supplementary Material for the Submission to Artificial Intelligence Journal.

Paper

Click here to download the full version of the paper.

Test System

We have implemented our approach based on an old version of RDFox. Below are the linux executables. "RDFox-sample.zip" was used to create deletions of various sizes. "RDFox-dredc.zip" was the system on which we tested the performance of Mat and DRed^c. "RDFox-bfc.zip" was the system on which we tested the performance of B/F^c. "RDFox-modular.zip" was the modified system on which we tested the performance of M-Mat and M-DRed^c.

RDFox-sample.zip RDFox-dredc.zip RDFox-bfc.zip RDFox-modular.zip

Test Datasets

You do not have to uncompress the bz2 files; our test systems can read them directly.

Claros.bz2 LUBM.bz2 DBpedia.bz2 DAG.bz2 Family.bz2 Relations.bz2 Seq.bz2

Note: To be able to decompress the "bz2" files, our test systems require pbzip2 to be installed in your operating system.

Test Programs

Below are the test programs.

Claros-LE.dlog LUBM-LE.dlog DBpedia-SKOS.dlog DAG-R.dlog Family.dlog Relations.dlog Seq.dlog

Instructions on Obtaining Deletion Files (E^-)

We used RDFox-sample.zip to generate deletion files. The system guarantees that you get the same sampling as long as you provide the same random seeds. For small deletions we used 1--10 as random seeds to get different samples of the same size (1000). For large deletions we used 1 as random seeds. Below are two examples illustrating this.

Example 1: Generating a Small Deletion File of Size 1000 with Random Seed 1

Step 1: Run "./RDFox-sample -shell" in command line

Step 2: Run the following commands:

> init seq

> set sampling-method uniform (it is important that you set the sampling method to uniform since the default one is random-walk)

> sample 1000 c 1 "./datasets/DBpedia.bz2" (do not forget the quotation marks; parameter "c" for "constant")

> export "./deletions/DBpedia-delete1k-1" (make sure that a directory of the name "deletions" is already there)

> quit

You will find the deletion file "DBpedia-delete1k-1" in the "deletions" directory.

Example 2: Generating a Large Deletion File Which is 25 Percent of the Original Dataset with Random Seed 1

Step 1: Run "./RDFox-sample -shell" in command line

Step 2: Run the following commands:

> init seq

> set sampling-method uniform

> sample 25 p 1 "./datasets/DBpedia.bz2" ("p" for "percent")

> export "./deletions/claros-delete25p-1"

> quit

Example Illustrating How to Reproduce our Experimental Results

Step 1: Run "./RDFox-modular -shell" in command line

Step 2: Run the following commands:

> init par-complex-nn (do not set it to "seq")

> set reason.use-DRed true (always set this to true; set this also to true if you are using RDFox-dredc; set this to false if you are using RDFox-bfc)

> import "./programs/DBpedia-SKOS.dlog"

> mat

> import + "./datasets/DBpedia.bz2"

> mat

> import - "./deletions/DBpedia-delete1k-1"

> mat

and you will be able to get the incremental materialisation time and the change in the number of tuples. Run "quit" to exit the system.

Example Illustrating How to Enable Optimisations for Regular Chain Programs

By default the optimisations for regular chain programs are disabled. To enable this, the user needs to specify which predicates such optimisations will be applied to. To reproduce the results for Relations-RCH in Table 4 of the paper, use chainpreds.txt and follow the steps below.

Step 1: Run "./RDFox-modular -shell" in command line

Step 2: Run the following commands:

> init par-complex-nn

> set reason.use-DRed true

> chain "./chainpreds.txt"

> import "./programs/Relations.dlog"

> mat

> import + "./datasets/Relations.bz2"

> mat

> quit