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.2:
The
Swish.QName.LNametype now requires all characters to be ASCII. This avoids downstream errors when trying to convert aQNameto aURI.
Changes in version 0.7.0.1:
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
Swishand 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.SwishMainhas been removed; useSwishinstead.Parsing modules are now in the
Swish.RDF.Parserhierarchy andSwish.RDF.RDFParserhas been renamed toSwish.RDF.Parser.Utils.Formatting modules are now in the
Swish.RDF.Formatterhierarchy.RDF literals are now stored using the
Lit,LangLit, orTypedLitconstructors (RDFLabel) rather than using justLit. Language codes are now represented bySwish.RDF.Vocabulary.LanguageTagrather than as aScopedName.Local names are now represented by the
Swish.QName.LNametype rather than as aTextvalue. A few routines now return aMaybevalue rather than error-ing out on invalid input.Make use of
Data.List.NonEmptyin a few cases.Removed
mkTypedLitfromSwish.RDF.RDFParser; useSwish.RDF.RDFDatatype.makeDataTypedLiteralinstead.Removed
asubj,apredandaobjfromSwish.RDF.GraphClassandSwish.RDF.RDFGraph; usearcSubj,arcPredorarcObjinstead.Removed un-used
containedInelement of theLDGraphtype class. The arguments tosetArcshave been flipped,replaceArcsremoved,addrenamed toaddGraphs, andemptyGraphadded.Removed un-used exports from
Swish.Utils.PartOrderedCollection:partCompareOrd,partCompareMaybe,partCompareListOrd, andpartCompareListPartOrd.Removed the
Swish.Utils.MiscHelpersmodule and moved single-use functionality out ofSwish.Utils.ListHelpers.Removed various exported symbols from a range of modules as they were unused.
Use
Word32rather thanIntfor label indexes (Swish.GraphMatch.LabelIndex) and in the bnode counts when formatting to N3/Turtle.Minor clean up of the
LookupMapmodule:mergeReplaceOrAddandmergeReplaceare now combined intomergeReplace;mapSelect,mapApplyToAll, andmapTranslate*have been removed; documentation slightly improved; and a few minor internal clean ups.Clarified that
Swish.RDF.RDFDatatypeXsdDecimalis forxsd:decimalrather thanxsd:double.Support using versions 0.8 or 0.9 of the
internpackage and version 0.5 ofcontainers.Switch to
Control.Exception.tryto 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.2.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, 0.10.11.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 |
| Uploaded | by DouglasBurke at 2012-08-08T16:27:51Z |
| 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 |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Executables | Swish |
| Downloads | 53768 total (166 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] |