Swish: Semantic Web Inference Scripting in Haskell
This program is a simple skeleton for constructing Semantic Web  inference tools in Haskell, using the RDF graph and several RDF parsers (at present Notation 3 and NTriples).
It might be viewed as a kind of embroyonic CWM  in Haskell, except that the intent is that Haskell will be used as a primary language for defining inferences. As such, Swish is an open-ended toolkit for constructing new special-purpose Semantic Web applications rather than a closed, self-contained general-purpose SW application. I anticipate that this module may be used as a starting point for creating new programs rathar then as a complete program in its own right. The functionality built into this code is selected with a view to testing the Haskell modules for handling RDF rather than for performing any particular application processing (though development as a tool with some broader utility is not ruled out). As such, it is part of another experiment along the lines described in .
- Semantic web: http://www.w3.org/2001/sw/
- CWM: http://www.w3.org/2000/10/swap/doc/cwm.html
- Motivation: http://www.w3.org/2000/10/swap/doc/Motivation.html
- Notation 3: http://www.w3.org/TeamSubmission/2008/SUBM-n3-20080114/
- RDF: http://www.w3.org/RDF/
- data SwishStatus
- data SwishAction
- runSwish :: String -> IO ExitCode
- runSwishActions :: [SwishAction] -> IO SwishStatus
- displaySwishHelp :: IO ()
- splitArguments :: [String] -> ([String], [String])
- validateCommands :: [String] -> Either (String, SwishStatus) [SwishAction]
Status of the processor
graphs do not compare
input data problem (ie format/syntax)
data access error
command-line argument error
error executing a Swish script
Represent an Swish action, with an optional argument and the Swish routine to act on that argument.
At present this type is a black box to external modules.
Parse and run the given string as if given at the command line. The "quiet", "version" and "help" options are ignored.
Return any arguments that need processing immediately, namely the "help", "quiet" and "version" options.