@hackage swish0.8.0.2

A semantic web toolkit.

Swish is a framework, written in the purely functional programming language Haskell, for performing deductions in RDF data using a variety of techniques. Swish is conceived as a toolkit for experimenting with RDF inference, and for implementing stand-alone RDF file processors (usable in similar style to CWM, but with a view to being extensible in declarative style through added Haskell function and data value declarations). It explores Haskell as "a scripting language for the Semantic Web".

Swish is a work-in-progress, and currently incorporates:

  • Turtle, Notation3 and NTriples input and output. The N3 support is incomplete (no handling of @forAll).

  • RDF graph isomorphism testing and merging.

  • Display of differences between RDF graphs.

  • Inference operations in forward chaining, backward chaining and proof-checking modes.

  • Simple Horn-style rule implementations, extendable through variable binding modifiers and filters.

  • Class restriction rule implementation, primarily for datatype inferences.

  • RDF formal semantics entailment rule implementation.

  • Complete, ready-to-run, command-line and script-driven programs.

Changes in version 0.8.0.2:

  • Restrict hashable since tests fail with 1.1.2.5 (this is a hack).

  • Updated directory constraint to include 1.2 on ghc 7.6.

Changes in version 0.8.0.1:

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

Changes in version 0.8.0.0:

  • 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.

Changes in previous versions can be found at https://bitbucket.org/doug_burke/swish/src/tip/CHANGES.

References: