File Release Notes and Changelog
Release Name: 1.4.14
Notes:
* New Turtle serializer by Dave Robillard based on the existing
RDF/XML-Abbrev serializer.
* New GraphViz DOT format serializer by Evan Nemerson.
* GRDDL parser now does namespace and profile URI recursion and has
other improvements and fixes.
* Fixed reported issues: #0000032, #0000141, #0000143, #0000148,
#0000155 and #0000157
Changes:
2007-01-31 Dave Beckett
* Snapshotted raptor_1_4_14 for 1.4.14 release (SVN r11863)
* docs/tmpl/section-iostream.sgml, docs/tmpl/section-parser.sgml,
docs/tmpl/section-unused.sgml: Updated tmpls
2007-01-28 Dave Beckett
* src/raptor_grddl.c: (raptor_libxslt_error_common): Added.
(raptor_grddl_xsltGenericError_handler): Added.
(raptor_grddl_parse_init): Register
raptor_grddl_xsltGenericError_handler to handle XSLT generic
errors.
(raptor_grddl_run_grddl_transform_doc): Set 'base' and 'Base' XSLT
parameters to allow some XSLT sheets to work - pragmatism.
* src/raptor_grddl.c: struct raptor_grddl_parser_context_s gains
rdf_parser field. Add lots more debugging messages
(raptor_grddl_parse_init): Init rdf_parser field.
(raptor_grddl_parser_add_parent): Relay all triples to the parent
grddl parser.
(raptor_grddl_ensure_internal_parser): Lose relay flag - always
relay.
(raptor_grddl_parse_chunk): Copy root_ns_uri if not NULL. When
processing head profile URIs, strip out the GRDDL profile URI
before adding them to the grddl_parser->profile_uris sequence.
2007-01-27 Dave Beckett
* configure.ac: Add AC_CHECK_FUNC(xsltInit)
* src/raptor_grddl.c: (raptor_init_parser_grddl): Check for xsltInit
* src/raptor_parse.c: (raptor_parsers_finish): Call
raptor_terminate_parser_grddl when enabled.
* src/raptor_internal.h: Added raptor_terminate_parser_grddl prototype
* src/raptor_grddl.c: Add XML schema namespace to ignored
namespace list.
(raptor_grddl_parse_chunk): Copy root namespace URI when adding to
a list.
(raptor_terminate_parser_grddl): Added, to free up shared
resources.
* docs/libraptor.3: 1.4.14
* src/raptor_parse.c: autodocs
* src/raptor_internal.h: Move raptor_turtle_writer to
raptor_internal.h for now.
* src/raptor.h: Move raptor_turtle_writer to raptor_internal.h for
now.
2007-01-26 Dave Beckett
* src/n3_parser.y, src/ntriples_parse.c, src/raptor_general.c,
src/raptor_rdfxml.c, src/raptor_rss.c, src/turtle_parser.y: Rename
raptor_generate_id to raptor_parser_internal_generate_id with
altered calling convention - pass in ID type
* src/raptor.h: Adedd prototype for raptor_parser_generate_id
* src/raptor_internal.h: raptor_parser_internal_generate_id
renamed from raptor_generate_id.
* src/raptor_parse.c: (raptor_parser_generate_id): Added as a
public function, modified from previously internal
raptor_generate_id().
(raptor_parser_internal_generate_id): Renamed from
raptor_generate_id.
2007-01-16 Dave Beckett
* utils/rapper.c: Add a another raptor_finish() before exit
2007-01-14 Dave Beckett
* src/raptor_grddl.c: struct raptor_grddl_parser_context_s loses
xpathObj
(raptor_grddl_parse_terminate): Remove xpathObj tidy. Remove
profile URIs from 'match_table' list of xpaths - now invoked on
it's own.
(raptor_grddl_relay_triples): Add relay triples debugging. Fix
loop to properly walk through profile URIs
(raptor_grddl_run_xpath_match): Added to invoke a match to an
xpath returning a list of URIs as raptor_sequence. Code removed
from raptor_grddl_parse_chunk.
(raptor_grddl_run_recursive): Added to invoke a recursive GRDDL on
a URI, sending triples back to the current parser. Code removed
from raptor_grddl_parse_chunk.
(raptor_grddl_parse_chunk): Use raptor_grddl_run_recursive to do
most of the work. Invoke the <head profile> early on before
running general XPath matches. Use raptor_grddl_run_xpath_match
to run general XPath matches.
* utils/rapper.c: Use raptor_home_url_string and
raptor_license_string in short and long usage messages.
* src/raptor.h: Added raptor_home_url_string (replacing raptor_url)
* src/raptor_general.c: raptor_home_url_string
* src/raptor.h: Added raptor_url
* src/raptor.h: Added raptor_license_string
* src/raptor_general.c: 2007 and add raptor_license_string
2007-01-07 Dave Beckett
* src/raptor_abbrev.c: (raptor_new_abbrev_node): Initialise with
ref_count 1
(raptor_abbrev_node_lookup): Do not add ref_count here
* tests/turtle/Makefile.am: (check-turtle-serialize): rdfdiff with
a local file, not one in $(srcdir)
* utils/rdfdiff.c: Apply the base URI to the to-file, if given.
Otherwise use the from_file's URI.
* tests/turtle/Makefile.am: (check-turtle-serialize): Add base
URIs for the rdf-schema.ttl and rdfs-namespace.ttl
* tests/turtle/Makefile.am: (check-turtle-serialize): Ensure it
dies when a failure happens
* tests/turtle/Makefile.am: (check-turtle-serialize): Call rdfdiff
with -u to set base URI for input turtle. This allows test-00.ttl
to produce the same absolute URIs each time and for round-trip
serializing to work.
* utils/rdfdiff.c: Added -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.
* tests/turtle/Makefile.am: (check-turtle-serialize): output
serialization results to .ttl files
* tests/turtle/Makefile.am: Add check-turtle-serialize to
check-local
2007-01-05 Dave Beckett
* src/raptor-config.1: Document --private-libs and explain what it
is under --libs too.
* src/raptor-config.in: Add --private-libs and move private @LIBS
to that from --libs
* raptor.pc.in: Use Libs.private for internal dynamically linked
libraries
2006-12-29 Dave Beckett
* src/raptor_grddl.c: Add profile_transformation_uri and
profile_uris list to grddl parser structure.
(raptor_xslt_parse_init, raptor_xslt_parse_terminate): init/free
the above fields. Add MATH_IS_VALUE_LIST and MATCH_IS_PROFILE
flags to match_table. Comment out hard-coded embedded RDF,
hCalendar xpaths. Added head profile xpath for profile URI
resoltuion.
(raptor_grddl_relay_triples): Look for matches in the list of
profile_uris for getting XSLT uris.
(typedef raptor_grddl_xml_parse_bytes_context): Renamed from
raptor_grddl_parse_bytes_context.
(raptor_grddl_uri_xml_parse_bytes): Renamed from
raptor_grddl_uri_parse_bytes.
(raptor_grddl_fetch_uri): Added to provide a single place to
retrieve URIs in the GRDDL operation. Set a user agent, send
accept header and handle no-net.
(raptor_grddl_run_grddl_transform_uri): Use raptor_grddl_fetch_uri
to retrieve the XSLT doc.
(raptor_grddl_seen_uri): Do a check only, mark done in new
function:
(raptor_grddl_done_uri): Added.
(raptor_grddl_parse_uri_write_bytes): Added for use by
raptor_grddl_parse_chunk.
(raptor_grddl_parse_chunk): Mark done when received is_end. Use
profile_uris list to record root namespace as first item in list
at index 0. Accept an XPath result of element and use its
namespace name if seen, to allow an XPath matching the root
element - not yet used. Update to use the match_table flags
field. Handle MATCH_IS_PROFILE by storing in the profile_uris
list, skipping the http://www.w3.org/2003/g/data-view profile URI.
Do all recursive GRDDL in one place over all the profile_uris
using raptor_grddl_fetch_uri.
* src/raptor_www_curl.c: (raptor_www_curl_fetch): set proxy if
www->proxy set
2006-12-28 Dave Beckett
* utils/rapper.c: adjust whitespace so longer grddl description fits
* src/raptor_grddl.c: grddl docs, description updates
* src/Makefile.am, src/raptor_grddl.c (from
/raptor/trunk/src/raptor_xslt.c:11760), src/raptor_xslt.c:
Renameed raptor_xslt.c to raptor_grddl.c
* src/raptor_xslt.c: Rename all functions / structures to be
raptor_grddl / grddl not xslt.
* src/raptor_xslt.c: update spec reference
2006-12-27 Dave Beckett
* src/raptor_xslt.c: Track list of visited URIs across recursive
GRDDL parsers
(raptor_xslt_parse_init, raptor_xslt_parse_terminate): Share the
list of visited uris, allocated/freed at depth 0 parser.
(raptor_xslt_add_parent): Added to associate a parent with a child
GRDDL parser and to all share the depth 0 parser's list of visited
URIs.
(raptor_xslt_relay_triples, raptor_xslt_ensure_internal_parser):
Return failure code and prepare for alternative when this may not
pass on all triples for namespace/profile GRDDL operations.
(raptor_xslt_run_grddl_transform_doc): Handle error code from
above.
(raptor_xslt_seen_uri): Added to track URIs seen.
(raptor_xslt_parse_chunk): Use seen URI tracking for initial
document and recursive GRDDLs.
* src/raptor_general.c: docs
2006-12-26 Dave Beckett
* src/raptor_xslt.c: Add GRDDL looking up of root namespace URIs.
(raptor_xslt_parse_init, raptor_xslt_parse_terminate): Init/free
doc_transform_uris and namespace_transformation_uri.
grddl_namespace_uris_ignore_list added with list of namespace URIs
to never attempt to retrieve.
(raptor_xslt_relay_triples): Added, to relay triples to user but
look for data-view:namespaceTransformation triples
(raptor_xslt_ensure_internal_parser): Added to init an internal
parser if needed, reusing otherwise. Relay triples via
raptor_xslt_relay_triples before sending to user handler.
(raptor_xslt_run_grddl_transform_doc): Moved internal parser code
to raptor_xslt_ensure_internal_parser.
(raptor_xslt_parse_chunk): Get and store document root namespace
URI and then use it if not ignored. Do not do transforms
immediately but store in a sequence. Do a parse on the root
namespace URI if present to look for transformation triples.
Finally apply all transformation URIs seen in one go.
* src/raptor_rdfxml.c: (raptor_rdfxml_parse_recognise_syntax):
Recognize RDF/XML in sample content by looking for the XML marking
the RDF namespace declaration, the root element and likely
attributes.
* src/raptor_parse.c: (raptor_guess_parser_name): Mime type
matches that are q<10 no longer return a match but use the q as
score. Guessing then continues with the recognise_syntax factory
method, if present.
2006-12-14 Dave Beckett
* src/raptor_xslt.c: (raptor_xslt_parse_init,
raptor_xslt_parse_start): Move xslt_parser->sax2 init from
raptor_xslt_parse_start - running on every parse to
raptor_xslt_parse_init - running once.
* src/raptor_xslt.c: (raptor_xslt_parse_chunk): Free any
previously used xpathObj before making a new one
2006-12-10 Dave Beckett
* src/raptor_xslt.c: Previous changes did this:
Fixes Issue#0000143 http://bugs.librdf.org/mantis/view.php?id=143
* src/raptor_xslt.c: struct raptor_xslt_parser_context_s gains
raptor_sax2* sax2 field.
(raptor_xslt_parse_terminate): Free sax2.
(raptor_xslt_parse_start): Create a new sax2 structure and
initialise it's locator and error handler params.
(raptor_xslt_parse_chunk): Move error handler inits to
raptor_xslt_parse_start and do it once.
* src/raptor_parse.c: (raptor_parser_fatal_error_message_handler,
raptor_parser_error_message_handler,
raptor_parser_warning_message_handler): No need to protectb
raptor_print_locator from NULL locator, it does that.
* src/raptor_libxml.c: (raptor_libxml_update_document_locator,
raptor_libxml_error_common): Protect from NULL locator.
(raptor_libxml_init_generic_error_handlers): Altered to take an
raptor_sax2* argument.
* src/raptor_internal.h: raptor_libxml_init_generic_error_handlers
altered to take an raptor_sax2* argument.
2006-12-07 Dave Beckett
* src/raptor_parse.c: (raptor_parser_copy_user_state): Make a new
copy of the shared generate id prefix string.
Fixes Issue#0000141 http://bugs.librdf.org/mantis/view.php?id=141
* src/raptor_serialize_rdfxmla.c:
(raptor_rdfxmla_serialize_statement): Do not store an rdf:type
predicate triple as the typed-node type unless the triple object
is a URI.
Fixes Issue#0000157 http://bugs.librdf.org/mantis/view.php?id=157
2006-12-06 Dave Beckett
* src/raptor_turtle_writer.c: (raptor_turtle_writer_reference):
Generate <> for the empty relative URI
2006-12-03 Dave Beckett
* src/raptor_abbrev.c, src/raptor_internal.h,
src/raptor_serialize_rdfxmla.c, src/raptor_serialize_turtle.c:
Rename raptor_node to raptor_abbrev_node and raptor_subject to
raptor_abbrev_subject and rename functions to match the pattern
* src/raptor_turtle_writer.c: Use limits.h to get LONG_MAX
* src/raptor_www_libxml.c: raptor_www_libxml_http_error prototype.
* src/raptor_xslt.c: Store a single parser that could be of any
name, not just 'rdfxml'.
(raptor_xslt_parse_init): Do not init rdfxml parser here.
9raptor_xslt_parse_terminate): Free internal parser if present.
(raptor_xslt_parse_start): Do not copy user state to internal
parser here.
(raptor_xslt_run_grddl_transform_doc): Delve into the XSL
transformation results and try to interpret a mime type out of the
output type (if present). Assume any XML mime type is actually
RDF/XML and refuse to do recursive grddl guesses this way. Tidy
up code to clean up error paths
* src/raptor_www.c: (raptor_www_file_fetch): Return 200, 403 or
404 status codes and set failed flag.
(raptor_www_fetch): Set failed flag if a status code was returned
and the result was not 200.
* src/raptor_xslt.c: (raptor_xslt_parse_chunk): Skip empty XSLT
URIs in the list found.
2006-12-02 Dave Beckett
* src/raptor_sax2.c, src/raptor_turtle_writer.c,
src/raptor_xml_writer.c: Add new features to switch()s
* src/raptor_abbrev.c: (raptor_new_node): init node always
* src/raptor_serialize_rdfxmla.c: (raptor_rdfxmla_emit_blank): Do
not double-encode blank node ids. Do not free a shared blank node
string value.
(raptor_rdfxmla_emit_subject): Do not double-encode blank node
ids. Free only allocated attr_value.
(raptor_rdfxmla_serialize_init): Ensure rdf_type is initialized.
* src/raptor_turtle_writer.c: Remove // comments
* src/raptor_serialize_turtle.c: deleting commented-out code
* src/raptor_serialize_turtle.c: Code style, whitespace.
* src/raptor.h, src/raptor_internal.h: Move turtle write functions
into internal API for now
* src/raptor_serialize_turtle.c:
(raptor_turtle_serialize_declare_namespace_from_namespace): Allow
a default namespace to be handled when prefix is NULL.
* src/raptor_turtle_writer.c: (raptor_turtle_writer_qname): Write
a QName using Turtle's rules either prefix:local or :local which
is not how raptor_iostream_write_qname() writes them for XML.
* src/raptor_turtle_writer.c: (raptor_turtle_writer_namespace_prefix):
Only emit a prefix if there is one.
* src/raptor_serialize_turtle.c, docs/raptor-serializers.xml,
docs/tmpl/section-general.sgml, configure.ac, src/Makefile.am,
src/raptor.h, src/raptor_serialize.c, src/raptor_turtle_writer.c,
tests/Makefile.am, tests/turtle/Makefile.am: Turtle serializer by
Dave Robillard
* src/raptor_xml_writer.c: docs
* src/raptor_abbrev.c, src/raptor_internal.h,
src/raptor_serialize_rdfxmla.c: (raptor_rdfxmla_find_subject):
Renamed from raptor_find_subject.
(raptor_new_qname_from_resource): Remove link to rdfxml-abbrev
serializer context and pass in namespaces stack parameters.
(raptor_lookup_node): Renamed from raptor_rdfxmla_lookup_node
(raptor_lookup_subject): Renamed from
raptor_rdfxmla_lookup_subject.
(raptor_find_subject): Renamed from raptor_rdfxmla_find_subject.
* src/raptor_abbrev.c: Re order functions
* src/Makefile.am, src/raptor_abbrev.c, src/raptor_internal.h,
src/raptor_serialize_rdfxmla.c: (raptor_new_qname_from_resource,
raptor_new_node, raptor_free_node, raptor_node_equals,
raptor_node_matches, raptor_new_subject, raptor_free_subject,
raptor_subject_add_property, raptor_subject_add_list_element,
raptor_rdfxmla_lookup_node, raptor_rdfxmla_find_subject,
raptor_rdfxmla_lookup_subject): Move common abbreviated serializer
code from raptor_serialize_rdfxmla.c to raptor_abbrev.c
* src/raptor_serialize_dot.c: gratuitous whitespace schanges
* docs/tmpl/section-feature.sgml: New DOT features
* src/raptor_turtle_writer.c copied from
/raptor/trunk/src/raptor_xml_writer.c:11666: copy for turtle
writing
2006-11-26 Dave Beckett
* src/raptor_uri.c: (raptor_uri_filename_to_uri_string):
Dynamically allocate the path buffer and realloc it if it's too
small. This helps Hurd which does not handle PATH_MAX like
linux/unix.
* docs/raptor-serializers.xml, src/raptor.h, src/raptor_feature.c,
src/raptor_internal.h, src/raptor_parse.c, src/raptor_serialize.c,
src/raptor_serialize_dot.c: Import updated DOT serializer.
Renamed features to remove _color/_COLOR from end of name. Added
feature descriptions
* src/raptor_serialize_dot.c: alter label
* src/Makefile.am, src/raptor_internal.h, src/raptor_serialize.c,
src/raptor_serialize_dot.c: Add DOT serializer
* configure.ac: 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.
2006-11-20 Dave Beckett
* raptor.rdf.in: Update description and for SVN repository.
2006-11-19 Dave Beckett
* NEWS.html, RELEASE.html, configure.ac,
src/win32_raptor_config.h: Bumped version to 1.5.0