Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 40 million developers.Sign up
grafter-2.rdf.protocolsto CLJC. A minimal set of RDF types are supported, for representing all RDF. These include
Strings, and booleans. Notably numeric types are not yet natively supported, and it's recommended that they and other types are boxed into
- Upgrades transitive dependency to RDF4j 3.0 release notes
- Extend support for
grafter.rdf4j.io/statementsto RDF4j Model's
- Remove support for some deprecated RDF4j objects that have been removed in RDF4j 3.0. These are unlikely to be a big issue for any grafter users; but see backward incompatible changes for more details.
grafter-2 namespace and RDF4j support
- This release includes the new
grafter-2.*namespaces which include support for RDF4j
- We no longer include the whole rdf4j-runtime. See our
project.cljfor what we bundle. This should shave 20mb+ off application jar sizes.
grafter-2.*namespaces now cleanly separate the grafter API from the backend implementation, which should mean we can now start adding grafter support for JENA etc should we need to. In particular this means that the
grafter.rdf/statementsfunction now lives in
grafter-2.rdf4j.io/statements, as users must now explicitly choose what backend to coerce statements with (via their
grafter-2 removes support for java.util.Date / java.sql.Time and
etc has been removed, as these classes can't represent time properly with respect to timezones etc. Instead dates, times and dateTimes are explicitly represented via thejava.time
classes. We also provide a new recordgrafter-2.rdf.protocols/OffsetDate` to represent a date with a timezone. These values should allow round tripping and preserving whether or not the Date/Time was specified with a timezone offset or not.
There are a few edge cases with round tripping dates and times, notably that
xsd:time provides two ways to represent midnight
24:00:00, if you have data that uses
24:00:00 grafter will canonicalise it to
00:00:00, which could potentially mean users have duplicates if data had been loaded into a database outside of grafter with
24:00:00 and grafter was subsequently used to read and write data back into the database this may cause a duplicate triple. This is due to a poor choice in
We also do not support infinite/arbitrary precision on times. The
xsd:time spec supports times like
11:34:50:1231294923498495934953438243718432140324... we canonicalise and truncate these rounding down after 9 decimal places.
Bundles legacy sesame grafter.* namespaces
grafter.*namespaces are included in the jar but are for the deprecated sesame backend. Users wanting to keep using sesame should still be able to do so without code changes. Though grafter no longer transitively depends on sesame, so applications will need to explicitly add a dependency on
[org.openrdf.sesame/sesame-runtime "2.8.9"]to their