Incremental Maintenance of Datalog Materialisations Revisited
This is the webpage in support of the Journal submission of "
Incremental
Maintenance of Datalog Materialisations Revisited".
To show the trade-offs between the different DRed, FBF, Counting and rematerialisation, we have conducted
numerous tests to investigate the behaviour of the algorithms for subtraction and addition of data.
The first suite tests the algorithms on small updates of only 1000 RDF-triples. The second suite determines
for each algorithm and setting the point at which it is more efficient to rematerialise. We call this point
the equilibrium point.
We have created two versions of
RDFox of which
Please note that these resources are only usable under Oxford's
licence agreement. A commercial licence
can be obtained with Oxford Semantic Technologies.
Test Cases and data Sets
As data sets we used
In our
paper, we conducted our evaluation on four different test setups, the first two
involving the benchmark data sets
LUBM and
UOBM an the latter two involving the cultural database with two different datalog programs,
Claros-L and
Claros-LE.
For explanations of the directory structure please have a look at further
down.
Our Test Results
We provide the results of our tests in a
pdf-file.
Reproducing Test Results
The following
zip file contain all test scripts. The
scripts in the 'Robustness' and 'Scalability' subdirectories perform the actual tests,
but they depend on the scripts from the 'Common' subdirectory. Thus, to run a particular
test, the scripts from the 'Common' directory should be added to the 'Robustness' or
'Scalability' scripts. Each test relies on the presence of an appropriate RDFox data
store. Each of the test settings from {cnt, main} x {strata, nostrata} has its own
store, where cnt stands for counting and main stands for the other algorithms (DRed, FBF)
For each of the test settings, a store can be created by using one of the following files
to first set the variables
- [name]-cnt-nostrata-prepare.txt
- [name]-cnt-strata-prepare.txt
- [name]-main-eq-prepare.txt
- [name]-main-noeq-prepare.txt
and then subsequently use script-prepare-import.txt which writes a non-materialised store
and a materialised store into the provided directory. Obviously the counting scripts need
to be used with CppRDFox-Counting and the main scripts need to be used with CppRDFox.
Keeping the preset variables, one can then with script-robustness-iteration.txt execute
the robustness deletion tests. These iterate through the seeds 1 to 30 and repeat the tests.
Robustness addition tests can be performed by using the variables as before but now
exectuing script-robustnessAddition-iteration.txt.
The scalability deletion tests can be repeated by first setting the variables with
for example DBpedia-cnt-nostrata-uniform-102717587-dataPoint.txt. Executing with this
variable setting the script script-dataPoint-iteration.txt then performes the test.
The scalability addtion tests require to create a special store. This is achieved by using
for example DBpedia_L-main-noeq-193350752-prepare.txt to set the variables and then execute
script-prepare-addition-import.txt to create the store. The tests can then be performed
by calling for example DBpedia_L-main-noeq-strata-dred-uniform-145013064-193350752-dataPoint-addition.txt.
Make sure, that scripts for counting are called with CppRDFox-Counting and scripts with main
in their name with CppRDFox. Also ensure, as we did in this example that the second number
193350752 of the actual test script coincides with the number in the preparation script.