RDF/XML parser in Haskell (HARP)

As part of my ongoing Swish project [11], I've created an RDF/XML parser 
(HARP) in Haskell [7][8].  The parser is a moderately complete 
implementation of RDF/XML;  the shortcomings are an incomplete handling of 
XML literals (these are not perfectly canonicalized per the RDF 
specifications), and failure to detect some cases of invalid RDF.

I've used test data based on Dave Beckett's Raptor [12] test suite, and my 
parser passes almost all of the positive parser tests and over half of the 
negative parser tests.

The code is still rather rough (not packaged, properly document, etc.), but 
it is accessible if any intrepid Haskell programmer wants to have a play.

In order to support the RDF parser, I've made extensive enhancements to 
(one of) the Haskell common library XML parsers, HaXml.  Some discussion of 
my changes can be seen at [1][2][3][4].  The modified XML parser code can 
be found at [5][6] with URI and HTTP support provided by [9][10].

The enhanced XML parser requires a Haskell compiler version that supports 
Unicode character values.  The Nov-2003 release of Hugs does not have this 
support, but I have built a later version of Hugs for Windows [13] which 
does include Unicode support (and a larger code storage area to support 
larger Haskell programs).  This version should be used with prelude source 
files from the later version of Hugs [[[I must fix up my "fathugs" page to 
cover this]]].

I have yet to integrate the new RDF/XML parser into the Swish program.


[1] http://www.haskell.org//pipermail/libraries/2004-June/002243.html

[2] http://www.haskell.org//pipermail/libraries/2004-June/002266.html

[3] http://www.haskell.org//pipermail/libraries/2004-June/002276.html

[4] http://www.haskell.org//pipermail/libraries/2004-June/002282.html

[5] http://www.ninebynine.org/Software/HaskellUtils/20040713-Haxml-1.12.zip

[6] http://www.ninebynine.org/Software/HaskellUtils/HaXml-1.12/

[7] http://www.ninebynine.org/Software/HaskellRDF/20040713-HaskellRDF.zip

[8] http://www.ninebynine.org/Software/HaskellRDF/

[9] http://www.ninebynine.org/Software/HaskellUtils/20040609-Network.zip

[10] http://www.ninebynine.org/Software/HaskellUtils/Network/

[11] http://www.ninebynine.org/RDFNotes/Swish/Intro.html

[12] http://www.redland.opensource.ac.uk/raptor/

[13] http://www.ninebynine.org/Software/FatHugs.html

Graham Klyne
For email:

Received on Wednesday, 14 July 2004 11:46:21 UTC