CarneadesDSL: An implementation and DSL for the Carneades argumentation model.

[ ai, argumentation, bsd3, embedded, library ] [ Propose Tags ] [ Report a vulnerability ]

An implementation and domain specific language for the Carneades argumentation model. See "Haskell Gets Argumentative" in the Proceedings of Symposium on Trends in Functional Programming (TFP 2012) by Bas van Gijzel and Henrik Nilsson. Thanks to Stefan Sabev for providing initial code for the cyclicity check. For the papers accompanying this library see "Towards a framework for the implementation and verification of translations between argumentation models" and "A principled approach to the implementation of argumentation models", available at https://scholar.google.com/citations?user=Xu4yjvwAAAAJ&hl.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.9, 1.0, 1.1, 1.1.0.1, 1.2, 1.3, 2.0.0.0
Change log CHANGELOG.md
Dependencies base (>=4.16 && <5), containers (>=0.6 && <0.8), fgl (>=5.7 && <5.9), parsec (>=3.1 && <3.2) [details]
Tested with ghc ==9.4.8, ghc ==9.6.6, ghc ==9.8.4, ghc ==9.10.1
License BSD-3-Clause
Copyright Copyright (C) 2014-2026 Bas van Gijzel
Author Bas van Gijzel, Henrik Nilsson
Maintainer Bas van Gijzel <nenekotan+git@gmail.com>
Uploaded by BasVanGijzel at 2026-02-08T14:22:23Z
Category Argumentation, Embedded, AI
Home page https://github.com/nebasuke/CarneadesDSL
Source repo head: git clone https://github.com/nebasuke/CarneadesDSL
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 6032 total (13 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2026-02-08 [all 1 reports]

Readme for CarneadesDSL-2.0.0.0

[back to package description]

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)