The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Redland librdf Language Bindings</title>
  <style type="text/css">
<!--
pre
{
	margin: 1em 4em 1em 4em;
	background-color: #eee;
	padding: 0.5em;
	border-color: #006;
	border-width: 1px;
	border-style: dotted;
}
-->
  </style>
</head>
<body>

<h1>Redland librdf Language Bindings</h1>

<h2 id="rel1_0_13_1"><a name="rel1_0_13_1">Redland librdf Language Bindings 1.0.13.1 Changes</a></h2>

<p>Synchronise with <a href="http://librdf.org/">Redland</a> 1.0.13
(<a href="http://librdf.org/RELEASE.html#rel1_0_13">release notes</a>).
This release requires Redland 1.0.13 which requires Rasqal 0.9.25
and Raptor 2.0.0 or newer. Raptor V1 support was removed.
</p>

<p>Issues Fixed:</p>
<ul>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=390">Issue #0000390</a>: Ruby Redland::Model#triples_with_context exception</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=398">Issue #0000398</a>: configure.ac hardcodes part of the python module path, which breaks 64 bit</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=401">Issue #0000401</a>: behaviour of RDF.QuerySet has changed since 1.0.7.1 or later</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=403">Issue #0000403</a>: destructor for RDF.Query throws an exception</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=411">Issue #0000411</a>: Perl installs to /usr/lib/perl5/site_perl/ openSUSE want's it under /usr/lib/perl5/vendor_perl</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=412">Issue #0000412</a>: when building packages, ruby gems should go in sitearchdir</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=413">Issue #0000413</a>: Licensing of source code is unclear to distributions</li>
</ul>

<h3>Python changes</h3>

<p>Validate all constructors set attributes to None so that early
destruction does not give undefined attribute errors.</p>

<p><code>Node</code> class methods <code>__str__()</code> and
<code>__unicode__()</code> methods now return simple string results.
</p>

<p><code>Node</code> class method <code>__unicode__()</code> no
longer returns a formatted result (in N-Triples) but grabs a simple
string value for literal, blank and uri.
</p>

<p><code>Node</code> class gains a <code>blank</code> property
returning a Unicode blank node ID.
</p>

<p><code>Node</code> class gains a <code>literal</code> property
returning a tuple of (string, language, datatype URI).
</p>

<p><code>Query</code> constructor now accepts Unicode
<code>querystrings</code> argument values.
<a href="http://bugs.librdf.org/mantis/view.php?id=403">Issue #0000403</a>
</p>

<p><code>QueryResults</code> method <code>to_string()</code>
was fixed to return bindings results when given a base URI.
</p>

<p>Using <code>len()</code> on an iterable <code>QueryResults</code>
now returns an exception since this breaks the idea of an iterable
object; it has no well defined length.
<a href="http://bugs.librdf.org/mantis/view.php?id=401">Issue#0000401</a>
</p>

<h3>Ruby changes</h3>

<p>Model class method <code>triples_with_context()</code> now returns
both the statement and context properly.
<a href="http://bugs.librdf.org/mantis/view.php?id=390">Issue #0000390</a>
</p>

<p>Fixed a number of Ruby tests by restoring
<code>Redland::Node#to_s</code> to it's old behavior of returning
string values without quotes.
</p>

<p>Made the Ruby tests less noisy.
</p>

<p> Improved Ruby serialiser tests.
</p>


<h3>Configuration changes</h3>

<p>Removed <code>redland-config</code> support; use only
<code>pkg-config redland</code>.
</p>

<p>Removed <code>--with-redland</code> option and support for
compiling against a non-installed redland.</p>

<p><code>configure</code> now warns if the system redland is newer
than our version and errors out if it is older.
</p>

<p>The python configuration in <code>configure</code> now uses
<code>distutils.sysconfig</code> function
<code>get_python_lib()</code> to get the library binary directory.
Added option <code>--with-python-get-python-lib-args</code> to set the
parameters if necessary.
<a href="http://bugs.librdf.org/mantis/view.php?id=398">Issue#0000398</a>
</p>

<p>The perl configuration in <code>configure</code> was updated
to use a new <code>--with-perl-makemaker-args</code> option to allow the
builder or packager to configure the perl build and installation
using standard <code>ExtUtils::MakeMaker</code> options.
<a href="http://bugs.librdf.org/mantis/view.php?id=411">Issue #0000411</a>
</p>

<p>The ruby configuration in <code>configure</code> was updated
to add <code>--with-ruby-install-dir</code>,
<code>--with-ruby-arch-install-dir</code> and
<code>--with-ruby-arch-install-dir-variable</code> options
to configure Ruby installation paths for architecture independent
and architecture-dependent files.
<a href="http://bugs.librdf.org/mantis/view.php?id=412">Issue #0000412</a>
</p>


<h3>Other changes</h3>

<p>All files are now recorded that they are available under the three
license alternatives (or any newer version) using the current text
from LICENSE.html at the root of this package.  In addition
python/RDF.py is also available under the BSD License without
advertising (aka MIT license), the license text is included in the
file.
<a href="http://bugs.librdf.org/mantis/view.php?id=413">Issue #0000413</a>
</p>


<h2 id="rel1_0_11_1"><a name="rel1_0_11_1">Redland librdf Language Bindings 1.0.11.1 Changes</a></h2>

<p>Issues Fixed:</p>
<ul>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=292">0000292</a>: Method Redland::Resource.type? always return true</li>
</ul>

<h3>Lua binding</h3>

<p>Added experimental Lua language binding.  Use
<code>--with-lua=lua5.1</code> etc. to select a particular binary and
version.  This same name will be used with <code>pkg-config(1)</code>
to get the include and link lines.
</p>

<h3>Python binding</h3>

<p>Fix Unicode conversion for strings to use correct functions and throw
better runtime errors exceptions.
</p>

<p>Fix linking parameter order for python to help with newer GCC that
force <code>-Wl,--as-needed</code> link args.
</p>

<h3>Ruby binding</h3>

<p>Fixed method Redland::Resource.type? to not always return true:
<a href="http://bugs.librdf.org/mantis/view.php?id=292">Issue #0000292</a>
</p>


<h2 id="rel1_0_10_1"><a name="rel1_0_10_1">Redland Bindings 1.0.10.1 Changes</a></h2>

<p>Issues Fixed:</p>
<ul>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=257">0000257</a>: Make PYTHON_LIB installation directory configurable</li>
<li><a href="http://bugs.librdf.org/mantis/view.php?id=313">0000313</a>: Unicode to UTF8 buffer overflows</li>
</ul>

<h3>PHP binding changes</h3>

<p>Make PHP bindings link again by restoring LDFLAGS.</p>

<p>Fix PHP C interface librdf_php_check_exception to work when
compiled with "ZTS mode".  Whatever that is!</p>


<h3>Python binding changes</h3>

<p>Added Parser class method namespaces_seen</p>

<p>Allocate enough bytes for storing an UTF-8 encoded version of a
python UCS-2 encoded Unicode string - up to 3 bytes per codepoint.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=313">Issue#000313</a>
</p>

<p>Added PYTHON_LDFLAGS, PYTHON_LIBEXT, PYTHON_INCLUDES and
PYTHON_LIB <code>configure</code>envariables to override/set the
python build parameters.  Thanks to 'normang' for inspring this
change from the patch in the 
<a href="http://bugs.librdf.org/mantis/view.php?id=257">Issue#0000257</a>
that it fixes.</p>


<h3>Ruby binding changes</h3>

<p>Model class method <code>delete</code>: allow wildcards in s,p,o
to delete a set of statements from a Model.find call. Patch from Aria
Stewart.
</p>

<p>Model class method <code>load</code>: added</p>

<p>Parser class methods <code>parse_into_model</code> and
<code>parse_string_into_model</code>: add documentation to note
argument orders are different.</p>

<p>Resource class method <code>type?</code>: Use return value of
model.find - a sequence and count it's size rather than just compare
value to nil. Addresses 
<a href="http://bugs.librdf.org/mantis/view.php?id=292">Issue#000292</a>
but may not fix it.
</p>

<p>Alter linking to put LDFLAGS at end of line so
that they can be overridden by user/distro.  Patch from Aria Stewart.
</p>


<h3>Other changes</h3>

<p></p>


<h2 id="rel1_0_9_1"><a name="rel1_0_9_1">Redland Bindings 1.0.9.1 Changes</a></h2>

<p>Never released.
</p>


<h2 id="rel1_0_8_1"><a name="rel1_0_8_1">Redland Bindings 1.0.8.1 Changes</a></h2>

<p>The main change in this release is to synchronise with 
<a href="http://librdf.org/">Redland</a> 1.0.8
(<a href="http://librdf.org/RELEASE.html#rel1_0_8">Redland 1.0.8 release Notes</a>)
and provide a few other fixes and improvements.
</p>

<p>Changed the configuration to prefer using <code>pkg-config</code>
details over redland-config.  This is the future and also makes
linking work better on OSX.
</p>

<h3>Perl Bindings Changes</h3>

<p>The Parser and Serializer class feature methods now cast values
to/from Node for set/get when needed.
</p>

<h3>Python Bindings Changes</h3>

<p>Modified linking to use new configure options
<code>--with-python-ldflags</code> and
<code>--with-python_libext</code> options to help systems such
as Cygwin where the shared libraries are not .so</p>

<h3>Ruby Bindings Changes</h3>

<p>Updates to tests for expected SPARQL XML Results.</p>


<h2 id="rel1_0_7_1"><a name="rel1_0_7_1">Redland Bindings 1.0.7.1 Changes</a></h2>

<p>The main change in this release is to synchronise with 
<a href="http://librdf.org/">Redland</a> 1.0.7
(<a href="http://librdf.org/RELEASE.html#rel1_0_7">Redland 1.0.7 release Notes</a>)
and provide a few other fixes and improvements.
</p>

<p>Removed Tcl, Java and C# APIs from the release as promised in
<a href="http://lists.usefulinc.com/pipermail/redland-announce/2007q1/000067.html">Feb 2007</a>
</p>


<h3>PHP Bindings Changes</h3>

<p>Throws proper PHP5 exceptions when errors happen, passing along
location information to the caller.</p>

<p>Null URIs and Redland nodes can be given with a PHP <code>null</code>.
</p>

<p>Probably does not work on PHP4 anymore.</p>

<h3>Python Bindings Changes</h3>

<p>Parser class: Do not set rdfxml as default parser, let Redland
figure that out.</p>

<p>Parser class: add method set_uri_filter to set the URI rejection
filter function.
</p>

<p>GRDDLParser class: added as a convenience class to create a parser
of name 'grddl'.</p>

<p>Fixed <a href="http://bugs.librdf.org/mantis/view.php?id=212">Issue#0000212 </a>: QueryResults.to_string is not working
</p>

<h3>Other changes</h3>

<p>Updated SPARQL <code>CONSTRUCT</code> in perl example and test code 
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=247">Issue#0000247</a>: Actuall v is 1.0.6.1 ; example.pl ends with an error
</p>

<p>Updated <code>autogen.sh</code> to handle better vesioning, OSX
glibtoolize and ltdl.
</p>

<p>Some C# build fixes.</p>


<h2 id="rel1_0_6_1"><a name="rel1_0_6_1">Redland Bindings 1.0.6.1 Changes</a></h2>

<p>The main change in this release is to synchronise with 
<a href="http://librdf.org/">Redland</a> 1.0.6
(<a href="http://librdf.org/RELEASE.html#rel1_0_6">Redland 1.0.6 release Notes</a>)
and provide several other fixes and improvements.
</p>


<h3>Packaging and Configuration Changes</h3>

<h3>C# bindings changes</h3>

<p>None</p>

<h3>Java bindings changes</h3>

<p>None</p>

<h3>Perl bindings changes</h3>

<p>Parser class gains namespaces_seen method to return hash
of namespace prefix/uris seen during a parse.</p>

<h3>PHP bindings changes</h3>

<p>None</p>

<h3>Python bindings changes</h3>

<p>QueryResults class method __len__: Return 0 when the count is not 0
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=166">Issue #0000166</a>
</p>

<p>Model class method add_statement now raises an error if adding
statement fails.
</p>

<p>Node class constructor: Convert literals from Unicode to
UTF-8 for redland n=RDF.Node(literal= u'this is unicode') now works
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=147">Issue #0000147</a>
</p>

<p>Query class now raises an error if construction fails.
</p>

<p>Serializer class constructor now defaults to none name,
mime_type and raises an error if construction fails.
</p>


<h3>Ruby bindings changes</h3>

<p>Apply patch from #0000121 again not properly fixed in previous
patching owl.rb
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=121">Issue #0000121</a>
</p>

<p>Uri, NodeIterator and QueryResults classes gain a finalizer
to close and free up the redland objects on destruction.</p>

<p>Model, Parser, Query, Serializer and Store classes: Apply patch to
comment out log .info calls.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=170">Issue #0000170</a>
and <a href="http://bugs.librdf.org/mantis/view.php?id=172">Issue #0000172</a>
</p>

<p>Serializer class feature methods: Fix use of Node constructor.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=140">Issue #0000140</a>
</p>

<p>Serializer class method model_to_string: Fix null base_uri (Patch
from Jeff Dutton)</p>

<p>Strem class fixed incorect call to librdf_free_model(stream)
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=171">Issue #0000171</a>
</p>

<h3>Tcl bindings changes</h3>

<p>None</p>



<h2 id="rel1_0_5_1"><a name="rel1_0_5_1">Redland Bindings 1.0.5.1 Changes</a></h2>

<p>The main change in this release is to synchronise with 
<a href="http://librdf.org/">Redland</a> 1.0.5
(<a href="http://librdf.org/RELEASE.html#rel1_0_5">Redland 1.0.5 release Notes</a>)
and provide several other fixes and improvements.
</p>

<h3>Packaging and Configuration Changes</h3>

<p>Patched <code>configure</code> to remove un-necessary tests for
C++ or F77++ compilers that <code>libtool</code> stupidly insists
on.</p>

<p>Added <code>--with-python-ldflags</code> for working around
installing python in odd places.
</p>

<p>Create directories before make install.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=126">Issue #0000126</a>
</p>

<h3>C# bindings changes</h3>

<p>Model class methods getSource, getArc and getTarget now return
null rather than try to create a Node with null value.
</p>

<p>Parser class constructors now working again, defaulting to RDF/XML
parser.</p>

<h3>Java bindings changes</h3>

<p>Add Java Query and QueryResults classes and example of using them.
Added Serializer method setNamespace.
</p>

<h3>Perl bindings changes</h3>

<p>Parser class now allows undef arguments for base URIs.</p>

<h3>PHP bindings changes</h3>

<p>None.</p>

<h3>Python bindings changes</h3>

<p>Subclass python class <code>Warning</code> defined in C for making
a <code>RedlandWarning</code>.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=109">Issue #0000109</a>
</p>

<p>Storage class gained some update docs.</p>

<h3>Ruby bindings changes</h3>

<p>Model class added method to_string.  Removed several puts in methods.
Method save now works when using default serializer and not filename.
</p>

<p>Node class method from_node now calls Uri constructor properly.</p>

<p>Node class now defines bnode and anon to match docs
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=122">Issue #0000122</a>
</p>

<p>Parser class now has constructor for a turtle parser.</p>

<p>QueryResults class added method bindings_count.</p>

<p>QueryResults class methods binding_value, binding_value_by_name
now handle nil values.</p>

<p>Serializer class modified method set_namespace to use prefix, uri_ordering.
Constructor now defaults to rdfxml syntax.
</p>

<p>Storage class no longer echos storage options to stdout.
</p>

<p>Added OWL_NS to owl.rb.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=121">Issue #0000121</a>
</p>

<p>Example gains query and serializer test code.
</p>

<p>Removed some recursive includes of <code>Redland</code>.</p>


<h3>Tcl bindings changes</h3>

None



<h2 id="rel1_0_4_1"><a name="rel1_0_4_1">Redland Bindings 1.0.4.1 Changes</a></h2>

<p>The main change in this release is to synchronise with 
<a href="http://librdf.org/">Redland</a> 1.0.4
(<a href="http://librdf.org/RELEASE.html#rel1_0_4">Redland 1.0.4 release Notes</a>)
and provide some other minor fixes.
</p>


<h3>Packaging and Configuration Changes</h3>

<p>Now using <a href="http://subversion.tigris.org/">Subversion</a>
for version control and the <a href="INSTALL.html">Redland bindings installation instructions</a> explain how to get Redland from Subversion.</p>


<h3>C# bindings changes</h3>

<p>Return <code>null</code> in more cases when a redland function
returns 0/NULL for a function result..</p>


<h3>Java bindings changes</h3>

<p>Rename the SWIG accessor java functions for the constants which
changed in some previous SWIG verison.</p>


<h3>Perl bindings changes</h3>

<p>No changes.</p>


<h3>PHP bindings changes</h3>

<p>No changes.</p>


<h3>Python bindings changes</h3>

<p>Fix module cleanup to ensure Redland.librdf_free_world lives till the end.</p>

<p><code>NS</code> Class: Rename method <code>node</code> and local
variables to <code>__</code>-prefixed names less likely to be used in a namespace.
</p>

<p>Edit to allow omitting a literal language and make the default work with
the updated typed literal fix in Redland 1.0.3</p>


<h3>Ruby bindings changes</h3>

<p>Build fixes for newer SWIG.</p>


<h3>Tcl bindings changes</h3>

<p>Update build configuration to record redland name/version correctly.</p>



<h2 id="rel1_0_3_1"><a name="rel1_0_3_1">Redland Bindings 1.0.3.1 Changes</a></h2>

<p>The main changes in this release are:</p>

<p>Synchronises with 
<a href="http://librdf.org/">Redland</a> 1.0.3
(<a href="http://librdf.org/RELEASE.html#rel1_0_3">Redland 1.0.3 release Notes</a>)
</p>

<p>Many fixes across multiple binding languages.</p>

<p>Version Control change: Redland Bindings will be switching to use
<a href="http://subversion.tigris.org/">Subversion</a>
for version control after the 1.0.2.1 release.  Please check the
<a href="http://svn.librdf.org/">Redland Subversion site</a>
for the latest status or the online
<a href="http://librdf.org/bindings/INSTALL.html">Redland Bindings installation notes</a>
for the Redland Bindings specific subversion installation information.
</p>


<h3>Packaging and Configuration Changes</h3>

<p>The build now generates a bindings.rdf DOAP file.</p>

<p>The autogen.sh script for building from a soruce code checkout was
revamped to be more modular.</p>

<p>RPM spec file was updated. It now defines perl_sitearch,
python_libdir, ruby_dir and ruby_libdir at RPM build time.  The build
requirements were split out and now declare minimum versions.  Uses
newer %configure and %{__make} macros and License header field.</p>


<h3>C# bindings changes</h3>

<p>Namespace fixes patch from John Barstow.</p>
<p>Update nunit console to newer.</p>
<p>Update C# syntax for Mono 1.8.x+.</p>


<h3>Java bindings changes</h3>

<p>No changes.</p>


<h3>Perl bindings changes</h3>


<p><code>QueryResults.to_string</code>: return boolean format results.</p>

<p><code>Storage</code> constructor: Improve storage options handling
by allowing a perl hash options in addition to the current form of a
string of redland options.  Patch from Kjetil Kjernsmo.</p>


<h3>PHP bindings changes</h3>

<p>Insert phpinfo and module shutdown using SWIG alone which might
work better.</p>


<h3>Python bindings changes</h3>

<ul>
<li>win32 fixes</li>
<li><code>Model.load</code> returns a boolean</li>
<li><code>Parser.parse_into_model</code> and
<code>Parser.parse_string_into_model</code> now return boolean
success/failure</li>
<li>Improve default arguments for <code>Parser</code> and
<code>Serializer</code> convienence classes, keeping the same
defaults</li>
<li>Added test <code>testSPARQLQueryTwiceOverwriteVar</code> which fails due to current Rasqal implementation.</li>
<li>Remove use of <code>SWIGEXPORT</code> macro which breaks on newer <a href="http://www.swig.org/">SWIGs</a></li>
<li><code>World.__del__</code>: Added hack to prevent death if python
destroys the Redland module before the RDF module. Fixes
<a href="http://bugs.librdf.org/mantis/view.php?id=44">Issue #0000044</a></li>
<li><code>URI.__hash__</code>: Use hash of str(self) to make a working URI hash allowing
Redland URIs to be stored in Python dicts.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=47">Issue #0000047</a></li>
<li><code>QueryResults.make_results_hash</code>,
<code>QueryResults.get_binding_value</code> and
<code>QueryResults.get_binding_value_by_name</code>: Check for a None
value and set it in the results correctly.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=59">Issue #0000059</a></li>
<li><code>Parser.parse_string_as_stream</code> and
<code>Parser.parse_string_into_model</code>: Convert a Python unicode
string to the UTF-8 bytes Redland expects.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=61">Issue #0000061</a>
</li>
<li>Make Python exceptions <code>RedlandError</code> and
<code>RedlandWarning</code> properly returned from the RDF module by
importing them correctly from C.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=68">Issue #0000068</a>
</li>
<li><code>QueryResults.to_file</code> and
<code>QueryResults.to_string</code> now use the default format when
given None.</li>
</ul>


<h3>Ruby bindings changes</h3>

<ul>
<li>Remove mention of <code>log4r</code> not really ever used</li>
<li><code>Serializer</code> class method <code>model_to_string</code> added.</li>
<li><code>Query</code> class method initialize - add missing base_uri arg</li>
<li><code>QueryResults</code> class: added, separate from query class.</li>
<li><code>Statement</code> class method ==(other) added</li>
<li><code>Model</code> class method <code>query_execute</code> added</li>
<li><code>Parser</code> class: Use rdfxml as parser name</li>
<li><code>Resource</code> class method initialize: Make it work with a <code>Uri</code> argument.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=48">Issue #0000048</a>.</li>
<li><code>Model</code> class method get_resource): Handle find returning nil for no result.
Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=49">Issue #0000049</a>
</li>
</ul>


<h3>Tcl bindings changes</h3>

<p>No changes.</p>



<h2 id="rel1_0_2_1"><a name="rel1_0_2_1">Redland Bindings 1.0.2.1 Changes</a></h2>

<p>This release is mainly to synchronise with Redland 1.0.2</p>

<h3>Perl bindings changes</h3>

<p>Query results are now serialized to the latest SPARQL XML format.</p>

<p>A <code>$VERSION</code> variable is exported by the perl binding
so that you can do <code>use RDF::Redland 1.00_02</code> to ensure you
get a certain version or newer.
</p>

<p>Node class method <code>new_literal</code> modified to accept
several classes of perl URI and fixed to promote them correctly to a
redland URI.
</p>


<h3>Python bindings changes</h3>

<p>Query results are now serialized to the latest SPARQL XML format.</p>


<h3>Ruby bindings changes</h3>

<p>Update the bindings for newer SWIG and re-order requires to make
<code>irb -r rdf/redland</code> work (aredridel)
</p>



<h2 id="rel1_0_1_1"><a name="rel1_0_1_1">Redland Bindings 1.0.1.1 Changes</a></h2>

<h3>General Changes</h3>

<p>The query demonstrations written in Perl now use the revised
SPARQL syntax.</p>


<h3>C# bindings changes</h3>

<p>No changes.</p>


<h3>Objective-C / Cocoa bindings changes</h3>

<p>No changes.</p>


<h3>Perl bindings changes</h3>

<p>Perl. Added <code>RDF::Redland</code> methods
<code>set_log_handler</code> and <code>reset_log_handler</code>
to get structured error messages.  Prefer this to the older handler.</p>

<p>Perl.  Added  convienience Node subclasses
<code>RDF::Redland::URINode</code>,
<code>RDF::Redland::XMLLiteralNode</code>,
<code>RDF::Redland::BlankNode</code> and
<code>RDF::Redland::LiteralNode</code>
</p>


<h3>PHP bindings changes</h3>

<p>When returning NULL librdf_node* objects, convert them also
to a PHP null.</p>


<h3>Python bindings changes</h3>

<p>Serializer class gains set_namespace method.</p>

<p>Adjust Node, Statement class comparisons to not assume the other
parameter is of the right type.  Remove 'return' from
constructors. (Daniel Larsson).</p>


<h3>Ruby bindings changes</h3>

<p>Generate html documentation using rdoc (Nikolas Coukouma).</p>


<h3>Tcl bindings changes</h3>

<p>No changes.</p>



<h2 id="rel1_0_0_2"><a name="rel1_0_0_2">Redland Bindings 1.0.0.2 Changes</a></h2>

<h3>General Changes</h3>

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


<h3>Perl bindings changes</h3>

<p>Added methods for returning query results as RDF graphs,
boolean results and as a syntax format such as RDF/XML for graphs,
<a href="http://www.w3.org/TR/2004/WD-rdf-sparql-XMLres-20041221/">SPARQL Variable Binding Results XML Format</a> for bindings.
.</p>

<p>The error handling was altered for parsing methods
class RDF::Redland::Model method <code>load</code>, class
RDF::Redland::Parser methods <code>parse_into_model</code> and
<code>parse_string_into_model</code> which now take an optional
<em>handler</em> 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.</p>


<h3>PHP bindings changes</h3>

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


<h3>Python bindings changes</h3>

<p>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 <code>PyRedland_Warning</code> warning.  The
first error generated is saved and thrown as an
<code>PyRedland_Error</code> 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.</p>

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

<p>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.</p>



<h2 id="rel1_0_0_1"><a name="rel1_0_0_1">Redland Bindings 1.0.0.1 Changes</a></h2>

<p>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</p>


<h3>C# bindings changes</h3>

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

<p>Improve and correct the destruction of internal iterator objects
(Edd Dumbill)</p>

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

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


<h3>Objective-C / Cocoa bindings changes</h3>

<p>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
<a href="http://kianga.kcore.de/latest/redland-objc">Cocoa Bindings for Redland</a> site
</p>


<h3>Perl bindings changes</h3>

<p>No changes.</p>


<h3>PHP bindings changes</h3>

<p>No changes.</p>


<h3>Python bindings changes</h3>

<p>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.
</p>


<h3>Ruby bindings changes</h3>

<p>Updated to <a href="http://rubyforge.org/projects/rdf-redland/">rdf-redland</a> 0.5.3.1 and made the installation work
standalone from ruby gem. Fixed some test cases so the testsuite passes
now.
</p>


<h3>Tcl bindings changes</h3>

<p>No changes.</p>



<h2 id="rel0_9_19_1"><a name="rel0_9_19_1">Redland Bindings 0.9.19.1 Changes</a></h2>

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

<p>Rebuild for Redland 0.9.19</p>


<h3>General Changes</h3>

<p>Fixes to lose Makefile use of <code>$&lt;</code> syntax for better
<strong>make(1)</strong> portability.</p>

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


<h3>C# binding changes</h3>

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


<h3>Perl binding changes</h3>

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

<p>Class Model: Added to_string() method.</p>

<p>Classes Query, QueryResults: Made
documentation and examples to match the code.</p>



<h3>PHP binding changes</h3>

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


<h3>Python binding changes</h3>

<p>Rewrote <code>uri=uri._reduri</code> style code to prevent
premature object destruction.</p>

<p>Class Model: Added method to_string.</p>

<p>Class Node: Documented literal language and other literal_language
method dictionary keys.</p>




<h2 id="rel0_9_18_1"><a name="rel0_9_18_1">Redland Bindings 0.9.18-1 Changes</a></h2>

<p>Rebuild for Redland 0.9.18 - no API changes</p>


<h2 id="rel0_9_17_1"><a name="rel0_9_17_1">Redland Bindings 0.9.17-1 Changes</a></h2>

<p>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</p>

<h3>General Changes</h3>

<p>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.</p>

<p>For most of the language bindings, the interface between them is
using the <a href="http://www.swig.org/">swig</a> 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 <code>redland-config --swig</code>
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 <code>-DREDLAND_PRE_I</code> to #include redland-pre.i from the
Redland.i.</p>

<p>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.</p>


<h3>Packaging changes</h3>

<h3>C# API (Redland#) Changes</h3>

<p>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:</p>

<ul>
<li>Namespace changed from Rdf to Redland</li>
<li>Added marshalling of strings between Redland and Redland#</li>
<li>Freeing of native Redland objects by implementing the C# IDisposable interface, the Dispose method</li>
<li>Query and QueryResults Classes: Added for new Redland 0.9.17 librdf_query
and librdf_query_results classes.</li>
<li>Added strong naming of Redland.dll</li>
<li>Class Model. Added methods Execute, GetContexts, GetFeature, SetFeature, Load.</li>
<li>Class World. Updated to use new Redland 0.9.17 logging API especially for parsing errors and warnings</li>
<li>Class Parser: ParserError for parsing exceptions</li>
<li>Classes Errors, Locator, LogMessage: Added for wrapping structured
error messages returned from parsing.</li>
<li>Classes Node, Statement, Uri: Added Equals, operator==, operator !=</li>
<li>Classes Stream and Iterator: Fixes for the IEnumerable interface</li>
<li>Class Node: Added methods for types - Type, IsResource, IsLiteral, IsBlank</li>
<li>Class Node: Added method Uri.</li>
<li>Fixed handling of null / IntPtr.Zero in several methods</li>
</ul>



<h3>Java API Changes</h3>

<p>This API has not been updated for all Redland 0.9.17 changes.</p>

<p>Class Statement. Added equals method.</p>


<h3>Perl API changes</h3>

<p>This API has been updated for all Redland 0.9.17 changes.</p>

<ul>
<li>Class Statement. Added equals method.</li>

<li>Classes Query, QueryResults: Added for new Redland 0.9.17 librdf_query
and librdf_query_results classes.</li>

<li>Class Model: Added execute method.</li>
</ul>


<h3>PHP API Changes</h3>

<p>No changes needed as this is a bare API directly using Redland
functions.</p>

<p>Added some PHP 4.3 compatible defines to the test program.</p>



<h3>Python API changes</h3>

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

<ul>
<li>Another attempt to return errors and warnings from parsing better.</li>

<li>Class Model. Added new method load.<br />
Added new method execute to invoke querying on a model.
</li>

<li>Class NS: Copy librdf_node each time since sharing the C pointers
is wrong.</li>

<li>Class Parser. Method parse_string_as_stream example fixed to show
the required base_uri parameter.</li>

<li>Clases Query, QueryResults: Added for new Redland 0.9.17 librdf_query,
librdf_query_results including unit tests (Matt Biddulph)</li>

<li>Class Statement. Added equality and inequality operators.<br />
Added matches operator for comparing an incomplete
statement with None values against a complete one
</li>

<li>Class TurtleParser, NTriplesParser: Added convenience classes to create
parsers for the Turtle and N-Triples syntaxes.(Matt Biddulph)
</li>

</ul>

<h3>Ruby API changes</h3>

<p>Replaced with a fuller API rdf-redland written by by Dominic Sisneros.
See the
<a href="http://rubyforge.org/projects/rdf-redland">rdf-redland project site</a>.</p>

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


<p>Class statement. Added == operator.</p>


<h3>Tcl API changes</h3>

<p>No changes needed as this is a bare API directly using Redland
functions.</p>


<hr />

<p>Copyright (C) 2004-2011 <a href="http://www.dajobe.org/">Dave Beckett</a><br />Copyright (C) 2004-2005 <a href="http://www.bristol.ac.uk/">University of Bristol</a></p>

</body>
</html>