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 in version 0.7.0.0
:
Internal changes to parsing of URI values for NTriples, Turtle, and N3 parsers (error messages will be slightly different when IRIs are used). Unfortunately IRIs are still not supported.
Changes in version 0.7.0.0
:
For code that uses the Swish script language, the main change is to import Swish
rather
than Swish.RDF.SwishMain
, and to note that the other Swish.RDF.Swish*
modules are
now called Swish.*
.
For code that uses the graph library, the main changes are that Swish.RDF.RDFGraph
is now called Swish.RDF.Graph
, the Lit
constructor of the RDFLabel
has been split
into three (Lit
, LangLit
, and TypedLit
) and a new LanguageTag
type introduced,
local names now use the LName
type (previously they were just Text
values), and the
parsers and formatters have renamed to
Swish.RDF.Parser.*
and Swish.RDF.Formatter.*
.
Moved a number of modules around: generic code directly into
Swish
and theSwish.RDF.RDF*
forms renamed toSwish.RDF.*
. Some modules have been moved out of theSwish.Utils.*
namespace. Generic modules have been placed into theData.*
namespace. TheSwish.RDF.Swish*
modules have been moved toSwish.*
andSwish.RDF.SwishMain
has been removed; useSwish
instead.Parsing modules are now in the
Swish.RDF.Parser
hierarchy andSwish.RDF.RDFParser
has been renamed toSwish.RDF.Parser.Utils
.Formatting modules are now in the
Swish.RDF.Formatter
hierarchy.RDF literals are now stored using the
Lit
,LangLit
, orTypedLit
constructors (RDFLabel
) rather than using justLit
. Language codes are now represented bySwish.RDF.Vocabulary.LanguageTag
rather than as aScopedName
.Local names are now represented by the
Swish.QName.LName
type rather than as aText
value. A few routines now return aMaybe
value rather than error-ing out on invalid input.Make use of
Data.List.NonEmpty
in a few cases.Removed
mkTypedLit
fromSwish.RDF.RDFParser
; useSwish.RDF.RDFDatatype.makeDataTypedLiteral
instead.Removed
asubj
,apred
andaobj
fromSwish.RDF.GraphClass
andSwish.RDF.RDFGraph
; usearcSubj
,arcPred
orarcObj
instead.Removed un-used
containedIn
element of theLDGraph
type class. The arguments tosetArcs
have been flipped,replaceArcs
removed,add
renamed toaddGraphs
, andemptyGraph
added.Removed un-used exports from
Swish.Utils.PartOrderedCollection
:partCompareOrd
,partCompareMaybe
,partCompareListOrd
, andpartCompareListPartOrd
.Removed the
Swish.Utils.MiscHelpers
module and moved single-use functionality out ofSwish.Utils.ListHelpers
.Removed various exported symbols from a range of modules as they were unused.
Use
Word32
rather thanInt
for label indexes (Swish.GraphMatch.LabelIndex
) and in the bnode counts when formatting to N3/Turtle.Minor clean up of the
LookupMap
module:mergeReplaceOrAdd
andmergeReplace
are now combined intomergeReplace
;mapSelect
,mapApplyToAll
, andmapTranslate*
have been removed; documentation slightly improved; and a few minor internal clean ups.Clarified that
Swish.RDF.RDFDatatypeXsdDecimal
is forxsd:decimal
rather thanxsd:double
.Support using versions 0.8 or 0.9 of the
intern
package and version 0.5 ofcontainers
.Switch to
Control.Exception.try
to avoid deprecation warnings fromSystem.IO.Error.try
.
Changes in previous versions can be found at https://bitbucket.org/doug_burke/swish/src/tip/CHANGES.
References:
[Skip to Readme]
Modules
[Index]
- Data
- Interned
- Data.LookupMap
- Ord
- String
- Swish
- Swish.Commands
- Swish.Datatype
- Swish.GraphClass
- Swish.GraphMatch
- Swish.GraphMem
- Swish.GraphPartition
- Swish.Monad
- Swish.Namespace
- Swish.Proof
- Swish.QName
- Swish.RDF
- Swish.Rule
- Swish.Ruleset
- Swish.Script
- Utils
- Swish.VarBinding
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.7.0.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, 0.10.10.0 |
---|---|
Dependencies | base (>=3 && <5), binary (>=0.5 && <0.6), containers (>=0.3 && <0.6), directory (>=1.0 && <1.2), filepath (>=1.1 && <1.4), hashable (>=1.1 && <1.2), intern (>=0.8 && <1.0), mtl (>=2 && <3), network (>=2.2 && <2.4), old-locale (>=1.0 && <1.1), polyparse (>=1.6 && <1.9), semigroups (>=0.5 && <0.9), swish, text (>=0.11 && <0.12), time (>=1.1 && <1.5) [details] |
Tested with | ghc ==7.4.2 |
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-08-06T14:47:28Z |
Distributions | Debian:0.10.1.0, LTSHaskell:0.10.10.0, NixOS:0.10.9.0, Stackage:0.10.10.0 |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | Swish |
Downloads | 52216 total (3 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |