Redland RDF Application Framework Bindings

Redland Bindings 1.0.0.2 Changes

General Changes

Removed bogus C include of the ../librdf dir from all bindings build; always just use whatever redland-config --cflags returns.

Perl bindings changes

Added methods for returning query results as RDF graphs, boolean results and as a syntax format such as RDF/XML for graphs, SPARQL Variable Binding Results XML Format for bindings. .

The error handling was altered for parsing methods class RDF::Redland::Model method load, class RDF::Redland::Parser methods parse_into_model and parse_string_into_model which now take an optional handler parameter that is a subroutine handler providing detailed log information. This can be used to capture or store detailed info on possibly multiple problems in parsing.

PHP bindings changes

Fix for swig calling zend_rsrc_list_get_rsrc_type incorrectly. Added PHP_MINFO_FUNCTION to report that Redland was loaded, the version of redland and the PHP bindings.

Python bindings changes

Change the way that redland errors and warnings are reported. There are now two choices. By default warnings are now generated immediately as a Python PyRedland_Warning warning. The first error generated is saved and thrown as an PyRedland_Error exception after the redland function returns. If multiple errors are generated, the remaining ones are left to the default redland error handler, which prints them to stderr.

The alternative is in parsing methods model.load, parser.parse_into_model and parser.parse_string_into_model which now take an optional handler parameter that is a subroutine handler providing detailed log information.

This change has a disadvantage in no longer allowing user-registration of callbacks but it does seem to work better with Python than the former mechanism of python calling C calling Python.

Redland Bindings 1.0.0.1 Changes

The main changes for this release are to provide additional query results formats, in Python only at present and to synchronise with Redland 1.0.0

C# bindings changes

Correct marshalling .NET strings to and from UTF-8 inside Redland correctly. (Edd Dumbill)

Improve and correct the destruction of internal iterator objects (Edd Dumbill)

Use HandleRef to improve the references to redland World to prevent premature destruction of redland objects. (Edd Dumbill)

See the csharp/ChangeLog in the source tree for more details of these changes.

Objective-C / Cocoa bindings changes

This binding is for the Objective-C (Obj-C) language with the Cocoa Framework on the Apple OSX platform. It was created and is developed by René Puls who provides it at the Cocoa Bindings for Redland site

Perl bindings changes

No changes.

PHP bindings changes

No changes.

Python bindings changes

Added convienience classes for making RDQL and SPARQL queries. Added methods for returning query results as RDF graphs and boolean results. Added unittests for those.

Ruby bindings changes

Updated to rdf-redland 0.5.3.1 and made the installation work standalone from ruby gem. Fixed some test cases so the testsuite passes now.

Tcl bindings changes

No changes.

Redland Bindings 0.9.19.1 Changes

Redland binding's License was changed from LGPL 2.1/MPL 1.1 to LGPL 2.1/Apache 2 (except for the C# binding).

Rebuild for Redland 0.9.19

General Changes

Fixes to lose Makefile use of $< syntax for better make(1) portability.

configure was updated to try harder to find Java JNI headers, looking in $JAVA_HOME, or using --with-jdk argument.

C# binding changes

Assign the logging delegate to a private member to stop it being prematurely garbage collected. (Edd Dumbill)

Perl binding changes

Rewrote $uri=$uri->{URI} style code to prevent premature object destruction.

Class Model: Added to_string() method.

Classes Query, QueryResults: Made documentation and examples to match the code.

PHP binding changes

Added a typemap to provide a proper PHP ZVAL_NULL value when returning a NULL librdf_stream* or librdf_iterator* object pointer, rather than a swig-typed NULL pointer.

Python binding changes

Rewrote uri=uri._reduri style code to prevent premature object destruction.

Class Model: Added method to_string.

Class Node: Documented literal language and other literal_language method dictionary keys.

Redland Bindings 0.9.18-1 Changes

Rebuild for Redland 0.9.18 - no API changes

Redland Bindings 0.9.17-1 Changes

This is the first release of Redland Bindings separate from Redland and includes the following changes compared to the language bindings in Redland 0.9.16

General Changes

The main change is to split the API that Redland exports in the redland package from the language specific parts in the redland-bindings package.

For most of the language bindings, the interface between them is using the swig interface generator tool. This is now defined by the Redland.i file provided by the redland package (in binary packages inside redland-devel rpm or librdf-dev debs). This can also be found via redland-config --swig and then used to generate the C wrappers for the bindings. There may be need for language-specific changes which can be used via #included .i files triggered by calling swig and the C compiler with defines like -DREDLAND_PRE_I to #include redland-pre.i from the Redland.i.

The last paragraph does not apply to C# (Redland#) which uses the built in P/Invoke feature of the language and runtime to call the Redland functions directly.

Packaging changes

C# API (Redland#) Changes

This is an entirely new API for 0.9.17 originally created by Cesar Lopez Nataren. It was updated by Dave Beckett to work with the released Mono 1.0 and substantially improved by Edd Dumbill. Changes since Cesar's version are given in detail in the csharp directory ChangeLog but include:

Java API Changes

This API has not been updated for all Redland 0.9.17 changes.

Class Statement. Added equals method.

Perl API changes

This API has been updated for all Redland 0.9.17 changes.

PHP API Changes

No changes needed as this is a bare API directly using Redland functions.

Added some PHP 4.3 compatible defines to the test program.

Python API changes

This API has been updated for all Redland 0.9.17 changes. The main changes are as follows:

Ruby API changes

Replaced with a fuller API rdf-redland written by by Dominic Sisneros. See the rdf-redland project site.

This API has not been updated for all Redland 0.9.17 changes but may have newer version at the URI above.

Class statement. Added == operator.

Tcl API changes

No changes needed as this is a bare API directly using Redland functions.


Copyright 2004-2005 Dave Beckett, Institute for Learning and Research Technology, University of Bristol