12. Release Notes

12.1. Experimental features

From time to time, RDFox releases may include experimental features not intended for use in production. In these cases, the affected APIs will clearly be labeled “EXPERIMENTAL” meaning that they may change or disappear entirely without notice in later versions. Further, Oxford Semantic Technologies offers no support for any API labeled in this way.

If you have feedback or questions regarding any feature of RDFox, whether experimental or not, we would be grateful to hear it via any of the normal channels.

12.2. Releases

Release 4.0.0
  • Add the option to treat negation in SWRL as non-monotonic negation.

  • Validate parameters passed after the daemon mode specifier in an RDFox executable command.

  • Add a new proprietary built-in, CONSTRAINT_VIOLATION, to make blank node identifiers for constraint violations.

  • The default setting for the endpoint parameter min-secure-protocol is now tls12.

  • Corrected a bug in the reasoning algorithms where incrementally adding rules would sometimes produce incorrect results (RD-858).

  • Restoring persisted data stores uses multiple threads and can be significantly faster than previous versions of RDFox.

  • Persisted data store file format uses compression to reduce disk usage.

  • Internal rules to transitively close class hierarchies have been updated to exclude blank nodes (SUP-95).

  • Explicating facts is disallowed in combination with OWL support as that would keep increasing the set of axioms in the store (SUP-95).

  • Named graphs can now be updated through DELETE/INSERT queries.

  • The proprietary syntax for referencing tuple tables in SPARQL queries was changed (e.g., atom that used to be written as :A(?X,?Y) now needs to be written as TT :A { ?X ?Y }).

  • The license can now be passed in using environment variables RDFOX_LICENSE_CONTENT and RDFOX_LICENSE_FILE.

  • Add new shell command daemon. This permanently switches RDFox into daemon mode.

  • The import.rename-blank-nodes data store option was removed, and import.rename-user-blank-nodes data store option was added.

  • Adds an additional mode to the EXPERIMENTAL web console. The connections between the entities in a data store may be visually explored, with either a single individual or the result of a query as a starting point.

  • Added Transcribe command allow server state to be saved and potentially imported into another instance.

  • Added -temp-role command line option.

  • Roles can be created using a password hash. The password hash of existing role can be obtained programmatically or via the shell.

  • Allow forward slashes to be used for file paths in Windows.

  • Fixed a problem that could sometimes cause a crash when evauating FILTER and BIND expressions that compare integers and floating point numbers (SUP-96).

  • Fixed a problem on Windows where one could start two endpoint processes on the same port (RD-592).

Release 3.1.1
  • Fix bug where RDFox fails to start with a “unable to locate incompleted replace information” error on Windows.

Release 3.1.0
  • Fixed a bug where RDFox would crash when a data store is restored from binary files and another operation (on a different data store) is running in parallel

  • Fix bug where RDFox would crash when the server was configured with data store persistence, but a data store without persistence is deleted (SUP-83)

  • Fix bug where RDFox would crash if the NOW() built-in function was written in lowercase (RD-777)

  • Fix bug where blank nodes were serialized incorrectly in the N-Triples and N-Quads formats (SUP-81)

  • Add a mechanism to constrain data store content using Datalog.

  • Add support for SWRL.

Release 3.0.1
  • Fix bug where RDFox fails to start with a file in use error on Windows.

  • Fix bug that causes RDFox to end if the terminal window is resized or a screen session is reconnected during login prompt.

  • Fix bug where data store snapshot files are not deleted when data stores are deleted.

  • Fix bug that caused RDFox to hang or crash if an attempt is made to import invalid data.

  • Allow Ctrl+C to interrupt import operations.

  • Allow Ctrl+C to interrupt loading of persisted data stores during restart.

Release 3.0.0
  • The term ‘user’ is replaced by the term ‘role’ in all JRDFox APIs related to authentication. For example tech.oxfordsemantic.jrdfox.client.DataStoreConnection.getUserName() is replaced by tech.oxfordsemantic.jrdfox.client.DataStoreConnection.getRoleName().

  • When creating server connections for the first time via JRDFox APIs, the default role name and password are now “guest” and “guest”.

  • All references to the namespace org.semanticweb.owlapi have been removed from the JRDFox code base and the owlapi-*.jar file is no longer included in the RDFox distribution. Consequently the following features are no longer available:

    • the overload of tech.oxfordsemantic.jrdfox.client.DataStoreConnection.importData that accepted an org.semanticweb.owlapi.model.OWLOntology

    • the command line facility to generate a Datalog program from an OWL ontology

Release 2.1.1
  • Correct the behavior of COUNT(?v) and COUNT(*).

Release 2.1.0
  • owl-in-rdf-support is no longer EXPERIMENTAL.

  • The JRDFox features that make use of owlapi-*.jar (one of the DataStoreConnection importData methods, and the GetRules utility) are now deprecated. This dependency will be removed in a future release of RDFox. Import of OWL documents (in Functional Style and Turtle syntaxes) will continue to be supported by the remaining importData methods.

Release 2.0.1
  • Fix bug where a crash may occur when the Java or REST interfaces are used to import large data sets (RD-531).

Release 2.0.0
  • The MIME types for the RDFox-proprietary SPARQL answer formats have been consolidated to us the x. subtype tree

  • New proprietary SPARQL answer formats have been added that abbreviate IRI prefixes in the result

  • The binary answer format has been changed

  • Renamed the parameters for obtaining diagnostic information in the REST API

  • Added calls to all APIs for retrieving server-level diagnostic information

  • Removed the query domain parameter in all APIs for exporting data and added the ability to pass in arbitrary key-value pairs

  • Adapted the syntax of the export command to support the change from the previous item

  • Optimized the shell interface by not requiring file names to be enclosed in quotes

  • Embedded an experimental HTML application which is served from /console when the endpoint is running

  • Only add the Access-Control-Allow-Origin header to HTTP responses if the user has configured the allowed origin

  • Added support for importing from files containing axioms represented in OWL 2 functional-style syntax.

  • Added experimental support for OWL 2 axioms translated from imported RDF data.

  • SPARQL query evaluation has been reworked to improve performance and eliminate errors in the returned solution for a small number of query types.

Release 1.6.0
  • RDFox and JRDFox now require a license file

  • Improved support for xsd:decimal on Windows

Release 1.5.0
  • RESTful API supports the HTTP X-HTTP-Method-Override request parameter to allow HTTP PATCH requests to be made from client code that does not directly support PATCH (e.g. Java HttpURLConnection)

  • Improved support for xsd:decimal on macOS and Linux

Release 1.4.0
  • Added support for the following SPARQL 1.1 functions:

    • NOW()

    • UUID()

    • STRUUID()

    • RAND()

    • MD5()

    • SHA1()

    • SHA256()

    • SHA384()

    • SHA512()

    • IRI()

  • RDFox now retains the data types of literals in the input — that is, xsd:int is no longer normalized to xsd:integer, and similarly for other derived data types (RD-194)

  • Added initial support for xsd:decimal (RD-162)

  • Performance improvements in the evaluation of most builtin functions (RD-196)

  • Import options rename-blank-nodes-on-import and convert-unknown-datatypes-to-strings were replaced with options import.rename-blank-nodes and import.invalid-literal-policy described in Section 6.2.2

  • Shell variables containing backslash characters are now correctly expanded on the command line (RD-219)

  • There is no restriction on the number of files that can be imported on a single line in the shell (RD-89)

Release 1.3.3
  • SSL/TLS for the RESTful API using openSSL (Windows, macOS, Linux) and Secure Transport (macOS only)

  • Fixed a bug where sending Content-Type: 0 with DELETE requests was incorrectly detected as having a body

  • Extracted the data store statistics into separate data structures that can be administered using the various APIs (RD-27); thus, there is now a way to update the statistics using the REST API

  • Repurposed the stats shell command to manage statistics, and deprecated the updatestats command in favor of stats update

  • Introduced the info shell command that merges the functionality of the old stats command, the rulestats command, and the ruleplan command; added the option to print summary of the information about a data store; removed the rulestats and ruleplan commands

  • Fixed a bug where tuple tables imported from a data source could have repeated column names

  • Extended the OWL translator to support data types and data type restrictions according to the OWL 2 RL specification (RD-53)

  • Improved handling of out-of-memory exceptions (RD-50)

  • Improved handling of situations when the capacity of a data store is exceeded (RD-90)

  • Fixed a bug where parallel import of Turtle files would sometimes slow down or even crash after loading some number of files

  • Improved the performance of importing large numbers of xsd:float and xsd:double values

  • Fixed the bug where incrementally added rules sometimes were not handled correctly (RD-120)

  • OFFSET and LIMIT can not occur in a SPARQL query in an arbitrary order

  • The RDFox command line supports common line editing functions including arrow-key navigation and command history on platforms where this was previously unavailable (macOS and Linux)

  • Commands used when starting RDFox have been revised (now shell or daemon) and options have been added to enable logging of API calls and to set a maximum allowable memory size.

  • Added support for cryptographic hash functions MD5, SHA1, SHA256, SHA384 and SHA512 in rules and queries

  • UCASE() and LCASE() functions are Unicode aware and use the unconditional case mappings as defined by the Unicode Standard 11.0 (RD-8)

  • Added the REGEX() and REPLACE() SPARQL 1.1 functions (RD-5)