swish: A semantic web toolkit.
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:
- Version 0.6.5.1
- Haddock fixes for
0.6.5.0
. - Version 0.6.5.0
- Export "Swish.RDF.TurtleFormatter.parseText".
Updated
filepath
dependency and removed unusedarray
one. - Version 0.6.4.0
- Added support for xsd:decimal with Swish.RDF.RDFDatatypeXsdDecimal and Swish.RDF.MapXsdDecimal thanks to William Waites https://bitbucket.org/ww. Added Swish.RDF.Vocabulary.Provenance.
- Version 0.6.3.0
- Added Swish.RDF.Vocabulary.SIOC.
- Version 0.6.2.1
- Hackage did not want to upload
0.6.2.0
, so re-try by disabling thehpc
anddeveloper
flags for the tests to work around what appears to be http://hackage.haskell.org/trac/hackage/ticket/811. - Version 0.6.2.0
- Updated Swish.RDF.Vocabulary and Swish.RDF.RDFGraph to
include more common RDF terms. Added Swish.RDF.Vocabulary.DublinCore,
Swish.RDF.Vocabulary.FOAF, and Swish.RDF.Vocabulary.Geo modules,
Swish.RDF.Vocabulary.OWL, Swish.RDF.Vocabulary.RDF, and
Swish.RDF.Vocabulary.XSD modules (re-exported from Swish.RDF.Vocabulary
as necessary). The test suite has been updated to take advantage of the
support in recent Cabal versions which means that the
tests
flag has been removed and the minimum Cabal version increased to1.9.2
. A change was made to the internal labelling of the RDFS container-property axioms in Swish.RDF.RDFProofContext. - Version 0.6.1.2
- Corrected minimum mtl constraint from 1 to 2 and updated the maximum time version to 1.4 from 1.3.
- Version 0.6.1.1
- Minor improvement to the error message produced by the Turtle, Ntriples, and N3 parsers: a fragment of the remaining text is included to provide some context (still lacking compared to the information provided in version 0.3.2.1).
- Version 0.6.1.0
- Added support for Turtle format (added the Swish.RDF.TurtleFormatter and Swish.RDF.TurtleParser modules).
- Version 0.6.0.2
- Minor internal changes.
- Version 0.6.0.1
- Moved to using hashing routine using the
Data.Hashable
interface rather than Swish.Utils.MiscHelpers, which is deprecated. - Version 0.6.0.0
- Add Data.Interned.URI and use it to speed up the
QName
equality check. - Version 0.5.0.3
- Didn't get all the required
FlexibleInstances
. - Version 0.5.0.2
- HUnit constraint is only added when the
tests
flag is used. Removed random and bytestring constraints. AddFlexibleInstances
pragma for ghc 7.2 compatability. - Version 0.5.0.1
- Update bounds on package constraints to try and get a successful build on ghc 7.2; removed parallel constraint as not used.
- Version 0.5.0.0
- The constructors for
ScopedName
andQName
have been removed to hide some experimental optimisations (partly added in 0.4.0.0);Namespace
has seen a similar change but no optimisation. Output speed should be improved but no systematic analysis has been performed. - Version 0.4.0.0
- Moving to using polyparse for parsing and
Text
rather thanString
where appropriate. Use ofURI
andMaybe Text
rather thanString
in theNamespace
type. Removed the Swish.Utils.DateTime and Swish.Utils.TraceHelpers modules. Symbols have been removed from the export lists of the following modules: Swish.Utils.LookupMap, Swish.Utils.ListHelpers, Swish.Utils.MiscHelpers, Swish.Utils.ShowM. Some significant improvements to parsing speed, but no concerted effort or checks made yet. - Version 0.3.2.1
- Marked a number of routines from the Swish.Utils modules as deprecated. Use foldl' rather than foldl.
- Version 0.3.2.0
- The N3 parser no longer assumes a set of pre-defined namespaces. There is no API change worthy of a bump to the minor version number, but it is a large-enough change in behaviour that I felt the need for the update.
- Version 0.3.1.2
Swish.RDF.RDFGraph.toRDFGraph
now sets up the namespace map of the graph based on the input labels (previously it left the map empty).- Version 0.3.1.1
- 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/capitalE
but with a lower-casee
. On input of N3, literals that matchxsd:double
are converted to XSD canonical form (as stored inRDFLabel
), which can make simple textual comparison of literals fail. TheEq
instance ofRDFLabel
now ignores the case of the language tag for literals and theShow
instance uses XSD canonical form forxsd:boolean
,xsd:integer
,xsd:decimal
andxsd:double
literals. Noted that theToRDFLable
andFromRDFLabel
classes replicate existing functionality in the Swish.RDF.RDFDatatype module. - Version 0.3.1.0
- Added the
Swish.RDF.RDFGraph.ToRDFLabel
andSwish.RDF.RDFGraph.FromRDFLabel
classes and theSwish.RDF.RDFGraph.toRDFTriple
andSwish.RDF.RDFGraph.fromRDFTriple
functions. Added instances:IsString RDFLabel
,IsString QName
,IsString ScopedName
andMonoid 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 withxsd:boolean
,xsd:integer
,xsd:decimal
andxsd:double
types as literals rather than as a typed string. - Version 0.3.0.3
- Changed
scripts/SwishExample.ss
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. - Version 0.3.0.2
- Bugfix: stop losing triples with a bnode subject when
using the N3Formatter; this also makes the
scripts/SwishTest.ss
test pass again. Several commands in Swish scripts now create screen output (mainly to check what it is doing). Added thedeveloper
flag for building. - Version 0.3.0.1
- updates the Swish script parser to work with the
changes in 0.3.0.0 (reported by Rick Murphy).
Several example scripts are installed in the
scripts/
directory, although onlyVehicleCapacity.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:
[Skip to Readme]
Modules
- Data
- Interned
- Data.Interned.URI
- Interned
- Swish
- Swish.RDF
- Swish.RDF.BuiltInDatatypes
- Swish.RDF.BuiltInMap
- Swish.RDF.BuiltInRules
- Swish.RDF.ClassRestrictionRule
- Swish.RDF.Datatype
- Swish.RDF.GraphClass
- Swish.RDF.GraphMatch
- Swish.RDF.GraphMem
- Swish.RDF.GraphPartition
- Swish.RDF.MapXsdDecimal
- Swish.RDF.MapXsdInteger
- Swish.RDF.N3Formatter
- Swish.RDF.N3Parser
- Swish.RDF.NTFormatter
- Swish.RDF.NTParser
- Swish.RDF.Proof
- Swish.RDF.RDFDatatype
- Swish.RDF.RDFDatatypeXsdDecimal
- Swish.RDF.RDFDatatypeXsdInteger
- Swish.RDF.RDFDatatypeXsdString
- Swish.RDF.RDFGraph
- Swish.RDF.RDFGraphShowM
- Swish.RDF.RDFParser
- Swish.RDF.RDFProof
- Swish.RDF.RDFProofContext
- Swish.RDF.RDFQuery
- Swish.RDF.RDFRuleset
- Swish.RDF.RDFVarBinding
- Swish.RDF.Rule
- Swish.RDF.Ruleset
- Swish.RDF.SwishCommands
- Swish.RDF.SwishMain
- Swish.RDF.SwishMonad
- Swish.RDF.SwishScript
- Swish.RDF.TurtleFormatter
- Swish.RDF.TurtleParser
- Swish.RDF.VarBinding
- Swish.RDF.Vocabulary
- Swish.RDF.Vocabulary.DublinCore
- Swish.RDF.Vocabulary.FOAF
- Swish.RDF.Vocabulary.Geo
- Swish.RDF.Vocabulary.OWL
- Swish.RDF.Vocabulary.Provenance
- Swish.RDF.Vocabulary.RDF
- Swish.RDF.Vocabulary.SIOC
- Swish.RDF.Vocabulary.XSD
- Utils
- Swish.Utils.ListHelpers
- Swish.Utils.LookupMap
- Swish.Utils.MiscHelpers
- Swish.Utils.Namespace
- Swish.Utils.PartOrderedCollection
- Swish.Utils.QName
- Swish.Utils.ShowM
- Swish.RDF
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
developer | Turn on developer flags | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- swish-0.6.5.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 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, 0.9.1.1, 0.9.1.2, 0.9.1.3, 0.9.1.5, 0.9.1.6, 0.9.1.7, 0.9.1.8, 0.9.1.9, 0.9.1.10, 0.9.2.0, 0.9.2.1, 0.10.0.0, 0.10.0.1, 0.10.0.2, 0.10.0.3, 0.10.0.4, 0.10.0.5, 0.10.0.6, 0.10.0.7, 0.10.0.8, 0.10.0.9, 0.10.1.0, 0.10.2.0, 0.10.3.0, 0.10.4.0, 0.10.5.0, 0.10.6.0, 0.10.7.0, 0.10.8.0, 0.10.9.0 |
---|---|
Dependencies | base (>=3 && <5), binary (>=0.5 && <0.6), containers (>=0.3 && <0.5), directory (>=1.0 && <1.2), filepath (>=1.1 && <1.4), hashable (>=1.1 && <1.2), intern (>=0.8 && <0.9), mtl (>=2 && <3), network (>=2.2 && <2.4), old-locale (>=1.0 && <1.1), polyparse (>=1.6 && <1.8), text (>=0.11 && <0.12), time (>=1.1 && <1.5) [details] |
Tested with | ghc ==7.0.4 |
License | LicenseRef-LGPL |
Copyright | (c) 2003, 2004 G. Klyne; 2009 Vasili I Galchin; 2011, 2012 Doug Burke; All rights reserved. |
Author | Graham Klyne - GK@ninebynine.org |
Maintainer | dburke@cfa.harvard.edu |
Category | Semantic Web |
Home page | https://bitbucket.org/doug_burke/swish/wiki/Home |
Bug tracker | https://bitbucket.org/doug_burke/swish/issues |
Source repo | head: hg clone https://bitbucket.org/doug_burke/swish |
Uploaded | by DouglasBurke at 2012-03-07T01:41:43Z |
Distributions | Debian:0.10.1.0, LTSHaskell:0.10.9.0, NixOS:0.10.9.0, Stackage:0.10.9.0 |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | Swish |
Downloads | 51470 total (257 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs not available [build log] All reported builds failed as of 2016-12-25 [all 6 reports] |