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:

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.

Major Changes:

Version 0.3.0.1 updates the Swish script parser to work with the changes in 0.3.0.0. Several example scripts are installed in the scripts/ directory, although only VehicleCapacity.ss works with this release. Version 0.3.0.0 is an attempt to update version 0.2.1 (http://hackage.haskell.org/package/swish-0.2.1/) to build against a recent ghc install, with some clean ups - including support for the current N3 specification - and the addition of the NTriples format. It has not been tested against ghc7.

References: