Warning: This document is for an old version of RDFox. The latest version is 7.0.

1. Welcome to RDFox

RDFox is a main-memory, scalable, centralized data store that allows users to efficiently manage graph-structured data represented according to the RDF data model and query that data using the SPARQL 1.1 query language.

RDFox also enables intelligent information processing by providing means for representing and reasoning with domain knowledge in the form of rules and ontological axioms. Rules in RDFox can be represented using a powerful extension of the well-understood Datalog language, whereas ontology axioms can be represented in the standard ontology language OWL 2 and in the Semantic Web Rule Language SWRL.

RDFox runs on Linux, macOS, and Windows. It can be integrated as a library into Java applications using an efficient native API. It can also be used as a standalone server accessible via a RESTful API. These versatile modes of use, combined with the very efficient storage and reasoning capabilities, make RDFox suitable for a wide range of application scenarios.

1.1. How to Read this Documentation

We next provide a brief guide on how to use this documentation.

Introduction

Sections 1 to 3 contain introductory information to help users who are new to RDFox.

Section 2 begins with a high level description of RDFox’s functionality then gives details of the RDFox software archive, the available interfaces to the system (GUI, CLI and APIs), and the software and hardware requirements for running RDFox. Section 3 contains our Getting Started guide, which will walk you through your first experience with RDFox.

Organization of Data

Sections 4 to 7 explain how RDFox organizes data. The information in these sections is not specific to any particular RDFox interface and is relevant to all users of the system.

Section 4 introduces the concept of the RDFox server, the top-level container for all information stored in RDFox, and the hierarchy of concepts used to organize that information. The parameters available for configuring servers are also described. The three subsequent sections provide more detail on the most important concepts: data stores in Section 5, tuple tables in Section 6, and data sources in Section 7. Finally, Section 14 explains the concept of connections which are used to mediate access to the system.

Functionality

Sections 8 to 13 document the core functionality of RDFox. As with the sections on concepts, the information in these sections is not specific to any particular RDFox interface and is potentially relevant to all users of the system, depending on the needs of their application.

Section 8 describes RDFox’s operations for importing and exporting bulk data, rules and axioms.

Section 9 describes querying in RDFox. It assumes that readers are familiar with the RDF 1.1 and SPARQL 1.1 standards however RDFox’s proprietary extensions to the latter are explained in depth with examples. This section also contains information on how to access and visualize query plans in RDFox as well as how to monitor query execution.

Section 10 contains a comprehensive guide to RDFox’s reasoning functionality. Unlike the section on querying, no prior knowledge of reasoning is assumed and the section includes many examples that you can readily execute using RDFox. This section also contains information on how to obtain explanations of facts materialized by reasoning and on how to monitor the reasoning process to analyze the performance of rules.

Section 11 describes how RDFox uses transactions to allow many users to safely share a single RDFox instance. Finally, Section 12 introduces RDFox’s access control model.

Section 13 describes the available options for persisting the settings and data loaded into RDFox.

Interfaces

Sections 14 to 17 contain reference documentation and guides for various RDFox interfaces.

Section 14 introduces the concept of connections which provide access to core RDFox functionality. Connections are used in the RDFox shell and all APIs so this section is useful for anyone using those interfaces.

Section 15 describes the RDFox shell, a command line interface with support for both interactive and batch operation that can be used remotely or directly via standard input and output. Section 16 contains the main API reference documentation for the REST and Java (JRDFox) APIs. Section 17 contains a link to the full Javadoc documentation for JRDFox.

Operations Manual

Sections 18 to 22 constitute the operations manual for RDFox. This information is intended to help users responsible for establishing long-running, secure and maintainable RDFox deployments.

Section 18 explains how to use the RDFox executable. Section 19 describes the RDFox Endpoint including details of how to start and stop it, its configuration parameters and how RDFox treats anonymous HTTP(S) requests. Section 20 describes the types of logging supported by RDFox. Section 21 gives details on how to deploy a group of RDFox instances to provide a single high-availability service. Finally, Section 22 describes the official Docker images for RDFox.

Information

Sections 23 and 24 contain release notes and software license acknowledgments for RDFox respectively.