19. Release Notes¶
19.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.
19.2. Releases¶
- Release 5.3
Moved to a two-part version number format.
Replaced server parameter
log-calls
withapi-log
which has the same effect.Added server parameter
api-log.directory
to configure the root directory for API logs.Implemented recording of inputs imported by the system as an extension of the existing API logging feature. Recording can be limited or disabled with new parameter
api-log.input-recording-limit
.API logging now captures details of exceptions and operation durations to the log.
Added a
prefixes
command to support listing and clearing the shell’s prefixes as well as restoring the default prefixes.Added a proprietary
MUL
aggregate function that multiplies its arguments.The web console is no longer EXPERIMENTAL.
Fixed the spelling of JRDFox API
ConnectionFactory.getNumberOfLocaServerRoles
toConnectionFactory.getNumberOfLocalServerRoles
.
- Release 5.2.1
Fixed a crash when importing malformed imports.
- Release 5.2.0
Introduced support for
using-graph-uri
andusing-named-graph-uri
when evaluating updates in the SPARQL endpoint.Changed the
keep-alive-timeout
endpoint option toconnection-keep-alive-time
in order to unify this with a similar option for the Solr data source.Added support for property paths in SHACL validation. Integrated SHACL validation with equality reasoning. Added an optional column to the built-in table
rdfox:SHACL
that specifies the fact domain of the validated data.Fixed a bug with large incremental addiditons and deletions of rules (RD-1069).
Fixed a bug where property paths would be evaluated incorrectly in queries containing two or more
FROM
clauses (RD-1091).Upgraded the
import
command to accept IRIs as well as file paths.Ensure that relative IRIs entered into the shell are expanded against the shell’s base IRI.
Added a
base
command to print or set the shell’s base IRI.Added the tuple table
rdfox:DependencyGraph
, which can be used to analyse the dependency graphs of Datalog programs.
- Release 5.1.0
Modified handling of aggregate functions with empty
GROUP BY
as described in this blog post.Server and data store connections used by the RDFox shell can now be managed explicitly via the new commands
srvconn
anddsconn
.As part of the above change, the
role switch
command was removed.Added new shell command
evaluate
for evaluating general SPARQL statements where a statement is either an update or a query.Fixed a bug where the
answer
command would accept SPARQL updates as well as queries. The command now accepts only queries.Fixed a bug which prevented
update
commands using the!
symbol from executing.Fixed a bug where destructive operations in the shell would be executed even if the user did not confirm them (SUP-123).
The methods for saving a data store in binary format were moved from
tech.oxfordsemantic.jrdfox.client.ServerConnection
totech.oxfordsemantic.jrdfox.client.DataStoreConnection
.Correctness fix to reasoning in a rare multithreaded situation (SUP-128).
Added new endpoint parameters
channel-timeout
,keep-alive-timeout
andmax-idle-connections
.The endpoint parameters
sweep-period
andsweeps-to-reclaim
were replaced with the single parameterobject-keep-alive-time
.
- Release 5.0.0
Added native support for Apple Silicon.
Implemented support for SPARQL 1.1 property paths.
Upgraded
delimitedFile
andsolr
data source tuple tables to use the data types inferred from the source tables, where appropriate.Renamed the ODBC data source parameter
name-quote
toquoted-identifier-quote
.Added HTTP request logging for the RDFox endpoint controlled by new endpoint parameters
request-logger
andelf-logger-fields
.Introduced the built-in table
rdfox:SHACL
for performing RDF constraint validation with the language SHACL.Reworked the OWL support by removing the
owl-in-rdf-support
option and adding the explicit APIs for imprting OWL axioms into a named graph (RD-879).Added an EXPERIMENTAL C API. Header files are located within the
include
directory within the RDFox distribution.A bug was fixed where the specified default graph was not always taken into account during importation of RDF data.
Improved the performance of answering queries that combine LIMIT and ORDER BY to compute the top K results.
Improved the evaluation of queries that combine ORDER BY and DISTINCT (SUP 118).
- Release 4.2.0
Integration with AWS Marketplace.
Images in the
oxfordsemantic/rdfox-init
repository now accept a subset of RDFox’s supported command line parameters to use when initializing new server directories.Add a health check to the REST API.
Shell command
dstore create
now returns an error if there is an existing data store with the specified name.Replace the shell commands
load
andsave
with corresponding subcommands to thedstore
command.Delete previously deprecated shell commands
drop
,explicate
,init
andupdatestats
.Fix bug where HTTPS server certificates were not verified. This affected SPARQL LOAD and solr data sources.
Add
verify-server-certificates
parameter for solr data sources.The shell command
clear
, as well as thedelete
subcommand of thedstore
,role
andtupletable
commands, now require the user to confirm the operation unlessforce
is specified as the final argument to the command.Corrected a bug in the planning of rules where valid rules were rejected (RD-944).
- Release 4.1.0
The
CONSTRAINT_VIOLATION
built-in was removed.A bug in the XML and JSON query answer formats was corrected where undefined variable would be serialized as
UNDEF
(insted of simply omitting their value).The
SKOLEM
built-in function was removed, and instead therdfox:SKOLEM
built-in tuple table was introduced.The
internal:triple
tuple table was renamed intordfox:DefaultTriples
.All of SPARQL 1.1 Update has been implemented (i.e.,
LOAD
,CREATE
,DROP
, etc.).Added a number of built-in operators and functions, particularly numeric and date/time computation functions. For example, dates can now be subtracted to obtain a duration.
- Release 4.0.0
Added a data source type
solr
for integrating with Apache Solr.Added the option to treat negation in SWRL as nonmonotonic 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 nowtls12
.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 asTT :A { ?X ?Y }
).The license can now be passed in using environment variables
RDFOX_LICENSE_CONTENT
andRDFOX_LICENSE_FILE
.Add new shell command
daemon
. This permanently switches RDFox into daemon mode.The
import.rename-blank-nodes
data store option was removed, andimport.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
andBIND
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 bytech.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 anorg.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)
andCOUNT(*)
.
- 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 treeNew 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 itemOptimized 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 runningOnly add the
Access-Control-Allow-Origin
header to HTTP responses if the user has configured the allowed originAdded 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 datatypes of literals in the input — that is,
xsd:int
is no longer normalized toxsd:integer
, and similarly for other derived datatypes (RD-194)Added initial support for
xsd:decimal
(RD-162)Performance improvements in the evaluation of most built-in functions (RD-196)
Import options
rename-blank-nodes-on-import
andconvert-unknown-datatypes-to-strings
were replaced with optionsimport.rename-blank-nodes
andimport.invalid-literal-policy
described in Section 8.2Shell 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
withDELETE
requests was incorrectly detected as having a bodyExtracted 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 theupdatestats
command in favor ofstats update
Introduced the
info
shell command that merges the functionality of the oldstats
command, therulestats
command, and theruleplan
command; added the option to print summary of the information about a data store; removed therulestats
andruleplan
commandsFixed a bug where tuple tables imported from a data source could have repeated column names
Extended the OWL translator to support datatypes and datatype 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
andxsd:double
valuesFixed the bug where incrementally added rules sometimes were not handled correctly (RD-120)
OFFSET
andLIMIT
can not occur in a SPARQL query in an arbitrary orderThe 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
ordaemon
) 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()
andLCASE()
functions are Unicode aware and use the unconditional case mappings as defined by the Unicode Standard 11.0 (RD-8)Added the
REGEX()
andREPLACE()
SPARQL 1.1 functions (RD-5)