The swish package
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.3:
Fix up the tests so that they pass with hashable-126.96.36.199.
Update to support network-188.8.131.52: Network.URI.Ord is now a no-op since the network package provides the instance; fix to change in API of relativeTo.
Removed binary constraint as unused.
Changes in version 0.8.0.2:
Restrict hashable since tests fail with 184.108.40.206 (this is a hack).
Updated directory constraint to include 1.2 on ghc 7.6.
Changes in version 0.8.0.1 (unreleased):
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.
- No changelog available
|Versions||0.2.1, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.0.3, 0.3.1.0, 0.3.1.1, 0.3.1.2, 0.3.2.0, 0.3.2.1, 0.4.0.0, 0.5.0.0, 0.5.0.1, 0.5.0.2, 0.5.0.3, 0.6.0.0, 0.6.0.1, 0.6.1.0, 0.6.1.1, 0.6.1.2, 0.6.2.1, 0.6.3.0, 0.6.4.0, 0.6.5.0, 0.6.5.1, 0.6.5.2, 0.7.0.0, 0.7.0.1, 0.7.0.2, 0.8.0.0, 0.8.0.2, 0.8.0.3, 0.9.0.0, 0.9.0.1, 0.9.0.2, 0.9.0.3, 0.9.0.4, 0.9.0.5, 0.9.0.6, 0.9.0.7, 0.9.0.8, 0.9.0.9, 0.9.0.10, 0.9.0.11, 0.9.0.12, 0.9.0.13, 0.9.0.14, 0.9.0.15, 0.9.1.0|
|Dependencies||base (>=3 && <5), containers (>=0.4 && <0.6), filepath (>=1.1 && <1.4), hashable (==1.1.*), mtl (==2.*), network (>=2.2 && <2.5), old-locale (==1.0.*), polyparse (>=1.6 && <1.9), semigroups (>=0.5 && <0.9), swish, text (==0.11.*), time (>=1.1 && <1.5)|
|Copyright||(c) 2003, 2004 G. Klyne; 2009 Vasili I Galchin; 2011, 2012 Doug Burke; All rights reserved.|
|Author||Graham Klyne - GK@ninebynine.org|
|Source repository||head: hg clone https://bitbucket.org/doug_burke/swish|
|Uploaded||Wed Sep 19 19:19:08 UTC 2012 by DouglasBurke|
|Downloads||3919 total (297 in last 30 days)|
|Status||Docs uploaded by user|
Build status unknown [no reports yet]
|developer||Turn on developer flags||Disabled|
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees