Releases: Swirrl/grafter
2.1.7
2.1.6
2.1.5
- Port
grafter-2.rdf.protocols
to CLJC. A minimal set of RDF types are supported, for representing all RDF. These includeLiteral
LangString
xsd:string
s as javascriptString
s, and booleans. Notably numeric types are not yet natively supported, and it's recommended that they and other types are boxed intoLiteral
s.
2.1.2
2.1.1
2.1.0
- Upgrades transitive dependency to RDF4j 3.0 release notes
- Extend support for
grafter.rdf4j.io/statements
to 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.
2.0.2
2.0.1
- Allow passing reasoning flag option to
sparql/query
2.0.0
Important changes:
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.clj
for what we bundle. This should shave 20mb+ off application jar sizes. - The
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 thegrafter.rdf/statements
function now lives ingrafter-2.rdf4j.io/statements
, as users must now explicitly choose what backend to coerce statements with (via their:require
).
grafter-2 removes support for java.util.Date / java.sql.Time and #inst
Support for #inst
and java.util.Date
java.sql.Timeetc 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 the
java.timeclasses. We also provide a new record
grafter-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 00:00:00
and 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 xsd:time
.
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
- The
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 theirproject.clj
.
0.12.3
Release 0.12.3