mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-10-30 17:23:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			2299 lines
		
	
	
		
			80 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			2299 lines
		
	
	
		
			80 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <?xml version="1.0" encoding="utf-8"?>
 | |
| <!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>Raptor RDF Parser Library - Release Notes</title>
 | |
| </head>
 | |
| <body>
 | |
| 
 | |
|   <h1 style="text-align:center">Raptor RDF Parser Library - Release Notes</h1>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_18"><a name="rel1_4_18">Raptor 1.4.18 Changes</a></h2>
 | |
| 
 | |
| <p>Fixed Issues:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=186">0000186</a>: Add RDFa support to Raptor</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=255">0000255</a>: rss-tag-soup serializer does not generate namespaces so re-serializing in rdf/xml looks wierd for atom</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>A new 
 | |
| <a href="http://www.w3.org/TR/2008/CR-rdfa-syntax-20080620/">RDFa</a>
 | |
| parser was added (name <code>rdfa</code>) using
 | |
| <a href="http://rdfa.digitalbazaar.com/librdfa/">librdfa</a> to
 | |
| implement it.  librdfa is linked as part of Raptor and
 | |
| written by Manu Sporny of Digital Bazaar, licensed with the
 | |
| same license as Raptor.</p>
 | |
| 
 | |
| <p>The RDFa
 | |
| <a href="http://www.w3.org/2006/07/SWD/RDFa/testsuite/xhtml1-testcases/">test suite</a>
 | |
| was added to the test and (via librdfa) Raptor passes all but 4 tests
 | |
| which fail due to different output xmlns attribute ordering (which
 | |
| does not matter to XML parsers).</p>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>Added new function
 | |
| <code>raptor_serialize_start_to_iostream()</code> to have the new
 | |
| semantics of not owning and destroying the passed-in iostream.  This
 | |
| allows the caller to serialize to an existing iostream and then
 | |
| to continue to write to it.  <code>raptor_serialize_start()</code>
 | |
| owns and then closes the iostream that is passed in.
 | |
| </p>
 | |
| 
 | |
| <p>A new Atom Syndication Format 1.0 (<a href="http://www.ietf.org/rfc/rfc4287.txt">RFC 4287</a>) serializer was added (name <code>atom</code>)
 | |
| using the RSS 1.0 RDF triple model with mapping to atom terms
 | |
| and consideration of atom output format conditions.
 | |
| </p>
 | |
| 
 | |
| <p>RSS 1.0 serializer</p>
 | |
| <ul>
 | |
| <li>Allow setting output namespaces for the serializer</li>
 | |
| <li>Allow writing extra RDF triples as RDF/XML attached to RSS items.</li>
 | |
| <li>Recognize predicates with XML Literal and emit as
 | |
| <code>parseType="Literal"</code> or when <code>content:encoded</code>,
 | |
| as a CDATA block, by RSS 1.0 convention.</li>
 | |
| <li>Removed code assumptions about triples appearing in a certain order.</li>
 | |
| <li>Free namespaces and stack in correct order</li>
 | |
| </ul>
 | |
| 
 | |
| <p>Turtle serializer now respects the <code>writeBaseURI</code>
 | |
| feature to control generating the <code>@base</code> directive.
 | |
| </p>
 | |
| 
 | |
| <p>Abbreviated serializers (RDF/XML Abbrev and Turtle) now remove
 | |
| duplicate triples.
 | |
| </p>
 | |
| 
 | |
| <p>Added feature <code>RAPTOR_FEATURE_RSS_TRIPLES</code> to add RDF
 | |
| triples to RSS 1.0 or Atom serializer output with values 'rdfxml' or
 | |
| 'atom-triples'.  Atom triples writes <code>at:map</code> sections for
 | |
| the <code>atom:entry</code> elements and at:feedmap and
 | |
| <code>at:entrymap</code> sections to the <code>atom:feed</code>
 | |
| elements.  <code>at:contentType</code> is used to provide a
 | |
| <code>type</code> attribute value for an <code>atom:content</code>
 | |
| that has a URI value.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>RAPTOR_FEATURE_ATOM_ENTRY_URI</code> for the Atom
 | |
| serializer to set the URI of an atom entry.  If the URI matches the
 | |
| URI of an entry item in the RDF mode of the channel, then an Atom
 | |
| Entry document is generated rather than an Atom Feed document.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>QName Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_qname_to_counted_name()</code> to get
 | |
| a formatted qname for a name.
 | |
| </p>
 | |
| 
 | |
| <p><code>raptor_new_qname_from_namespace_local_name()</code> will
 | |
| accept a NULL namespace to construct a namespace-less qname.
 | |
| </p>
 | |
| 
 | |
| <h3>Sequence Class Changes</h3>
 | |
| 
 | |
| <p><code>raptor_sequence_set_at()</code> now handles
 | |
| setting an item at an index in the sequence beyond capacity+1
 | |
| to automatically extend.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_sequence_delete_at()</code> to delete an item
 | |
| at a position in a sequence and return it.
 | |
| </p>
 | |
| 
 | |
| <h3>URI Class Changes</h3>
 | |
| 
 | |
| <p><code>raptor_uri_to_relative_counted_uri_string()</code> now
 | |
| has support for a base URI with scheme and authority but no path,
 | |
| so the result can be a relative URI starting with '/'.
 | |
| </p>
 | |
| 
 | |
| <h3>XML Writer Class Changes</h3>
 | |
| 
 | |
| <p>XML Writer allows adding newlines via
 | |
| <code>raptor_xml_writer_newline()</code> which
 | |
| requires use of <code>raptor_xml_writer_flush()</code> to indicate
 | |
| when XML writer output is finished.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_xml_writer_get_depth()</code> to get the current
 | |
| XML writer element stack depth.
 | |
| </p>
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p>Many more resiliance checks were added.
 | |
| </p>
 | |
| 
 | |
| <p>Removed all calls to abort() in code on fatal errors.  This
 | |
| requires using setjmp and longjmp inside parsers built with
 | |
| flex and bison.
 | |
| </p>
 | |
| 
 | |
| <p>The Turtle writer may optionally generate @base depending on
 | |
| flags.  (This is used by Turtle serializer to handle the writeBaseURI
 | |
| feature)
 | |
| </p>
 | |
| 
 | |
| <p>Tidied error messages for <code>rapper(1)</code> when parsing stdin.
 | |
| </p>
 | |
| 
 | |
| <p>raptor_init() and raptor_finish() use a reference count to ensure
 | |
| initialising and terminating happen at most once each.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_17"><a name="rel1_4_17">Raptor 1.4.17 Changes</a></h2>
 | |
| 
 | |
| <p>The main changes to this release are:</p>
 | |
| 
 | |
| <p>Added two new JSON serializers: resource-centric 'json' 
 | |
| (Talis <a href="http://n2.talis.com/wiki/RDF_JSON_Specification">RDF/JSON</a>)
 | |
| and triple-centric 'json-triples'.
 | |
| </p>
 | |
| 
 | |
| <p>Made I/O Stream class <code>raptor_iostream</code> support
 | |
| reading as well as writing with new constructors and
 | |
| new methods.</p>
 | |
| 
 | |
| <p>Added a new public SAX2 API class <code>raptor_sax2</code>
 | |
| exposing the existing internal API which has been around since the
 | |
| first release of Raptor 8 years ago and runs on top of either expat
 | |
| or libxml2.</p>
 | |
| 
 | |
| <p>Added new public error handlers structure
 | |
| <code>raptor_error_handlers</code> containing a set of
 | |
| (function, data pointers) pairs called <code>raptor_handler_closure</code>
 | |
| for each error log level.
 | |
| Added <code>raptor_log_level</code> enum for the error log level.
 | |
| Added an initialization function for the structure,
 | |
| <code>raptor_error_handlers_init()</code>. 
 | |
| </p>
 | |
| 
 | |
| <p>Several other API changes, fixes and improvements were made.</p>
 | |
| 
 | |
| <p>Fixed Issues:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=252">0000252</a>: Allow controlling of cache headers in Raptor</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=245">0000245</a>: Extra classes added to an OWL object</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>I/O Stream class changes</h3>
 | |
| 
 | |
| <p>Made I/O Stream class <code>raptor_iostream</code> support
 | |
| reading data in addition to writing. (Dave B):</p>
 | |
| <ul>
 | |
| <li>Deprecated <code>raptor_iostream_handler</code> structure for new
 | |
| <code>raptor_iostream_handler2</code> structure which contains the
 | |
| new factory functions for reading.</li>
 | |
| <li>Added new read I/O stream factory handler typedefs
 | |
| <code>raptor_iostream_read_bytes_func</code> and
 | |
| <code>raptor_iostream_read_eof_func</code>.
 | |
| </li>
 | |
| <li>Added new <code>raptor_new_iostream_from_handler2()</code> I/O
 | |
| stream constructor to allow building of read and write iostreams
 | |
| deprecating <code>raptor_new_iostream_from_handler()</code>.
 | |
| </li>
 | |
| <li>Added new <code>raptor_iostream_tell()</code> deprecating
 | |
| <code>raptor_iostream_get_bytes_written_count</code>.
 | |
| </li>
 | |
| <li>Added new read I/O Stream constructors:
 | |
| <code>raptor_new_iostream_from_sink</code>(),
 | |
| <code>raptor_new_iostream_from_filename()</code>
 | |
| <code>raptor_new_iostream_from_file_handle()</code> and
 | |
| <code>raptor_new_iostream_from_string()</code>
 | |
| </li>
 | |
| <li>Added new read I/O Stream methods
 | |
| <code>raptor_iostream_read_bytes()</code> and
 | |
| and <code>raptor_iostream_read_eof()</code>.
 | |
| </li>
 | |
| </ul>
 | |
| 
 | |
| <p>Added new write I/O Stream method
 | |
| <code>raptor_iostream_write_string_python()</code> to write an
 | |
| encoded string to an I/O stream using python / JSON / Turtle /
 | |
| N-Triples / SPARQL escaping rules.  (Dave B)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Class Changes</h3>
 | |
| <p>Added two new JSON serializers (Dave B):</p>
 | |
| <ol>
 | |
| <li>Resource-centric serializer named <code>json</code> based on
 | |
| <a href="http://n2.talis.com/wiki/RDF_JSON_Specification">Talis RDF/JSON Specification</a></li>
 | |
| <li>Triple-centric serializer named <code>json-triples</code> based on the SPARQL results in JSON format.</li>
 | |
| </ol>
 | |
| 
 | |
| <p>Added new serializer features for the JSON serializers (DaveB):</p>
 | |
| <ul>
 | |
| <li><code>RAPTOR_FEATURE_JSON_CALLBACK</code> (name 'jsonCallback') to
 | |
| set the top-level callback function name wrapper above the outer object.</li>
 | |
| <li><code>RAPTOR_FEATURE_JSON_EXTRA_DATA</code> (name 'jsonExtraData') to
 | |
| add extra top-level JSON object data.</li>
 | |
| </ul>
 | |
| 
 | |
| <p>Example of using the resource-centric serializer while defining a
 | |
| callback:</p>
 | |
| <pre>
 | |
| $ rapper -q -o json -f jsonCallback=foo http://librdf.org/raptor/raptor.rdf
 | |
| foo(
 | |
| {
 | |
|   "http://librdf.org/raptor/#raptor" : {
 | |
|     "http://usefulinc.com/ns/doap#description" : [ {
 | |
| ...
 | |
| </pre>
 | |
| 
 | |
| 
 | |
| <h3>Statement Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_statement_compare()</code> to provide an
 | |
| ordering between <code>raptor_statement</code> objects. (Dave B)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Class Changes</h3>
 | |
| 
 | |
| <p>Added new parser features to control HTTP headers in
 | |
| web requests (Dave B, based on a patch in the bug):<br />
 | |
| Also never <code>Pragma:</code> header with libcurl ever.<br />
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=252">Issue#0000252</a>
 | |
| </p>
 | |
| <ul>
 | |
| <li><code>RAPTOR_FEATURE_WWW_HTTP_CACHE_CONTROL</code> to control
 | |
| sending <code>Cache-Control</code> (default: none)</li>
 | |
| <li><code>RAPTOR_FEATURE_WWW_HTTP_USER_AGENT</code> to control
 | |
| sending <code>User-Agent</code> (default: none)</li>
 | |
| </ul>
 | |
| 
 | |
| <p>Turtle parser:</p>
 | |
| <ul>
 | |
| <li>Added tests to forbid <code>'</code> and
 | |
| <code>'''</code>-quoted strings and to forbid <code>()</code> in
 | |
| triple predicate position following the updated Turtle spec. (Dave B)</li>
 | |
| <li>Write ';' statement terminators with a leading
 | |
| space for consistency with '.' terminator. (Dave R)</li>
 | |
| <li>Remove canonicalisation of integer and double
 | |
| to match Turtle latest spec. (Dave B)</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>QName Class Changes</h3>
 | |
| 
 | |
| <p>Added new methods  <code>raptor_qname_get_local_name()</code>,
 | |
| <code>raptor_qname_get_value()</code> and
 | |
| <code>raptor_qname_get_counted_value()</code>. (Dave B)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>SAX2 Class Changes</h3>
 | |
| 
 | |
| <p>Added new public SAX2 API class <code>raptor_sax2</code> exposind
 | |
| th existing internal one which has been around since the first
 | |
| release of Raptor 8 years ago and runs on top of either expat or
 | |
| libxml2. (Dave B)</p>
 | |
| 
 | |
| <ul>
 | |
| <li>Constructor: <code>raptor_new_sax2()</code></li>
 | |
| <li>Destructor: <code>raptor_free_sax2()</code></li>
 | |
| <li>XML handler methods:
 | |
|  <code>raptor_sax2_set_start_element_handler()</code>,
 | |
|  <code>raptor_sax2_set_end_element_handler()</code>,
 | |
|  <code>raptor_sax2_set_characters_handler()</code>,
 | |
|  <code>raptor_sax2_set_cdata_handler()</code>,
 | |
|  <code>raptor_sax2_set_comment_handler()</code>,
 | |
|  <code>raptor_sax2_set_unparsed_entity_decl_handler()</code> and
 | |
|  <code>raptor_sax2_set_external_entity_ref_handler()</code>.
 | |
| </li>
 | |
| <li>XML handler factory typedefs:
 | |
|  <code>raptor_sax2_start_element_handler</code>,
 | |
|  <code>raptor_sax2_end_element_handler</code>,
 | |
|  <code>raptor_sax2_characters_handler</code>,
 | |
|  <code>raptor_sax2_cdata_handler</code>,
 | |
|  <code>raptor_sax2_comment_handler</code>,
 | |
|  <code>raptor_sax2_unparsed_entity_decl_handler</code> and
 | |
|  <code>raptor_sax2_external_entity_ref_handler</code>.
 | |
| </li>
 | |
| <li>Set XML Namespace handler method:
 | |
| <code>raptor_sax2_set_namespace_handler()</code>
 | |
| </li>
 | |
| <li>Parsing methods:
 | |
|  <code>raptor_sax2_parse_start()</code> and
 | |
|  <code>raptor_sax2_parse_chunk()</code>
 | |
| </li>
 | |
| <li>Other methods:
 | |
|  <code>raptor_sax2_inscope_xml_language()</code> and
 | |
|  <code>raptor_sax2_inscope_base_uri()</code> 
 | |
| </li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Class Changes</h3>
 | |
| 
 | |
| <p>Abbreviated serializers (RDF/XML-Abbrev and Turtle):</p>
 | |
| <ul>
 | |
| <li>Switched from using a sequence to using an AVL Tree with a cursor
 | |
| to more efficiently (faster) group/sort triples by subject.  This
 | |
| changes the previous syntax output order but has no semantic
 | |
| difference.  (Dave B)
 | |
| </li>
 | |
| <li>Use the AVL Tree to remove duplicate triples. (Dave B)<br />
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=245">Issue#0000245</a>
 | |
| </li>
 | |
| </ul>
 | |
| 
 | |
| <p>Turtle serializer:</p>
 | |
| <ul>
 | |
| <li>Feature <code>RAPTOR_FEATURE_WRITE_BASE_URI</code>
 | |
| added to control writing <code>@base</code> directive to Turtle. (Dave R)</li>
 | |
| <li>Remove canonicalisation of integer and double
 | |
| to match Turtle latest spec. (Dave B)</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>URI Class Changes</h3>
 | |
| 
 | |
| <p>Update URI resolving for RFC3986 changes (Dave B)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>WWW Class Changes</h3>
 | |
| 
 | |
| <p>Added new method <code>raptor_www_set_http_cache_control()</code>
 | |
| to set the HTTP <code>Cache-Control:</code> header in requests.
 | |
| (Dave B, based on a patch in the bug) <br />
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=252">Issue#0000252</a>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>XML Class Changes</h3>
 | |
| 
 | |
| <p>Added new method <code>raptor_xml_element_get_language()</code> 
 | |
| to get the language associated with an element. (Dave B)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Portability and Resilience Changes</h3>
 | |
| 
 | |
| <p>Pass on error failures in parser and serializer factory
 | |
| construction. (Lauri)
 | |
| </p>
 | |
| 
 | |
| <p>Abbreviated serializers (RDF/XML-abbrev and Turtle): low memory
 | |
| and allocation failure fixes. (Lauri)
 | |
| </p>
 | |
| 
 | |
| <p>Altered API function signatures of
 | |
| <code>raptor_uri_set_handler()</code>,
 | |
| <code>raptor_uri_get_handler()</code>,
 | |
| <code>raptor_new_namespaces(),</code>
 | |
| <code>raptor_namespaces_init()</code> and
 | |
| <code>raptor_new_xml_writer()</code> to add appropriate
 | |
| <code>const</code>s. (Lauri)
 | |
| </p>
 | |
| 
 | |
| <p>Portability fixes for RAPTOR_API and other macros. (Lauri)
 | |
| </p>
 | |
| 
 | |
| <p>Removal of many sets of writable static data in N-Triples parser, URI
 | |
| class, Unicode NFC code, libxml support, Turtle writer and XML
 | |
| writer. (Lauri)
 | |
| </p>
 | |
| 
 | |
| <p>Portability fixes for <code>round()</code> and
 | |
| <code>trunc()</code> that are not always available in libc but might
 | |
| be in libm. (Dave B)
 | |
| </p>
 | |
| 
 | |
| <p>Turtle/N3 parsers and serializers, RDF/XML_Abbrev serializer: many
 | |
| low memory fixes and better out of memory errors. (Lauri)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p>Rewrote internal error log functions to use new error handlers
 | |
| structures and simplify the calls. (Dave B)
 | |
| </p>
 | |
| 
 | |
| <p>Expanded internal <code>raptor_avltree</code> datatype support to
 | |
| add a cursor, allowing it to be used for creating large ordered
 | |
| sequences that need to be walked. (Dave B)
 | |
| </p>
 | |
| 
 | |
| <p>Updated <code>rdfdiff</code> utility to handle duplicate triples
 | |
| in inputs. (Dave B)
 | |
| </p>
 | |
| 
 | |
| <p><code>raptor_sequence_shift()</code> and
 | |
| <code>raptor_sequence_unshift()</code> are now as efficient as the
 | |
| sequence push and pop operations: O(1). (Lauri)
 | |
| </p>
 | |
| 
 | |
| <p><code>autogen.sh</code> was updated.
 | |
| </p>
 | |
| 
 | |
| <p><code>rapper</code> utility can now accept multiple
 | |
| <code>-f</code> / <code>--feature</code> options; previously
 | |
| only one parser and one serializer feature was possible.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_16"><a name="rel1_4_16">Raptor 1.4.16 Changes</a></h2>
 | |
| 
 | |
| <p>The main changes to this release are:</p>
 | |
| 
 | |
| <p>Provide 100% support for the
 | |
| <a href="http://www.w3.org/TR/2007/REC-grddl-20070911/">GRDDL W3C Recommendation of 2007-09-11</a>.
 | |
| </p>
 | |
| 
 | |
| <p>The
 | |
| <a href="http://www.dajobe.org/2004/01/turtle/">Turtle</a>
 | |
| parser and serializer were updated to support
 | |
| <code>@base</code> for specifying a base URI, following
 | |
| Turtle of 2007-09-11.
 | |
| </p>
 | |
| 
 | |
| <p>The Turtle and RDF/XML serializers had performance improvements
 | |
| for large graphs.
 | |
| </p>
 | |
| 
 | |
| <p>Added a TRiG Parser based on Turtle with named graph support.</p>
 | |
| 
 | |
| <p>Several other API changes, fixes and improvements were made.</p>
 | |
| 
 | |
| <p>Fixed Issues:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000188">0000188</a>: Wrong RAPTOR_API definition for mingw</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000192">0000192</a>: raptor_uri_filename_to_uri_string() - getcwd() loop error</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000194">0000194</a>: parser and serializer don't recognize the same mime types</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000195">0000195</a>: Compile error in raptor_serialize.c debug code</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000207">0000207</a>: RDF file can be parsed, but not then serialised.</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000210">0000210</a>: RAPTOR_FEATURE_WRITER_XML_DECLARATION broken in Ruby</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000214">0000214</a>: Empty rdf:about, plus base-uri, produces incorrect turtle output</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000216">0000216</a>: flickrdf segfaults at raptor_serialize_end!</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000217">0000217</a>: flickrdf segfaults at raptor_serialize_end!</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000232">0000232</a>: libraptor does not correctly free up libxml error handler, causing crashes in subsequent calls to libxml error handlers</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000237">0000237</a>: raptor_sequence robustness: item ownership on insert error</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000238">0000238</a>: GRDDL parser in SVN overwrites blank nodes when merging graphs</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000239">0000239</a>: GRDDL parser in SVN returns 60 less triples with http://www.w3.org/</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>Namespaces Class Changes</h3>
 | |
| 
 | |
| <p><code>raptor_namespaces_init()</code> now returns an integer
 | |
| status.
 | |
| </p>
 | |
| 
 | |
| <h3>Parser Class Changes</h3>
 | |
| 
 | |
| <p>
 | |
| Added <code>raptor_graph_handler</code> typedef and
 | |
| <code>raptor_set_graph_handler()</code> to return named graph
 | |
| identifiers during parsing, initially for the TRiG parser.
 | |
| </p>
 | |
| 
 | |
| <p>These were added the GRDDL parser:</p>
 | |
| <ul>
 | |
|   <li><code>RAPTOR_FEATURE_MICROFORMATS</code> (microformats) to enable
 | |
|     hCard and hCal microformats</li>
 | |
|   <li><code>RAPTOR_FEATURE_HTML_TAG_SOUP</code> (htmlTagSoup) to use
 | |
|     the HTML tag soup parser if the XML parsing fails</li>
 | |
|   <li><code>RAPTOR_FEATURE_HTML_LINK</code> (htmlLink) to enable html
 | |
|     <link></li>
 | |
|   <li><code>RAPTOR_FEATURE_WWW_TIMEOUT</code> (wwwTimeout) for setting
 | |
|     URI retrieval timeouts during processing</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>XML Element Class Changes</h3>
 | |
| 
 | |
| <p>Added
 | |
| <code>raptor_new_xml_element_from_namespace_local_name()</code>
 | |
| constructor to make an XML element from a local name relative
 | |
| to a <code>raptor_namespace</code>.
 | |
| </p>
 | |
| 
 | |
| <h3>Unicode Class Changes</h3>
 | |
| 
 | |
| <p>Defined a new <code>raptor_unichar</code> typedef for a Unicode
 | |
| codepoint defined as <code>unsigned long</code> which was the
 | |
| previous type used.  Altered the Unicode function to take it as a
 | |
| parameter.  <code>raptor_unicode_char_to_utf8()</code>,
 | |
| <code>raptor_utf8_to_unicode_char()</code>,
 | |
| <code>raptor_unicode_is_xml11_namestartchar()</code>,
 | |
| <code>raptor_unicode_is_xml10_namestartchar()</code>,
 | |
| <code>raptor_unicode_is_xml11_namechar()</code> and
 | |
| <code>raptor_unicode_is_xml10_namechar()</code>.
 | |
| </p>
 | |
| 
 | |
| <h3>URI Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_uri_compare()</code> and
 | |
| <code>raptor_uri_compare_func</code> function pointer for
 | |
| implementing it in the <code>raptor_uri_handler</code>.  The handler
 | |
| now has a version field <code>initialised</code> to trigger the new
 | |
| factory method for uri compare when the version is 2 or more.
 | |
| </p>
 | |
| 
 | |
| <h3>WWW Class Changes</h3>
 | |
| <p>
 | |
| Added <code>raptor_www_set_connection_timeout()</code>
 | |
| to set the WWW retrieval connection timeout in seconds.
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
| Added <code>raptor_www_final_uri_handler</code> typedef and
 | |
| <code>raptor_www_set_final_uri_handler()</code> to return
 | |
| the final URI seen <em>during</em> WWW retrieval such as after
 | |
| redirects.
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
| Added <code>raptor_www_get_final_uri()</code> to return the final URI
 | |
| <em>after</em> a WWW retrieval which might include redirects.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>The GRDDL parser/processor was substantially updated and now
 | |
| supports 100% of the
 | |
| <a href="http://www.w3.org/TR/2007/REC-grddl-20070911/">Gleaning Resource Descriptions from Dialects of Languages (GRDDL)</a>
 | |
| syntax, W3C Recommendation of 2007-09-11:
 | |
| </p>
 | |
| <ul>
 | |
|   <li>Transforming XML with XSLT 1.0</li>
 | |
|   <li>Processing XML namespaces.</li>
 | |
|   <li>Transforming XHTML with XSLT 1.0</li>
 | |
|   <li>Processing HTML profiles.</li>
 | |
|   <li>Handling of base URIs and URI redirects.</li>
 | |
|   <li>XInclude processing.</li>
 | |
|   <li>Parsing as RDF/XML when it is recognised after a transform.</li>
 | |
| </ul>
 | |
| 
 | |
| <p>it also:</p>
 | |
| <ul>
 | |
|   <li>Handles hCard and hCal microformats when feature
 | |
|     <code>RAPTOR_FEATURE_MICROFORMATS</code> is enabled (default
 | |
|     enabled).</li>
 | |
|   <li>Handles <link type="application/rdf+xml" href="URI" /> to
 | |
|     RDF/XML content when feature <code>RAPTOR_FEATURE_HTML_LINK</code> is
 | |
|     enabled (default enabled).</li>
 | |
|   <li>Attempts parsing with libxml's HTML parser if XML parsing fails,
 | |
|     when feature <code>RAPTOR_FEATURE_HTML_TAG_SOUP</code> is enabled
 | |
|     (default enabled).</li>
 | |
|   <li>Discards errors during recursive processing such as 404s,
 | |
|     failure to parse, failure of XSLT processing.</li>
 | |
|   <li>Uses XSLT security - denies reading, writing to files,
 | |
|     directories or writing to network.</li>
 | |
|   <li>Accepts the <code>RAPTOR_FEATURE_NO_NET</code> feature to prevent
 | |
|     all networking.</li>
 | |
|   <li>Allows fine-grained URI filtering with
 | |
|     <code>raptor_parser_set_uri_filter()</code>.</li>
 | |
| </ul>
 | |
| 
 | |
| <p>RDF/XML parser recognising was updated to just the start of the
 | |
| document for guessing if it should handle content and to try
 | |
| to avoid html URLs.
 | |
| </p>
 | |
| 
 | |
| <p>RSS Tag soup parser recognising was updated to accept with the
 | |
| string 'feed' in the identifier.
 | |
| </p>
 | |
| 
 | |
| <p>TRiG Parser was added based on the Turtle parser, adding named
 | |
| graphs.  It returns name graph URis via a callback set with new API
 | |
| call <code>raptor_set_graph_handler()</code>
 | |
| </p>
 | |
| 
 | |
| <p>Turtle parser added <code>@base</code> support, fixed turtle
 | |
| escapes to URIs.  Recognising was updated to look for
 | |
| <code>@prefix</code> early in the document.
 | |
| </p>
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>Turtle serialiser changes:</p>
 | |
| <ul>
 | |
| <li>Generate <code>@base</code> when an output base URI is given.</li>
 | |
| <li>Properly format Turtle XSD doubles using new snprintf code.</li>
 | |
| <li>Fix unwanted blank line at end of Turtle list abbreviation.</li>
 | |
| <li>Use AVL Tree rather than sequence for significant performance
 | |
| improvement for large serialisations.</li>
 | |
| </ul>
 | |
| 
 | |
| <p>RDF/XML serialiser was changed to emit a legal empty RDF/XML
 | |
| document when no triples are serialised and to skip emitting
 | |
| statements with bad predicate uris rather than returning an error.
 | |
| </p>
 | |
| 
 | |
| <p>RDF/XML Abbrev serialiser was changed to use an AVL tree rather
 | |
| than sequence for significant performance improvement for large
 | |
| serialisations.
 | |
| </p>
 | |
| 
 | |
| <h3><code>rapper</code> Utility Changes</h3>
 | |
| 
 | |
| <p>Added an <code>--show-graphs</code> option to print named graph
 | |
| URIs as seen (such as with TRiG).
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>-I</code> / <code>--input-uri</code> and
 | |
| <code>-O</code> / <code>--output-uri</code> options to set the
 | |
| input / parsing and output / serializing base URIs
 | |
| separately. Defaults remain the same - the serializer base URI
 | |
| defaults to the input base URI, however it was set.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Portability Changes</h3>
 | |
| 
 | |
| <p>Fixes for when building from Subversion on cygwin (EOL issues,
 | |
| Makefiles).</p>
 | |
| 
 | |
| <p>Remove unused semicolons for prevention of compiler warnings.</p>
 | |
| 
 | |
| <p>Fix some uninitialized variables that some compilers complain about.</p>
 | |
| 
 | |
| <p>Allow <code>RAPTOR_ASSERT_DIE</code> to be externally defined.</p>
 | |
| 
 | |
| <p>Allow <code>RAPTOR_WWW_BUFFER_SIZE</code> to be externally defined.</p>
 | |
| 
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p><code>autogen.sh</code> was updated to handle program versions
 | |
| better using an inline perl helper.
 | |
| </p>
 | |
| 
 | |
| <p>Start to add resiliance to memory allocation failures
 | |
| and errors inside the library.
 | |
| </p>
 | |
| 
 | |
| <p>Added AVL Tree code to make much faster key:value lookups.  This
 | |
| is used for RDF/XML parser XML ID checks and in the 'abbrev'
 | |
| serializers - Turtle and RDF/XML-Abbrev for looking up nodes.
 | |
| </p>
 | |
| 
 | |
| <p>Better libxml error messages are now returned, mentioning
 | |
| some of the names and values that caused the error.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_15"><a name="rel1_4_15">Raptor 1.4.15 Changes</a></h2>
 | |
| 
 | |
| <h3>General Changes</h3>
 | |
| 
 | |
| <p>GRDDL parser now passes the (unapproved) test suite for the
 | |
| <a href="http://www.w3.org/TR/2007/WD-grddl-20070302/">GRDDL W3C Working Draft 2 March 2007</a>
 | |
| except for two tests that have been reported as having errors.
 | |
| </p>
 | |
| 
 | |
| <p>When using libcurl as the WWW retrieval library, errors in
 | |
| resolving a URI such as not found (404) are now reported as proper
 | |
| errors and cause parsing to fail rather than just return no triples.
 | |
| </p>
 | |
| 
 | |
| <p>Some improvments where made to guessing for a parser to match some
 | |
| content.  Firstly, any mime type with Q <10 is added to the score,
 | |
| don't lose the influence of the mime type entirely.  The consequence of
 | |
| this is that Turtle can pretend to be a partial N3 parser. Secondly,
 | |
| the XHTML mime type is now correctly recognised by the GRDDL parser
 | |
| rather than the RSS Tag Soup parser.</p>
 | |
| 
 | |
| 
 | |
| <p>Fixed Issues:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000174">#0000174</a>: Serializing to rdfxml* with a base_uri doesn't set the <code>xml:base</code> attribute, but does truncate <code>rdf:about</code> and <code>rdf:resource</code> values</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000177">#0000177</a>: Some URI references mis-resolved</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000178">#0000178</a>: No errors from accessing 404 URIs</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000180">#0000180</a>: messages garble output to stdout</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>Parser and Serializer Changes</h3>
 | |
| 
 | |
| <p>Added better error reporting for XML errors using the
 | |
| libxml structured error reporing api.  From
 | |
| </p>
 | |
| <pre>
 | |
| $ rapper -i grddl http://librdf.org/LICENSE.txt
 | |
| rapper: Parsing URI http://librdf.org/LICENSE.txt
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt - XML error - http://librdf.org/LICENSE.txt:2: 
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt - XML error - parser 
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt - XML error - error : 
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt - XML error - Document is empty
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt - XML error -                   Redland RDF Application Framework - License
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt - XML error -                   ^
 | |
| rapper: Failed to parse URI http://librdf.org/LICENSE.txt grddl content
 | |
| rapper: Parsing returned 0 triples
 | |
| </pre>
 | |
| <p>To this:</p>
 | |
| <pre>
 | |
| $ rapper -i grddl http://librdf.org/LICENSE.txt
 | |
| rapper: Parsing URI http://librdf.org/LICENSE.txt
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt:1 - XML parser error: Document is empty
 | |
| rapper: Error - URI http://librdf.org/LICENSE.txt:1 - XInclude processing failed for GRDDL document
 | |
| rapper: Failed to parse URI http://librdf.org/LICENSE.txt grddl content
 | |
| rapper: Parsing returned 0 triples
 | |
| </pre>
 | |
| 
 | |
| 
 | |
| <p>GRDDL parser updated to support the
 | |
| <a href="http://www.w3.org/TR/2007/WD-grddl-20070302/">GRDDL W3C Working Draft 2 March 2007</a>:
 | |
| </p>
 | |
| <ul>
 | |
| <li>Namespace and profile URI handling now works.</li>
 | |
| <li>Run XML Include processing</li>
 | |
| <li>Throw away XML validation errors</li>
 | |
| <li>When a namespace URI is seen that was RDF/XML Mime type, run
 | |
| the RDF/XML parser on the content.</li>
 | |
| <li>Look for substrings inside rel attributes when looking for profiles.</li>
 | |
| <li>Return a warning and do not fail if XSLT sheet is not found</li>
 | |
| <li>Use libxml structured errors for better reporting</li>
 | |
| <li>Removed old hard-coded xslt scripts</li>
 | |
| </ul>
 | |
| 
 | |
| <p>Turtle parser was changed to accept the N3 mime
 | |
| type <code>text/rdf+n3</code> at low Q(quality)
 | |
| so it might work for N3 that is the RDF subset - quite common.
 | |
| </p>
 | |
| 
 | |
| <p>Changed the RSS Tag Soup parser and RSS 1.0 serializer to stop
 | |
| sharing use of the declared namespaces so that when using both at the
 | |
| same time, there is no double-free of the same objects.
 | |
| </p>
 | |
| 
 | |
| <p>Correct the content: namespace URI in the RSS parser and
 | |
| serializers.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p><code>rapper</code> gains a <code>-t/--trace</code> option to show
 | |
| URIs traversed.  Handy for GRDDL.
 | |
| </p>
 | |
| 
 | |
| <p><code>raptor_uri_resolve_uri_reference()</code> no longer goes
 | |
| past the end of buffer when the relative URI is <code>,/</code>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <p>Added an internal API for capturing parsed data as it is seen.
 | |
| Use by GRDDL parser but with no public API.
 | |
| </p>
 | |
| 
 | |
| <p>Added an internal API for structured error reporting.  Updates
 | |
| made throughout the library but with no public API.
 | |
| </p>
 | |
| 
 | |
| <p>Internal API <code>raptor_new_sax2()</code> signature changed to
 | |
| just have an <code>error_handlers</code> pointer argument rather than
 | |
| multiple function / user_data pairs.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_14"><a name="rel1_4_14">Raptor 1.4.14 Changes</a></h2>
 | |
| 
 | |
| <h3>General Changes</h3>
 | |
| 
 | |
| <p>Added a 
 | |
| <a href="http://www.dajobe.org/2004/01/turtle/">Turtle Terse RDF Triple Language</a> serialiser by <a href="http://codeson.net/">Dave Robillard</a> based on the existing RDF/XML-Abbrev
 | |
| serialiser.
 | |
| </p>
 | |
| 
 | |
| <p>Added a GraphViz
 | |
| <a href="http://www.graphviz.org/doc/info/lang.html">DOT format</a> serialiser
 | |
| by Evan Nemerson.
 | |
| </p>
 | |
| 
 | |
| <p>The GRDDL parser now does namespace and profile URI recursion and
 | |
| has other improvements and fixes.
 | |
| </p>
 | |
| 
 | |
| <p>Fixed Issues:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=32">#0000032</a>: GRDDL indirection feature request</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=141">#0000141</a>: Crash when GRDDL parser is used with a used-generated blank node ID prefix.</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=143">#0000143</a>: Crash when GRDDL parser fails to retrieve URI.</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=148">#0000148</a>: A public function to generate a blank ID would be nice though.</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=155">#0000155</a>: entity processing in literal property elements (with libxml)</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=157">#0000157</a>: Crash when RDF/XML Abbrev serializer sees a <code>rdf:type</code> predicate with a literal object.</li>
 | |
| </ul>
 | |
| 
 | |
| <h3>Configuration Changes</h3>
 | |
| 
 | |
| <p><code>raptor-config</code> gains a <code>--private-libs</code>
 | |
| for the internal libraries used in building raptor, with the public
 | |
| ones only emitted with <code>--libs</code>.
 | |
| </p>
 | |
| 
 | |
| <p><code>raptor.pc</code> now uses <code>Libs.private</code> for
 | |
| internal dynamically linked libraries.
 | |
| </p>
 | |
| 
 | |
| <p>The libxml minimum version is now 2.6.8 since 2.6.7 crashes on
 | |
| PPC64 Linux.  2.6.8 was released March 2004 so this should be no
 | |
| burden.</p>
 | |
| 
 | |
| <p>Do not use <code>PATH_MAX</code> so raptor can build on Hurd.
 | |
| </p>
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>RDF/XML parser now looks for the RDF/XML root element and
 | |
| namespace declaration in the initial bytes of content when guessing.
 | |
| This allows content that is in other mime types such as
 | |
| <code>application/xml</code> to be more likely guessed as RDF/XML.
 | |
| </p>
 | |
| 
 | |
| <p>When guessing a parser to use, if an an exact match is found for
 | |
| the mime type (q=10), then that parser is used.
 | |
| </p>
 | |
| 
 | |
| <p>The GRDDL parser has several changes:</p>
 | |
| <ul>
 | |
|   <li>Recurses through the root element's namespace URI and the profile
 | |
|     URIs.  It excludes several common namespace URIs from processing
 | |
|     (XHTML, RDF/XML, XML Schema) and does not traverse the GRDDL profile
 | |
|     URI itself.
 | |
|   </li>
 | |
|   <li>Tries to guess which of the RDF/XML or Turtle parser is wanted
 | |
|     from an XSLT result.  Guessing is performed because not all the XSLT
 | |
|     sheets used in the demonstrations set the mime type to match Turtle's
 | |
|     unregistered type, or because the return no mime type, or return an
 | |
|     XML one, when it was expected RDF/XML would be received.
 | |
|   </li>
 | |
|   <li>Watches the processed URIs and never visits the same URI more
 | |
|     than once in a session.
 | |
|   </li>
 | |
|   <li>Passes on general XSLT errors to raptor rather than letting the
 | |
|     default (printing to stderr) work.
 | |
|   </li>
 | |
|   <li>Declares XSLT 'base' and 'Base' parameters to allow some XSLT
 | |
|     sheets to work - pragmatism.
 | |
|   </li>
 | |
| </ul>
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>Added a new
 | |
| <a href="http://www.dajobe.org/2004/01/turtle/">Turtle Terse RDF Triple Language</a>
 | |
| serializer and two new internal APIs based on the existing RDF/XML-Abbrev
 | |
| serialiser, written by <a href="http://codeson.net/">Dave Robillard</a>:
 | |
| </p>
 | |
| <ul>
 | |
|   <li><code>turtle_writer</code> for serializing triples to Turtle This
 | |
|     may be moved to the public API in a future release.</li>
 | |
|   <li><code>raptor_abbrev</code> for the common 'abbreviated
 | |
|     serializer' core that is shared between the RDF/XML-Abbrev and Turtle
 | |
|     serializer.</li>
 | |
| </ul>
 | |
| 
 | |
| <p>Added a new GraphViz
 | |
| <a href="http://www.graphviz.org/doc/info/lang.html">DOT format</a> serialiser
 | |
| writen by Evan Nemerson.
 | |
| </p>
 | |
| 
 | |
| <p>Note that testing the turtle serializing (<code>make test</code>)
 | |
| requires the <code>rdfdiff -u</code> and a few of the tests take some
 | |
| time to run.</p>
 | |
| 
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_home_url_string</code>
 | |
| and <code>raptor_license_string</code> exported strings.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_parser_generate_id()</code> as a public function
 | |
| to generate an identifier for a parser.
 | |
| </p>
 | |
| 
 | |
| <p><code>rdfdiff</code> gains the -u/--base-uri option to specify the
 | |
| from file base URI so that if the from file is a local file or
 | |
| relative URI, it can be given an absolute base.</p>
 | |
| 
 | |
| <p>Failures to retrieve content from a URI using
 | |
| the <code>raptor_www</code> class implementations now return a
 | |
| failure as well as setting the HTTP status code to 403 or 404 as
 | |
| appropriate.  Previously success may have been returned with no
 | |
| bytes.</p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_13"><a name="rel1_4_13">Raptor 1.4.13 Changes</a></h2>
 | |
| 
 | |
| <h3>General Changes</h3>
 | |
| 
 | |
| <p>Prevent losing memory for a <code>raptor_xml_writer</code> when a
 | |
| serializer is reused several times.</p>
 | |
| 
 | |
| <p>Fixed issues reported on the <a href="http://bugs.librdf.org/">Redland Issue Tracker</a>:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=134">Issue#0000134</a>: Check for equal scheme and authority during construction of relative URIs from two absolute URIs.</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>Configuration Changes</h3>
 | |
| 
 | |
| <p>In maintainer mode, add all the supported compiler <code>-W</code>
 | |
| warning flags to the CFLAGS.
 | |
| </p>
 | |
| 
 | |
| <p>Allow <code>LEX</code> to be set to things that aren't exactly
 | |
| 'flex'.</p>
 | |
| 
 | |
| <h3>Documentation Changes</h3>
 | |
| 
 | |
| <p>Added single triple serializing example to the tutorial to
 | |
| demonstrate serializing without parsing and building
 | |
| a <code>raptor_statement</code>.</p>
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| 
 | |
| <p>Declare several raptor functions with GCC printf-formatting
 | |
| attributes when using a new enough GCC.</p>
 | |
| 
 | |
| <p>RDF/XML parser now creates literals with
 | |
| <code>raptor_stringbuffer</code> so that it does a lot less copying
 | |
| when constructing longer literals.
 | |
| </p>
 | |
| 
 | |
| <p>Added single <code>raptor_statement</code> serializing example
 | |
| to demonstrate serializing alone without parsing.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_12"><a name="rel1_4_12">Raptor 1.4.12 Changes</a></h2>
 | |
| 
 | |
| <p>Restored the order of serialized syntaxes back to the same as in
 | |
| Raptor 1.4.10 which Redland was relying on - asking to serialize to
 | |
| mime type 'application/rdf+xml' without specifying a parser name in
 | |
| Redland with Raptor 1.4.11 wrote it in XMP instead of RDF/XML as
 | |
| it used to.  This happened more often with language bindings.
 | |
| That problem will be fixed in a future release of Redland but for now,
 | |
| this stops wierd things like that happening.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_11"><a name="rel1_4_11">Raptor 1.4.11 Changes</a></h2>
 | |
| 
 | |
| <h3>General Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_get_feature_count()</code> to return
 | |
| the count of features, in preference to using the
 | |
| macro value <code>RAPTOR_FEATURE_LAST</code>.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_www_set_uri_filter()</code> method of the
 | |
| WWW class (<code>raptor_www</code>) objects to have an
 | |
| optional URI filter function that checks if the URL given is
 | |
| allowed to be retrieved, or denied entirely.
 | |
| </p>
 | |
| 
 | |
| <p>Fixed issues reported on the <a href="http://bugs.librdf.org/">Redland Issue Tracker</a>:</p>
 | |
| <ul>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000112">#0000112</a>: raptor_namespaces_qname_from_uri not public API?</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000110">#0000110</a>: strcasecmp problem under windows (raptor_rss.c does not compile)</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000091">#0000091</a>: guess parser should guess the syntax each time it is run, not be fixed</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000089">#0000089</a>: Add a NONET feature to prevent network fetches</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000041">#0000041</a>: Allow multiple transformation URLs in data-view:transformation property</li>
 | |
|   <li><a href="http://bugs.librdf.org/mantis/view.php?id=0000014">#0000014</a>: bNode content written twice in rdfxml-abbrev output mode</li>
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <h3>Documentation Changes</h3>
 | |
| 
 | |
| <p>The
 | |
| <a href="http://librdf.org/raptor/api/">Raptor Reference Manual</a>
 | |
| now includes descriptions of all the parsers and serializers and the
 | |
| tutorial has a new section describing how to filter URIs and deny
 | |
| network requests.</p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>Added functionality to prevent network requests either via setting
 | |
| a new feature <code>RAPTOR_FEATURE_NO_NET</code> that denies network
 | |
| requests during a parser operation or with a URI filter function
 | |
| <code>raptor_parser_set_uri_filter()</code>.  This function uses
 | |
| <code>raptor_www_set_uri_filter()</code> internally.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_get_need_base_uri()</code> to tell if a parser
 | |
| requires a base URI argument. Presently the <em>N-Triples</em> parser
 | |
| is the only parser that does not require a base URI.
 | |
| <code>raptor_start_parse()</code> will now throw an error if no base
 | |
| URI is given and it is needed.
 | |
| </p>
 | |
| 
 | |
| <p>The <em>GRDDL parser</em> was changed to
 | |
| handle a list of URIs in the profile so it now
 | |
| can support <code>dataview:transformation</code> in XML taking a list
 | |
| of transformations as defined in
 | |
| <a href="http://www.w3.org/2004/01/rdxh/spec#grddl-xhtml">The GRDDL profile for XHTML</a> part of the GRDDL specification.
 | |
| It now also recognises
 | |
| <a href="http://research.talis.com/2005/erdf/wiki/Main/RdfInHtml">Embedded RDF</a> and
 | |
| <a href="http://microformats.org/wiki/hcalendar">HCalendar</a>
 | |
| using well known XPaths and transforms them to RDF triples using well
 | |
| known XSLT sheet URIs.
 | |
| </p>
 | |
| 
 | |
| <p>The <em>Guess parser</em> now resets after each parse and does a
 | |
| fresh guess on the syntax based on the incoming information.
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=91">Issue#0000091</a>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <p>The <em>Turtle parser </em> (and experimental N3 parser) were
 | |
| changed to now require base URIs as they always should have.  The
 | |
| error messages when reporting problems with grammar tokens now return
 | |
| better responses.  Added better memory cleanup during parser error
 | |
| recovery.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>The <em>RSS 1.0 Serializer</em> now works again.</p>
 | |
| 
 | |
| <p>Updated the <em>RDF/XML Abbreviated</em> serializer to do proper
 | |
| reference counting on the blank/resource nodes used as subjects and
 | |
| objects to prevent dual-triple generation.  Fixes the reported
 | |
| <a href="http://bugs.librdf.org/mantis/view.php?id=14">Issue#0000014</a>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p>The internal SAX2 API can also prevent network fetches with the
 | |
| feature <code>RAPTOR_FEATURE_NO_NET</code>.</p>
 | |
| 
 | |
| <p>Fixed a SAX2 problem that caused parsers that use it to leak
 | |
| memory for 1 URI, affected RDF/XML and RSS Tag Soup.
 | |
| </p>
 | |
| 
 | |
| <p><code>rapper</code> help and verbose message formats were tidied.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_10"><a name="rel1_4_10">Raptor 1.4.10 Changes</a></h2>
 | |
| 
 | |
| <h3>General Changes</h3>
 | |
| 
 | |
| <p>No parser will now generate a triple with an identifier type
 | |
| <code>RAPTOR_IDENTIFIER_TYPE_ORDINAL</code>.  Only identifier type
 | |
| resource, anonymous (blank node) and literal will be generated.
 | |
| All serializers will convert any
 | |
| <code>RAPTOR_IDENTIFIER_TYPE_ORDINAL</code> type on input to type
 | |
| resource.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Configuration Changes</h3>
 | |
| 
 | |
| <p>No longer adds LDFLAGS to pkgconfig file <code>raptor.pc</code>
 | |
| and <code>raptor-config</code> fixing
 | |
| <a href="http://bugs.librdf.org/mantis/view.php?id=97">Issue#0000097</a>.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>All parsers no longer generate a triple with an identifier type
 | |
| <code>RAPTOR_IDENTIFIER_TYPE_ORDINAL</code>, as deprecated in 1.4.8.
 | |
| The replacement type generated is <code>RAPTOR_IDENTIFIER_TYPE_RESOURCE</code>.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <p>The RSS Tag Soup (<code>rss-tag-soup</code>) parser now makes the
 | |
| triples appear before parser destruction. This caused odd symptoms
 | |
| like parsing in python returning no triples and the parser then
 | |
| crashing during object destruction.
 | |
| </p>
 | |
| 
 | |
| <p>The RDF/XML (<code>rdfxml</code>) parser no longer crashes if a
 | |
| comment is seen outside an element, such as before or after the root
 | |
| element.</p>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>The RDF/XML (<code>rdfxml</code>) serializer no longer crashes if
 | |
| the serializer is used more than once.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_9"><a name="rel1_4_9">Raptor 1.4.9 Changes</a></h2>
 | |
| 
 | |
| <h3>Configuration and Build Changes</h3>
 | |
| 
 | |
| <p>Now using <a href="http://subversion.tigris.org/">Subversion</a>
 | |
| for version control and the <a href="INSTALL.html">Raptor installation instructions</a> explain how to get Raptor from Subversion.</p>
 | |
| 
 | |
| <p>configure now allows <code>--enable-parsers=node</code> and
 | |
| <code>--enable-serializers=none</code>.  Using both is possible!</p>
 | |
| 
 | |
| <p>No longer require libxml2 for the RSS Tag Soup parser</p>
 | |
| 
 | |
| <p>Various Win32 fixes and VC build files updates from John Barstow.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Documentation Changes</h3>
 | |
| 
 | |
| <p>A new 
 | |
| <a href="http://librdf.org/raptor/api/tutorial.html">Raptor Tutorial</a>
 | |
| was written covering using all parsing and serializing functions along with
 | |
| example code.
 | |
| </p>
 | |
| 
 | |
| <p>The
 | |
| <a href="http://librdf.org/raptor/api/reference-manual.html">Raptor Reference Manual</a> 
 | |
| now covers 100% of all functions, structs and defines with gtkdoc generated
 | |
| documentation.</p>
 | |
| 
 | |
| 
 | |
| <h3><code>rapper</code> utility Changes</h3>
 | |
| 
 | |
| <p><code>rapper</code> now uses namespaces found in parsing to give
 | |
| hints to the serializer as to how to format the output.  The result
 | |
| of this is that <code>rapper</code> can be used as an RDF
 | |
| pretty-printer and is especially good at such things as turning flat
 | |
| N-Triples to RDF/XML or RDF/XML-Abbrev. such as:
 | |
| </p>
 | |
| <pre>
 | |
| rapper -q -i ntriples -o rdfxml-abbrev example.nt
 | |
| </pre>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>All parsers no longer generate
 | |
| <code>RAPTOR_IDENTIFIER_TYPE_PREDICATE</code> as the statement
 | |
| predicate type, as deprecated in 1.4.8.  The replacement
 | |
| type generated is <code>RAPTOR_IDENTIFIER_TYPE_RESOURCE</code>.</p>
 | |
| 
 | |
| <p>The Turtle parser now has <code>true</code> and <code>false</code>
 | |
| boolean literals, which were accidently omiited from the parser in
 | |
| the 1.4.8 update.
 | |
| </p>
 | |
| 
 | |
| <p>Parsers can register capabilities for handling multiple mime types
 | |
| with Q values.  These are then used in WWW requests for content
 | |
| in the <code>Accept:</code> header for HTTP.  Added
 | |
| <code>raptor_parser_factory_add_mime_type</code> for registering,
 | |
| <code>raptor_parser_get_accept_header</code> to get the accept header
 | |
| values for the types supported by one parser.
 | |
| </p>
 | |
| 
 | |
| <p>From the previous change, the RSS parser now accepts several
 | |
| unregistered RSS mime types as well as the registered Atom one; the
 | |
| RDF/XML parser accepts unregistered mime type <code>text/rdf</code>
 | |
| seen occasionally; the Turtle parser accepts several experimental
 | |
| mime types.  All unregistered or experimental types are accepted with
 | |
| lower Q than any registered type.
 | |
| </p>
 | |
| 
 | |
| <p>The RSS Tag Soup parser for RSS* and Atom no longer requires
 | |
| libxml2 (for it's XML Reader API).  Internal changes mean that it
 | |
| will fully work on top of expat.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>The RSS/Atom serializer now uses input namespace declarations to
 | |
| choose namespaces on output.</p>
 | |
| 
 | |
| <p>Added <code>raptor_serialize_set_namespace_from_namespace</code>
 | |
| to set a namespace for serializing from an existing
 | |
| <code>raptor_namespace</code>.
 | |
| </p>
 | |
| 
 | |
| <p>Serializing to RDF/XML (or RDF/XML Abbrev) now does not
 | |
| double-free URI strings.
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=65">Issue#0000065</a>
 | |
| </p>
 | |
| 
 | |
| <p>RSS serializer no longer writes the XML header twice.</p>
 | |
| 
 | |
| 
 | |
| <h3>IOStream Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_iostream_write_uri</code> to directly write a URI
 | |
| to an iostream without the need to go via a string.</p>
 | |
| 
 | |
| <p>Fixed bug in <code>raptor_iostream_write_xml_any_escaped_string</code>
 | |
| failing to write ';' after escaping U+0009 and U+000A</p>
 | |
| 
 | |
| 
 | |
| <h3>Namespaces Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_namespaces_qname_from_uri</code> to do URI
 | |
| splitting into qname prefering to use the current in-scope namespaces
 | |
| before having to search.</p>
 | |
| 
 | |
| <p><code>raptor_namespaces_format</code> now NULL-terminates the namespace string.
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=62">Issue#0000062</a>
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_namespace_get_counted_prefix</code> to return a
 | |
| namespace prefix and it's length.</p>
 | |
| 
 | |
| 
 | |
| <h3>QName Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_qname_get_namespace</code> to get the namespace
 | |
| associated with a QName.</p>
 | |
| 
 | |
| 
 | |
| <h3>StringBuffer Class Changes</h3>
 | |
| 
 | |
| <p><code>raptor_stringbuffer_append_counted_string</code> and
 | |
| <code>raptor_stringbuffer_append_string</code> now Do nothing on
 | |
| appending a NULL string or a string of length 0.
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=73">Issue#0000073</a>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Unicode Class Changes</h3>
 | |
| 
 | |
| <p><code>raptor_utf8_to_unicode_char</code> now also checks for
 | |
| overlong UTF-8 sequences, illegal code positions or out of range
 | |
| codes.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>URI Class Changes</h3>
 | |
| 
 | |
| <p>Deprecated <code>raptor_uri_is_file_uri</code> which takes a
 | |
| URI string argument for new function <code>raptor_uri_string_is_file_uri</code>
 | |
| which more clearly says that.
 | |
| </p>
 | |
| 
 | |
| <p>Changed all URI string calloc/mallocs to add enough room for a
 | |
| full pointer at the string end to stop valgrind moaning on 64bit
 | |
| systems when looking for the end of string NUL.
 | |
| </p>
 | |
| 
 | |
| <p><code>raptor_uri_set_handler</code> and
 | |
| <code>raptor_new_iostream_from_handler</code> now take const
 | |
| <em>handler</em> arguments.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>WWW Class Changes</h3>
 | |
| 
 | |
| <p>Get the curl success status into a long, not an int which causes
 | |
| failure on 64 bit.
 | |
| Fixes <a href="http://bugs.librdf.org/mantis/view.php?id=75">Issue#0000075</a>
 | |
| </p>
 | |
| 
 | |
| <p>WWW requests for content to parse now always send an appropriate
 | |
| <code>Accept:</code> header with Q values for the parser, or for the
 | |
| <code>guess</code> parser, all supported mime types.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Internal Changes</h3>
 | |
| 
 | |
| <p>Added XML element methods
 | |
| <code>raptor_xml_element_get_attributes</code> and
 | |
| <code>raptor_xml_element_get_attributes_count</code>,
 | |
| <code>raptor_xml_element_is_empty</code>
 | |
| to the SAX2 API.
 | |
| </p>
 | |
| 
 | |
| <p>Many internal changes were made to the SAX2 API to finally
 | |
| separate XML and RDF/XML parts.  The SAX2 API is now fully usable on
 | |
| either libxml2 or expat.  That last sentence implies a lot of work,
 | |
| by the way.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_8"><a name="rel1_4_8">Raptor 1.4.8 Changes</a></h2>
 | |
| 
 | |
| <h3>General Changes</h3>
 | |
| 
 | |
| <p>A large source re-arrangement was performed.  All C sources and
 | |
| headers that build the library are now in the src dir, general
 | |
| documentation in the doc dir and utilities in the utils dir.  This
 | |
| both tidied up the mixture of files at the top level and also enabled
 | |
| better use with gtk-doc.
 | |
| </p>
 | |
| 
 | |
| <p>Future API change: From the next release of
 | |
| Raptor, <code>raptor_statement</code> predicates will return
 | |
| identifiers of type <code>RAPTOR_IDENTIFIER_TYPE_RESOURCE</code>
 | |
| instead of <code>RAPTOR_IDENTIFIER_TYPE_PREDICATE</code>.
 | |
| Identifiers of type <code>RAPTOR_IDENTIFIER_TYPE_ORDINAL</code> may
 | |
| no longer be returned in any statement position (to be confirmed).
 | |
| </p>
 | |
| 
 | |
| <p>Version Control change: Raptor will be switching to use
 | |
| <a href="http://subversion.tigris.org/">Subversion</a>
 | |
| for version control after the 1.4.8 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/raptor/INSTALL.html">Raptor installation notes</a>
 | |
| for the raptor specific subversion installation information.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h3>Configuration Changes</h3>
 | |
| 
 | |
| <p>The autogen.sh script for building from CVS was revamped to be
 | |
| more modular.</p>
 | |
| 
 | |
| <p><code>configure</code> now takes an <code>--enable-gtk-doc</code>
 | |
| option to enable building of the documentation using the
 | |
| <code>gtk-doc</code> utility.  It is by default enabled only if the
 | |
| utility is available.
 | |
| </p>
 | |
| 
 | |
| <p>Added a new configure option <code>--enable-serializers</code> (in
 | |
| 1.4.7) to allow the selection of the required RDF serializers from
 | |
| any of those supported.</p>
 | |
| 
 | |
| <p><code>raptor-config</code> now has a <code>--options</code>
 | |
| argument to list the configured or discovered options of the library
 | |
| such as parsers, serializers and other choices.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Documentation Changes</h3>
 | |
| 
 | |
| <p>The GNOME <code>gtk-doc</code> program is now used to
 | |
| automatically extract documentation from source comments into
 | |
| reference documentation.  This is then merged with templates and
 | |
| additional documentation to provide a reference manual for raptor
 | |
| as XML document which is turned into HTML along with GNOME devhelp
 | |
| support.</p>
 | |
| 
 | |
| <p>This new documentation intended to replace the libraptor manual
 | |
| page/web page as easier to read document with scope for better
 | |
| expanding with more detail of raptor including examples and tutorial
 | |
| information.  The manual page will continue to contain the summary
 | |
| information for the present.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Portability Changes</h3>
 | |
| 
 | |
| <p>Fixed a long-standing URI resolution bug on win32 - only remove
 | |
| leading / if there is one present (patch from John C. Barstow)</p>
 | |
| 
 | |
| 
 | |
| <h3><code>rapper</code> utility Changes</h3>
 | |
| 
 | |
| <p>Altered the <code>-g</code> argument to invoke the guessing parser
 | |
| rather than guess on file/URI name alone.  This is now equivalent to
 | |
| choosing an input syntax of <em>guess</em> with <code>-i guess</code>.</p>
 | |
| 
 | |
| <p>Added a <code>--show-namespaces</code> long option (no short version)
 | |
| to show namespaces that are declared in the parsed content.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>A new guessing parser was added, picking the actual parser to use
 | |
| at run-time based on protocol or other information.</p>
 | |
| 
 | |
| <p>Allow a content type returned by a protocol (such as HTTP) to
 | |
| enable choosing of parser at run-time.  Added a new optional
 | |
| parser factory method <code>content_type_handler</code> to return this.
 | |
| </p>
 | |
| 
 | |
| <p>Allow parsers to handle several syntaxes rather than only 1 or 2.
 | |
| </p>
 | |
| 
 | |
| <p>Parsers can now return namespace prefix/URI declarations as
 | |
| they are given in the content by the means of a new handler type
 | |
| <code>raptor_namespace_handler</code> and parser method
 | |
| <code>raptor_set_namespace_handler</code>.  Duplicate namespace
 | |
| prefix/URIs can be returned.
 | |
| </p>
 | |
| 
 | |
| <h4>GRDDL Parser Changes</h4>
 | |
| 
 | |
| <p>Bug fix when the entire content is in one chunk (René Puls).</p>
 | |
| 
 | |
| <h4>Guessing Parser Changes</h4>
 | |
| 
 | |
| <p>A new parser that guesses the actual parser to use at run-time
 | |
| based on a combination of MIME Content-Type, file or URI name and in
 | |
| future, iniital bytes of the content.  If the Content-Type is an
 | |
| exact match to a known parser, it is always chosen before trying
 | |
| heuristics.
 | |
| </p>
 | |
| 
 | |
| <h4>RDF/XML Parser Changes</h4>
 | |
| 
 | |
| <p>When emitting literals, handle a datatyped empty literal.  This
 | |
| is a post-REC errata for the revised RDF/XML recommendation.
 | |
| See
 | |
| <a href="http://lists.w3.org/Archives/Public/www-archive/2005Jul/0017.html">archived example</a>
 | |
| for further information.
 | |
| </p>
 | |
| 
 | |
| <h4>RSS Tag Soup Parser Changes</h4>
 | |
| 
 | |
| <p>Added atom 1.0 support including use of the new namespace.  Atom
 | |
| 0.3 namespace terms are turned into new properties.  Replace atom
 | |
| copies of Dublin Core or RSS properties with the original terms:
 | |
| </p>
 | |
| <div style="text-align:center">
 | |
| <table>
 | |
| <tr><th>Atom 1.0 term</th>               <th>Original term</th></tr>
 | |
| <tr><td><code>atom:content</code></td>   <td><code>rss:description</code></td></tr>
 | |
| <tr><td><code>atom:id</code></td>        <td><code>rss:link</code></td></tr>
 | |
| <tr><td><code>atom:published</code></td> <td><code>dc:date</code></td></tr>
 | |
| <tr><td><code>atom:rights</code></td>    <td><code>dc:rights</code></td></tr>
 | |
| <tr><td><code>atom:title</code></td>     <td><code>rss:title</code></td></tr>
 | |
| </table>
 | |
| </div>
 | |
| 
 | |
| <p>Apply the in-scope base URI (such as from <code>xml:base</code>)
 | |
| to atom 1.0 fields that take URI values:
 | |
| <code>atom:id</code>, <code>atom:icon</code> and <code>atom:logo</code>.
 | |
| </p>
 | |
| 
 | |
| <p>Added optional date parsing code to turn XML RSS date fields into
 | |
| ISO format ones, suitable for Atom and XML schema datatypes format.
 | |
| Will use library parsedate code from curl or INN if available.
 | |
| </p>
 | |
| 
 | |
| <p>XML RSS field <code>pubDate</code> is now turned into Dublin Core
 | |
| <code>dc:date</code> field in the ISO format.
 | |
| </p>
 | |
| 
 | |
| <p>XML RSS field <code>content</code> is turned into
 | |
| <code>content:encoded</code> in RDF triples on output with
 | |
| escaping.</p>
 | |
| 
 | |
| <h4>Turtle Parser Changes</h4>
 | |
| 
 | |
| <p>Updated to support Turtle version 2006-01-02
 | |
| (<a href="http://www.dajobe.org/2004/01/turtle/">announcement</a>).
 | |
| </p>
 | |
| 
 | |
| <p>Switch qname, blank node and prefix definitions to SPARQL ones.</p>
 | |
| 
 | |
| <p>Check for illegal not-hexadecimal \u and \U escape values.</p>
 | |
| 
 | |
| <p>Fix greedy matching of long literals ("""....""") that ended on
 | |
| the last """ found rather than the first.</p> <!-- """ -->
 | |
| 
 | |
| <p>Added double and decimal constants.</p>
 | |
| 
 | |
| <p>Added optional +- sign to all numeric constants.</p>
 | |
| 
 | |
| <p>Allow \" escape inside long strings.</p>
 | |
| 
 | |
| <p>Take care to reset the generated <code>raptor_statement</code>
 | |
| language and datatype fields when not used.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>Added a new Atom 1.0 serializer (name <em>atom</em>)
 | |
| by parameterising the RSS 1.0 serializer.
 | |
| </p>
 | |
| 
 | |
| <p>Added a new Adobe XMP compatible serializer (name <em>rdfxml-xmp</em>)
 | |
| by parameterising the RDF/XML Abbreviated serializer.  Patch provided by
 | |
| Sid Steward.
 | |
| </p>
 | |
| 
 | |
| <p>All serializers can be chosen at <code>configure</code> time from
 | |
| those available using configure option <code>--enable-serializers</code>.
 | |
| </p>
 | |
| 
 | |
| <p>The RSS parser and serializer can now be independently enabled or
 | |
| disabled.  The RSS serializer no longer requires an XML parser.</p>
 | |
| 
 | |
| 
 | |
| <h3>RDF/XML Serializer / XML Writer Changes</h3>
 | |
| 
 | |
| <p>A new XML Writer feature
 | |
| <code>RAPTOR_FEATURE_WRITER_XML_VERSION</code> was added to allow
 | |
| chosing XML 1.0 (value 10) or XML 1.1 output (value 11).  This
 | |
| feature is also accepted by serializers as an option and used by the
 | |
| RDF/XML and RDF/XML-Abbrev serializers.
 | |
| </p>
 | |
| 
 | |
| <p>A new XML Writer feature
 | |
| <code>RAPTOR_FEATURE_WRITER_XML_DECLARATION</code> was added to allow
 | |
| omitting the XML declaration (default true).
 | |
| </p>
 | |
| 
 | |
| <p>Added functions <code>raptor_xml_any_escape_string()</code>
 | |
| and <code>raptor_iostream_write_xml_any_escaped_string()</code>
 | |
| which take an XML version.  The XML 1.0 functions give errors
 | |
| when attempting to write #x1-#x1f (excluding #x9, #xA, #xD) or #x7F.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Atom 1.0 Serializer Changes</h3>
 | |
| 
 | |
| <p>Added a new serializer using the Atom 1.0 format and namespace.
 | |
| This reads RDF triples in the RSS 1.0 model, along with any
 | |
| additional atom 1.0 properties and serializes an Atom 1.0 feed
 | |
| file.</p>
 | |
| 
 | |
| 
 | |
| <h3>Adobe XMP Serializer Changes</h3>
 | |
| 
 | |
| <p>Added a new serializer writing RDF/XML in the profile used by
 | |
| Adobe XMP.  Note that this does require RDF triples to be used in a
 | |
| certain style; for example all triple subjects are the "current
 | |
| documment" giving <code>rdf:about=""</code>.</p>
 | |
| 
 | |
| 
 | |
| <h3>URI Class Changes</h3>
 | |
| 
 | |
| <p>Fix a bug when adding a default path of / to a URI
 | |
| in functions <code>raptor_new_uri_for_xmlbase()</code>
 | |
| and <code>raptor_new_uri_for_retrieval()</code>.
 | |
| (Bug #<a href="http://bugs.librdf.org/mantis/view.php?id=45">0000045</a>)
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <p><em>raptor_uri_equals</em> was altered to accept NULL pointers,
 | |
| which do not compare equal to a non-NULL URI.  NULL does equal NULL.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Internal Changes</h3>
 | |
| 
 | |
| <p>The internal SAX2 class was extensively changed so that remaining
 | |
| interdependencies with the RDF/XML parser were removed and it can now
 | |
| be re-used for other syntaxes cleanly.  Several functions
 | |
| were modified or added.</p>
 | |
| 
 | |
| <p>Removed old and hardly-tested internal support for XML entity
 | |
| resolution (libxml only).</p>
 | |
| 
 | |
| <p>Various fixes for GCC 4 warnings.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_7"><a name="rel1_4_7">Raptor 1.4.7 Changes</a></h2>
 | |
| 
 | |
| <p>Fix a couple of crashes in the RSS tag soup parser / serializer
 | |
| (Dave Beckett, Suzan Foster).</p>
 | |
| 
 | |
| <p><code>configure</code> now looks for the
 | |
| <code>libxslt/xslt.h</code> header as well as the
 | |
| <code>libxslt</code> library and disables XSLT and GRDDL support it
 | |
| if is missing.  This catches systems with the libraries without
 | |
| headers as has happened on some OSX versions.
 | |
| </p>
 | |
| 
 | |
| <p>In serializers rdfxml and rdfxml-abbrev, report failure to
 | |
| serialize to RDF/XML if the predicate URI is not absolute.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_6"><a name="rel1_4_6">Raptor 1.4.6 Changes</a></h2>
 | |
| 
 | |
| <p>Added <code>--with-xslt-config</code> configure option</p>
 | |
| 
 | |
| <p>Added a new parser for
 | |
| <a href="http://www.w3.org/2004/01/rdxh/spec">Gleaning Resource Descriptions from Dialects of Languages (GRDDL)</a>
 | |
| which allows reading XHTML and XML as RDF triples by using profiles
 | |
| in the document that declare XSLT transforms from the XHTML/XML
 | |
| content into RDF/XML which is the RDF content.  It does not
 | |
| support all the GRDDL styles, for example
 | |
| <code>dataview:namespaceTransformation</code>,
 | |
| or perform recursive transformations.
 | |
| </p>
 | |
| 
 | |
| <p>The turtle parser now accepts """long literals"""</p> 
 | |
| 
 | |
| <p>XML writer feature support were added in 1.4.5 and not documented.
 | |
| The new functions are:
 | |
| <code>raptor_xml_writer_features_enumerate</code>,
 | |
| <code>raptor_xml_writer_set_feature</code>,
 | |
| <code>raptor_xml_writer_set_feature_string</code>,
 | |
| <code>raptor_xml_writer_get_feature</code> and
 | |
| <code>raptor_xml_writer_get_feature_string</code>.
 | |
| The three XML writer features added are
 | |
| \fBRAPTOR_FEATURE_WRITER_AUTO_INDENT\fR with boolean value (default true)
 | |
| to auto-indent the XML,
 | |
| \fBRAPTOR_FEATURE_WRITER_AUTO_EMPTY\fR with boolean value (default true)
 | |
| to automatically generate empty elements if a start/end element sequence
 | |
| has no content and
 | |
| \fBRAPTOR_FEATURE_WRITER_INDENT_WIDTH\fR with an integer value (default 2)
 | |
| to set the indenting level for the XML.
 | |
| </p>
 | |
| 
 | |
| <p>New build configuration and portability fixes for win32 (John Barstow)</p>
 | |
| 
 | |
| <p>Portability fixes for win32 - added
 | |
| <code>SIZEOF_UNSIGNED_SHORT</code> (Dave Viner, others)</p>
 | |
| 
 | |
| <p>Added a signing memory debugging system to aid checking when
 | |
| raptor-allocated memory is freed in another library or vice-versa
 | |
| enabled by <code>--with-memory-signing</code> configure option
 | |
| (defaults to on in maintainer mode).</p>
 | |
| 
 | |
| <p>Fixed a few internal malloc/frees to use RAPTOR_MALLOC / RAPTOR_FREE
 | |
| so that the above signed memory system worked.</p>
 | |
| 
 | |
| <p>RDF/XML serializer:
 | |
| Use the maximal name when splitting a predicate.<br />
 | |
| Turn datatyped literals that are rdf:XMLLiteral into inline XML with
 | |
| <code>rdf:parseType="Literal"</code> rather than XML-escaped.
 | |
| </p>
 | |
| 
 | |
| <p>RDF/XML abbreviated serializer:
 | |
| Fix a crash when there is a NULL base URI.
 | |
| Use the maximal name when splitting a predicate.<br />
 | |
| Turn datatyped literals that are rdf:XMLLiteral into inline XML with
 | |
| <code>rdf:parseType="Literal"</code> rather than XML-escaped.
 | |
| </p>
 | |
| 
 | |
| <p>RSS tag soup parser:
 | |
| Fix crash with unexpected use of <code>alternate</code> attribute.<br />
 | |
| Update from Suzan Foster to reflect the latest status of the
 | |
| enclosure vocabulary and allow multiple common items and fields.
 | |
| </p>
 | |
| 
 | |
| <p>RSS 1.0 serializer:
 | |
| Added RSS enclosures serializing.
 | |
| </p>
 | |
| 
 | |
| <p><code>grapper</code> example GTK program now stores the window
 | |
| width and height using gconf2.</p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_5"><a name="rel1_4_5">Raptor 1.4.5 Changes</a></h2>
 | |
| 
 | |
| <p>Added a new <em>RDF/XML with abbreviations</em> serializer
 | |
| <code>rdfxml-abbrev</code> written by Steve Shepard which handles
 | |
| several of the abbreviations specified by the
 | |
| <a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML Syntax Specification (Revised)</a>
 | |
| W3C Recommendation.  It is suitable for writing small documents as
 | |
| there are known scaling issues.
 | |
| </p>
 | |
| 
 | |
| <p>The RSS tag soup parser was updated to work better when there is
 | |
| no base URI given.  It also now supports reading the 
 | |
| <a href="http://inamidst.com/rss1.1/">RSS 1.1</a> format and
 | |
| turning it into RSS 1.0 model triples.</p>
 | |
| 
 | |
| <p>Deprecated <code>raptor_ntriples_string_as_utf8_string</code> as
 | |
| rather too internal to be useful, since it only works with a parser.
 | |
| </p>
 | |
| 
 | |
| <p>More fixes to work around the broken libxml2 on Apple OSX 10.3.x
 | |
| with inconsistent shared libraries / headers.</p>
 | |
| 
 | |
| <p>Experimental and incomplete Notation 3 parser - updated to match
 | |
| changes to Turtle.  CVS changes only, not enabled in standard builds.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_4"><a name="rel1_4_4">Raptor 1.4.4 Changes</a></h2>
 | |
| 
 | |
| <p>Make the RSS tag soup parser handle RSS 0.9 namespace elements by
 | |
| turning them into RSS 1.0.</p>
 | |
| 
 | |
| <p>Fix a couple of crashes in the RSS 1.0 serialiser when
 | |
| no base URI is used.</p>
 | |
| 
 | |
| <p>Make <code>raptor_uri_to_relative_counted_uri_string</code>
 | |
| work when the base or reference URI have no paths such as like
 | |
| <em>http://example.org</em>
 | |
| </p>
 | |
| 
 | |
| <p>Added portability fixes for Win32 to get Raptor 1.4.3 building
 | |
| with MS Visual Studio using expat and libcurl.  The RAPTOR_INTERNAL
 | |
| define was moved to the build configuration and defines added for
 | |
| integral type sizes.  Patch from Dave Viner (dviner at apache dot
 | |
| org).</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_3"><a name="rel1_4_3">Raptor 1.4.3 Changes</a></h2>
 | |
| 
 | |
| <p>A release with the major new feature of an XML writer API.
 | |
| This is now used along with a new supporting XML element class to
 | |
| improve the existing RDF/XML serializer and to provide a new
 | |
| <a href="http://purl.org/rss/1.0/spec">RSS 1.0</a> serializer.
 | |
| </p>
 | |
| 
 | |
| <p>This API it is also used by the next release of
 | |
| <a href="http://librdf.org/rasqal/">Rasqal</a> to provide serializing
 | |
| of query results to XML.
 | |
| </p>
 | |
| 
 | |
| <p>The new <code>raptor_xml_writer</code> class functions added are:
 | |
| <code>raptor_new_xml_writer</code> (constructor),
 | |
| <code>raptor_free_xml_writer</code> (destructor),
 | |
| <code>raptor_xml_writer_empty_element</code>,
 | |
| <code>raptor_xml_writer_start_element</code>,
 | |
| <code>raptor_xml_writer_end_element</code>,
 | |
| <code>raptor_xml_writer_cdata</code>,
 | |
| <code>raptor_xml_writer_cdata_counted</code>,
 | |
| <code>raptor_xml_writer_raw</code>,
 | |
| <code>raptor_xml_writer_raw_counted</code>,
 | |
| <code>raptor_xml_writer_comment</code> and
 | |
| <code>raptor_xml_writer_comment_counted</code>.
 | |
| </p>
 | |
| 
 | |
| <p>The new <code>raptor_xml_element</code> class functions added are:
 | |
| <code>raptor_new_xml_element</code> (constructor),
 | |
| <code>raptor_free_xml_element</code> (destructor),
 | |
| <code>raptor_xml_element_get_name</code>,
 | |
| <code>raptor_xml_element_set_attributes</code>,
 | |
| <code>raptor_xml_element_declare_namespace</code> and
 | |
| <code>raptor_iostream_write_xml_element</code>.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>RSS tag soup parser now works with older libxml2s (2.5.10+),
 | |
| including the one shipped with some Apple OSX versions that has an
 | |
| inconsistent header file and library.</p>
 | |
| 
 | |
| <p>RSS tag soup parser recognises/scores more common XML RSS file names.</p>
 | |
| 
 | |
| <p>RSS tag soup parser turns XML RSS
 | |
| <code><guid isPermaLink="true">val</guid></code>
 | |
| into RDF/XML form <code><guid rdf:resource="val"/></code>, leaving
 | |
| the non isPermaLink form to be a literal value.</p>
 | |
| 
 | |
| <p>A bug was found in libxml2 that causes double expanding of XML
 | |
| entities in RDF/XML.  This has been reported but cannot be worked
 | |
| around from raptor.  The expat XML parser can be used as an
 | |
| alternative, as it does not have this problem.  A test was added for
 | |
| this bug but it will not cause the test suite ('make check') to
 | |
| fail.</p>
 | |
| 
 | |
| <p>Added additional 
 | |
| <a href="http://www.dajobe.org/2004/01/turtle/">Turtle</a>
 | |
| parser tests that cover Notation 3 syntax that is not part of the
 | |
| Turtle language.</p>
 | |
| 
 | |
| <p>Added
 | |
| <code>raptor_parser_set_feature_string</code> and
 | |
| <code>raptor_parser_get_feature_string</code>
 | |
| methods to set/get string feature values.</p>
 | |
| 
 | |
| 
 | |
| <h3>Serializer Changes</h3>
 | |
| 
 | |
| <p>Added feature <code>relative_uris</code> for serializers.  This
 | |
| is used by the RDF/XML serializer and enabled by default.</p>
 | |
| 
 | |
| <p>Added feature <code>start_uri</code> for serializers with a string
 | |
| value to set the start URI for serializing.  Not used at present.</p>
 | |
| 
 | |
| <p>Added new methods <code>raptor_serializer_features_enumerate</code>
 | |
| to list serializer features and functions to set/get serializer
 | |
| feature integer or strings values:
 | |
| <code>raptor_serializer_set_feature</code>,
 | |
| <code>raptor_serializer_get_feature</code>,
 | |
| <code>raptor_serializer_set_feature_string</code> and
 | |
| <code>raptor_serializer_get_feature_string</code>.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_serialize_set_namespace</code> to allow user
 | |
| declaration of prefix/URI namespaces pairs as serializing hints.</p>
 | |
| 
 | |
| <p>the RDF/XML serializer was improved using the new XML Writer class
 | |
| so it now uses any user-declared namespace hints in it's output and
 | |
| emits relative URIs whenever possible.  The latter was provided
 | |
| by a patch from René Puls.</p>
 | |
| 
 | |
| <p>A new 
 | |
| <a href="http://purl.org/rss/1.0/spec">RSS 1.0</a>
 | |
| serializer was added, using the new XML Writer class
 | |
| and using the same structures, classes and properties as the RSS tag
 | |
| soup parser.</p>
 | |
| 
 | |
| 
 | |
| <h3>URI class changes</h3>
 | |
| 
 | |
| <p>Added relative URI generating code from a patch written by René Puls
 | |
| and provide this with two new methods
 | |
| <code>raptor_uri_to_relative_uri_string</code> and
 | |
| <code>raptor_uri_to_relative_counted_uri_string</code>.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_uri_print</code> to print a URI to a file handle.</p>
 | |
| 
 | |
| <p>Added methods <code>raptor_uri_to_string</code> and
 | |
| <code>raptor_uri_to_counted_string</code> to return a URI as newly
 | |
| allocated strings.</p>
 | |
| 
 | |
| 
 | |
| <h3>I/O Stream Changes</h3>
 | |
| 
 | |
| <p>Many classes gained methods to write to iostreams, supporting the
 | |
| new XML Writer class functionality.  The added methods are:
 | |
| <code>raptor_iostream_write_namespace</code>,
 | |
| <code>raptor_iostream_write_ntriples_string</code>,
 | |
| <code>raptor_iostream_write_qname</code>,
 | |
| <code>raptor_iostream_write_statement_ntriples</code>,
 | |
| <code>raptor_iostream_write_stringbuffer</code>,
 | |
| <code>raptor_iostream_write_xml_element</code> and
 | |
| <code>raptor_iostream_write_xml_escaped_string</code>.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>Namespace Class Changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_namespace_copy</code> copy
 | |
| constructor and <code>raptor_new_namespace_from_uri</code>
 | |
| constructor to build a namespace from a raptor_uri object.</p>
 | |
| 
 | |
| <p>Added utility function <code>raptor_new_namespace_parts_from_string</code>
 | |
| to decode syntax of the form
 | |
| <code>xmlns:</code><em>prefix</em><code>="</code><em>uri</em><code>"</code>
 | |
| into <em>prefix</em> and <em>uri</em> string pairs.
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_namespaces_find_namespace_by_uri</code> method
 | |
| for namespace stack to find a declared namespace by URI.  This
 | |
| complements <code>raptor_namespaces_find_namespace</code> which
 | |
| already provides searching by prefix.</p>
 | |
| 
 | |
| 
 | |
| <h3>Unicode and UTF-8 Changes</h3>
 | |
| 
 | |
| <p>Added several methods for checking characters forming
 | |
| parts of XML 1.0 or XML 1.1 names:
 | |
| <code>raptor_unicode_is_xml10_namestartchar</code>,
 | |
| <code>raptor_unicode_is_xml11_namestartchar</code>,
 | |
| <code>raptor_unicode_is_xml10_namechar</code> and
 | |
| <code>raptor_unicode_is_xml11_namechar</code>.
 | |
| </p>
 | |
| 
 | |
| <p>Added a function <code>raptor_utf8_check</code> to check that a
 | |
| string is legal UTF-8 and all the encoded Unicode characters are in
 | |
| the range U+0 <= character <= U+10FFFF</p>
 | |
| 
 | |
| <p>Added a function <code>raptor_xml_name_check</code> to check that
 | |
| a string is a legal XML name (1.0 or 1.1) as well as legal UTF-8.</p>
 | |
| 
 | |
| 
 | |
| <h3>Other Changes</h3>
 | |
| 
 | |
| <p>Feature support: Added <code>raptor_feature_value_type</code> to
 | |
| determine value of a feature - either integer (most) or string.</p>
 | |
| 
 | |
| <p>XML QName class: Added <code>raptor_qname_copy</code> copy
 | |
| constructor.</p>
 | |
| 
 | |
| <p>Sequence class: Added <code>raptor_sequence_join</code>
 | |
| to join two sequences of items, leaving one empty.</p>
 | |
| 
 | |
| <p>Statement class: Added <code>raptor_statement_copy</code> copy
 | |
| constructor and <code>raptor_free_statement</code> destructor.
 | |
| Previously these were internal to raptor.</p>
 | |
| 
 | |
| <p>The <code>rapper</code> utility was modified to add a feature form:
 | |
| <code>-f xmlns:</code><em>PREFIX</em><code>="</code><em>URI</em><code>"</code>
 | |
| allowing the setting of output serializer namespaces.</p>
 | |
| 
 | |
| <p>The namespace URI string constants exported by raptor are now of
 | |
| type unsigned char*.</p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_2"><a name="rel1_4_2">Raptor 1.4.2 Changes</a></h2>
 | |
| 
 | |
| <p>Make <code>raptor_xml_escape_string</code> fail correctly when
 | |
| given bad UTF-8 to escape.</p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_1"><a name="rel1_4_1">Raptor 1.4.1 Changes</a></h2>
 | |
| 
 | |
| <p>Fixed a buffer overrun in decoding a URI scheme in
 | |
| <code>raptor_uri</code> constructors such as
 | |
| <code>raptor_new_uri</code>.</p>
 | |
| 
 | |
| <p>Fixed a crash in RSS enclosures crash when the <code>url</code>
 | |
| attribute seen on a non-<code><enclosure></code> element</p>
 | |
| 
 | |
| <p><code>raptor_xml_escape_string</code> return value has changed to
 | |
| be an int, returning <0 on failure.  This allows the empty string
 | |
| encoding an empty string case to work and be distinguished from an
 | |
| error.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_4_0"><a name="rel1_4_0">Raptor 1.4.0 Changes</a></h2>
 | |
| 
 | |
| <p>A release with the major new feature of providing serializing of
 | |
| RDF triples to syntaxes.  It also added a new support class for I/O
 | |
| streams and had other minor fixes.</p>
 | |
| 
 | |
| <p>Added a Raptor Serializer class (<code>raptor_serializer</code>)
 | |
| with similar style to Parser (<code>raptor_parser</code>).  Two
 | |
| serializers are provided, for RDF/XML and N-Triples.  The serializing
 | |
| can be done to files, C <code>FILE*</code> or to strings.  The
 | |
| raptor_iostream class that provides this also allows writing
 | |
| to any other form by creating a custom iostream.
 | |
| </p>
 | |
| 
 | |
| <p>The new raptor_serializer class functions added are:
 | |
| <code>raptor_serializers_enumerate</code>,
 | |
| <code>raptor_serializer_syntax_name_check</code>,
 | |
| <code>raptor_new_serializer</code>,
 | |
| <code>raptor_free_serializer</code>,
 | |
| <code>raptor_serialize_start</code>,
 | |
| <code>raptor_serialize_start_to_filename</code>,
 | |
| <code>raptor_serialize_start_to_string</code>,
 | |
| <code>raptor_serialize_start_to_file_handle</code>,
 | |
| <code>raptor_serialize_statement</code>,
 | |
| <code>raptor_serialize_end</code>,
 | |
| <code>raptor_serializer_get_iostream</code>,
 | |
| <code>raptor_serializer_set_error_handler</code>,
 | |
| <code>raptor_serializer_set_warning_handler</code> and
 | |
| <code>raptor_serializer_get_locator</code>
 | |
| </p>
 | |
| 
 | |
| <p>Added a Raptor I/O stream abstraction in
 | |
| <code>raptor_iostream</code> class to support serializing of RDF to
 | |
| multiple output streams such as to filenames, to C standard I/O
 | |
| <code>FILE*</code> handles and to strings especially for
 | |
| cross-language use.  A <code>raptor_iostream_handler</code> can
 | |
| be used to construct a user-defined iostream.
 | |
| </p>
 | |
| 
 | |
| <p>The new raptor_iostream class functions added are:
 | |
| <code>raptor_new_iostream_from_handler</code>,
 | |
| <code>raptor_new_iostream_to_sink</code>,
 | |
| <code>raptor_new_iostream_to_filename</code>,
 | |
| <code>raptor_new_iostream_to_file_handle</code>,
 | |
| <code>raptor_new_iostream_to_string</code>,
 | |
| <code>raptor_free_iostream</code>,
 | |
| <code>raptor_iostream_write_bytes</code>,
 | |
| <code>raptor_iostream_write_byte</code>,
 | |
| <code>raptor_iostream_write_end</code>,
 | |
| <code>raptor_iostream_write_string</code>,
 | |
| <code>raptor_iostream_write_counted_string</code>,
 | |
| <code>raptor_iostream_get_bytes_written_count</code>,
 | |
| <code>raptor_iostream_write_decimal</code> and
 | |
| <code>raptor_iostream_format_hexadecimal</code>.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <p>The <code>rapper</code> utility was modified to use serializer
 | |
| class so that the output formats supported are now N-Triples
 | |
| (<code>-o ntriples</code>) - the default, and RDF/XML (<code>-o
 | |
| rdfxml</code>).</p>
 | |
| 
 | |
| 
 | |
| <p>Raptor now exports more static namespace URI strings for
 | |
| general application use:
 | |
| <code>raptor_xml_namespace_uri</code>,
 | |
| <code>raptor_rdf_namespace_uri</code>,
 | |
| <code>raptor_rdf_schema_namespace_uri</code>,
 | |
| <code>raptor_xmlschema_datatypes_namespace_uri</code>,
 | |
| <code>raptor_owl_namespace_uri</code>,
 | |
| and the length
 | |
| <code>raptor_rdf_namespace_uri_len</code>.
 | |
| </p>
 | |
| 
 | |
| <p>The raptor_stringbuffer class gained a new method
 | |
| <code>raptor_stringbuffer_copy_to_string</code>
 | |
| which allows efficient copy-out of a constructed string.
 | |
| </p>
 | |
| 
 | |
| <p>The raptor_www class gained a new method
 | |
| <code>raptor_www_fetch_to_string</code> to allow retrieving of
 | |
| web content as a single string.
 | |
| </p>
 | |
| 
 | |
| <p>RSS tag soup parser gained support for generating triples for
 | |
| enclosures, after a patch from Suzan Foster.  Changes made include
 | |
| correcting the enclosures namespace and tidying some memory leaks.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_3_3"><a name="rel1_3_3">Raptor 1.3.3 Changes</a></h2>
 | |
| 
 | |
| <p>A release with major improvements along with several minor fixes.</p>
 | |
| 
 | |
| <p>Raptor's License was changed from LGPL 2.1/MPL 1.1 to
 | |
| LGPL 2.1/Apache 2</p>
 | |
| 
 | |
| <p>Thanks to Chris Pointon for several patches to make Raptor
 | |
| easier to build under Win32 which were applied, with some slight
 | |
| modifications.</p>
 | |
| 
 | |
| <p>Increased WWW content retrieval buffer size from 256 bytes to 4K
 | |
| since this was causing problems for even moderate size documents.</p>
 | |
| 
 | |
| <p>After testing raptor on a very large RDF/XML file with many
 | |
| <code>rdf:ID</code> values, the check for duplicate values was found
 | |
| to be inefficient in memory and slow.  The implementation was
 | |
| improved to be more memory efficient and a new parser feature
 | |
| <code>check_rdf_id</code> was added to disable checking (default is
 | |
| enabled).</p>
 | |
| 
 | |
| <p>Added a new Unicode NFC checker to replace the functionality
 | |
| formally available by calling the GNOME glib function
 | |
| g_utf8_normalize.  This new checker is done via several tables and
 | |
| adds approximately 50K to the object size of the library when
 | |
| compiled on x86.  This code and tables can be disabled with configure
 | |
| option <code>--disable-nfc-check</code> causing all checks to
 | |
| succeed.</p>
 | |
| 
 | |
| <p>Fix the exporting of
 | |
| <code>raptor_xml_literal_datatype_uri_string</code> and
 | |
| <code>raptor_xml_literal_datatype_uri_string_len</code> as constants
 | |
| for use by applications.  Previously raptor.h wasn't doing this
 | |
| correctly.</p>
 | |
| 
 | |
| <p>Added <code>raptor_calloc_memory</code> for allocating zeroed
 | |
| memory inside raptor, for use by applications passing memory in/out
 | |
| of raptor.</p>
 | |
| 
 | |
| <p>Added a new configure option <code>--enable-parsers</code> to
 | |
| allow the selection of the required RDF parsers from any of those
 | |
| supported (RDF/XML, Turtle, N-Triples, RSS tag soup).
 | |
| </p>
 | |
| 
 | |
| <p>Reorganised the sources to split parsing support from RDF/XML
 | |
| to support compiling without this parser.</p>
 | |
| 
 | |
| <p>Updated the RSS Tag Soup parser to start to handle the Atom 0.3
 | |
| currently being standardised by the
 | |
| <a href="http://www.ietf.org/html.charters/atompub-charter.html">IETF Atom Publishing Format and Protocol</a>
 | |
| working group.
 | |
| </p>
 | |
| 
 | |
| <p>Altered the Turtle parser to work with large source documents that
 | |
| exceeded bison limits.  Thanks to Geoff Chappell for providing a fix for
 | |
| this.</p>
 | |
| 
 | |
| <p>Rewrote the URI parsing to create an internal structure and
 | |
| improved the relative URI resolving in preparation for future work
 | |
| such as potentially supporting URI canonicalisation such as proposed
 | |
| to be used by Atom.</p>
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_3_2"><a name="rel1_3_2">Raptor 1.3.2 Changes</a></h2>
 | |
| 
 | |
| <p>A release with some minor fixes.</p>
 | |
| 
 | |
| <p>Added a new configure option
 | |
| <code>--with-expat-source=</code><em>DIR</em>
 | |
| to allow the use of external expat source trees in either the old or
 | |
| newer directory structure style. (Patch from Mark Smith).</p>
 | |
| 
 | |
| <p>Added <code>raptor_alloc_memory</code> for handlers that need to
 | |
| allocate memory in the same heap as raptor uses for
 | |
| <code>raptor_free_memory</code>. This is mostly useful for allocating
 | |
| memory that is freed by raptor in error, ID and statement handlers
 | |
| on win32 which has separate heaps for different DLLs.</p>
 | |
| 
 | |
| <p>A bug was fixed where errors which happened when fetching WWW
 | |
| content were always printed to stderr.  They are now passed to the
 | |
| main error routines which allows applications to retrieve them.</p>
 | |
| 
 | |
| <p>Accessor functions were added for parts of the public
 | |
| <code>raptor_locator</code> structure which makes it possible to get
 | |
| structured error information from language bindings via Redland
 | |
| (Patch from Edd Dumbill).  The new functions are:</p>
 | |
| 
 | |
| <ul>
 | |
| <li><code>int raptor_locator_line(raptor_locator *locator);</code></li>
 | |
| <li><code>int raptor_locator_column(raptor_locator *locator);</code></li>
 | |
| <li><code>int raptor_locator_byte(raptor_locator *locator);</code></li>
 | |
| <li><code>const char * raptor_locator_file(raptor_locator *locator);</code></li>
 | |
| <li><code>const char * raptor_locator_uri(raptor_locator *locator);</code></li>
 | |
| </ul>
 | |
| 
 | |
| <p>The Unicode Normal Form C (NFC) checking via the GNOME glib
 | |
| library function <code>g_utf8_normalize</code> is broken, comparing
 | |
| the data it says is failed against other NFC checkers.  It is also
 | |
| slower than need be since it is doing full normalizing rather than
 | |
| just checking for NFC, and adds a rather large dependency for just
 | |
| one function.  A new portable checker will be added in a later
 | |
| release.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_3_1"><a name="rel1_3_1">Raptor 1.3.1 Changes</a></h2>
 | |
| 
 | |
| <p>A release primarily to fix some win32 and portability issues.</p>
 | |
| 
 | |
| <p>raptor.h now includes stdarg.h</p>
 | |
| 
 | |
| <p>Corrected the <code>raptor_print_statement</code> declaration in
 | |
| raptor.h for the argument statement to have one less 'const' which
 | |
| matches the actual code.</p>
 | |
| 
 | |
| <p>Made several portability fixes for compiling natively on win32
 | |
| which doesn't quite do POSIX or C99.</p>
 | |
| 
 | |
| <p>Changed the support for file: URIs and converting to and from
 | |
| filenames.  It now %-escapes spaces and % characters on conversion
 | |
| to and from filenames with
 | |
| <code>raptor_uri_uri_string_to_filename</code>,
 | |
| <code>raptor_uri_uri_string_to_filename_fragment</code>
 | |
| and
 | |
| <code>raptor_uri_filename_to_uri_string</code>.
 | |
| For Win32, more tests were added and the
 | |
| format of URIs supported corrected to use the <code>file:///c:</code>
 | |
| form rather than <code>file://c|/</code></p>
 | |
| 
 | |
| <p>URIs that resolve to directories now return an error when lstat is
 | |
| available to check.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>The
 | |
| <a href="http://www.dajobe.org/2004/01/turtle/">Turtle</a>
 | |
| parser was updated to only allow language with non-datatyped literals,
 | |
| allow a '_' immediately after a ':' in qnames and to make a bare ':'
 | |
| qname work correctly.
 | |
| </p>
 | |
| 
 | |
| <p>The Turtle parser was fixed to re-initialise correctly when
 | |
| performing multiple parsings.  The other parsers already did this
 | |
| correctly.</p>
 | |
| 
 | |
| <p>Added a warning to the RDF/XML parser for unknown
 | |
| <code>rdf:parseType</code> values, when parsing in lax mode - which
 | |
| is the default.  It now tells the user when the parsing is working as
 | |
| 'Literal' mode by finding an unknown value.  This is controlled by a
 | |
| new parser feature warn_other_parsetypes which is default set true
 | |
| in lax mode.  Parser modes are controlled by the
 | |
| <code>raptor_set_parser_strict</code> method.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel1_3_0"><a name="rel1_3_0">Raptor 1.3.0 Changes</a></h2>
 | |
| 
 | |
| <p>A release primarily to provide support for
 | |
| the new <a href="http://librdf.org/rasqal/">Rasqal</a>
 | |
| RDF query library but with some new features and fixes.</p>
 | |
| 
 | |
| 
 | |
| <h3>Parser Changes</h3>
 | |
| 
 | |
| <p>Added a new constructor
 | |
|  <code>raptor_new_parser_for_content</code> to guess the parser to use
 | |
| from hints in URIs or content, using a new utility function
 | |
| <code>raptor_guess_parser_name</code>.</p>
 | |
| 
 | |
| <p>Additional checks were added to the RDF/XML parser for
 | |
| RDF-namespaced names in element and attributes and if they are
 | |
| forbidden giving an error otherwise if unknown, giving a warning.</p>
 | |
| 
 | |
| <p>The
 | |
| <a href="http://www.dajobe.org/2004/01/turtle/">Turtle</a>
 | |
| parser was updated to correct the collections syntax, allow '-' in
 | |
| names and QNames and to add integer literals.  This parser now correctly
 | |
| uses <code>raptor_generate_id</code> when a blank identifier name is
 | |
| needed.</p>
 | |
| 
 | |
| <p>Completed parser feature support by adding <code>raptor_get_feature</code>,
 | |
| <code>raptor_feature_from_uri</code>, and
 | |
| <code>raptor_features_enumerate</code> to get values and enable
 | |
| discovery of supported features at run time.
 | |
| <code>raptor_set_feature</code> was changed to give return a success
 | |
| value</p>
 | |
| 
 | |
| <p>Added a new method <code>raptor_get_mime_type</code> to get the
 | |
| MIME type of the syntax for a parser</p>
 | |
| 
 | |
| <p><code>raptor_parse_uri_with_connection</code> (which is called by
 | |
| <code>raptor_parse_uri</code>) now sets the HTTP <code>Accept:</code>
 | |
| header to the MIME type of the parser in WWW requests using the new
 | |
| <code>raptor_www_set_http_accept()</code>.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3><code>rapper</code> changes</h3>
 | |
| 
 | |
| <p>Added options <code>-f</code>/<code>--feature</code> for setting
 | |
| features and <code>-g</code>/<code>--guess</code> for guessing syntax
 | |
| from some content or identifiers.  See <a href="rapper.html">rapper(1)</a>
 | |
| for all rapper options.</p>
 | |
| 
 | |
| 
 | |
| <h3>Utility function changes</h3>
 | |
| 
 | |
| <p>Added <code>raptor_syntax_name_check</code> to check for valid
 | |
| syntax language names.<br />
 | |
| </p>
 | |
| 
 | |
| <p>Added <code>raptor_free_memory</code> to free memory returned by
 | |
| raptor functions.</p>
 | |
| 
 | |
| <p>Added Unicode utility functions <code>raptor_unicode_char_to_utf8</code> and
 | |
| <code>raptor_utf8_to_unicode_char</code>.</p>
 | |
| 
 | |
| <p>Exported URI string <code>raptor_xml_literal_datatype_uri_string</code>.</p>
 | |
| 
 | |
| <p>Deprecated <code>raptor_print_statement_detailed</code> always
 | |
| intended to be internal.</p>
 | |
| 
 | |
| 
 | |
| <h3>WWW Class changes</h3>
 | |
| 
 | |
| <p>Added support to set the HTTP <code>Accept:</code> header for curl
 | |
| and libxml2 when retrieving HTTP content by the new
 | |
| <code>raptor_www_set_http_accept</code> method.
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <h3>New classes - Sequence and Stringbuffer</h3>
 | |
| 
 | |
| <p>Added a utility class <code>raptor_sequence</code> providing
 | |
| simple sequences that can handle stacks and queues</p>
 | |
| 
 | |
| <p>Added a utility class <code>raptor_stringbuffer</code> 
 | |
| for constructing strings from substrings appended or prepended.</p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <h2 id="rel_older"><a name="rel_older">Raptor 0.9.0 - Raptor 1.2.0 Changes</a></h2>
 | |
| 
 | |
| <p>Release notes for 1.2.0 and earlier are in the
 | |
| <a href="NEWS.html">NEWS page</a> or
 | |
| <a href="ChangeLog">ChangeLog</a>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| 
 | |
| <hr />
 | |
| 
 | |
| <p>Copyright (C) 2003-2008 <a href="http://www.dajobe.org/">Dave Beckett</a><br />Copyright (C) 2003-2005 <a href="http://www.bristol.ac.uk/">University of Bristol</a></p>
 | |
| 
 | |
| </body>
 | |
| </html>
 |