This release changes the behavior for non-implemented literal to/from
value transformations. In the past non-implemented transformations
would emit an exception, but this makes it more difficult to extend
the transformation functionality.
This release uses Prolog failure to allow calling code to try to
transform using a standard transformation, and use its own custom
transformation in case none of the standard ones works.
This release removes the SPARQL-specific features from the RDF
printing module and adds features for RDF downloading/dereferencing.
- If dereferencing IRIs to file: support for setting the file name
based on the IRI.
- Support for setting the file name based on the URL that is
- Support for skipping downloads for unchanged data.
- Removed DCGs that are not emitting RDF data: SPARQL triple patterns,
RDF Model Theory proof trees, SPARQL variables.
- Removed support for the
This release brings the following changes:
- Allow the calling context to determine what to do with RDF errors
detected during cleaning.
- Added rdf_prefix_map/1 to allow all current prefix declarations to
be conveniently stored in one object.
- Added rdf_dcg_var//2 for printing variables in the SPARQL syntax.
- Allow variables to be printed as part of rdf_dcg_tp//2 (triple
- Added print statements for some of the emitted syntax errors.
This released brings the following changes:
- Use of dictionaries to represent options in all places. Options
dictionaries are translated into options lists where needed to
interact with the SWI standard library.
- Added assert_prefixes/1 to assert the prefixes declared in a
given N-Quads, N-Triples, Turtle, or TriG file.
- Improved RDF pretty-printing to also use prefix declarations for
IRIs that only appear as datatype IRIs in typed literals.
- Improved RDF pretty-printing to preserve backslash escape
sequences present in the RDF syntax.
- Improved the Prolog type declarations for RDF, and applied them
throughout this library.
- Removed library
rdf_media_type which is no longer needed due to
improved Media Type support in Prolog Library Collection.
- Simplified the RDF pretty-printing API in library
- Two new predicates rdf_atom_node/2 and rdf_atom_predicate/2
that replace the old rdf_atom_term/2 predicate.
- Enhanced rdf_create_iri/3 to allow the creation of IRIs with
paths consisting of multiple subpaths.
- Removed support for geopsatial and URI literals. These require
the installation of external C/C++ libraries and are somewhat
specialized functionalities to begin with.
- Added rdf_download/3 wich allows options to be passed on to the
IRI dereferencing predicates.
- ENHANCED: When printing multiple object terms with the same
subject/predicate term pair, emit the object terms of separate
- ENHANCED: When printing multiple triples with the same subject
term, print the instance-of triples first.
- CLEANUP: Removed support for option
rdfs:label, since this
relied on an RDF backend being available.
- CLEANUP: Removed rdf_media_type_extension/2, since popular file
name extensions are already handled by the Prolog Library
- NEW: rdf_hash_iri/3 makes it easy to create content-based IRIs.
Content-based IRIs can be used when no naming schema can be
determined, or when determining a naming schema is considered too
- ENHANCED: taught the DWIM support about Boolean literals.
- ENHANCED: Allow a maximum to be set for the RDF container
membership properties. Without this limit, the generative mode
for RDF container membership properties will have infinite