Changelog for swish-

If this renders badly as markdown, see the plain text version

Hackage has a better chance of finding the CHANGELOG file if it is included in the distribution! There are no changes to the library or examples.

Renamed CHANGES to CHANGELOG in the hope it will get picked up by Hackage. There are no changes to the library or examples.

Updated the upper bound on the semigroups dependency (thanks to Leif Warner).

Updated the upper bound on the text dependency (however, requires changes to intern and semigroups to use).

Updated the upper bound on the semigroups dependency (thanks to Leif Warner).

Display library version when running the runw3ctests executable and ensure there is a space between file name and test result in the screen output.

Minor documentation fix for Swish.RDF.Graph.quote.

Turtle/N3 output: \f characters in literals are converted to \u000C to work around some interoperability issues.

Changed the test handling to use test-framework.

Turtle/N3 output: more changes for string literals containing double-quote characters.

N3 Parser: parsing of string literals within three quote marks has been updated to match the Turtle parser.

Turtle Parser: a few more error messages have been added.

Turtle parser: updated to the Candidate Recommendation (19 February

  1. specification; added minor improvements to error messages when given invalid syntax. As part of the upgrade, there is no longer a default namespace set up for the empty prefix and numeric literals are no-longer converted into a 'canonical' form.

Turtle/N3 output: improved string formatting (better handling of string literals with three or more consecutive " characters); blank node handling has been improved but the output may not be as elegant.

NTriples parser: now accepts upper-case language tags such as en-UK (case is preserved).

Swish.QName.LName names can now contain #, : and / characters.

Added tests for the Turtle parser and formatter.

The new w3ctests flag will build the runw3ctests executable, which will run the W3C Turtle tests (if downloaded from

Minor fixes and additions to the documentation.

Fix minor Haddock issue with Swish.RDF.Parser.Utils.appendURIs.

Updated the upper bound on the polyparse dependency.

Updated the upper bound on the semigroups dependency (thanks to Leif Warner).

The module now builds against version 1.2 or 1.1 of the hashable package; as there have been significant changes to hashable in the 1.2 release I have decided to bump up the version number to 0.9 as a precaution.

Fix failing test on 64-bit GHC (no library change).

Very minor hlint changes.

Remove hashtable restriction (rewrite tests), remove binary constraint as it was apparently unneeded.

Updates to support network version the package now provides an Ord instance for Network.URI so Network.URI.Ord is now a no-op if network >= is installed; fix up code to handle change to the API of relativeTo.

Restrict hashable to < to try and avoid test failures - see!/DougBurke/swish/builds/2360859 This is a hack and the tests should be updated.

Updated directory constraint to allow 1.2 on ghc 7.6.

Internal changes to Turtle/N3 formatting. No user-visible changes.

The LDGraph class now uses Set (Arc lb), rather than [Arc lb], for setArcs, getArcs, and update. Several data types - e.g. NSGraph - now use sets rather than lists. There are a number of API tweaks - e.g. the addition of Ord constraints and the removal of Functor, Foldable, and Traversable instances. Not all list of Arcs have been converted since a review is needed to see where it makes sense and where it does not. This definitely speeds up some operations but a full analysis has not been attempted.

Replaced used of Data.LookupMap with Data.Map.Map. This has led to the removal of a number of language extensions from some modules.

Added Network.URI.Ord to provide an ordering for URIs.

A few other minor changes have been made: the removal of subset and equiv from Swish.Utils.ListHelpers; the ordering used for RDFLabel values has changed; added a Monoid instance for VarBinding; added Ord instances for a number of containers; removed some un-needed constraints; added Network.URI.Ord.

The containers upper limit has been increased to support version 0.5.

Swish.QName.LName now requires all characters to be ASCII. This avoids downstream later when trying to convert a QName to a URI.

URI parsing has changed slightly. The only user-visible change is that error messages will be slightly different, in particular when given an IRI in Turtle or NTriples format. Unfortunately IRIs are still not supported.

For code that uses the Swish script language, the main change is to import Swish rather than Swish.RDF.SwishMain, and to note that the other Swish.RDF.Swish* modules are now called Swish.*.

For code that uses the graph library, the main changes are that Swish.RDF.RDFGraph is now called Swish.RDF.Graph, the Lit constructor of the RDFLabel has been split into three (Lit, LangLit, and TypedLit) and a new LanguageTag type introduced, local names now use the LName type (previously they were just Text values), and the parsers and formatters have renamed to Swish.RDF.Parser.* and Swish.RDF.Formatter.*.

There is no API change worthy of a bump of the minor version but the behavioural change is large enough to make it worth while.

0.2.1 to