Swish - which stands for Semantic Web Inference Scripting in Haskell -
was written by Graham Klyne as a framework, written in the purely
functional programming language Haskell, for performing deductions in
RDF data using a variety of techniques. Swish was 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). One of the aims was to
explore Haskell as "a scripting language for the Semantic

It was updated from version 0.2.1 by Vasili I Galchin so that it would
build with the current version of GHC, and
released on Hackage.

Since then it has been updated to take advantage of recent
developments in the Haskell ecosystem, add support for the NTriples
and Turtle serialisation formats, and a number of convenience
functions. Development is done on the bitbucket
; there is an outdated
version on GitHub, which was
being used for its access to Travis.

I attempt to keep Swish buildable on recent GHC versions - at present
back to GHC 7.4 although not actually tested on such - but it is done
on a best-effort basis, so is not guaranteed.


Current development is based on my own needs, which are more about
using this as a RDF library for I/O with limited querying rather than
for inferencing or use as a flexible graph-processing library
(e.g. for extensions to non-RDF models).


(c) 2003, 2004 G. Klyne
(c) 2009 Vasili I Galchin
(c) 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Doug Burke

All rights reserved.



Haskell and the Semantic Web

Other Haskell packages for RDF support include


The following commands will install a command-line tool Swish along
with the modules in the Swish namespace; documentation can be found
on Hackage.

With cabal

Install a recent version of the Haskell
and then try

% cabal update
% cabal install swish

With stack

Swish is available as part of the stackage curated package set (at
least it is available in lts-11.1 to lts-12.2, the latest version
at the time of writing).

There are several stack configuration files, for different GHC

% cd swish
% stack install
% STACK_YAML=stack-8.2.yaml stack install
% STACK_YAML=stack-8.0.yaml stack install
% STACK_YAML=stack-7.10.yaml stack install
% STACK_YAML=stack-7.8.yaml stack install