Apr 10, 2006

  * Enhanced: rdf_persistency.pl: sort files by size, assuming the schema
    are generally smaller and loading them first reduces re-hashing the
    database.

  * Enhanced: reduce the number of DB re-hashes by not calling the re-hash
    if no subPropertyOf or predicate is involved.

Mar 14, 2006

  * Added: rdf_persistency.pl, copied from SeRQL library.

Mar 13, 2006

  * Added rdf_tokenize_literal/2 and hooks to re-use and customize literal
    tokenization.

Mar 7, 2006

  * Completed integration of new AVL implementation.
  * Added rdf_litindex.pl

Mar 2, 2006

  * Documented first version of literal maps, providing additional indexing
    on literal values.

Feb 28, 2006

  * Modularization
    - Moved atom-specific operations to new source file atom.c
    - Moved locking operations to new source lock.c
    - Moved debugging support to new source debug.c

Feb 27, 2006

  * Fixed: crash in rdf_update/4 modifying a literal under a transaction.
    Michiel Hildebrand.

Feb 22, 2006

  * Fixed ordering issue on wide-character atoms.

Feb 9, 2006

  * Finished first version of indexed prefix and `like' search.

Feb 5, 2006

  * Allow 64-bit integers as arguments of literal(Int).

Feb 1, 2006

  * INTERNAL: completed first step of new literal handling code.  System
    passes internal tests under valgrind memory tests.  Fixed two
    memory leaks that pre-dated this change: using terms as literals
    and reclaiming the temporary datastructures using in rdf_save_db/2.

Jan 31, 2006

  * INTERNAL: 1-st step making literals first class citizens.
  * NOTE: The changes are numerous.  Be aware of possible stability
    problems.

Jan 17, 2006

  * ADDED: exported rdf_quote_uri/2 implementing unicode quoting rules for
    URIs.

Jan 11, 2006

  * FIXED: Avoid exception in rdf_unload/1

Dec 18, 2005

  * FIXED: Added simpleminded handling for updating the database from
    within a monitor.

Dec 5, 2005

  * ADDED: Each instance of rdfs:Datatype is a subclass of rdfs:Literal
    to the rules of rdf_subclass_of/2.

Nov 24, 2005

  * FIXED: Choicepoint in rdf_global_term/2, returning incorrect result
    on backtracking.

Nov 9, 2005

  * FIXED: generate correct XML for datatypes in defined namespaces.
    Ilmars Poikans.

Oct 11, 2005

  * FIXED: rdf_split_url/3 to detect local part more in line with current
    URI specs.

Sep 23, 2005

  * ENHANCED: issue monitor events with holding write lock.

Sep 22, 2005

  * FIXED: mask-handling in rdf_monitor, causing incorrect callbacks.

  * FIXED: bug in cache handling by rdf_load/2, introduced in 2.3.0.

=============
Version 2.3.0
=============

Sep 16, 2005

  * FIXED: Namespace computation (broken in 5.5.30 version).

  * ADDED: rdf_transaction/2 and rdf_monitor/1.

  * MODIFIED: rdf_source/1 also returns sources added using rdf_assert/4,
    i.e. setof(DB, rdf(_,_,_,DB), DBs), member(DB, DBs).

  * FIXED: rdf_update/[4,5]: unlock after type-error in action.


=============
Version 2.2.1
=============

Aug 10, 2005

  * FIXED: Quick Save Format for wide-character atoms.  Saved first
    character as many times as the length of the atom. 

Aug 4, 2005

  * ADDED: document_language(+Lang) option to rdf_save/2.  Suggested
    by Mark van Assem.

Jul 15, 2005

  * ADDED/CLEANUP: new rdf_meta/1 directive to simplify namespace
    pre-processing.

Jul 5, 2005

  * ADDED/FIXED: Proper quoting of Unicode URI values conforming the
    RDF standard.  Jochem Liem.

Jun 29, 2005

  * FIXED: rdf:about instead of about when saving lists.  Jochem Liem.

May 24, 2005

  * ENHANCED: Added core statistics

  * FIXED: force re-hashing while loading files to avoid slowdown.

May 20, 2005

  * ADDED: Allow list of files in rdf_load/[1,2]

May 19, 2005

  * ADDED: rdf_register_ns/3, allow overruling old alias.

Apr 26, 2005

  * FIXED: support UNICODE in rdf_save_db/rdf_load_db.  Fabien
    Todescato.

Apr 19, 2005

  * FIXED: rdf_retractall/[3,4] should always succeed.  Bob Wielinga.

Apr 18, 2005

  * ADDED: rdfs_find/5: allow for unbound property list to search all
    properties.

Apr 1, 2005

  * FIXED: memory leak creating many predicate structures on calls to
    rdf(?,+,?) if the predicate does not exist.  This is used by
    rdf_bnode/1.

Mar 29, 2005

  * FIXED: rdf:dataType --> rdf:datatype

Mar 22, 2005

  * ADDED: rdfs_assert_list/3 (adding DB argument)

Mar 8, 2005

  * FIXED: rdf_unload/1: allow for deleting non-files.

Mar 6, 2005

  * FIXED: Added code to emit XML literal values using library(sgml_write).

Mar 01, 2005

  * FIXED/ADDED: encoding issues.  Now allows writing RDF files using
    US-ASCII, ISO latin-1 or UTF-8 (default) encoding.

Feb 24, 2005

  * MODIFIED: rdf_edit.pl: broadcast missing journal instead of creating
    an XPCE dialog.  More flexible and removes XPCE dependency.

Feb 22, 2005

  * FIXED: rdf_save/[1,2] to properly quote attributes.  Anjo Anjewierden.

Feb 18, 2005

  * FIXED: rdf(X,Y,literal(lang(L,W))): not indexed query.   Djamé Seddah.

Jan 27, 2005

  * ADDED: wide-character support in label matching (rdf_match_label/3)
    and literals queries (rdf(S, P, literal(substring(foo), X))).

Nov 29, 2004

  * FIXED: lock language/type atom.    Djamé Seddah.

Oct 19, 2004

  * FIXED: Bug#194: Locking problem using read access inside a
    tranaction. Sandro Hawke.

  * ADDED: Do goal expansion on the argument of rdf_transaction/1. Sandro
    Hawke.

Oct 18, 2004 (version 2.2.0)

  * ADDED: rdf_transaction/1

Oct 13, 2004

  * FIXED: Total reorganisation of the multi-threaded access using 
    redesigned locking which allows for one writer and multiple readers.

Oct 12, 2004

  * INTERNAL: Preparing for seperate databases by combining all global
    data in a single structure.

Oct 6, 2004

  * ADDED/FIXED: Various issues in the documentation.

Sep 29, 2004

  * FIXED: Avoid continuous recomputation of `direct' (rdf) branching
    factors.

Sep 28, 2004

  * FIXED: complexity estimate for not-indexed queries (crash).

Sep 14, 2004

  * ENHANCED: Actually start of with small tables and resize them if the
    triple count increases.  Reduces memory usage and improves speed on
    erasing and re-hashing small datasets.

  * FIXED: Bug#183: memory corruption due to invalid free.  Sandro Hawke.
    Same test also provided other consistency errors.

Sep 2, 2004

  * FIXED: rdfs_subclass_of(+Class, -Super) to relate all classes 
    implicitely to rdfs:Resource (rdfs entailment rule).

  * FIXED: Bug#182: After rdf_retractall(_,_,_) database cannot be refilled.
    Sandro Hawke.

Sep 1, 2004

  * FIXED: rdf_match_label(like, '*Rijn*', 'van Rijn')

  * ADDED: rdf_predicate_property/2 new properties rdfs_object_branch_factor
    and rdfs_subject_branch_factor.

Aug 31, 2004

  * ADDED: rdf_predicate_property/2 new properties rdf_object_branch_factor
    and rdf_subject_branch_factor.

Aug 27, 2004

  * FIXED: module problem in rdf_db.pl

Aug 26, 2004

  * ADDED: convert_typed_literal option to rdf_save/2.  Bug#171. 
    Sandro Hawke.

Aug 19, 2004

  * ADDED: rdf_estimate_complexity/4.

  * ADDED: rdf_predicate_property(+Predicate, triples(-Count)) to find
    the number of triples on a predciate.

Aug 11, 2004

  * FIXED: rdf_load_db/1 now updates the source registration
    (rdf_source/1).

Jul 30, 2004

  * ADDED: rdf_atom_md5/3 for password encryption purposes.

Jul 29, 2004

  * ADDED: matching using the SeRQL compatible `like' operator.

Jul 22, 2004

  * ADDED: Namespace expansion in rdf(S,P,literal(type(xsd:int, 5))).
    Bug#170.  Sandro Hawke.

  * FIXED: rdf(X,X,X) and similar queries.

Jul 15, 2004

  * ENHANCED: Added triple garbage collector.  After Bug#161 by Sandro Hawke.

  * FIXED: Bug#160: rdf_safe_header/2 implementation and documentation.
    Sandro Hawke.

Jun 29, 2004

  * FIXED: rdf_split_url(+, +, -).  Bob Wielinga.

Jun 17, 2004

  * FIXED: pass base_uri option to rdf_load from rdfe_load to avoid clashes
    of bnodes.

Jun 16, 2004

  * FIXED: rdf(-,+,+) was indexed as rdf(-,+,-) if the object is a resource.

Jun 2, 2004

  * ADDED: rdf_is_bnode/1

May 22, 2004

  * FIXED: Literal string matching broken with introduction of
    language support. (Sandro Hawke)

Apr 23, 2004

  * ADDED: first version of lang and dataType support.  Improved test-suite

Apr 22, 2004

  * ADDED: Support for arbitrary Prolog values for `Object'.  This will be
    used to support xml:lang, rdf:dataType and XML literals.

Apr 11, 2004

  * FIXED: rdf:parseType="Collection": XML attribute value _always_ requires
    quotes.  Maarten Menken.

Apr 1, 2004

  * FIXED: Save toplevel anonymous resources unless anon(false) is provided
    in the option list of rdf_save/2.  Simon Price and Dan Brickley.

  * ADDED: Option list to rdf_save/2

Nov 29, 2003

  * FIXED: rdfs_individual_of(+, -) (only generated Resource).

Nov 20, 2003

  * FIXED: Avoid the use of typed nodes if the type-resource cannot be
    expressed as an XML name.

  * FIXED: non-determinism in rdf_node/1 and rdf_bnode/1.

Nov 17, 2003

  * FIXED: rdfs_subclass_of/2 to make all classes a subclass of rdfs:'Class'.

  * FIXED: rdf_save/[1,2] to handle XML escapes `value'
    in rdf:resource="value".

  * ADDED: rdf_bnode/1 to generate a blank node identifier as __bnode<N>

  * ADDED: rdfs_assert_list/2 to create an rdf list from resources.

Nov 7, 2003

  * ADDED: Allows rdf_load/[1,2] to process a stream.  Maarten Menken.

Oct 27, 2003

  * ADDED: installation of owl.owl. 

Oct 16, 2003

  * MODIFIED: Add source-file to MD5 computation for triples to make it
    possible to locate the journal snapshot using the MD5.

  * FIXED: Added replay of rdfe_unload/1.

Oct 9, 2003

  * MODIFIED: rdf_md5/2 returns a null-digest for an empty source.

Oct 7, 2003

  * FIXED: rdf_update/[4,5].  Duplicate administration error.

  * MODIFIED: rdfs_label(+Resource, -Label) first returns labels registered
    with rdfs:label and only afterwards with sub-properties thereof.

Oct 6, 2003

  * MODIFIED: rdfs_individual_of(Resource, Class) implicitely assumes all
    resources belong to rdfs:Resource and literal(_) belongs to rdfs:Literal.

Oct 1, 2003

  * MODIFIED: XSD namespace declaration in rdf_db.pl to 
    http://www.w3.org/2001/XMLSchema#

Sep 30, 2003

  * FIXED: rdfs_find: every class is supposed to be a subclass of
    rdfs:Resource.  Cleanup of comment

Sep 29, 2003

  * ENHANCED: Store and reload MD5 using rdf_save_db and rdf_load_db for
    speedup of loading and (possible now) verify the integrety of a quick
    load triple file.

Sep 27, 2003

  * ADDED: 1st version of MD5 digest from loaded sources

Sep 24, 2003

  * ADDED: internal administration of triples associated with each source.
    Prolog based counting at the end if either very slow or not thread-safe.

Sep 23, 2003

  * FIXED: rdf_has(-, +, -).  Didn't use proper hash-key, missing
    sub-properties.

Sep 22, 2003

  * ADDED: rdf_reset_db/0 to clear the entire database.

Sep 21, 2003

  * ADDED: rdf_edit.pl: rdfe_register_ns/2 encapsulation of rdf_register_ns/2.

  * ADDED: rdfe_update/4 encapsulation of the new source action for
    rdf_update/4.

Sep 20, 2003

  * FIXED: Unification of source-location

  * ADDED: rdfe_assert/4 (encapsulating rdf_assert/4).

  * ADDED: rdf_update/5.  Allow changing the source data associated with
    a triple.

  * FIXED: Memory management problem in virtual property-hierarchy roots.

Sep 19, 2003

  * FIXED: rdf_update() to properly update the hash-table.

Sep 18, 2003

  * ADDED: timestamps to transaction journal commit operations.

  * ADDED: rdf_edit.pl: named transactions.

Sep 13, 2003

  * FIXED: rehashing on first access/change.

  * FIXED: goal expansion for rdf_retractall/[3,4].

  * ADDED: Handle predicates with multiple rdfs:subPropertyOf triples.

Sep 11, 2003

  * ENHANCED: Duplicate handling

Sep 10, 2003

  * FIXED: Undo/redo administration in rdf_edit.pl

Sep 8, 2003

  * FIXED: rollback in failed transactions.

Sep 4, 2003

  * FIXED: add goal-expansion to rdfe_retractall/3

Sep 2, 2003

  * ADDED: rdfe_transaction_member/2 to inspect actions inside a transaction.

  * FIXED: rdfe_retractall/[3,4] to properly update the journal.

  * FIXED: rdf_assert duplicate administration (crashes rdf_retractall on
    assertion failure).

Aug 18, 2003

  * MODIFIED: Assume ids starting with __ are anonymous

Aug 6, 2003

  * FIXED: namespace generation in rdf_save/2.  Laura Hollink

Aug 01, 2003

  * ADDED: rdf_save/[1,2] to generate rdf:parseType=Collection for anonymous
    rdf lists.

  * FIXED: rdf_save/[1,2]

Jun 23, 2003

  * ADDED: rdf_generation/1

Jun 20, 2003

  * FIXED: Memory leak in rdf_reachable/3.

  * FIXED: Various installation issues

Jun 10, 2003

  * Initial public version
