Releases: gouttegd/sssom-java
SSSOM-Java 1.10.0
Changes since version 1.9.1:
- New format modifier functions for mapping format strings:
prefixandsuffix, to get the prefix and the suffix (“local name”), respectively, of a shortened identifier;lowerandupper, to transform a substituted value into lower- and upper-case;replace, to perform basic find-and-replace operations on a substituted value.
- New options to control SSSOM-CLI’s
--splitfeature:--split-with-predicatesto split the set along the mapping predicates, in addition to the subject and object prefixes (courtesy of @ptgolden);--split-byto fully control which slots are used to split the mapping set.
SSSOM-Java 1.9.1
Changes since version 1.9.0:
- Updated the RDF parser and writer to reflect changes in the latest draft of the SSSOM/RDF specification.
SSSOM-Java 1.9.0
Changes since version 1.8.2:
- Core library:
- Add helper methods to enforce compliance with a given version of the specification.
- Silently accept some incorrect, but non-ambiguous enum values (e.g.
rdfs:Literalaccepted forrdfs literal).
- RDF support:
- Allow to optionally inject “direct triples” when producing RDF output.
- SSSOM/T:
- New filters to select on date-typed slots:
mapping_dateandpublication_date. - New filter to select on the predicate only, without taking into account the predicate modifier:
raw_predicate.
- New filters to select on date-typed slots:
- SSSOM/T-OWL:
- All pre-1.0 features that were previously marked as deprecated have now been removed.
- Command-line tool:
- New
--force-versionto ensure that the output set is compliant with a specific version of the specification. - New experimental feature to allow encoding extension slots into
otherslots (--extensions-to-other) and decoding extension slots fromotherslots (--extensions-from-other). This is intended to allow preserving the values of extension slots even when a set has to be manipulated by an implementation without support for extension slots, such as SSSOM-Py.
- New
SSSOM-Java 1.8.2
Changes since version 1.8.1:
- Added support for the new cardinality value
0:0. - When computing cardinality, use special cardinality values
1:0,0:1, and0:0for mapping records involvingsssom:NoTermFoundas respectively the object, the subject, or both the subject and the object.
SSSOM-Java 1.8.1
Changes since version 1.8.0:
core: Added support for set-level, propagatablecuration_ruleandcuration_rule_textslots.sssom-cli: When removingmapping_cardinalityfrom the output (--cardinality REMOVE, which is the default behaviour), also removes anycardinality_scopeslot.
SSSOM-Java 1.8.0
Changes since version 1.7.0:
Core library
- Added support for the new
cardinality_scopeslot.
Command-line tool
- New option
--input-formatto allow overriding the automatic detection of the format of input files. - New option
--blanket-ruleto allow quickly specifying a SSSOM/T rule that should apply to all mappings without having to explicitly use a catch-all filter.- For example, use
--blanket-rule invert()to invert all mappings. - This is a shortcut for
--rule "predicate==* -> invert()".
- For example, use
- New option
--cardinality {REMOVE|KEEP|FORCE}to control what to do with mapping cardinality values when producing the output files:REMOVEremoves all cardinality values (this is the default behaviour);KEEPleaves any cardinality value in place;FORCEre-computes all cardinality values and overwrites any pre-existing value; this replaces the (now deprecated) option--force-cardinality.
SSSOM/T
- New function
infer_cardinality([scope])to force the recomputing of cardinality values within a SSSOM/T ruleset.
ROBOT plugin
- The
sssom:injectcommand can now produce a full SSSOM/OWL export of a mapping set. - The default value of the
/annots_urisflag in SSSOM/T-OWL is nowstandard_map.
Deprecation warning: All pre-1.0 features of SSSOM/T-OWL (all features listed here) are going to be removed in the next version. Update your SSSOM/T-OWL rulesets accordingly!
SSSOM-Java 1.7.0
Changes since version 1.6.0:
Core library
- Fix incorrect validation of sets containing a mix of records with and without a
record_idslot. - Add a helper class to facilitate merging two sets.
- Allow extracting a value from a set using an abstract syntax (soon to be proposed to the SSSOM specification).
- Support URI-typed extension slots (extensions defined with a
type_hintofxsd:anyURI).
SSSOM/T
- Add missing placeholders for the recently introduced slots
mapping_tool_idandrecord_id. - Add a new substitution modifier function (
default) to insert a default value if a placeholder would not inject anything (e.g.${object_label|default('no label')}would inject “no label” if the current mapping does not have aobject_label). - Add a new filter
has_extensionto filter mappings depending on the existence of an extension slot.
Command-line tool
- Add the
--no-stdoutoption to disable writing the result set to standard output. - Add the
--extractoption to extract an arbitrary value from the result set.- For example,
--extract mapping(2).slot(creator_id, 1)would print the ID of the first creator of the second mapping in the set. - See the documentation for more details about the argument to the
--extractoption.
- For example,
SSSOM-Java 1.6.0
Changes since version 1.5.1:
Core library
- Added support for new slots from the upcoming version 1.1 of the SSSOM specification:
record_id,mapping_tool_id,- and
mapping_set_confidence.
- In SSSOM 1.1 compliance mode, URI-typed slots are checked for correctness (their values must indeed be a URI).
- All readers now automatically make additional validity checks by default:
- presence of a
mapping_set_idslot, - presence of a
licenseslot, - correct use of the
record_idslot (if the slot is used at all, then all records must have a unique value).
- presence of a
- A new experimental feature allows to generate a unique hash for a mapping record.
RDF serialisation
The RDF writers and parsers have been tweaked based on discussions about what the RDF serialisation of SSSOM should look like. Note that those discussions are still ongoing, and the RDF serialisation is still not specified, so it may still change in the future.
The main difference compared with previous versions is that a mapping set is represented by its mapping_set_id, rather than by a blank node. That is, instead of:
[] a sssom:MappingSet ;
sssom:mapping_set_id "https://example.org/myset/"^^xsd:anyURI .this is now:
<https://example.org/myset> a sssom:MappingSet .(The former representation is still accepted when reading from RDF.)
Likewise, a mapping record is represented using its record_id if present (otherwise, a blank node is still used).
Command-line tool (sssom-cli)
A new --lax option allows to disable the additional validity checks mentioned above.
SSSOM/T
New substitution placeholders
Two new substitution placeholders have been added:
%{hash}, which inserts a hash value that uniquely represents the mapping record being processed;- and
%{serial}, which inserts a number that is automatically incremented whenever a new mapping is processed.
Such placeholders can be used, for example, to automatically generate values for the record_id slot:
subject==* -> assign("record_id", "https://example.org/records/%{hash}");
to generate a record ID of the form https://example.org/records/<UNIQUE_HASH>, or
subject==* -> assign("record_id", "https://example.org/records/%{serial|format(%07d)}");
to generate a record ID of the form https://example.org/records/NNNNNNN.
New filter function
A new filter function, is_duplicate, allows to select mappings for which a mapping-derived value is identical to that of a previously processed mapping.
For example, to filter out all mappings with the same subject_id except the first one:
is_duplicate(%{subject_id}) -> stop();
To filter out all mappings that have the same triple subject_id / predicate_id / object_id, except the first one:
is_duplicate("%{subject_id}%{predicate_id}%{object_id}") -> stop();
Or, using the aforementioned %{hash} substitution, to filter out all mappings that are completely identical, keeping only the first such mapping:
is_duplicate(%{hash}) -> stop();
SSSOM Java 1.5.1
Changes since version 1.5.0:
sssom-cli:- New option
--assume-versionto change the version of the SSSOM specification that a set is assumed to be compliant with, in the absence of an explicitsssom_versionslot (default: 1.0, as mandated by the specification). - New option
--ignore-missing-imports, to silently ignore any failure to load an imported ontology, when using the--update-from-ontologyfeature.
- New option
SSSOM-Java 1.5.0
Changes since version 1.4.0:
- Added support for the new
sssom_versionslot that will be part of the next version (1.1) of the specification.