2005-02-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c
	(librdf_query_rasqal_query_results_update_statement): Handle empty
	rstatement right away.
	(librdf_query_rasqal_results_as_stream): If no statements at all,
	return NULL.

	* rdf_query_rasqal.c:
	(librdf_query_rasqal_query_results_next_statement) Remove unused
	vars.

	* rdf_query_rasqal.c
	(librdf_query_rasqal_query_results_update_statement): Return 0

	* rdf_query_rasqal.c: Protect all query results from NULL pointers.
	(librdf_query_rasqal_query_results_end_of_stream,
	librdf_query_rasqal_query_results_update_statement,
	librdf_query_rasqal_query_results_next_statement,
	librdf_query_rasqal_query_results_get_statement
	librdf_query_rasqal_query_results_finished): Added, implementing
	RDF graph query results.
	(librdf_query_rasqal_results_as_stream): Updated to use the above.

2005-01-31  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c (librdf_query_rasqal_results_is_bindings,
	librdf_query_rasqal_results_is_boolean,
	librdf_query_rasqal_results_is_graph,
	librdf_query_rasqal_results_get_boolean): Added, calling rasqal.
	(librdf_query_rasqal_results_as_stream): Added, not implemented.

	* rdf_query_results.c (librdf_query_results_as_stream): Moved to
	end to match new query results.
	(librdf_query_results_is_bindings,
	librdf_query_results_is_boolean, librdf_query_results_is_graph,
	librdf_query_results_get_boolean, librdf_query_results_as_stream):
	Added.

	* rdf_query.h: Added results_is_bindings, results_is_boolean,
	results_is_grpah and results_get_boolean factory methods.
	Added prototypes for librdf_query_results_is_bindings,
	librdf_query_results_is_boolean, librdf_query_results_is_graph and
	librdf_query_results_get_boolean

2005-01-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query.c: docs

	* rdf_query.c (main): C99

	* rdf_storage_sqlite.c: Casts for C++

	* rdf_query_rasqal.c (rasqal_redland_bind_match): Casts for C++
	and calculate, return the matched parts.
	Updated untested origin code.
	(librdf_query_rasqal_execute): Remove code for rasqal < 0.9.4 fixes.

2005-01-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_model.h: Added librdf_model_contains_context

	* rdf_model.c (librdf_model_contains_context): Added, to find a
	context node in a model.
	(main): Added test.

2005-01-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* win32_rdf_config.h: Do not define REDLAND_INTERNAL at all.
	LIBRDF_INTERNAL should be defined in the build configuration

	* librdf.h: Use LIBRDF_INTERNAL not REDLAND_INTERNAL

2005-01-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer.c (main): Update latest raptor 1.4.3+ style
	serialised rdf/xml length.

	* rdf_serializer.c
	(librdf_serializer_serialize_model_to_file_handle): Require FILE*
	to be not null.

	* rdf_query_rasqal.c (rasqal_redland_bind_match): Update return to
	add parts arg, return.
	(librdf_query_rasqal_results_to_counted_string): Added to
	implement query results as string factory method, via Rasqal.
	(librdf_query_rasqal_results_to_file_handle): Added to implement
	query results to a file handle factory method, via Rasqal.

	* rdf_query_results.c (librdf_query_results_to_counted_string,
	librdf_query_results_to_string): Added to write formatted query
	results as a syntax in a string (via Rasqal).
	(librdf_query_results_to_file_handle,
	 librdf_query_results_to_file): Added to write formatted query
	 results as a syntax to a file or already open FILE* handle (via
	 Rasqal)

	* rdf_query.c (main): Add query results to string test.

	* rdf_query.h: Added results_to_counted_string,
	results_to_file_handle to librdf_query_factory.  Added prototypes
	for librdf_query_results_to_counted_string,
	librdf_query_results_to_string,
	librdf_query_results_to_file_handle and
	librdf_query_results_to_file to public api.

2005-01-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c: Invert return value of rasqal_triples_match
	factory method bind_match.  Now returns 0 on failure.

2005-01-05  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_sqlite.c: Implement get_contexts.
	(librdf_storage_sqlite_get_next_context_common,
	librdf_storage_sqlite_get_contexts_is_end,
	librdf_storage_sqlite_get_contexts_next_method,
	librdf_storage_sqlite_get_contexts_get_method,
	librdf_storage_sqlite_get_contexts_finished,
	librdf_storage_sqlite_get_contexts): Implement, based on
	find_statements technique.  No special database schema support for
	contexts at present.

2004-12-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_sqlite.c:
	Make get_contexts fail rather than do useless things.

	* rdf_storage_sqlite.c: Moved GET_COLUMN* defines to top.
	Deleted all index_contexts - always supported.
	(librdf_storage_sqlite_statement_helper): Work when statement=NULL.
	(librdf_storage_sqlite_add_statements): Handle when max=4 for
	contexts.
	(librdf_storage_sqlite_serialise): Debug prepared query.
	(librdf_storage_sqlite_context_add_statement): Handle when max=4 for
	contexts.
	librdf_storage_sqlite_context_serialise_stream_context updated to add
	sqlite fields.
	(librdf_storage_sqlite_context_serialise): Implemented, based on
	librdf_storage_sqlite_serialise and related functions.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_context_add_statement):
	Kill fixme, done.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_set_helper):
	Add length arg.
	(librdf_storage_sqlite_uri_helper,
	librdf_storage_sqlite_blank_helper,
	librdf_storage_sqlite_literal_helper): Pass length to
	librdf_storage_sqlite_set_helper.
	(librdf_storage_sqlite_statement_helper): Do context nodes.
	(librdf_storage_sqlite_add_statements): Do context node field when
	present.
	(librdf_storage_sqlite_statement_operator_helper): Added, with
	content mostly from librdf_storage_sqlite_contains_statement.
	(librdf_storage_sqlite_contains_statement): Use above.
	(librdf_storage_sqlite_serialise,
	librdf_storage_sqlite_find_statements): Always free stringbuffer.
	(librdf_storage_sqlite_context_add_statement): Do context node field
	when present.
	(librdf_storage_sqlite_context_remove_statement): Implemented using
	librdf_storage_sqlite_statement_operator_helper.

	* rdf_storage_sqlite.c: Added sqlite_DB define for another 2/3 hide
	(librdf_storage_sqlite_serialise): Use raptor_stringbuffer_length(sb)
	for request length.

	* rdf_storage_sqlite.c: Alter GET_COLUMN* defines to take vm arg.

	* rdf_storage_sqlite.c:
	Fix sqlite_FREE and GET_COLUMN defines for sqlite API v3

	* rdf_storage_sqlite.c: casts for c++

	* rdf_storage_sqlite.c:
	Replace all use of fields with unsigned char* fields.

	* rdf_storage_sqlite.c (sqlite_string_escape):
	Emit 'string' - 2 more chars.
	(librdf_storage_sqlite_uri_helper,
	librdf_storage_sqlite_blank_helper): Malloc expressions based on
	actual lengths.
	(librdf_storage_sqlite_literal_helper): Remove ''s

	* rdf_storage_sqlite.c (librdf_storage_sqlite_set_helper):
	Take unsigned values string.
	(librdf_storage_sqlite_get_helper): Take unsigned expression string.
	(librdf_storage_sqlite_uri_helper): Use unsigned expression.
	(librdf_storage_sqlite_literal_helper): Use stringbuffer to build
	expression.
	(librdf_storage_sqlite_contains_statement): use stringbuffer to build
	request.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_open):
	Auto-set new if file is missing.

	* rdf_storage_sqlite.c: Revert over EXEC named change.

	* rdf_storage_sqlite.c: Add macros sqlite_STATEMENT, sqlite_EXEC,
	sqlite_CLOSE, sqlite_FREE to hide more V2/V3 differences.
	(librdf_storage_sqlite_open): For V2 open failing, set rc.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_get_next_common):
	Free temporary datatype uri

	* rdf_node.c (librdf_node_to_counted_string): Free temporary
	datatype_uri_string.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_serialise_finished):
	Free any statement, context node.
	librdf_storage_sqlite_find_statements_stream_context add to store
	query_statement
	(librdf_storage_sqlite_find_statements): Store query statement.
	(librdf_storage_sqlite_find_statements_finished): Free any query
	statement, statement or context node.

	* rdf_storage_sqlite.c: Change context parts pzTail, ppVm to
	zTail, vm and for sqlite V2 use vm not vm & ppVm.

	* rdf_storage_sqlite.c: Use SQLITE_API with 2 or 3 to distinguish apis

	* rdf_storage_sqlite.c: Casts for c++

	* rdf_serializer_raptor.c (librdf_serializer_raptor_set_namespace):
	Cast for c++

2004-12-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_sqlite.c (librdf_storage_sqlite_exec):
	Turn fprintf to debug message.
	(librdf_storage_sqlite_get_next_common): turn printing all column
	data into debug messages.
	(librdf_storage_sqlite_find_statements): Turn fprintf to debug
	message.

	* rdf_storage_sqlite.c: code style

	* rdf_storage_sqlite.c (sqlite_construct_select_helper):
	Added, to build serialise and find_statements query parts.
	(librdf_storage_sqlite_serialise): Move most of query building into
	sqlite_construct_select_helper and now call it.
	(librdf_storage_sqlite_find_statements): Use
	sqlite_construct_select_helper to build guts of query, then add the
	WHERE ...

	* rdf_storage_sqlite.c (librdf_storage_sqlite_serialise): Use
	raptor_stringbuffer to construct big request.
	(librdf_storage_sqlite_get_next_common): Add pointer to statement,
	context_node args.  Fill in statement and context node from column
	values.  Debug print out column names, values.
	(librdf_storage_sqlite_serialise_end_of_stream,
	librdf_storage_sqlite_serialise_next_statement,
	librdf_storage_sqlite_find_statements_next_statement, ): Update
	call to librdf_storage_sqlite_get_next_common.

2004-12-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_sqlite.c (librdf_storage_sqlite_get_helper,
	librdf_storage_sqlite_add_statements,
	librdf_storage_sqlite_context_add_statement): Use
	raptor_stringbuffer to construct requests.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_set_helper):
	Use raptor_stringbuffer to
	construct request.

	* rdf_storage_sqlite.c: Added TRIPLE_NONE node_type
	(librdf_storage_sqlite_node_helper): Fail with NULL node.
	(librdf_storage_sqlite_statement_helper): Handle NULL nodes, set ID
	to -1, type to TRIPLE_NONE.
	(librdf_node_to_sqlite_string): Deleted, not used.
	(librdf_storage_sqlite_find_statements): Use raptor_stringbuffer to
	construct request.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_literal_helper):
	Use IDs for datatype URI.
	(librdf_storage_sqlite_open): Make uriindex.

	* rdf_storage_sqlite.c (sqlite_string_escape): Escape ' as '' not \'
	(librdf_storage_sqlite_uri_helper): Renamed from
	librdf_storage_sqlite_store_uri_helper
	(librdf_storage_sqlite_blank_helper): Renamed from
	librdf_storage_sqlite_store_blank_helper
	(librdf_storage_sqlite_literal_helper): Added
	(librdf_storage_sqlite_node_helper): Use
	librdf_storage_sqlite_literal_helper.
	(librdf_storage_sqlite_open): If new, unlink the file so no need to
	do DROP TABLE.

	* rdf_storage_sqlite.c (librdf_storage_sqlite_init):
	is_new flag set right, really really.
	Added data-driven table descriptions - table_info, NTABLES,
	sqlite_table_numbers, sqlite_tables, triple_part, triple_node_type,
	triples_fields.
	Reorder helper functions.
	(sqlite_string_escape): Now always obeys raw_len and nul-terminates
	the output.
	(librdf_storage_sqlite_exec): Debug print all SQL exec
	(librdf_storage_sqlite_set_helper,
	librdf_storage_sqlite_get_helper): Added, using table info.
	(librdf_storage_sqlite_store_uri_helper): Added, returns or makes an
	ID for the given URI.
	(librdf_storage_sqlite_store_blank_helper): Added, returns or makes an
	ID for the given blank node ID.
	(librdf_storage_sqlite_node_helper): Added, turns a librdf_node into
	appropriate table IDs, node type and returns to user.
	(librdf_storage_sqlite_statement_helper): Uses
	librdf_storage_sqlite_node_helper to get node ids, types and field
	names for all of a statement.
	(librdf_storage_sqlite_open): Use data tables for DROP TABLE,
	CREATE TABLE
	(librdf_storage_sqlite_size): Use librdf_storage_sqlite_exec only.
	(librdf_storage_sqlite_add_statements): Updated dummy INSERT for
	new schema.
	(librdf_storage_sqlite_contains_statement): Use
	librdf_storage_sqlite_statement_helper to build query.
	(librdf_storage_sqlite_context_add_statement): Use
	librdf_storage_sqlite_statement_helper to build INSERT.  Ignores
	context fields for now.

2004-12-26  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_sqlite.c: Handle sqlite3 and sqlite2
	(librdf_storage_sqlite_init): Init is_new correctly.
	(librdf_storage_sqlite_open): Create tables, indexes when new.
	(librdf_storage_sqlite_get_1int_callback): Grab count value from
	argv[0]
	(librdf_storage_sqlite_size): Works.
	(librdf_storage_sqlite_add_statements): Dummy INSERT works.
	(librdf_storage_sqlite_contains_statement): Dummy sql added.
	librdf_storage_sqlite_serialise_stream_context added sqlite3 fields
	(librdf_storage_sqlite_serialise,
	librdf_storage_sqlite_get_next_common,
	librdf_storage_sqlite_serialise_finished): sqlite3 support
	librdf_storage_sqlite_find_statements_stream_context added sqlite3
	fields
	(librdf_storage_sqlite_find_statements,
	librdf_storage_sqlite_find_statements_finished): sqlite3 support
	(librdf_storage_sqlite_context_add_statement): Dummy INSERT added.
	(librdf_init_storage_sqlite): Storage name now 'sqlite'.

2004-12-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer.c, rdf_model.c (main): Cast for size_t to int

	* rdf_concepts.c: Removed librdf_concept_labels - never used.

2004-12-23  Dave Beckett <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer.c (librdf_get_serializer_factory):
	Ensure that if mime_type or type_uri are
	not NULL, the factory must have a non-NULL item and it must match.

	* rdf_parser.c (librdf_get_parser_factory):
	Ensure that if mime_type or type_uri are
	not NULL, the factory must have a non-NULL item and it must match.

2004-12-21  Dave Beckett <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c (librdf_storage_mysql_init): Applied patch
	from Morten to only use mysql_real_escape_string if a connection
	was made.
	(librdf_storage_mysql_find_statements_in_context_next_statement):
	Do not call librdf_storage_mysql_find_statements_in_context_finished
	when errors happen, the iterator class will do that on destruction.
	(librdf_storage_mysql_get_contexts_next_context): Do not call
	librdf_storage_mysql_get_contexts_finished when errors happen, the
	iterator class will do that on destruction.

2004-12-08  Dave Beckett <Dave.Beckett@bristol.ac.uk>

	* rdf_uri.c (librdf_new_uri_relative_to_base): Ask for 1 more char for
	new URI buffer for raptor_uri_resolve_uri_reference to allow
	inserting of a missing "/" path.

2004-11-26  Dave Beckett <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Remove rdf_storage_tstore.h rdf_storage_mysql.h

2004-11-23  Dave Beckett <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.h, rdf_storage_tstore.h: Deleted

2004-11-22  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Use STORAGE_ conditionals instead of @STORAGE_OBJS@

	* rdf_storage.c: Delete rdf_storage_hashes.h and
	rdf_storage_list.h includes, they are called from rdf_storage.h
	already.
	(librdf_init_storage) Use STORAGE_ defines.

	* rdf_storage_sqlite.c: don't sleep now, this should be fixed later

	* rdf_storage.h: Use STORAGE_ defines.
	Delete rdf_storage_tstore.h and rdf_storage_mysql.h includes

	* rdf_storage.c (librdf_init_storage):
	Added call to librdf_init_storage_sqlite

	* Makefile.am: Added rdf_storage_sqlite.c

	* rdf_storage.h: added librdf_init_storage_sqlite prototype

	* rdf_storage_sqlite.c: sqlite storage

2004-11-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer_raptor.c (librdf_serializer_raptor_set_namespace):
	raptor_serialize_set_namespace, typo

	* rdf_serializer.c (librdf_serializer_set_namespace):
	Note may not be implemented.

	* rdf_query_results.c (librdf_query_results_as_stream):
	Docs, note implemented.

	* rdf_serializer_raptor.c (librdf_serializer_raptor_get_feature,
	librdf_serializer_raptor_set_feature): Added to use new serializer
	features.
	(librdf_serializer_raptor_set_namespace): Added calling
	raptor_serializer_set_namespace which should work sometime.

	* rdf_query_results.c (librdf_free_query_results): Add docs.

	* redland.h, rdf_utf8.h, rdf_node.h, rdf_model.h, rdf_list.h, librdf.h:
	Applied patch from Ren Puls to allow for Redland public headers to
	be in a different directory structure. If LIBRDF_OBJC_FRAMEWORK
	is defined, the headers are in a Redland subdirectory.
	Only applies to public Redland header files that #include other
	public header files.  rasqal.h includes raptor.h so needs modifying
	also.

	* rdf_storage_mysql.c, rdf_storage_hashes.c, rdf_storage_file.c:
	Changed sync methods to return an int status.

	* rdf_storage.c (librdf_storage_sync): Changed to return an int.
	API change but most C won't care much.

	* rdf_storage.h: sync factory method returns a status int
	API CHANGE: librdf_storage_sync returns an int

	* rdf_model_storage.c (librdf_model_storage_sync):
	Changed to return an int.

	* rdf_model.c (librdf_model_sync): Changed to return an int.  API
	change but most C won't care much.

	* rdf_model.h: sync factory method returns a status int
	API CHANGE: librdf_model_sync returns an int

2004-11-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_triples.c (librdf_query_triples_init): Add new
	base_uri argument, not used.

	* rdf_query_rasqal.c (librdf_query_rasqal_init): Use new base_uri
	argument and store that, not language URI.

	* rdf_query.h: Update query factory init method to add base_uri
	argument.  API CHANGE: Add base_uri argument to librdf_new_query
	and librdf_new_query_from_factory

	* rdf_query.c (librdf_new_query, librdf_new_query_from_factory):
	Add optional base_uri argument.  Stop overloading query language
	identifier URI and base URI.
	(main): Update test to match.

	* rdf_query.c (librdf_get_query_factory): librdf_uri_equals test
	was negated

2004-11-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c (librdf_storage_mysql_init): Return failure
	early if connection failed.

2004-11-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c
	(librdf_storage_mysql_find_statements_with_options): Ensure
	subject, predicate and object are initialised.

	* rdf_query_triples.c (librdf_query_triples_init): Ensure subject,
	predicate are initialised.  Free them only if they are set.

	* rdf_node.c (librdf_node_to_counted_string): Init
	datatype_uri_string, language_len.

2004-11-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* win32_rdf_config.h: Bumped version to 0.9.20

2004-11-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer.c (main): Update expected result length.

	* rdf_serializer_raptor.c, rdf_serializer.c, rdf_query_rasqal.c,
	rdf_query.c, rdf_parser.c, rdf_model.c, rdf_init.c: Casts for C++

2004-10-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c (librdf_query_rasqal_execute):
	Fix for rasqal bug in
	rasqal_new_triples_source that refuses to run if query->sources is
	NULL.  Remove this when rasqal 0.9.4 is out.

2004-10-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query.c (librdf_query_register_factory):
	Take a uri_string argument.

	* rdf_query.h:
	Modify librdf_query_register_factory to take a uri_string

	* rdf_query_rasqal.c (librdf_query_rasqal_constructor): Use
	rasqal_languages_enumerate to register all languages that rasqal has.


	* rdf_query_rasqal.c (librdf_query_rasqal_constructor): Use
	rasqal_languages_enumerate to register all languages that rasqal
	has.

2004-10-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser_raptor.c
	(librdf_parser_raptor_new_statement_handler): Do not copy datatype
	URIs for new statements.

	* rdf_serializer.c
	(librdf_serializer_serialize_model_to_counted_string,
	librdf_serializer_serialize_model_to_string): Do not require a
	base_uri.

	* rdf_serializer_raptor.c
	(librdf_serializer_raptor_serialize_statement):
	Convert statement object URI correctly.
	(librdf_serializer_raptor_serialize_model_to_counted_string): Zap
	string, string_length before starting.

	* rdf_parser_raptor.c
	(librdf_parser_raptor_new_statement_handler): Copy datatype URIs
	for new statements.

2004-10-20  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c: Update redland support to rasqal changes
	after addition of origin.

	* rdf_model.h: Change librdf_model_to_counted_string and
	librdf_model_to_string to return unsigned char*

	* rdf_model.c
	(librdf_model_to_counted_string,librdf_model_to_string): Return
	unsigned char*

	* rdf_model.c (librdf_model_to_counted_string, librdf_model_to_string):
	Added.
	(main): Added test for above.

	* rdf_model.h:
	Added librdf_model_to_counted_string, librdf_model_to_string

	* rdf_serializer_raptor.c: Added errors, warnings counting in context.
	(librdf_serializer_raptor_error_handler,
	librdf_serializer_raptor_warning_handler): Added, called by raptor
	serializing code.
	(librdf_serializer_raptor_serialize_model_to_file_handle): Link to
	error, warning handlers above.
	(librdf_serializer_raptor_serialize_model_to_counted_string): Added.
	(librdf_serializer_raptor_register_factory): Update for new factory
	method names.

	* rdf_serializer.c
	(librdf_serializer_serialize_model_to_counted_string): Added to
	return string length.
	(main): Test serialize to string.

	* rdf_serializer.h:
	Rename factory method to serialize_model_to_counted_string
	Added librdf_serializer_serialize_model_to_counted_string

	* rdf_serializer.c (main): rdf/xml bad predicate URI is now an error

	* rdf_serializer.c (main):
	Use librdf_serializer_serialize_model_to_file_handle

	* rdf_serializer_rdfxml.c: Deleted. raptor does all this now

	* Makefile.am: Remove rdf_serializer_rdfxml.c

	* rdf_serializer.h:
	Renamed factory method serialize_model to
	serialize_model_to_file_handle.
	Added factory method serialize_model_to_string.
	Deprecated librdf_serializer_serialize_model
	Added librdf_serializer_serialize_model_to_file_handle as new name
	Added librdf_serializer_serialize_model_to_string

	* rdf_serializer.c (librdf_serializer_serialize_model): Deprecate name.
	(librdf_serializer_serialize_model_to_file_handle): Added, new name
	for above.
	(librdf_serializer_serialize_model_to_string): Added.
	(librdf_init_serializer): Let raptor make all

	* rdf_storage_file.c (librdf_storage_file_sync): Use
	librdf_serializer_serialize_model_to_file_handle not deprecated
	librdf_serializer_serialize_model

	* rdf_serializer_raptor.c: Converted to use raptor_serializer.
	(librdf_serializer_raptor_serialize_model_to_file_handle): Renamed
	from librdf_serializer_raptor_serialize_model.
	(librdf_serializer_raptor_serialize_model_to_string): Added.
	(librdf_serializer_raptor_constructor): Register from raptor's
	enumeration of serializers.

2004-10-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer.c (main):
	Add serializer error and warning report tests

	* rdf_query_rasqal.c (librdf_query_rasqal_results_get_bindings):
	Casts for variable names array.

	* rdf_serializer_rdfxml.c (rdf_serializer_rdfxml_print_xml_attribute):
	Take serializer arg.
	Use librdf_log directly to give a better error message since
	raptor_xml_escape_string only dies on UTF-8 errors.
	(librdf_serializer_print_statement_as_rdfxml): Replcae
	librdf_serializer_warning with direct librdf_log call as above.

	* rdf_serializer.h:
	Deleted librdf_serializer_error and librdf_serializer_warning

	* rdf_serializer.c (librdf_serializer_error,
	librdf_serializer_warning): Deleted.

	* rdf_serializer_rdfxml.c (rdf_serializer_rdfxml_print_as_xml_content):
	Deleted and inlined.
	Use raptor_xml_escape_string to properly escape UTF-8.

	* rdf_serializer_rdfxml.c (rdf_serializer_rdfxml_print_xml_attribute):
	Add an error return value and pass on failures.
	(librdf_serializer_print_statement_as_rdfxml): Add an error return
	value and pass on failures.  Try to slightly recover from errors.

	* rdf_serializer_rdfxml.c (librdf_serializer_rdfxml_serialize_model):
	Use raptor_free_memory.

2004-10-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_init.h: Update librdf_world_get_feature and
	librdf_world_set_feature to use librdf_node*

	* rdf_init.c (librdf_world_get_feature): Document and change to
	return librdf_node*
	(librdf_world_set_feature): Document and change to use
	librdf_node* value.

2004-09-22  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage.c (librdf_storage_context_add_statement,
	librdf_storage_context_add_statements): With a NULL context, call
	the non-context method as documented.  Fix NULL statement pointer
	checks.

2004-09-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_log.c (librdf_fatal): Off by 1 in snprintf on OSX

2004-08-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c (librdf_storage_mysql_get_contexts): Removed
	bogus '+' in the sql statement.  Thanks to DJ Adams for finding
	this.

2004-08-17  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* win32_rdf_config.h: 0.9.19

2004-08-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser.c, rdf_storage.c, rdf_storage_hashes.c, rdf_model.c,
	rdf_model_storage.c: Documentation - Note that the model, storage
	and parser get_feature methods return new librdf_node objects

2004-08-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_model.c (librdf_model_context_add_statement,
	librdf_model_context_add_statements,
	librdf_model_context_remove_statement,
	librdf_model_context_remove_statements,
	librdf_model_context_as_stream, librdf_model_context_serialize):
	Return failure when contexts are not supported, don't just carry on.

2004-08-03  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_statement.h, librdf/rdf_statement.c:
	Revert statement usage counting.

	* rdf_init.c (librdf_free_world): Destroy nodes, statements mutexes.
	(librdf_world_init_mutex): Init nodes, statements mutexes.

	* rdf_init.h: Added statements mutex

	* rdf_statement.c: Statements are now usage counted,
	Removed old macros throughout.
	(librdf_new_statement): Set usage to 1.
	(librdf_new_statement_from_statement): Rewrite to use usage.
	(librdf_free_statement): Free when usage is zero, using mutex to
	protect shared structures.

	* rdf_statement.h: Statements are now usage counted,
	Removed old macros

2004-08-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser_raptor.c
	(librdf_parser_raptor_parse_as_stream_common,
	librdf_parser_raptor_parse_into_model_common): Add a length parameter,
	calculate it if it is 0.
	(librdf_parser_raptor_parse_uri_as_stream,
	librdf_parser_raptor_parse_string_as_stream): Updates for change above.
	(librdf_parser_raptor_parse_counted_string_as_stream,
	librdf_parser_raptor_parse_counted_string_into_model): Added, taking
	a counted string with length>0, calling one of the common functions
	above.
	(librdf_parser_raptor_register_factory): Register new methods.

	* rdf_parser.c (librdf_parser_parse_counted_string_as_stream,
	librdf_parser_parse_counted_string_into_model): Added, taking a
	counted string with length>0, calling the new parser factory
	methods.
	(main): Test code updated to test rdfxml, ntriples and turtle
	with four different parsing methods for one parser.  This
	tests - a) memory model checks for same triples
	b) parsing works with four methods
	c) parsing with same parser multiple times works

	* rdf_parser.h: Added factory methods parse_counted_string_into_model,
	parse_counted_string_as_stream as variants of the uncounted versions.
	Added prototypes for librdf_parser_parse_counted_string_as_stream,
	librdf_parser_parse_counted_string_into_model

2004-07-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_tstore.c (librdf_storage_list_add_statement):
	Note FIXME - cannot enforce not adding duplicate statements.

	* rdf_storage_mysql.c (librdf_storage_mysql_add_statement,
	librdf_storage_mysql_add_statements): Enforce not adding duplicate
	statements.

	* rdf_storage_list.c (librdf_storage_list_add_statement):
	Enforce not adding duplicate statements.
	(librdf_storage_list_add_statements): Enforce not adding duplicate
	statements. Tidy the code.

	* rdf_storage_hashes.c (librdf_storage_hashes_add_statement):
	Enforce not adding duplicate statements.
	This is not needed for librdf_storage_hashes_add_statements since
	it calls the above method.

	* rdf_storage.c:
	(librdf_storage_add_statement,librdf_storage_add_statements):
	Document that duplicate statements are ignored on addition.

	* rdf_model.c (librdf_model_add_statement):
	Document that duplicate statements are
	ignored and use librdf_model_contains_statement to enforce it.
	(librdf_model_add_statements): Document that duplicate statements are
	ignored.

2004-07-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c: cast for c++

2004-07-27  Morten Frederiksen

	* Updated to latest version of the MySQL storage written
	by Morten Frederiksen

	* rdf_storage_mysql.c: Add new storage options:
	  bulk - if inserts should be optimized by locking and index
	         optimizations 
	  merge - if a table with merged models should be maintained
	Added a digest object to the storage context for use and re-use
	of MD5 digesting.
	(librdf_storage_mysql_hash): Changed to use context digest option.
	(librdf_storage_mysql_init): Added and documented the bulk and merge
	options.  Document the new option, already implemented, to create
	tables.  Update the MySQL schemas.
	(librdf_storage_mysql_merge): Added, to re/create merged view of all
	models.
	(librdf_storage_mysql_terminate): Tidy up digest from context.
	(librdf_storage_mysql_sync): Added to flush tables.  Now used
	by librdf_storage_mysql_close.
	(librdf_storage_mysql_size, librdf_storage_mysql_node_hash): Updated
	for new schema.
	(librdf_storage_mysql_start_bulk, librdf_storage_mysql_stop_bulk):
	Added, to start and stop bulk op.
	(librdf_storage_mysql_context_add_statements): Add bulk start
	operations when enabled.
	(librdf_storage_mysql_context_add_statement_helper,
	librdf_storage_mysql_contains_statement,
	librdf_storage_mysql_remove_statement): Docucomments.
	Updated for new schema.
	(librdf_storage_mysql_context_remove_statements):
	Updated for new schema.
	(librdf_storage_mysql_serialise,
	librdf_storage_mysql_find_statements,
	librdf_storage_mysql_find_statements_in_context): Docucomments
	(librdf_storage_mysql_find_statements_with_options): Docucomments.
	Updated for new schema.
	(librdf_storage_mysql_find_statements_in_context_next_statement):
	Add checking there is a statement to return.
	(librdf_storage_mysql_get_contexts):
	Updated for new schema.

2004-07-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c, rdf_parser_raptor.c, rdf_node.c, rdf_log.c:
	Casts for C++

2004-07-23  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser.c, rdf_model.c: Replace parser name "raptor" with "rdfxml"

2004-07-19  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* redland.spec.in: remove redland-perl, redland-python

2004-07-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* redland.spec.in:
	Use MAKE_PL_OPTS along with "make Makefile.perl" to ensure that the
	right flags get passed in, rather than invoking perl Makefile.PL
	directly

2004-07-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* redland.spec.in: Ship /usr/share/redland/Redland.i in redland-devel

	* rdf_query_results.c (librdf_query_results_get_bindings):
	Fix docucomment so jade works again

2004-07-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_log.c: Replace librdf.h, raptor.h with redland.h.

2004-07-09  Edd Dumbill <edd@usefulinc.com>

	* rdf_log.c: add accessors for components of the 
	librdf_log_message type.

	* rdf_log.h: add prototypes for the accessors, deleted
	unused prototypes for librdf_log_set_handler and
	librdf_log_set_level.

2004-07-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* redland.h: Include rasqal.h, reorder so raptor.h is first.

2004-07-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_results.c, rdf_utf8.c, rdf_uri.c, rdf_stream.c,
	rdf_storage_tstore.c, rdf_storage_mysql.c, rdf_storage_list.c,
	rdf_storage_hashes.c, rdf_storage_file.c, rdf_storage.c,
	rdf_statement.c, rdf_serializer_rdfxml.c, rdf_serializer_raptor.c,
	rdf_serializer.c, rdf_query_triples.c, ChangeLog,
	rdf_query_rasqal.c, rdf_query.c, rdf_parser_raptor.c,
	rdf_parser.c, rdf_node.c, rdf_model_storage.c, rdf_model.c,
	rdf_list.c, rdf_iterator.c, rdf_init.c, rdf_heuristics.c,
	rdf_hash_memory.c, rdf_hash_cursor.c, rdf_hash_bdb.c, rdf_hash.c,
	rdf_files.c, rdf_digest_sha1.c, rdf_digest_openssl.c,
	rdf_digest_md5.c, rdf_digest.c, rdf_concepts.c: Use redland.h in
	all files not a selection of librdf.h, raptor.h and rasqal.h

2004-07-09  Edd Dumbill <edd@usefulinc.com>

	* rdf_log.c: add accessors for components of the
	librdf_log_message type.
	* rdf_log.h: add prototypes for the accessors, deleted
	unused prototypes for librdf_log_set_handler and librdf_log_set_level.

2004-07-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_results.c (librdf_query_results_get_bindings):
	Added a doc example

	* rdf_query_results.c: doc

	* rdf_log.c (librdf_log_simple):
	Use correct user_data.  Patch from Ren Puls.

	* rdf_query.h: Added internal librdf_query_add_query_result,
	librdf_query_remove_query_result prototypes

	* Makefile.am: Added rdf_query_results.c

	* rdf_query.c, rdf_query_results.c:
	Moved librdf_query_results to separate file, for doc purposes mostly

2004-07-05  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage.c (librdf_storage_node_stream_to_node_create):
	node2 can be NULL such
	as when called by librdf_storage_get_arcs_out,
	librdf_storage_get_arcs_in.

2004-06-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Added $(DEFS) to test compile & link lines

	* rdf_types.h: Define u64 for WIN32 as a typedef for __int64

	* librdf.h: Added REDLAND_STATIC to define REDLAND_API to nothing.

	* Makefile.am: Added win32_rdf_config.h

	* win32_rdf_config.h: redland WIN32 hard-coded config

	* rdf_storage.c, rdf_storage_file.c, rdf_storage_hashes.c,
	rdf_storage_list.c, rdf_storage_mysql.c, rdf_storage_tstore.c,
	rdf_stream.c, rdf_uri.c, rdf_utf8.c, rdf_hash_memory.c,
	rdf_heuristics.c, rdf_init.c, rdf_iterator.c, rdf_list.c,
	rdf_log.c, rdf_model.c, rdf_model_storage.c, rdf_node.c,
	rdf_parser.c, rdf_parser_raptor.c, rdf_query.c,
	rdf_query_rasqal.c, rdf_query_triples.c, rdf_serializer.c,
	rdf_serializer_raptor.c, rdf_serializer_rdfxml.c, rdf_statement.c,
	rdf_concepts.c, rdf_digest.c, rdf_digest_md5.c,
	rdf_digest_openssl.c, rdf_digest_sha1.c, rdf_files.c, rdf_hash.c,
	rdf_hash_bdb.c, rdf_hash_cursor.c: Added #include
	<win32_rdf_config.h> when WIN32 defined

2004-06-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage.c (librdf_storage_find_statements_in_context):
	When applying map, copy
	the statement so it can be freed later.

	* rdf_model.c (librdf_model_find_statements_in_context):
	When applying map, copy
	the statement so it can be freed later.

2004-06-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_node.c (librdf_node_get_li_ordinal):
	if oops, do not always return -1

2004-06-22  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query.h: Added results field to query.
	Added next field to query_results.

	* rdf_query.c:
	(librdf_query_add_query_result, librdf_query_remove_query_result):
	Now take query_results args.

	* rdf_query.c:
	Added usage counting of query between query & query-results.
	(librdf_query_add_query_result, librdf_query_remove_query_result): Added
	(librdf_free_query, librdf_new_query_from_factory,
	librdf_new_query_from_query): Added usage counts.
	(librdf_query_execute): Link query to query_results on success.
	(librdf_free_query_results): Do not return after factory cleanup but
	continue to clean up more.

	* rdf_query.h: Added usage count to query

	* rdf_query_rasqal.c (librdf_query_rasqal_free_results):
	Do not free query_results here,
	it is done by librdf_free_query_results

2004-06-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c (librdf_query_rasqal_free_results):
	Free the query_results

	* rdf_query_rasqal.c (rasqal_redland_bind_match):
	free the literal returned by
	redland_node_to_rasqal_literal since a new one is made by
	rasqal_literal_as_node.

	* rdf_query.h: query factory free_results method returns no value

	* rdf_query.c (librdf_free_query_results): Add debug assertion

2004-06-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* librdf.h: Added librdf_query_results

	* rdf_storage.c, rdf_storage.h: Removed librdf_storage_query_as_stream,
	librdf_storage_query_as_bindings and replaced with
	librdf_storage_query_execute

	* rdf_model_storage.c: Removed librdf_model_storage_query_as_stream,
	librdf_model_storage_query_as_bindings and replaced with
	librdf_model_storage_query_execute

	* rdf_model.c: Removed librdf_model_query, librdf_model_query_string,
	librdf_model_query_as_stream, librdf_model_query_as_bindings and
	replaced with librdf_model_query_execute

	* rdf_model.h:
	In factory, removed query_as_stream, replaced with query_execute.
	Removed librdf_model_query, librdf_model_query_string,
	librdf_model_query_as_stream, librdf_model_query_as_bindings and
	replaced with librdf_model_query_execute

	* rdf_query_triples.c, rdf_query_rasqal.c, rdf_query.c, rdf_query.h:
	Added librdf_query_results.
	Renamed all librdf_query results methods to match (like rasqal 0.9.1)

2004-05-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am:
	Don't use LIBRDF_INTERNAL_LIBS except in dependencies of librdf.la

	* rdf_log.h: librdf_log_level_func has a return value

	* rdf_log.c (librdf_log_simple):
	Return if error, warning messages are handled
	by the specific handlers.

2004-05-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* redland.pc.in: Use LIBRDF_PKGCONFIG_LIBS

	* redland.pc.in: Replace LIBRDF_LIBS with LIBRDF_EXTERNAL_LIBS

	* Makefile.am: Remove LIBRDF_LIBS and add LIBRDF_INTERNAL_LIBS

2004-05-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Use automakefile conditional MEMCMP

2004-05-18  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c:
	Update for renaming of librdf_query_get_result_binding_by_name to
	librdf_query_get_result_binding_value_by_name and factory equiv.

	* rdf_query.h: Renamed librdf_query_get_result_binding_by_name
	to librdf_query_get_result_binding_value_by_name
	and factory equiv.

	* rdf_query.c (librdf_query_get_result_binding_value_by_name):
	Renamed from librdf_query_get_result_binding_by_name

2004-05-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_internal.h: Use positive assert enable defines.

	* rdf_query_rasqal.c (rasqal_redland_bind_match):
	use redland_node_to_rasqal_literal

2004-05-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query_rasqal.c: New error/warning handler names

	* rdf_parser_raptor.c (librdf_parser_raptor_generate_id_handler):
	Use raptor_free_memory to free raptor alloced id

	* rdf_query.c: Don't use uninitialised names.

	* rdf_query.c: docucomments

	* rdf_query_rasqal.c (librdf_query_rasqal_get_result_bindings): Use
	rasqal_query_get_bindings_count.
	(librdf_query_rasqal_get_bindings_count): Added, calling
	rasqal_query_get_bindings_count.

	* rdf_query.c (librdf_query_get_bindings_count): typo

	* rdf_query.h: Added get_bindings_count factory method

	* rdf_query.h: Added librdf_query_get_bindings_count

	* rdf_query.c (librdf_query_get_bindings_count): Added.

	* rdf_query_rasqal.c (librdf_query_rasqal_error_handler,
	librdf_query_rasqal_warning_handler): Added
	(librdf_query_rasqal_init): Hook up above when initialising a new
	query.

	* rdf_log.c (librdf_log_simple):
	Too annoying to die for regular errors when
	debugging.

	* rdf_storage_list.c (librdf_storage_list_context_add_statement,
	librdf_storage_list_context_remove_statement): Run time warning if
	called with a non-NULL context and contexts are not supported.
	(librdf_storage_list_context_serialise,
	librdf_storage_list_get_contexts): Run time warning if called
	and contexts are not supported.

	* rdf_storage_hashes.c (librdf_storage_hashes_get_contexts):
	Run time warning if called
	and contexts are not supported.

	* rdf_storage_hashes.c
	(librdf_storage_hashes_context_add_statement,
	librdf_storage_hashes_context_serialise): Run time warning if
	called and contexts are not supported.
	(librdf_storage_hashes_context_remove_statement): Run time warning
	if called with a non-NULL context and contexts are not supported.

	* rdf_model.c (librdf_model_supports_contexts): Added helper, internal.
	(librdf_new_model_with_options, librdf_new_model_from_model):
	Initialise supports_contexts.
	(librdf_model_context_add_statement,
	librdf_model_context_add_statements,
	librdf_model_context_remove_statement,
	librdf_model_context_remove_statements,
	librdf_model_context_as_stream,
	librdf_model_context_serialize,
	librdf_model_get_contexts): Run time warning if called and contexts
	are not supported.
	(librdf_model_find_statements_in_context): Run time warning if called
	with a non-NULL context and contexts are not supported.

	* rdf_model.h: Added supports_contexts internal field.

2004-05-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query.c (main): Free model, storage

	* rdf_query.c: (main) free returned query variable values

	* rdf_parser.h:
	Deleted internal librdf_parser_error and librdf_parser_warning
	Deprecated librdf_parser_set_error and librdf_parser_set_warning.

	* rdf_parser.c (librdf_parser_error, librdf_parser_warning):
	Deleted - internal and never used.
	(librdf_parser_set_error, librdf_parser_set_warning): Deprecated,
	never worked.

	* rdf_query.c: docucomments

	* rdf_query.c: Added assertions

	* rdf_query_rasqal.c: Renamed librdf_query_rasqal_get_result_binding to
	librdf_query_rasqal_get_result_binding_value.
	Added librdf_query_rasqal_get_result_binding_name

	* rdf_query.h:
	Renamed librdf_query_get_result_binding to librdf_query_get_result_binding_value.
	Added librdf_query_get_result_binding_name
	Changed factory methods to match.

	* rdf_query.c (librdf_query_get_result_binding_value): Renamed from
	librdf_query_get_result_binding.
	(librdf_query_get_result_binding_name): Added.

	* rdf_query_triples.h: deleted, not needed

	* rdf_query.c: docucomment

2004-05-05  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_query.c: add vars

	* rdf_query.c (main): Added a real query language test.

	* rdf_model.h:
	Added librdf_model_query_as_stream, librdf_model_query_as_bindings,
	librdf_model_query_string

	* rdf_model.c (librdf_model_query_as_stream,
	librdf_model_query_as_bindings): Added
	(librdf_model_query_string): Deprecated

	* rdf_storage.h:
	Added librdf_storage_query_as_stream, librdf_storage_query_as_bindings

	* rdf_storage.c
	(librdf_storage_query_as_stream,librdf_storage_query_as_bindings):
	Added

	* rdf_query.h: Substantially changed.
	open, close methods gone.
	Added all the binding access methods from rasqal.

	* rdf_query.c: Substantially changed.
	open, close gone.
	(librdf_query_run_as_stream,librdf_query_run_as_bindings): Added
	Added all the binding access methods from rasqal.

	* rdf_query_rasqal.c: Querying with Rasqal

	* rdf_model_storage.c (librdf_model_storage_query_as_stream,
	librdf_model_storage_query_as_bindings): Added.

	* rdf_query_triples.c: Remove open, close methods.
	Rename run method.

	* rdf_init.h: added query_factories to world

	* Makefile.am: Removed rdf_query_triples.h, added rdf_query-rasqal.c

	* rdf_internal.h: Removed LIBRDF_DEBUG macros

	* rdf_init.h: Removed librdf_error, librdf_warning as no longer used.

	* rdf_log.c (librdf_log_simple): When debugging, all errors are fatal.
	(librdf_error, librdf_warning): Removed, no longer used.

	* rdf_stream.c, rdf_storage_tstore.c, rdf_storage_list.c,
	rdf_storage_hashes.c, rdf_storage.c, rdf_statement.c,
	rdf_serializer_rdfxml.c, rdf_serializer_raptor.c, rdf_query.c,
	rdf_parser_raptor.c, rdf_node.c, rdf_model.c, rdf_list.c,
	rdf_hash_memory.c, rdf_hash_bdb.c, rdf_hash.c, rdf_digest.c:
	Replace LIBRDF_DEBUG macro uses with librdf_log

	* redland.spec.in, redland.pc.in:
	SUBST raptor, rasqal min versions and use in build, packaging files.

	* redland.pc.in, redland.spec.in, Makefile.am: added rasqal

2004-04-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_node.c (librdf_node_get_blank_identifier): Assert typo.

2004-04-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_node.c (librdf_node_to_counted_string):
	Encode language and datatype for
	literal strings.

2004-04-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Apply local cppflags to AM_CFLAGS, for building tests

2004-04-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser.c (main): Need to init node, concepts before parser.

	* rdf_log.h, rdf_log.c (librdf_test_error,librdf_test_warning):
	Added for testing errors.

	* rdf_model.h: Added librdf_model_load

	* rdf_model.c (librdf_model_load): Added, using parser guessing via
	raptor_guess_parser_name if no name is given.

	* rdf_parser_raptor.c:
	Move raptor_new_parser to the init factory method rather than making
	a new one for each parsing.  Add a raptor_parser* rdf_parser field
	to the context structure.
	(librdf_parser_raptor_get_feature): Call raptor_get_feature if it is
	not known here.
	(librdf_parser_raptor_set_feature): Call raptor_set_feature.

2004-04-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_uri.c, rdf_storage_tstore.h, rdf_storage_tstore.c,
	rdf_storage_mysql.h, rdf_storage_mysql.c, rdf_storage_list.h,
	rdf_storage_list.c, rdf_storage_hashes.h, rdf_storage_hashes.c,
	rdf_storage_file.c, rdf_storage.h, rdf_storage.c,
	rdf_serializer.c, rdf_query_triples.h, rdf_query_triples.c,
	rdf_query.h, rdf_query.c, rdf_parser.c, rdf_node.c,
	rdf_model_storage.h, rdf_model_storage.c, rdf_model.h,
	rdf_model.c, rdf_internal.h, rdf_hash.c, rdf_digest.c,
	rdf_concepts.c: Add world field to all LIBRDF_FATAL1 calls.  Add
	world parameter to all factory registrations.

	* rdf_log.h: Added more log facilities.

	* rdf_digest.h: Added world field

	* rdf_internal.h, rdf_query.c: zap LIBRDF_FATAL2

2004-04-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer_rdfxml.c
	(librdf_serializer_rdfxml_raptor_error_handler): Just pass message
	on to librdf_log_simple as a single string, don't add a prefix.

	* rdf_parser_raptor.c:
	(librdf_parser_raptor_error_handler,librdf_parser_raptor_warning_handler):
	Just pass message on to librdf_log_simple with locator, don't add
	a prefix.

	* rdf_storage_mysql.c, rdf_storage_file.c, rdf_query_triples.c,
	rdf_hash_bdb.c: Replace librdf_error and some LIBRDF_ERROR2 with
	librdf_log.

	* redland.h: Compiling with Redland requires raptor.h

	* librdf.h: Use rdf_log.h

	* rdf_init.h: Use rdf_log structs inside world.
	Added librdf_world_set_logger.
	Deprecated older internal librdf_error/librdf_warning.

	* rdf_init.c: Moved error/warning code to rdf_log.c/.h
	(librdf_world_set_logger): Added.

	* Makefile.am: Added rdf_log.c rdf_log.h

	* rdf_log.c, rdf_log.h: RDF logging

2004-03-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser_raptor.c, rdf_parser.c: docs

2004-03-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* redland.pc.in: Use -lrdf (patch from Curtis Hovey)

2004-02-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* librdf.h: Add stdio.h

2004-02-23  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_uri.h: Remove #include <rdf_digest.h>
	Make librdf_uri_get_digest internal.

	* rdf_node.h: Make librdf_node_get_digest internal.

	* librdf.h: Add stdio.h

	* rdf_uri.h, rdf_node.h: header

	* rdf_uri.h:
	Remove include rdf_digest.h - an internal header, should not be called
	from a public one.
	Make librdf_uri_get_digest internal.

	* rdf_node.h: Make librdf_node_get_digest internal.

2004-02-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_stream.c, rdf_storage_mysql.c, rdf_parser_raptor.c,
	rdf_node.c, rdf_model.c, rdf_iterator.c, rdf_init.c,
	rdf_heuristics.c: Docucomment fixes - missing args, renamed args.

2004-02-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_stream.c, rdf_statement.c, rdf_iterator.c:
	Note explicitly that iterator/stream return SHARED pointers
	to the current object(or statement), context node

2004-01-31  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser_raptor.c (librdf_parser_raptor_constructor):
	Use raptor_syntaxes_enumerate.

	* redland.spec.in, redland.pc.in, redland.h, rdf_internal.h, librdf.h:
	Restore "Redland RDF Application Framework" not "Library"

2004-01-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_tstore.c: Switch to use option database, not db.

	* rdf_hash_bdb.c (librdf_hash_bdb_open): Check identifier is not NULL.

	* redland.spec.in: Build with mysql, without threestore

	* redland.spec.in: Update deps, perl >=5.8.0, python >=2.2.0

	* redland.spec.in: Require Raptor 1.2.0+

	* redland.spec.in: Fix install for python.

	* redland.spec.in: Remove setup.py

2004-01-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_file.c (librdf_storage_file_init): Cast for URI.

	* rdf_storage_hashes.c (librdf_storage_hashes_get_contexts_get_method):
	World in error arg.

	* rdf_storage_list.c (librdf_storage_list_get_contexts_get_method):
	World in error arg.

	* rdf_internal.h:
	Made assertions print out, but not abort in standard compile.
	Added LIBRDF_DISABLE_ASSERT_MESSAGES to prevent the output code.
	Added LIBRDF_DISABLE_ASSERT to prevent the assertions entirely.

	* rdf_storage_tstore.c: Use storage usage tracking.
	(librdf_storage_tstore_serialise,
	librdf_storage_tstore_serialise_finished): Add/remove storage usage.
	(librdf_storage_tstore_find_statements,
	librdf_storage_tstore_find_finished): Add/remove storage usage.

	* rdf_storage_mysql.c: Use storage usage tracking.
	(librdf_storage_mysql_find_statements_with_options,
	librdf_storage_mysql_find_statements_in_context_finished): Add/remove
	storage usage.
	(librdf_storage_mysql_get_contexts,
	librdf_storage_mysql_get_contexts_finished): Add/remove storage usage.

	* rdf_storage_list.c: Use storage usage tracking.
	(librdf_storage_list_serialise,
	librdf_storage_list_serialise_finished): Add/remove storage usage.
	(librdf_storage_list_context_serialise,
	librdf_storage_list_context_serialise_finished): Add/remove storage usage.
	(librdf_storage_list_get_contexts_finished,
	librdf_storage_list_get_contexts): Add/remove storage usage.

	* rdf_storage_hashes.c: Use storage usage tracking.
	(librdf_storage_hashes_serialise_common,
	librdf_storage_hashes_serialise_finished): Add/remove storage usage.
	(librdf_storage_hashes_node_iterator_finished,
	librdf_storage_hashes_node_iterator_create): Add/remove storage usage.
	(librdf_storage_hashes_context_serialise,
	librdf_storage_hashes_context_serialise_finished): Add/remove
	storage usage.
	(librdf_storage_hashes_get_contexts,
	librdf_storage_hashes_get_contexts_finished): Add/remove storage
	usage.

	* rdf_model_storage.c (librdf_model_storage_create,
	librdf_model_storage_destroy): Add and release a reference to the
	used storage.

	* rdf_storage.h: Add usage tracking to librdf_model.
	Added librdf_storage_add_reference, librdf_storage_remove_reference

	* rdf_storage.c: Add usage tracking.
	(librdf_new_storage_from_storage,librdf_new_storage_from_factory): Set
	usage to 1 on creation.
	(librdf_free_storage): Decrement usage, free if 0.
	(librdf_storage_add_reference,librdf_storage_remove_reference): Added.
	(librdf_storage_stream_to_node_iterator_finished,
	librdf_storage_node_stream_to_node_create); Add storage usage tracking.

	* rdf_model.h: Add usage tracking to librdf_model.
	Added librdf_model_add_reference, librdf_model_remove_reference

	* rdf_model.c: Add usage tracking.
	(librdf_new_model_with_options,librdf_new_model_from_model): Set
	usage to 1 on creation.
	(librdf_free_model): Decrement usage, free if 0.
	(librdf_model_add_reference,librdf_model_remove_reference): Added.

2004-01-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c:
	Change schema. Table Literals, column Language remove default ''

	* rdf_storage_mysql.c:
	Change schema. Table Literals, column Language varchar(6) to text.

2004-01-22  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_model.c (librdf_model_get_source, librdf_model_get_arc,
	librdf_model_get_target): Fail if iterator returns NULL.

2004-01-20  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c: Literal matching seems to be working.

	* rdf_storage_mysql.c:
	Added basic (LIKE) literal searching when option match-substring=true

	* rdf_storage_mysql.c
	(librdf_storage_mysql_find_statements_with_options): Added, making
	this the general query method renamed from
	librdf_storage_mysql_find_statements_in_context, not using the
	options just yet.

	* rdf_model_storage.c
	(librdf_model_storage_find_statements_with_options): Added,
	passing it through to the model storage.

	* rdf_model.c (librdf_model_find_statements_with_options):
	Added, optional.

	* rdf_model.h: Added factory method find_statements_with_options
	Added librdf_model_find_statements_with_options
	Added option LIBRDF_MODEL_FIND_OPTION_MATCH_SUBSTRING_LITERAL

	* rdf_storage.c (librdf_storage_find_statements_with_options):
	Added, optional.

	* rdf_storage.h: Added factory method find_statements_with_options
	Added librdf_storage_find_statements_with_options

2004-01-17  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_tstore.c, rdf_storage_mysql.c, rdf_storage_list.c,
	rdf_storage_hashes.c, rdf_storage_file.c: Updated to add store
	labels.

	* rdf_storage.h: Added label to librdf_storage_factory
	librdf_storage_register_factory gains label arg
	Added librdf_storage_enumerate prototype.

	* rdf_storage.c: Added labels to factory.
	(librdf_storage_register_factory): Added label arg.
	(librdf_storage_enumerate): Added, to get basic store info.

	* rdf_storage_file.c (librdf_storage_file_size):
	For consistency, use the model call.

	* rdf_storage.h, rdf_storage.c: Added librdf_init_storage_file

	* Makefile.am: Added rdf_storage_file.c

	* rdf_storage_file.c: Persistent store in file (r/w) and uri (r)

	* rdf_serializer.h: Re-export librdf_serializer_serialize_model

2004-01-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer.c (librdf_serializer_serialize_model): re-export

	* rdf_serializer.c (librdf_serializer_serialize_model):
	static, internal.

	* rdf_serializer.h: Do not export librdf_serializer_serialize_model

2004-01-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_hashes.c (librdf_storage_hashes_get_contexts):
	Added, implementing get_contexts for hashes storage
	implementation.

2004-01-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_serializer_raptor.c
	(librdf_serializer_print_statement_as_ntriple): Emit literal
	datatype URI in N-Triples encoding.

	* rdf_serializer_raptor.c
	(librdf_serializer_print_statement_as_ntriple): break

	* rdf_serializer_raptor.c
	(librdf_serializer_print_statement_as_ntriple): Emit subject and
	predicate URIs in N-Triples encoding.  Add some checks.

	* rdf_serializer_raptor.c
	(librdf_serializer_print_statement_as_ntriple): Emit URIs in UTF-8

	* rdf_uri.c, rdf_storage_hashes.c, rdf_storage.c, rdf_statement.c,
	rdf_serializer.c, rdf_query.c, rdf_parser_raptor.c, rdf_parser.c,
	rdf_node.c, rdf_model.c, rdf_internal.h, rdf_hash_bdb.c,
	rdf_hash.c, rdf_digest.c: LIBRDF_DEBUG* lose their function arg

	* rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c,
	rdf_parser_raptor.c: Various casts for C++ (g++) to be happier.

	* rdf_uri.c, rdf_stream.c, rdf_storage_tstore.c,
	rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c,
	rdf_storage.c, rdf_statement.c, rdf_serializer_rdfxml.c,
	rdf_serializer.c, rdf_query.c, rdf_parser_raptor.c, rdf_parser.c,
	rdf_node.c, rdf_model.c, rdf_list.c, rdf_internal.h,
	rdf_hash_memory.c, rdf_hash_bdb.c, rdf_hash.c, rdf_digest.c,
	rdf_concepts.c: LIBRDF_ERROR* and LIBRDF_FATAL* lose their
	function arg

	* rdf_serializer.c, rdf_parser.c, rdf_storage.c:
	Add a bunch of LIBRDF_ASSERT* for object pointers.

	* rdf_node.c (librdf_node_get_literal_value_is_wf_xml):
	Only check non-NULL
	datatype URIs.

	* rdf_node.c (librdf_new_node_from_blank_identifier):
	Removed assertion, can be NULL.

	* rdf_model.c: Add a bunch of LIBRDF_ASSERT* for object pointers.

	* rdf_internal.h: fix macros again for not debugging.

	* rdf_internal.h: fix macros for not debugging.

	* rdf_statement.c: Add a bunch of LIBRDF_ASSERT* for object pointers.

	* rdf_internal.h: Assert macros tweaks.

	* rdf_node.c, rdf_uri.c:
	Add a bunch of LIBRDF_ASSERT* for object pointers.

	* rdf_internal.h (LIBRDF_ASSERT_RETURN,
	LIBRDF_ASSERT_OBJECT_POINTER_RETURN,
	LIBRDF_ASSERT_OBJECT_POINTER_RETURN_VALUE): Added macros.
	(LIBRDF_ERROR1,LIBRDF_ERROR2,LIBRDF_ERROR3,LIBRDF_FATAL1,LIBRDF_FATAL2):
	Use ANSI C99 __func__ rather than the function arg, renamed them
	to "notused" for now.

	* rdf_uri.c (librdf_new_uri):
	Return NULL if string is NULL or empty (0 length).

	* rdf_init.c (librdf_free_world, librdf_world_open):
	Add raptor dependency notes.

2004-01-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Add LIBRDF_EXTERNAL_CPPFLAGS for rdf_uri_test

	* rdf_serializer.h, rdf_serializer.c: Adjust
	librdf_serializer_get_feature, librdf_serializer_set_feature to
	use librdf_node not strings.

	* rdf_storage_mysql.c (librdf_storage_mysql_get_feature):
	Added, to return contexts always.

	* rdf_storage_list.c (librdf_storage_list_get_feature):
	Added, to return contexts or not.

	* rdf_storage_hashes.c (librdf_storage_hashes_get_feature):
	Added, to return contexts or not.

	* rdf_model_storage.c (librdf_model_storage_set_feature):
	Added, calling librdf_storage_set_feature

	* rdf_model_storage.c (librdf_model_storage_get_feature):
	Added, calling librdf_storage_get_feature

	* rdf_storage.h:
	Added storage methods, factory methods get_feature, set_feature now
	with librdf_uri* for feature property name, librdf_node* for values.

	* rdf_storage.c
	(librdf_storage_get_feature,librdf_storage_set_feature): Added

	* rdf_model.c (librdf_model_get_feature,librdf_model_set_feature):
	Added

	* rdf_model.h:
	Added parser methods, factory methods get_feature, set_feature now
	with librdf_uri* for feature property name, librdf_node* for values.

	* rdf_parser_raptor.c, rdf_parser.h, rdf_parser.c:
	parser methods, factory methods get_feature, set_feature now use
	librdf_node* for values.

2004-01-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_mysql.c
	(librdf_storage_mysql_find_statements_in_context): Copy the query
	statement and/or query context_node so that they live during the
	streaming.
	(librdf_storage_mysql_find_statements_in_context_finished): Free
	them.

	* rdf_storage_mysql.c:
	(librdf_storage_mysql_find_statements_in_context_next_statement):
	Clear current_context pointer after free.

	* rdf_storage_mysql.c: fix

	* rdf_storage_mysql.c (librdf_storage_mysql_init): Default to port
	3306.

	* rdf_storage_mysql.c:
	(librdf_storage_mysql_get_contexts_next_context) row=

	* rdf_storage_mysql.c:
	(librdf_storage_mysql_find_statements_in_context_next_statement):
	Allow a NULL context to be returned.

2004-01-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_storage_list.c (librdf_storage_list_get_contexts_get_method):
	Use icontext in debug arg.

	* rdf_storage_hashes.c (librdf_storage_hashes_context_serialise):
	Return NULL if no
	contexts.

	* rdf_model_storage.c (librdf_model_storage_get_contexts):
	Added, implementing get_contexts
	for model_storage implementation.

	* rdf_storage_list.c (librdf_storage_list_get_contexts):
	Added to implement get_contexts
	along with:
	(librdf_storage_list_get_contexts_is_end
	librdf_storage_list_get_contexts_next_method
	librdf_storage_list_get_contexts_get_method
	librdf_storage_list_get_contexts_finished): Helper functions for
	the get_contexts method.

	* rdf_storage_hashes.c:
	Deleted librdf_storage_hashes_find_map and share the same code now in
	librdf_stream_statement_find_map

	* rdf_stream.h: Added prototoype for librdf_stream_statement_find_map

	* rdf_stream.c (librdf_stream_statement_find_map): Added, formerly
	librdf_storage_list_find_map

	* rdf_model.h:
	Add factory methods find_statements_in_context, get_contexts.
	Add prototypes for librdf_model_find_statements_in_context and
	librdf_model_get_contexts

	* rdf_model.c (librdf_model_find_statements_in_context): Added, calling
	the factory method otherwise using
	librdf_stream_statement_find_map over a stream of the
	statements in the context.
	(librdf_model_get_contexts): Added.
	(main): Test code, add a get_contexts call; does not yet work
	on memory, hashed stores.

	* rdf_storage.c (librdf_storage_stream_in_context_map): Deleted.
	(librdf_storage_find_statements_in_context): Do not use the above but
	use librdf_stream_statement_find_map over a stream of the
	statements in the context.

	* rdf_storage_list.c (librdf_storage_list_find_map): Renamed to
	librdf_stream_statement_find_map and moved to rdf_stream.c

	* rdf_storage_mysql.c:
	Enable factory methods find_statements_in_context, get_contexts.

	* rdf_storage.h:
	Add factory methods find_statements_in_context, get_contexts.
	Add prototypes for librdf_storage_find_statements_in_context and
	librdf_storage_get_contexts

	* rdf_storage.c (librdf_storage_stream_in_context_map):
	Added, helper for
	librdf_storage_find_statements_in_context when not in the factory.
	(librdf_storage_find_statements_in_context): Added.
	(librdf_storage_get_contexts): Added.

	* rdf_storage_list.c:
	(librdf_storage_list_find_map, librdf_storage_list_find_statements):
	Update to new stream map API.

	* rdf_storage_hashes.c:
	(librdf_storage_hashes_find_map, librdf_storage_hashes_find_statements):
	Update to new stream map API.

	* rdf_stream.h, rdf_stream.c:
	Change stream mapping to use a list of maps, matching the iterator
	code exactly except using librdf_statement*, not void*.
	Add typedefs librdf_stream_map_handler,
	librdf_stream_map_free_context_handler.
	Add librdf_stream_map internal structure.
	Change stream interals to use librdf_stream_map.
	Deleted librdf_stream_set_map.
	Added librdf_stream_add_map using typedefs.

	* rdf_iterator.h: Add free_context handler to librdf_iterator_map
	Define typedefs librdf_iterator_map_handler and
	librdf_iterator_map_free_context_handler
	Change librdf_iterator_add_map to have free_context handler arg.

	* rdf_iterator.c (librdf_iterator_free_iterator_map):
	Use free_context handler.
	(librdf_iterator_add_map): Add optional free_context handler,
	use typedefs.

	* rdf_storage_mysql.c: year 2004
	assgment in if()s fixes for gcc warnings.

	* rdf_storage_mysql.c: Import from morten 2004-01-11

2004-01-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser_raptor.c: Handle LIBRDF_PARSER_FEATURE_ERROR_COUNT
	LIBRDF_PARSER_FEATURE_WARNING_COUNT
	to return error and warning counts after (during?) a parser.
	Since the first error is fatal, it will either be 0 or 1.
	Warnings can be larger.
	(librdf_parser_raptor_get_feature): Added.

	* rdf_parser.h: Added
	LIBRDF_PARSER_FEATURE_ERROR_COUNT
	LIBRDF_PARSER_FEATURE_WARNING_COUNT

	* rdf_types.h: Restore u64 tests

	* rdf_storage.h, rdf_storage.c, rdf_model.c:
	Documentation: Note that context methods with a NULL context are
	equivalent to the equivalent methods without the context argument.

	* rdf_heuristics.h, rdf_heuristics.c: Added
	librdf_heuristic_is_blank_node, librdf_heuristic_get_blank_node

2004-01-05  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_model_storage.c (librdf_model_storage_context_serialize): Use
	librdf_storage_context_as_stream

	* rdf_storage_hashes.c: Add some int to librdf_statement_part casts.

	* redland.spec.in: - added redland-python package
	- export some more docs

2004-01-04  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_stream.h: dates
	Make librdf_new_stream_from_node_iterator final arg be the enum.

	* rdf_iterator.h: dates
	note deprecation of librdf_iterator_have_elements

	* rdf_serializer.h, rdf_parser.h, rdf_digest.h:
	Change void *c to void *_context in prototypes.  Helps
	remove some declaration shadowing warnings.

	* rdf_uri.h, rdf_stream.h, rdf_stream.c, rdf_storage.h,
	rdf_storage.c, rdf_statement.h, rdf_statement.c, rdf_serializer.h,
	rdf_query.h, rdf_parser.h, rdf_node.h, rdf_model.h,
	rdf_iterator.h, rdf_init.h, rdf_concepts.h: Tidy up the headers,
	split internal/public stuff more clearly.  Export public functions
	with REDLAND_API

	* librdf.h: Moved internal stuff to rdf_internal.h; include it.

	* Makefile.am:
	Made rdf_hash.h rdf_digest.h rdf_types.h rdf_model_storage.h
	rdf_heuristics.h rdf_list.h rdf_hash_bdb.h rdf_hash_memory.
	rdf_files.h rdf_storage_list.h rdf_storage_hashes.h
	rdf_query_triples.h source-only headers, never installed.

	* rdf_storage_mysql.h, rdf_storage_tstore.h: Restored

	* rdf_internal.h: rdf_internal.h

2004-01-03  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_iterator.c (librdf_iterator_update_current_element):
	Fix iteration when using a
	list of map functions.
	(librdf_iterator_map_remove_duplicate_nodes): Deleted, never used.

	* rdf_storage.c (librdf_storage_node_stream_to_node_create):
	and nearby, remove
	prototypical duplicate removing options since it never worked and
	changing it now would confuse.

	* rdf_storage.c: Removed rdf_storage_mysql/tstore.h

	* rdf_storage.h: Moved mysql, tstore prototypes here.

	* rdf_storage_tstore.c: Removed rdf_storage_tstore.h

	* rdf_storage_tstore.h, rdf_storage_mysql.h:
	1 function defined here moved to rdf_storage.h

	* librdf.h: restore accidently deleted #endif

	* librdf.h: No longer NEED_EXPAT_SOURCE

	* redland.spec.in, redland.pc.in: name

	* rdf_parser_raptor.c: Correctly use SYSTEM_FREE

	* rdf_parser_raptor.c: Remove some FIXMEs; replacing LIBRDF_FREE
	with SYSTEM_FREE now that raptor is never compiled with redland
	internals enabled even when in the source tree.

2004-01-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdf_parser_raptor.c (librdf_parser_raptor_parse_file_as_stream):
	Use pcontext->parser_name
	with raptor_new_parser.
	(librdf_parser_raptor_constructor): Register the default parser
	last always (rdfxml) and preserve the raptor old name as a true
	alias.

---

See ../Changelog.[1-9]* for older changes

