The swish package

[Tags: lgpl, library, program]

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:

Major Changes:

Swish.RDF.RDFGraph.toRDFGraph now sets up the namespace map of the graph based on the input labels (previously it left the map empty).
Bug fixes for N3 format: strings ending in a double quote character are now written out correctly and xsd:double values are not written using XSD canonical form/capital E but with a lower-case e. On input of N3, literals that match xsd:double are converted to XSD canonical form (as stored in RDFLabel), which can make simple textual comparison of literals fail. The Eq instance of RDFLabel now ignores the case of the language tag for literals and the Show instance uses XSD canonical form for xsd:boolean, xsd:integer, xsd:decimal and xsd:double literals. Noted that the ToRDFLable and FromRDFLabel classes replicate existing functionality in the Swish.RDF.RDFDatatype module.
Added the Swish.RDF.RDFGraph.ToRDFLabel and Swish.RDF.RDFGraph.FromRDFLabel classes and the Swish.RDF.RDFGraph.toRDFTriple and Swish.RDF.RDFGraph.fromRDFTriple functions. Added instances: IsString RDFLabel, IsString QName, IsString ScopedName and Monoid NSGraph. The modules Swish and Swish.RDF have been introduced to provide documentation. The module Swish.Utils.DateTime is deprecated and will be removed in a later release. The N3 formatter now writes out literals with xsd:boolean, xsd:integer, xsd:decimal and xsd:double types as literals rather than as a typed string.
Changed scripts/ script so that the proof succeeds. Some documentation improvements, including a discussion of the Swish script format (see Swish.RDF.SwishScript). Very minor changes to behavior of Swish in several edge cases.
Bugfix: stop losing triples with a bnode subject when using the N3Formatter; this also makes the scripts/ test pass again. Several commands in Swish scripts now create screen output (mainly to check what it is doing). Added the developer flag for building.
updates the Swish script parser to work with the changes in (reported by Rick Murphy). Several example scripts are installed in the scripts/ directory, although only works with this release.
is an attempt to update version 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.


[Skip to ReadMe]


Change logNone available
Dependenciesarray (==0.3.*), base (>=3 && <5), binary (==0.5.*), bytestring (==0.9.*), containers (==0.3.*), directory (>=1.0 && <=1.1), filepath (>=1.1 && <=1.2), HUnit (==1.2.*), mtl (>=1 && <3), network (>=2.2 && <2.4), old-locale (==1.0.*), old-time (==1.0.*), parallel (==2.2.*), parsec (==2.1.*), random (==1.0.*), time (==1.1.*) [details]
Copyright(c) 2003, 2004 G. Klyne; 2009 Vasili I Galchin; 2011 Doug Burke; All rights reserved.
AuthorGraham Klyne -
CategorySemantic Web
Home page
Bug tracker
Source repositoryhead: hg clone
ExecutablesSwish, QNameTest, LookupMapTest, VarBindingTest, RDFRulesetTest, RDFQueryTest, RDFProofTest, RDFProofContextTest, RDFGraphTest, RDFDatatypeXsdIntegerTest, N3FormatterTest, N3ParserTest, NTTest, GraphTest, GraphPartitionTest, BuiltInMapTest
UploadedThu May 19 18:29:46 UTC 2011 by DouglasBurke
DistributionsDebian:, NixOS:
Downloads7130 total (265 in last 30 days)
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]




developerTurn on developer flagsDisabledAutomatic
testsBuild the test programs.DisabledAutomatic
hpcUse Hpc for the testsDisabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees

Readme for swish-

This is an update to Swish [1,2] so that it builds with a recent
Haskell platform (although it has not been tested against ghc-7 and
the 2011.2.0.0 Haskell Platform releases).

For more information on this release see [3].