1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
# Introduction
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
Web](http://www.ninebynine.org/RDFNotes/Swish/Intro.html)".
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](http://hackage.haskell.org/package/swish-0.2.1).
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
site](https://bitbucket.org/doug_burke/swish/); there is an *outdated*
version [on GitHub](https://github.com/DougBurke/swish), 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.
# Aim
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).
# Copyright
(c) 2003, 2004 G. Klyne
(c) 2009 Vasili I Galchin
(c) 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Doug Burke
All rights reserved.
# License
[LGPL V2.1](https://bitbucket.org/doug_burke/swish/src/tip/LICENSE)
# Haskell and the Semantic Web
Other Haskell packages for RDF support include
* [rdf4h](http://hackage.haskell.org/package/rdf4h)
* [hsparql](http://hackage.haskell.org/package/hsparql)
* [hasparql-client](http://hackage.haskell.org/package/hasparql-client)
# Installation
The following commands will install a command-line tool `Swish` along
with the modules in the `Swish` namespace; documentation can be found
[on Hackage](http://hackage.haskell.org/package/swish).
## With cabal
Install a recent version of the [Haskell
platform](http://hackage.haskell.org/platform/) 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
versions:
% 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
|