Skip to content

Oxford Semantic Technologies - RDFox

What is RDFox?

RDFox provides the following main functionality:

  • RDFox can import RDF triples, rules, and OWL 2 and SWRL axioms either programmatically or from files of certain formats. RDF data can be validated using the SHACL constraint language. Additionally, RDFox can access information from external data sources, such as CSV files, relational databases, or Apache Solr.
  • Triples, rules and axioms can be exported into a number of different formats. Furthermore, the contents of the system can be incrementally saved into a binary file, which can later be loaded to restore the system’s state.
  • RDFox supports ACID transactional updates.
  • Individual information elements in the system can be assigned different access permissions for different users.
  • RDFox can answer SPARQL 1.1 queries and provides functionality for monitoring query answering and accessing query plans.
  • RDFox supports materialisation-based reasoning, where all triples that logically follow from the facts and rules in the system are materialised as new triples. materialisations can be incrementally updated, which means that reasoning does not need to be performed from scratch once the information in the system is updated. Furthermore, the results of reasoning can be explained, which means that RDFox is able to return proofs for any new fact added to the store through materialisation.

Prerequisites

As a reference, the following are the recommended minimum hardware requirements to run the LUBM Benchmark for 1000 universities on RDFox 5.4 and above.

Prerequisites
CPU 2.7 GHz 4-Core Intel Core i7
Disk Space 80 GB of free disk space is required for the test dataset download and triplestore
Memory 32 GB of RAM is required for the RDFox server to run

Installing RDFox

Download the latest version of RDFox from their web site.

Unzip its contents to a local folder of your preference. Note that this location will be used to set the value of the parameter -d in the next section.

Executing the Benchmark

The Benchmark for RDFox is fully automated.

Run the rdfox-execute-benchmark command located at the root of the branch, as per example below.

./rdfox-execute-benchmark.sh \
    -d ~/Triplestores/Downloads/RDFox-macOS-x86_64-5.4 \
    -s ~/Triplestores/Servers/RDFox-5.4 \
    -u 1000 -f ntriple -c full -p gzip

Usage:

./rdfox-execute-benchmark.sh \
    -d <rdfox-download> \
    -s <rdfox-server> \
    -u <universities> -f <file-format> -c <test-coverage> \
    -p <file-compression>
    -d local folder where RDFox download was unzipped to.
    -s location where RDFox server will run and data store files be stored.
    -u number of universities
    -f file format (ntriple or turtle)
    -c test coverage (loadonly or full). Loadonly will only import the test dataset whereas Full will also execute the sparql queries.
    -p file compression (zip, gzip, bz2 or none)

The location specified in -s gets created for you automatically. You may probably choose to use the suggested location provided by the example.

NOTE: You may be prompted to allow RDFox to accept incoming network connections and/or to allow the application to run on MacOS for the first time. This can be set in System Preferences/Security & Privacy/Allow Apps Downloaded From.

Analysing Test Results

Data import and query timings and answer counts will be logged to the results/query-timings/rdfox-import-and-query-timings-and-counts.log file and the query outputs to the appropriate files in the results/query-results folder.

The logs are cleaned in the beginning of each run.

Environment Clean up

In the end of the benchmark execution, there is a cleanup task that removes the triplestore server, its databases and data files. The test result logs are kept for analysis, but cleaned in the beginning of each execution. The product download is not deleted.