swish-0.7.0.2: swish.cabal
Name: swish
Version: 0.7.0.2
Stability: experimental
License: LGPL
License-file: LICENSE
Author: Graham Klyne - GK@ninebynine.org
Copyright: (c) 2003, 2004 G. Klyne; 2009 Vasili I Galchin; 2011, 2012 Doug Burke; All rights reserved.
Maintainer: dburke@cfa.harvard.edu
Category: Semantic Web
Synopsis: A semantic web toolkit.
Tested-With: GHC==7.4.2
Cabal-Version: >= 1.9.2
Homepage: https://bitbucket.org/doug_burke/swish/wiki/Home
Bug-reports: https://bitbucket.org/doug_burke/swish/issues
Description:
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.LName@ type now requires all characters to be
ASCII. This avoids downstream errors when trying to convert a
@QName@ to a @URI@.
.
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 @Swish@
and the @Swish.RDF.RDF*@ forms renamed to @Swish.RDF.*@. Some modules
have been moved out of the @Swish.Utils.*@ namespace. Generic modules
have been placed into the @Data.*@ namespace. The @Swish.RDF.Swish*@
modules have been moved to @Swish.*@ and @Swish.RDF.SwishMain@ has
been removed; use @Swish@ instead.
.
* Parsing modules are now in the @Swish.RDF.Parser@ hierarchy and
@Swish.RDF.RDFParser@ has been renamed to @Swish.RDF.Parser.Utils@.
.
* Formatting modules are now in the @Swish.RDF.Formatter@ hierarchy.
.
* RDF literals are now stored using the @Lit@, @LangLit@, or @TypedLit@ constructors
(@RDFLabel@) rather than using just @Lit@. Language codes are now represented
by @Swish.RDF.Vocabulary.LanguageTag@ rather than as a @ScopedName@.
.
* Local names are now represented by the @Swish.QName.LName@ type
rather than as a @Text@ value. A few routines now return a @Maybe@ value
rather than error-ing out on invalid input.
.
* Make use of @Data.List.NonEmpty@ in a few cases.
.
* Removed @mkTypedLit@ from @Swish.RDF.RDFParser@; use
@Swish.RDF.RDFDatatype.makeDataTypedLiteral@ instead.
.
* Removed @asubj@, @apred@ and @aobj@ from @Swish.RDF.GraphClass@ and
@Swish.RDF.RDFGraph@; use @arcSubj@, @arcPred@ or @arcObj@ instead.
.
* Removed un-used @containedIn@ element of the @LDGraph@ type class.
The arguments to @setArcs@ have been flipped, @replaceArcs@ removed,
@add@ renamed to @addGraphs@, and @emptyGraph@ added.
.
* Removed un-used exports from @Swish.Utils.PartOrderedCollection@:
@partCompareOrd@, @partCompareMaybe@, @partCompareListOrd@, and
@partCompareListPartOrd@.
.
* Removed the @Swish.Utils.MiscHelpers@ module and moved single-use functionality
out of @Swish.Utils.ListHelpers@.
.
* Removed various exported symbols from a range of modules as they were
unused.
.
* Use @Word32@ rather than @Int@ for label indexes (@Swish.GraphMatch.LabelIndex@)
and in the bnode counts when formatting to N3/Turtle.
.
* Minor clean up of the @LookupMap@ module: @mergeReplaceOrAdd@ and @mergeReplace@
are now combined into @mergeReplace@; @mapSelect@, @mapApplyToAll@, and
@mapTranslate*@ have been removed; documentation slightly improved;
and a few minor internal clean ups.
.
* Clarified that @Swish.RDF.RDFDatatypeXsdDecimal@ is for @xsd:decimal@ rather
than @xsd:double@.
.
* Support using versions 0.8 or 0.9 of the @intern@ package and version 0.5 of
@containers@.
.
* Switch to @Control.Exception.try@ to avoid deprecation warnings from @System.IO.Error.try@.
.
Changes in previous versions can be found at <https://bitbucket.org/doug_burke/swish/src/tip/CHANGES>.
.
References:
.
- <http://www.ninebynine.org/RDFNotes/Swish/Intro.html>
.
- <http://www.ninebynine.org/Software/swish-0.2.1.html>
.
- CWM: <http://www.w3.org/2000/10/swap/doc/cwm.html>
.
Build-Type: Simple
Data-Files: README
scripts/*.ss
Source-repository head
type: mercurial
location: https://bitbucket.org/doug_burke/swish
Flag developer
Description: Turn on developer flags
Default: False
-- Flag hpc
-- Description: Use Hpc for the tests
-- Default: False
Library
Build-Depends:
base >=3 && < 5,
binary == 0.5.*,
containers >= 0.3 && < 0.6,
directory >= 1.0 && < 1.2,
filepath >= 1.1 && < 1.4,
hashable == 1.1.*,
mtl >= 2 && < 3,
network >= 2.2 && < 2.4,
old-locale == 1.0.*,
polyparse >= 1.6 && < 1.9,
semigroups >= 0.5 && < 0.9,
text == 0.11.*,
time >= 1.1 && < 1.5
if impl(ghc < 7.4.0)
Build-Depends: intern == 0.8
if impl(ghc >= 7.4.0)
Build-Depends: intern >= 0.8 && < 1.0
Hs-Source-Dirs: src/
Exposed-Modules:
Data.Interned.URI
Data.LookupMap
Data.Ord.Partial
Data.String.ShowLines
Swish
Swish.Commands
Swish.Datatype
Swish.GraphClass
Swish.GraphMatch
Swish.GraphMem
Swish.GraphPartition
Swish.Monad
Swish.Namespace
Swish.Proof
Swish.QName
Swish.RDF
Swish.RDF.BuiltIn
Swish.RDF.BuiltIn.Datatypes
Swish.RDF.BuiltIn.Rules
Swish.RDF.ClassRestrictionRule
Swish.RDF.Datatype
Swish.RDF.Datatype.XSD.Decimal
Swish.RDF.Datatype.XSD.Integer
Swish.RDF.Datatype.XSD.MapDecimal
Swish.RDF.Datatype.XSD.MapInteger
Swish.RDF.Datatype.XSD.String
Swish.RDF.Formatter.NTriples
Swish.RDF.Formatter.N3
Swish.RDF.Formatter.Turtle
Swish.RDF.Graph
Swish.RDF.GraphShowLines
Swish.RDF.Parser.NTriples
Swish.RDF.Parser.N3
Swish.RDF.Parser.Turtle
Swish.RDF.Parser.Utils
Swish.RDF.Proof
Swish.RDF.ProofContext
Swish.RDF.Query
Swish.RDF.Ruleset
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
Swish.Rule
Swish.Ruleset
Swish.Script
Swish.Utils.ListHelpers
Swish.VarBinding
ghc-options:
-Wall -fno-warn-orphans
if flag(developer)
ghc-options: -Werror
ghc-prof-options: -auto-all
Test-Suite test-builtinmap
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: BuiltInMapTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
swish
Test-Suite test-graphpartition
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: GraphPartitionTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
semigroups >= 0.5 && < 0.9,
swish
Test-Suite test-graph
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: GraphTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
swish
Test-Suite test-nt
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: NTTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
swish,
text == 0.11.*
Test-Suite test-n3parser
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: N3ParserTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-n3formatter
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: N3FormatterTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-rdfdatatypexsdinteger
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: RDFDatatypeXsdIntegerTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-rdfgraph
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: RDFGraphTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
old-locale == 1.0.*,
swish,
text == 0.11.*,
time >= 1.1 && < 1.5
Test-Suite test-rdfproofcontext
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: RDFProofContextTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-rdfproof
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: RDFProofTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-rdfquery
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: RDFQueryTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-rdfruleset
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: RDFRulesetTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
Test-Suite test-varbinding
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: VarBindingTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
swish
Test-Suite test-lookupmap
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: LookupMapTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
swish
Test-Suite test-qname
type: exitcode-stdio-1.0
Hs-Source-Dirs: tests/
Main-Is: QNameTest.hs
Other-Modules: TestHelpers
ghc-options:
-Wall -fno-warn-orphans
Build-Depends:
base >=3 && < 5,
HUnit == 1.2.*,
network >= 2.2 && < 2.4,
swish,
text == 0.11.*
-- we do not have the data files to run this test
Executable SwishTest
Main-Is: tests/SwishTest.hs
-- How can we include data files that are only used for
-- benchmark/tests and do not get installed?
Benchmark bench-ntriples
Type: exitcode-stdio-1.0
Hs-Source-Dirs: bench/
Other-Modules: Paths_swish
Main-Is: NTriples.hs
Build-Depends: base,
criterion,
deepseq,
network,
swish,
text
ghc-options: -Wall -fno-warn-orphans
Executable Swish
Main-Is: SwishApp.hs
Hs-Source-Dirs: app/
Other-Modules: Paths_swish
ghc-options:
-Wall -fno-warn-orphans
if flag(developer)
ghc-options: -Werror
ghc-prof-options: -auto-all
Build-Depends:
base >=3 && < 5,
swish