Skip to content

Releases: kbss-cvut/jopa

0.19.0

26 Oct 08:40
Compare
Choose a tag to compare
  • Add support for disabling inference via query hints (Enhancement #101).
  • Allow registering custom attribute converters (Enhancement #118).
  • Add RDF4J driver, deprecate Sesame driver (Task #75).
  • Dependency updates: SLF4J 2.0.3, Logback 1.3.4.

Both query hints and custom attribute converters are covered by the Wiki documentation.

Upgrade Notes

The Sesame driver (artifactId ontodriver-sesame) has been deprecated. Its usage should be replaced by the new RDF4J driver (artifactId ontodriver-rdf4j). It is currently functionally almost equivalent to the Sesame driver (with the exception of support for disabling inference for query execution). However, further development will focus on the new driver, so it is highly recommended to migrate to it.

To migrate, do the following:

1. Maven

Replace

<dependency>
  <groupId>cz.cvut.kbss.jopa</groupId>
  <artifactId>ontodriver-sesame</artifactId>
</dependency>

With

<dependency>
  <groupId>cz.cvut.kbss.jopa</groupId>
  <artifactId>ontodriver-rdf4j</artifactId>
</dependency>

2. Java

Replace the following class references

  1. cz.cvut.kbss.ontodriver.sesame.SesameDataSource -> cz.cvut.kbss.ontodriver.rdf4j.Rdf4jDataSource

And the following properties:

  1. cz.cvut.kbss.ontodriver.sesame.use-volatile-storage -> cz.cvut.kbss.ontodriver.rdf4j.use-volatile-storage
  2. cz.cvut.kbss.ontodriver.sesame.use-inference -> cz.cvut.kbss.ontodriver.rdf4j.use-inference
  3. cz.cvut.kbss.ontodriver.sesame.load-all-threshold -> cz.cvut.kbss.ontodriver.rdf4j.load-all-threshold
  4. cz.cvut.kbss.ontodriver.sesame.repository-config -> cz.cvut.kbss.ontodriver.rdf4j.repository-config
  5. cz.cvut.kbss.ontodriver.sesame.reconnect-attempts -> cz.cvut.kbss.ontodriver.rdf4j.reconnect-attempts
  6. cz.cvut.kbss.ontodriver.sesame.inference-in-default-context -> cz.cvut.kbss.ontodriver.rdf4j.inference-in-default-context

or switch from the SesameOntoDriverProperties constants to Rdf4jOntoDriverProperties constants (note that they do not have the SESAME_ prefix).

0.18.7

31 Aug 13:13
Compare
Choose a tag to compare
  • Fix support for custom datatypes in Jena driver (Bug #113).
  • Fix mapping enums to simple literals (Bug #111).
  • Fix an issue with double-wrapped indirect collections when cloning singleton Maps (Bug #114).
  • Dependency updates: RDF4J 3.7.7

0.18.6

09 May 14:04
Compare
Choose a tag to compare
  • Automatically resolve inferred statements contexts for GraphDB (Enhancement #106).
  • Allow configuring Sesame driver to load inferred statements from the default context (See wiki for details).
  • Move supported identifier types constants from jopa-impl to jopa-api module.

0.18.5

29 Mar 09:05
Compare
Choose a tag to compare
  • Add support for special floating point numeric values NaN, -INF, INF (Bug #108).
  • Dependency updates: RDF4J 3.7.6, SLF4J 1.7.36, Logback 1.2.11.

0.18.4

22 Mar 12:57
Compare
Choose a tag to compare
  • Make LangString extensible (needed by JB4JSON-LD).
  • Fix incorrect implementation of transformation to float in DatatypeTransformer.
  • Dependency updates: OWL API 5.1.20.

0.18.3

21 Feb 13:49
Compare
Choose a tag to compare
  • Add a no-arg constructor to LangString so that it can be serialized/deserialized by JSON mapping libraries like Jackson.
  • Fix a classpath scanning issue on Windows.
  • Explicitly use UTF-8 encoding when reading mapping file.
  • Rename ReleaseNotes to CHANGELOG and give it a more standard format.

0.18.2

14 Feb 13:21
Compare
Choose a tag to compare
  • Prevent attempts at using rdf:type as property mapping (@Types should be used instead).
  • Allow using LangString as entity attribute type.

0.18.1

16 Jan 17:32
Compare
Choose a tag to compare
  • Support date/time value conversions in SPARQL result mapping.

0.18.0

13 Jan 07:57
Compare
Choose a tag to compare
  • Implemented full support for Java 8 date/time API. It is now the preferred way of representing temporal data (#95). See the wiki for details.
  • Do not validate participation constraints on inferred attributes on persist (#98).
  • Support mapping lexical form of literals with explicit datatype (#96).
  • Allow retrieving entity classes mapping the specified class IRI from Metamodel (#99).
  • Dependency updates - RDF4J 3.7.4, test dependencies, plugins.

Breaking Changes?

Note that the datetime implementation may represent some behavior changes. Note that while not strictly a breaking change, the new date/time handling may lead to values differing from the old implementation, which used java.util.Date and relied on the underlying repository API to transfer it to a suitable storage value. This mostly meant that java.util.Date values were interpreted with system local offset, as opposed to the UTC-based interpretation of the new implementation.

The new implementation should be more faithful to the semantics of the date/time classes in Java.

One potential breaking change could appear when accessing temporal values via the unmapped properties (@Properties). Since the old implementation used java.util.Date, the values were loaded as such (or Date.toString for String-based usage). The new implementation will use OffsetDateTime|OffsetTime|LocalDate and its toString serialization (which is currently ISO-based).

0.17.2

29 Sep 06:45
Compare
Choose a tag to compare
  • Reload SPARQL-based attribute values when object is retrieved from cache to ensure up-to-date results (#93).
  • Support referencing other entity attributes in SPARQL-based attribute queries (#94).
  • Dependency updates - RDF4J 3.7.3, SLF4J 1.7.32, Logback 1.2.6 and others.