If you intend to use this service regularly on large scale, consider downloading the package and use it locally. Storing a (conceptually) “cashed” version of the generated RDF, instead of referring to the live service, might also be an alternative to consider to avoid overloading this server…
The service performs a forward chaining on RDF files using either RDFS or the “derivation rules” of OWL 2 RL, possibly adding axiomatic triples, too. The service returns the expanded graph that includes all possible extra triples defined by these specifications. The code relies on 22nd of September, 2009 version of OWL 2 RL, and passes all official tests as provided by the OWL Working Group that aimed at the OWL 2 RL derivation rules. (See caveats below…).
The service generates all possible triples, even in case an inconsitency occurs
(eg, using owl:sameAs and owl:differentFrom on the same subject/object pairs).
An error information is added into the generated graph in the form of a blank node with properties referring
to the error itself.
Note that, if OWL 2 RL is used, the owl:imports property is also interpreted prior to the closure.
The returned graph would include all the triples for the transitive closure of the import actions.
This is not a production quality service! Essentially, this
is simply a proof-of-concepts implementation, naïvely simple and not optimized, ie, probably not usable for
larger graphs (e.g., all owl:sameAs triples are simply added to the output graph; more sophisticated
implementation would produce those triples only at query time). However, as a proof-of-concepts implementation
it has its value nevertheless: the core engine has been implemented on top of a standard, off-the-shelf
RDF library (RDFLib) without any sophisticated rule engine,
and it did not require months’ of work (the most complex part was to handle the datatypes properly, simply
because the underlying RDFLib implentation was fairly incomplete in this respect). This being one of the goals
of OWL 2 RL, it is a good testimony to its feasibility…
There is a bug in the underlying Turtle parser of RDFLib, though, that was not handled. The abbreviations
of double datatypes of the form 1.234E56 (to stand for "1.234E56"^^xsd:double) throws,
unfortunately, a parsing exception. Better to keep away from that…
The module is also usable by incorporating it to a RDFLib application. The code is available for download and it includes the Python package, plus examples for the usage of the package as part of a Web based service or on a command line. The download directory includes earlier releases, too. The documentation of the package is also available on-line.
This software is available for use under the W3C® SOFTWARE NOTICE AND LICENSE and can be downloaded from the CVS depository.