@hackage CarneadesDSL2.0.0.0
An implementation and DSL for the Carneades argumentation model.
Categories
License
BSD-3-Clause
Maintainer
Bas van Gijzel <nenekotan+git@gmail.com>
Links
Versions
Installation
Tested Compilers
Dependencies (4)
- base >=4.16 && <5
- containers >=0.6 && <0.8
- fgl >=5.7 && <5.9
- parsec >=3.1 && <3.2 Show all…
Dependents (2)
@hackage/CarneadesIntoDung, @hackage/acme-everything
CarneadesDSL
An implementation and domain-specific language for the Carneades argumentation model.
Synopsis
CarneadesDSL provides a Haskell DSL for constructing and evaluating Carneades Argument Evaluation Structures (CAES). It supports five predefined proof standards and includes a parser for external CAES definitions.
Usage
import Language.Carneades.CarneadesDSL
import Language.Carneades.ExampleCAES (caes, argSet)
-- Construct propositions and arguments
let p = mkProp "intent"
let a = mkArg ["witness"] ["unreliable"] "intent"
-- Query a CAES
acceptable (mkProp "murder") caes -- False
applicableArgs caes -- [applicable arguments]
Parsing
CAES definitions can be parsed from text files:
import Language.Carneades.Input (parseCAES)
main :: IO ()
main = do
input <- readFile "examplecaes.txt"
case parseCAES input of
Left err -> print err
Right caes -> print (acceptableProps caes)
References
See "Haskell Gets Argumentative" in the Proceedings of Symposium on Trends in Functional Programming (TFP 2012) by Bas van Gijzel and Henrik Nilsson.
For the papers accompanying this library see Google Scholar.
License
BSD-3-Clause (see LICENSE)