Releases: gouttegd/sssom-java
SSSOM-Java 1.1.1
Changes since version 1.1.0:
- Add support for propagation and condensation of slots with the RDF/Turtle format.
- In SSSOM-CLI, condensation is disabled by default when writing to RDF/Turtle; use the
--condensation
option to enable it.
- In SSSOM-CLI, condensation is disabled by default when writing to RDF/Turtle; use the
- Add support reading non-standard metadata from a RDF/Turtle file.
SSSOM-Java 1.1.0
Changes since version 1.0.0:
sssom-core
:- Support the new
entity_type
valuecomposed entity expression
. - Support the new
predicate_type
slot. - When reading from a SSSOM/TSV file, strip trailing tabs in the embedded YAML metadata block. This is a workaround to allow reading a file that has been mangled by a non-SSSOM-aware spreadsheet editor.
- Improved new
ISlotVisitor
interface.
- Support the new
sssom-ext
:- Support for Extended Prefix Maps (EPMs) moved from the Core library to the Extended Library.
- Support reading and writing a mapping set to and from the RDF/Turtle format (see below).
- SSSOM-CLI:
- Can now read and write files in RDF/Turtle in addition to SSSOM/TSV and SSSOM/JSON.
- New option
-f
,--output-format
to select the output format (allowed values:tsv
,json
,ttl
). The--json-output
option is still supported but is deprecated in favor of--output-format json
.
- SSSOM/Transform:
- Allow passing an explicit inverse predicate to the
invert()
function. - Allow filtering on the
predicate_type
slot.
- Allow passing an explicit inverse predicate to the
- SSSOM/T-OWL:
- Allow using the
is_a
function on object and data properties, instead of only classes. - Allow using the
exists
function on all type of OWL entities.
- Allow using the
About RDF/Turtle support
As the RDF serialisation is not formally specified by the SSSOM standard, RDF/Turtle support has been designed to match the output of SSSOM-Py’s convert -O rdf
command. The produced output should not be considered definitive and could change in the future.
Non-standard metadata slots (“extensions”) are currently only supported when writing, not when reading. That is, the RDF/Turtle writer can write a mapping set containing non-standard metadata, but the RDF/Turtle reader will ignore all non-standard metadata when reading a set from a RDF/Turtle file.
Breaking API changes
- The
SlotVisitor
andSimpleSlotVisitor
interfaces have been replaced by newISlotVisitor
andISimpleSlotVisitor
interfaces with slightly different methods. - Some classes have been moved to new packages:
- the
SlotHelper
class has been moved to the neworg.incenp.obofoundry.sssom.slots
package; - the
ExtendedPrefixMap
class has been to the neworg.incenp.obofoundry.sssom.util
package, in the Extended Library.
- the
SSSOM-Java 1.0.0
Changes since version 0.9.0:
sssom-core
:- The
core
module is now strictly dedicated to the implementation of the SSSOM specification. All additional features (such as SSSOM/Transform) have been moved to a new module calledsssom-ext
. This is so that library users who just need to read and write mapping sets and perform their own operations on mappings can do so without bringing the whole SSSOM/Transform or OWL-related features that they may not need.
- The
- SSSOM/Transform:
- Add the possibility to define filter functions, to filter mappings by executing some custom, application-specific code.
- Add the possibility to define callback functions, to execute custom code intended to have side-effects on the SSSOM/T engine.
- Add optional named arguments (“flags”) to function calls.
- Two features that were previously specific to the SSSOM/T-OWL dialect have now been consolidated and generalised into the base SSSOM/T lamguage:
- placeholder substitutions in function arguments, e.g. the possibility to write
"%{subject_id}"
to insert the subject ID of the current mapping; - the possibility to define variables that can be dereferenced in a placeholder substitution.
- placeholder substitutions in function arguments, e.g. the possibility to write
- Add experimental support for URI Expressions.
- New functions in SSSOM/T-OWL:
Breaking change for SSSOM/T-OWL users
Variables dereferenced within a call to create_axiom
should no longer be enclosed in angled brackets, as this will prevent them from being successfully recognised by the Manchester syntax parser. To dereference a variable in a call create_axiom
, use either the un-bracketed form without angled brackets (%MY_VARIABLE
), or the (new in this version) bracketed form with angled brackets (<%{MY_VARIABLE}>
).
SSSOM-Java 0.9.0
Changes since version 0.8.0:
sssom-core
:- Add support for the special value
sssom:NoTermFound
. - Add support for
similarity_score
andsimilarity_measure
slots (old slotssemantic_similarity_*
are still supported when reading, and converted to their renamed variants). - Add support for “literal mappings” as defined in the upcoming version 1.0 of the SSSOM specification (“old-style” literal mappings that were defined in the now deprecated “literal profile” of the spec are supported when reading, and automatically converted to their 1.0 equivalent).
- The parser now accepts date and time values (e.g.
20240809T21:12:30
), in addition to pure date values, in themapping_date
slot. The time part is silently discarded.
- Add support for the special value
- SSSOM/T:
- It is now possible to select mappings that have no value for a given slot.
- For free-form text slots, this is done by filtering on the empty string (example:
mapping_tool=="" -> ...
will apply to mappings with an emptymapping_tool
slot). - For entity reference slots, this is done by filtering on the special value
~
(example:subject==~ -> ...
will apply to mappings with an emptysubject_id
slot).
- For free-form text slots, this is done by filtering on the empty string (example:
- It is now possible to select mappings that have no value for a given slot.
sssom-cli
:- Input files can now be specified as positional arguments in addition to (or instead of)
-i
options. That is,sssom-cli my-input-file.sssom.tsv
is equivalent tosssom-cli -i my-input-file.sssom.tsv
.
- Input files can now be specified as positional arguments in addition to (or instead of)
SSSOM-Java 0.8.0
Changes since version 0.7.9
- Added JSON support
- SSSOM-Core now provides a parser and writer for the JSON serialisation format.
- As the JSON format is not fully specified yet, three “flavours” of JSON are supported:
- pure JSON with full-length identifiers,
- pure JSON with shortened identifiers, with a CURIE map stored in a top-level
curie_map
slot (not yet officially part of the spec, but should be added soon), - “JSON-LD-like” with shortened identifiers, with a CURIE map stored in a top-level
@context
object (for compatibility with SSSOM-Py; this is not real JSON-LD, it only contains the minimal context needed to make SSSOM-Py happy).
- All ROBOT commands and the CLI tool can now accept indifferently SSSOM/TSV and JSON files (any flavour).
- SSSOM-CLI can produce JSON files (any flavour) as output:
- use
--json-output
to trigger output in pure JSON with full-length identifiers, - add
--json-short-iris
to trigger output in pure JSON with shortened identifiers, - add
--json-write-ld-context
to trigger output in SSSOM-Py compatibility mode.
- use
- Other changes:
- Range constraints of double-typed slots (accepting values between 0.0 and 1.0) are now enforced.
SSSOM-Java 0.7.9
Changes since version 0.7.8:
- The SSSOM/TSV writer now supports writing the metadata block in a separate file.
- Consequently, the
sssom-cli
tool gets a new--metadata-output
option to write the metadata to a separate file. - The
--update-from-ontology
option accepts new flags to allow for better control of what gets updated:label
to updatesubject_label
and/orobject_label
;source
to updatesubject_source
and/orobject_source
;existence
to remove a mapping if the subject and/or object does not exist (or is obsolete);subject
to only consider the subject side of mappings;object
to only consider the object side of mappings.
SSSOM-Java 0.7.8
Changes since version 0.7.7:
- The SSSOM/TSV writer now writes scalar values in YAML “plain style” whenever possible.
- Incorrect parsing of some unquoted scalar values in the metadata block has been fixed.
- Incorrect handling of missing extension values has been fixed.
- The propagation and condensation of “propagatable slots” is now deactivatable. With
sssom-cli
, new options--no-propagation
and--no-condensation
have been added to that effect.
SSSOM-Java 0.7.7
Changes since version 0.7.6:
- SSSOM/TSV writer (SSSOM-Core):
- Align the format of floating point values with SSSOM-Py.
- When a propagatable metadata is effectively propagated to individual mappings, remove it from the set-level metadata.
xref-extract
(SSSOM-Robot):- Fill in the
subject_source
field with the ontology IRI. - Accept multiple spaces in the value of the
--map-prefix-to-predicate
option.
- Fill in the
- SSSOM-CLI:
- New option
--update-from-ontology
to check/update a mapping set against a OWL ontology.
- New option
SSSOM-Java 0.7.6
Changes since version 0.7.5:
sssom-core
:- Ignore empty lines when reading a SSSOM/TSV file.
sssom-cli
:- Added convenience options
--include
and--exclude
. - Write non-standard metadata by default (
--write-extra-metadata
now defaults toDEFINED
rather thanNONE
).
- Added convenience options
SSSOM-Java 0.7.5
Changes since version 0.7.4:
- The support for non-standard metadata has been updated to align with the latest proposition from the SSSOM specification.
- When generating OWL axioms, they can now be annotated with values from non-standard metadata slots in addition to the standard slots.
- When writing a set, if the set is actually empty (contains no mappings), a TSV header line is written. This makes the resulting file readable by the SSSOM/TSV parser.
- Compatibility with the old slot
match_term_type
has been improved.