Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 2bad935ea66cb72919ca71dacaec7a89 > files > 18

redland-0.9.12-2mdk.ppc.rpm

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <title>Redland RDF Application Framework - To Do List</title>
</head>
<body bgcolor="#ffffff" text="#000085">

<h1 align="center">Redland RDF Application Framework - To Do list</h1>

<p>See the <a href="http://www.redland.opensource.ac.uk/TODO.html">web site version</a> for the up-to-date list.</p>

<h2>Bugs, Features, Requests For Enhancement</h2>

<p>In no real order.  Help wanted.</p>

<ul>
<li>defensive code - check for NULL object parameters, wrong use
of polymorphic objects such as getting URI of a non-resource node.
Compile some as debug checks with aborts?.</li>
<li>perl - if you didn't clone a node before trying to re-use it the whole thing would segfault</li>
<li>example2.c is rather useless, consider replacing or removing</li>
<li>RFE: Consider adding a librdf_model_get_storage() method so storage
object needn't be kept around when dealing with model.</li>
<li>Consider an AVL-tree in-memory store (<a href="http://www.msu.edu/user/pfaffben/avl/">libavl</a>)</li>
<li>swig 1.3.14 may fail to work for some languages (perl,python ok)</li>
<li>Docs: note that compiling redland also builds raptor, if both are wanted</li>
<li>RFE: Add is_literal etc. methods to perl etc. Node class</li>
<li>Allow base URIs in Perl parser methods to be undef</li>
<li>Ensure non-file: URIs do not cause crashes (seen in Perl)</li>
<li>Document the storage constructor hash options under the main class</li>
<li>RFE: make add_statement method on model take URIs</li>
<li>Add arcs_in/arcs_out model methods</li>
<li>Add container class for manipulating RDF containers - Seq, Bag, Alt, ...</li>
<li>Add module - URI retrieval via (GNOME) ghttp, (W3C) libwww, nano ftp/http in libxml</li>
<li>Add <tt>#ifdef WIN32</tt> around parts including the config file and create a win32 build</li>
<li>If LGPL/MPL license, include compatible code OR add separate package?</li>
<li>Write a C++ interface</li>
<li>Provide any necessary support for RDF Schema (fast rdf:type lookups)</li>
<li>Write some better example code</li>
<li>Write a quickstart / howto document</li>
<li>Split the header files into internal / user ones.  Maybe generate
part of librdf.h automatically to make a 1-header file system.</li>
<li>Make API docbook sgml generate decent PostScript / PDF output</li>
<li>Fix the URI hash mechanism - currently stores URI/pointer pairs in hash - wrong</li>
<li>Make the library thread safe</li>
<li>The library does not do file locking on e.g. DB files</li>
<li>Provide a way to represent reified statements with instantiated statements</li>
<li>Add proper error/warning reporting in general</li>
<li>Write stringbuffer for easy creation of growing in-memory strings</li>
<li>For IRIX (and others?), try also linking with -lpthreads when testing for working Berkeley DB</li>
<li>String encoding - needs iconv posix function and/or Unicode library.
Some utility functions have been written for UTF-8 to/from ISO Latin-1.</li>
</ul>

<p>(Excluding issues near <tt>FIXME</tt>s in the source)</p>


<h2>Done</h2>

<p>The most recent changes are at the top, with the first
release version where appropriate.</p>

<ul>
<li>make librdf_statement_set_subject* free any existing node before setting (0.9.12)</li>
<li>Pass RDF parser error messages to user code, scripting languages (0.9.12)</li>
<li>Add a swig test in autogen.sh, abort if it is too old (0.9.12)</li>
<li>swig 1.3.14 changed its default to shadow and failed to work out
of the box.  Add -noproxy to the swig line for 1.3.14+ (0.9.12)</li>
<li>Hacked around repat parser failing to pass bnode ids when as statement objects (0.9.12)</li>
<li>Added relative URI parsing code from Repat (via raptor) (0.9.12)</li>
<li>Handle xml:lang when the rdf parsers provide it (0.9.12)</li>
<li>Add query language interfaces (0.9.12)</li>
<li>Add support for blank nodes (were anonymous resources) (0.9.12)</li>
<li>Removed all node types except for resource, literal, blank, li (statement (0.9.12))</li>
<li>Use <a href="http://xmlsoft.org/">libxml</a> rather than expat as default xml parser (at least for raptor) Reasons: uses iconv to handle more content encodings and provides better error reporting (0.9.12)</li>
<li>Link XML Libraries (-lexpat etc.) before libwww libraries to
ensure correct XML library is used (0.9.11)</li>
<li>Python interface to parsers now works (0.9.11)</li>
<li>Multiple startup/shutdowns of entire library now works (0.9.11)</li>
<li>Make the library work as a shared library (0.9.11)</li>
<li>Model size method implemented (0.9.11)</li>
<li>Added a <a href="docs/java.html">Java interface</a> (0.9.10)</li>
<li><tt>librdf_hash_from_string()</tt> - \ escaping doesn't work properly (0.9.9)</li>
<li>SiRPAC wrappers handle multi-line literal objects (0.9.9)</li>
<li>Added <a href="docs/tcl.html">Tcl</a> interface (0.9.8)</li>
<li>Add module - <a href="http://www.redland.opensource.ac.uk/raptor/">Raptor</a> RDF parser - internal (0.9.8)</li>
<li>Make API docbook sgml generate 1 big HTML file (0.9.6)</li>
<li>Python interface (0.9.6)</li>
<li>Add proper error/warning reporting for RDF/XML parsers (0.9.6)</li>
<li>Perl interface (0.9.4)</li>
<li>module - storage implemented as hashes</li>
<li>made <tt>get</tt> methods in all hash impls. use iterators (side
effecting - yuck)</li>
<li>made BDB V2 and V3 use btree and handle duplicates</li>
<li>removed GDBM from default code since doesn't handle duplicates</li>
<li>removed references to factories from simple user code</li>
<li>module - rdf parser - via libwww RDF parser</li>
<li>annotate the functions with gnome-doc / kernel-doc style comments
(after JavaDoc) with care taken to make sure it is clear who owns the
memory of objects passed in or returned by functions</li>
<li>module - rdf parser - via Java RDF API / SiRPAC</li>
<li>module - in memory storage</li>
<li>module - storage factory</li>
<li>module - model</li>
<li>module - memory allocation</li>
<li>change all functions to start with librdf_</li>
<li>a decent source-code based documentation system - GNOME / Linux kernel
gnome-doc / kernel-doc programs based on the Javadoc formatted comments
style, but for C</li>
<li>wrap the code with <tt>#ifdef</tt> etc. to prevent exposing internals to user code</li>
<li>module - berkeley DB hash</li>
<li>change functions to all start with RDF_ - new and free functions</li>
<li>decide on the license(s)  - GPL/LGPL and BSDish ???</li>
<li>iterator interface and module for returning results</li>
</ul>

<h2>Decided to do differently, not to address</h2>

<p>I reserve the right to change my mind again!</p>
<ul>
<li>Redland does not work with GDBM hashes.  BDB is much better (0.9.12)</li>
<li>Redland does not work with BerkeleyDB V1.  Not fixing since it works with V2,V3 and V4 (0.9.12)</li>
<li>RFE: make Node and URI be the same class, change all methods using
Nodes to take URI OR URI or Literal as appropriate.  The RDF abstract
syntax has nodes that are (URI-refs or Literals or ...) so this design
matches it well (0.9.12)</li>
<li>These will not be made into modules at present, the internal RDF
parser will use expat or libxml as necessary.
<ul>
<li>Add module - xml dom parser - external</li>
<li>Add module - xml dom parser - libxml</li>
<li>Add module - xml sax parser - libxml</li>
<li>Add module - xml parser - sax</li>
<li>Add module - xml parser - dom</li>
<li>Modularise the library so some parts can be removed [already done]</li>
</ul>
</li>
<li>This is not needed as a module, the internal RDF parser will do this.
<ul>
<li>module - xml namespaces</li>
</ul>
</li>
</ul>

<hr />

<p>Copyright 2000-2001 <a href="http://purl.org/net/dajobe/">Dave Beckett</a>, <a href="http://www.ilrt.bristol.ac.uk/">Institute for Learning and Research Technology</a>, <a href="http://www.bristol.ac.uk/">University of Bristol</a></p>

</body>
</html>