Latest release 1.31 · 14 July 2026

TweetyProject

TweetyProject is a collection of Java libraries implementing approaches to knowledge representation and reasoning: classical and non-classical logics, computational argumentation, logic programming, agents, belief dynamics and more, all behind one common interface layer.

Get notified on new releases

Maven — complete collection
<dependency>
    <groupId>org.tweetyproject</groupId>
    <artifactId>tweety-full</artifactId>
    <version>1.31</version>
</dependency>
AgonProject — web platform Open ↗ agonproject.aig.fernuni-hagen.de The platform to explore different approaches to formal argumentation. Powered by TweetyProject.

About

TweetyProject provides a general interface layer for doing research with different knowledge representation formalisms such as classical logics, conditional logics, probabilistic logics and argumentation. It further contains libraries for agents, multi-agent systems and dialogues, as well as belief revision, preference reasoning, preference aggregation and action languages. Utility libraries for tasks such as mathematical optimisation complement the collection.

All parts of TweetyProject are licensed under the GNU Lesser General Public License version 3 (versions before 1.6 are licensed under the GNU General Public License version 3), except where noted otherwise. Use and modification of the libraries is encouraged, please give credit by referring to this website. Note that some libraries also make use of third-party libraries such as Apache Commons.

Snapshot versions and the full source code are available in the Git repository at GitHub. Individual libraries can be added as separate Maven dependencies using the artifact identifiers listed there.

News

The complete history is available in the release list on GitHub.

  • 14 July 2026

    TweetyProject 1.31

    • Refactored bipolar argumentation library (org.tweetyproject.arg.bipolar)
    • Refactored ADF library (org.tweetyproject.arg.adf)
    • Fixed JavaDoc and minor bugfixes
  • 16 January 2026

    TweetyProject 1.30

    • New library org.tweetyproject.causal: causal reasoning approaches based on abstract argumentation
    • New library org.tweetyproject.arg.explanations: explanation methods based on serialisability
    • Classes for checking equivalence of abstract argumentation frameworks (org.tweetyproject.arg.dung)
    • Fixed JavaDoc and minor bugfixes

Libraries

Each library implements one formalism or one utility area, and can be pulled in on its own with the Maven coordinates given on its card. Technical documentation for all of them is in the JavaDoc API.

General libraries 7

Commons

org.tweetyproject.commons

Defines the abstract classes and interfaces shared by all other libraries, among them Formula, BeliefBase, BeliefSet, Signature, Interpretation, Reasoner, Parser and Writer. Every formalism in TweetyProject is realised by specialising these building blocks, so that the definition of a logic via syntax and semantics corresponds one-to-one to its implementation.

org.tweetyproject:commons

Plugin

org.tweetyproject.plugin

Provides the plugin architecture that lets a library expose its functionality uniformly to user interfaces, built on the Java Simple Plugin Framework (JSPF). New plugins are written by extending the abstract class AbstractTweetyPlugin.

org.tweetyproject:plugin

Command Line Interface

org.tweetyproject.cli

A general command line interface that makes the libraries usable without writing Java code. Any library that ships a TweetyProject plugin can be plugged in and driven from the same uniform command line.

org.tweetyproject:cli

Comparator

org.tweetyproject.comparator

Classes for comparing objects of various kinds. Includes representations of total and partial orders.

org.tweetyproject:comparator

Math

org.tweetyproject.math

Represents mathematical terms and statements — Constant, Variable, Product, Logarithm, Equation — and builds constraint satisfaction and optimisation problems from them. A common Solver interface bridges to third-party solvers such as the Apache Commons simplex implementation, the OpenOpt solvers and lpsolve.

org.tweetyproject:math

Graphs

org.tweetyproject.graphs

A compact graph implementation together with the utility functions the other libraries need. It underlies, for instance, the representation of abstract argumentation frameworks.

org.tweetyproject:graphs

SAT alpha

org.tweetyproject.sat

Bindings for calling external SAT solvers. The library is still in an alpha stage — most SAT solving capabilities currently reside in the Propositional Logic library.

org.tweetyproject:sat

Logic libraries 15

Logic Commons

org.tweetyproject.logics.commons

Refines the general Formula interface from Commons with concepts shared by a large number of formalisms, such as Predicate, Variable and Atom. It is the common base on which the individual logic libraries build.

org.tweetyproject.logics:commons

Propositional Logic

org.tweetyproject.logics.pl

Implements classical propositional logic, with formulas built from classes such as Conjunction and Disjunction and collected in a PlBeliefSet. Reasoning can be delegated to external SAT solvers.

org.tweetyproject.logics:pl

First-Order Logic

org.tweetyproject.logics.fol

Implements first-order logic as a knowledge representation formalism and serves, together with propositional logic, as the basis of many other libraries. Reasoning can be delegated to external first-order theorem provers.

org.tweetyproject.logics:fol

Conditional Logic

org.tweetyproject.logics.cl

Extends propositional logic with conditionals (B|A), read as “A usually implies B”, so that different semantics for conditionals can be compared directly. Ranking functions and conditional structures are available as interpretations, together with reasoners based on z-rankings and c-representations.

org.tweetyproject.logics:cl

Relational Conditional Logic

org.tweetyproject.logics.rcl

Lifts conditionals to the first-order case, allowing conditionals that contain first-order formulas. Contains an implementation of the relational c-representation reasoning approach.

org.tweetyproject.logics:rcl

Probabilistic Conditional Logic

org.tweetyproject.logics.pcl

Extends conditional logic with probabilities, i.e. conditionals of the form (B|A)[p]. Besides reasoning under the principle of maximum entropy it provides classes for analysing and repairing inconsistent sets of probabilistic conditionals.

org.tweetyproject.logics:pcl

Relational Probabilistic Conditional Logic

org.tweetyproject.logics.rpcl

Combines relational and probabilistic conditionals into one formalism. It implements both the averaging and the aggregating semantics and also allows for lifted inference.

org.tweetyproject.logics:rpcl

Reiter's Default Logic

org.tweetyproject.logics.rdl

A general implementation of Reiter's default logic. It is built directly on top of the First-Order Logic library.

org.tweetyproject.logics:rdl

Markov Logic Networks

org.tweetyproject.logics.mln

Implements Markov logic, an extension of first-order logic with weights that allows for probabilistic reasoning. It provides several proprietary sampling-based reasoners as well as a bridge to the Alchemy reasoner.

org.tweetyproject.logics:mln

Modal Logic

org.tweetyproject.logics.ml

Extends propositional logic with modal operators. Its semantics is given by accessibility relations and Kripke models.

org.tweetyproject.logics:ml

Quantified Boolean Formulas

org.tweetyproject.logics.qbf

Represents quantified Boolean formulas and provides parsers and writers for file formats such as QCIR and QDIMACS. Bridges to several external QBF solvers including Cadet, Caqe, GhostQ and Qute are included.

org.tweetyproject.logics:qbf

Description Logic

org.tweetyproject.logics.dl

A general description logic implementation covering concepts, roles and individuals. It is built on top of the First-Order Logic library.

org.tweetyproject.logics:dl

Business Process Modelling beta

org.tweetyproject.logics.bpm

Provides modelling capabilities for the business process modelling notation. The library is currently a beta version.

org.tweetyproject.logics:bpm

Petri Nets beta

org.tweetyproject.logics.petri

Models Petri nets and adds reasoning capabilities and inconsistency measures for them. The library is currently a beta version.

org.tweetyproject.logics:petri

Logic Translators

org.tweetyproject.logics.translators

Provides the abstract class Translator as a basis for converting between knowledge representation formalisms. Concrete translators exist between first-order logic and answer set programming, between nested logic programs and answer set programming, and between propositional and first-order logic.

org.tweetyproject.logics:translators

Logic programming libraries 3

Answer Set Programming

org.tweetyproject.lp.asp

Represents extended logic programs, i.e. rules A ← B1,…,Bm over first-order literals whose body literals may carry default negation. Bridges to established solvers such as DLV, DLV-Complex and Clingo are provided.

org.tweetyproject.lp:asp

Dynamics in Answer Set Programming

org.tweetyproject.lp.asp.beliefdynamics

Adds revision and update approaches to answer set programming. Alongside established operators from the literature it also offers revision approaches based on argumentation.

org.tweetyproject.lp.asp:beliefdynamics

Nested Logic Programs

org.tweetyproject.lp.nlp

Implements nested logic programs, which allow complex first-order formulas to appear inside logic programming rules. The formalism thereby generalises the flat rules of standard answer set programming.

org.tweetyproject.lp:nlp

Argumentation libraries 18

Abstract Argumentation

org.tweetyproject.arg.dung

Implements abstract argumentation à la Dung, where a framework is a directed graph whose nodes are arguments and whose edges are attacks. Reasoners are provided for all commonly used semantics, both extension-based and labelling-based, complemented by utilities for generating random frameworks.

org.tweetyproject.arg:dung

ABA

org.tweetyproject.arg.aba

Implements assumption-based argumentation. An ABA theory instantiates an abstract argumentation framework by giving arguments structure in the form of assumptions and rules.

org.tweetyproject.arg:aba

Abstract Dialectical Frameworks

org.tweetyproject.arg.adf

Implements abstract dialectical frameworks, an extension of abstract argumentation. Each argument is equipped with its own acceptance condition rather than being related only by attack.

org.tweetyproject.arg:adf

ASPIC+

org.tweetyproject.arg.aspic

Implements the ASPIC+ approach to structured argumentation. Arguments are built from strict and defeasible rules and the resulting theory instantiates an abstract argumentation framework.

org.tweetyproject.arg:aspic

Bipolar Argumentation

org.tweetyproject.arg.bipolar

Implements bipolar argumentation, which adds a support relation next to attack. Several different notions of support from the literature are covered.

org.tweetyproject.arg:bipolar

Epistemic Argumentation

org.tweetyproject.arg.eaf

Implements epistemic argumentation frameworks.

org.tweetyproject.arg:eaf

Explanations for Argumentation

org.tweetyproject.arg.explanations

Provides methods for explaining the acceptability of arguments. The implemented explanation methods are based on serialisability of semantics.

org.tweetyproject.arg:explanations

Extended Argumentation

org.tweetyproject.arg.extended

Implements extended argumentation frameworks. Attacks may here be recursive, i.e. target other attacks instead of only arguments.

org.tweetyproject.arg:extended

Weighted Argumentation

org.tweetyproject.arg.weighted

Implements weighted argumentation frameworks, in which attacks carry numerical weights. The library provides the corresponding representations and reasoning support.

org.tweetyproject.arg:weighted

Constrained Argumentation

org.tweetyproject.arg.caf

Implements constrained argumentation frameworks, which augment an abstract framework with a propositional constraint. Extensions must satisfy that constraint in addition to the conditions of the chosen semantics.

org.tweetyproject.arg:caf

Deductive Argumentation

org.tweetyproject.arg.deductive

Implements deductive argumentation, where an argument consists of a set of propositional formulas that derive its claim. Attack between arguments is derived from classical unsatisfiability.

org.tweetyproject.arg:deductive

Social Abstract Argumentation

org.tweetyproject.arg.social

Implements social abstract argumentation frameworks, which attach positive and negative votes to arguments. A quantitative semantics evaluates the arguments on the basis of these votes.

org.tweetyproject.arg:social

Structured Argumentation

org.tweetyproject.arg.saf

Implements structured argumentation frameworks, in which an argument is composed of subarguments and a conclusion. Attack between arguments is determined by this internal structure.

org.tweetyproject.arg:saf

SetAFs

org.tweetyproject.arg.setaf

Implements argumentation frameworks with collective attacks, where a set of arguments jointly attacks another argument.

org.tweetyproject.arg:setaf

Defeasible Logic Programming

org.tweetyproject.arg.delp

Implements DeLP, whose knowledge bases contain facts together with strict and defeasible rules, similar to logic programming formalisms. Arguments collected from defeasible rules are compared by generalised specificity.

org.tweetyproject.arg:delp

Logic Programming Argumentation

org.tweetyproject.arg.lp

Implements the argumentation approach of Schweimeier and Schroeder, which is likewise based on logic programming techniques. Arguments and their relationships are derived from extended logic programs.

org.tweetyproject.arg:lp

Probabilistic Argumentation

org.tweetyproject.arg.prob

Extends abstract argumentation with non-classical semantics based on probabilistic assessments. Acceptability is evaluated through probability distributions rather than crisp extensions.

org.tweetyproject.arg:prob

Rankings for Argumentation

org.tweetyproject.arg.rankings

Extends abstract argumentation with ranking-based semantics. Instead of accepting or rejecting arguments outright, these order arguments by strength.

org.tweetyproject.arg:rankings

Agent libraries 2

Agents

org.tweetyproject.agents

An abstract formalisation of agents and multi-agent systems built around classes such as Agent, Environment, MultiAgentSystem and Protocol. Its focus is simulation: MultiAgentSystemGenerator and GameSimulator allow test scenarios to be generated and evaluated automatically.

org.tweetyproject:agents

Dialogues

org.tweetyproject.agents.dialogues

Extends the Agents library with the ability to simulate dialogues between agents, as studied in argumentation for multi-agent systems. It also provides an implementation of agents that maintain a model of their opponent.

org.tweetyproject.agents:dialogues

Other libraries 6

Action and Change

org.tweetyproject.action

Implements several action languages and their dynamics. Domains can be described and the effects of action sequences reasoned about.

org.tweetyproject:action

Belief Dynamics

org.tweetyproject.beliefdynamics

A general implementation of belief base revision and update, offering concepts such as BaseRevisionOperator, BaseContractionOperator, IncisionFunction and LeviBaseRevisionOperator. The classes are defined generically enough to apply not only to propositional logic but to any formalism implementing the corresponding interfaces.

org.tweetyproject:beliefdynamics

Causal Reasoning

org.tweetyproject.causal

Provides methods for causal reasoning. The implemented approaches are based on abstract argumentation.

org.tweetyproject:causal

Machine Learning

org.tweetyproject.machinelearning

Provides abstract concepts for machine learning such as Observation, Classifier and CrossValidator. It also contains an implementation of support vector machines utilising LIBSVM.

org.tweetyproject:machinelearning

Preferences

org.tweetyproject.preferences

Contains classes for representing preference orders and approaches for aggregating them. It also implements a dynamic preference aggregation approach.

org.tweetyproject:preferences

Web

org.tweetyproject.web

Exposes TweetyProject functionality through web services. It is the basis of the web interfaces offered on this site.

org.tweetyproject:web

Documentation

The technical documentation for all libraries is the JavaDoc API of version 1.31.

The following papers give an overview of the functionalities of TweetyProject and should be used as a reference when citing TweetyProject in scientific work:

Matthias Thimm. Tweety — A Comprehensive Collection of Java Libraries for Logical Aspects of Artificial Intelligence and Knowledge Representation. In Proceedings of the 14th International Conference on Principles of Knowledge Representation and Reasoning (KR'14), Vienna, July 2014. PDF BibTeX
Matthias Thimm. The Tweety Library Collection for Logical Aspects of Artificial Intelligence and Knowledge Representation. In Künstliche Intelligenz, 31(1):93–97, March 2017. PDF BibTeX

Contact

Maintainer

This website and TweetyProject are maintained by Matthias Thimm.

If you would like to participate in the development or have questions or comments, write to matthias@mthimm.de.

Contributors

TweetyProject is developed collaboratively. Thanks go to Lars Bengel, Linda Briesemeister, Federico Cerutti, Oleksandr Dzhychko, Sebastian Franke, Nils Geilen, Anna Gessler, Timothy Gillespie, Taha Gunes, Mathias Hofer, Sandra Hoffmann, Sebastian Homann, Tim Janus, Jonas Klein, Benedikt Knopp, Patrick Krümpelmann, Daniel Letkemann, Nico Potyka, Nikola Raevski, Tjitze Rienstra, Julian Sander, Jonas Schumacher, Dmitry Shishkin, Stefan Tittel, Thomas Vengels, Ivan Nicola Viragine and Bastian Wolf.

Legal

Privacy policy and imprint

This Privacy Policy explains what information is collected by this website, what information is provided by the user, how this data is collected and how we protect it.

Data protection declaration

The protection of personal data is an important concern for the operator of this website. In designing our online offers, we comply with the provisions of the German Telemedia Act (TMG) and the German Federal and State Data Protection Act (BDSG/LDSG).

Personal information

When you visit our website, our web servers temporarily store each access in a log file. The following data is recorded and temporarily stored: IP address of the requesting computer, date and time of access, name and URL of the retrieved file, amount of data transferred, message as to whether the retrieval was successful, identification data of the browser and operating system used, web page from which access is made, name of your Internet service provider. This data is processed for the purpose of enabling use of the website (connection establishment), system security, technical administration of the network infrastructure and optimisation of the Internet offering.

Personal user profiles are not created. In addition, we use personal data exclusively within the scope of your consent to answer your inquiries or to send you information by e-mail. You have the possibility to revoke your consent at any time.

No disclosure to third parties

Your personal data will only be used within the server operating this website. No data will be passed on to third parties.

Use of cookies

When you access our website, we store information on your computer in the form of a cookie. If you refuse the use of cookies, we ask you to change the corresponding settings of your browser. You have the general choice of rejecting all cookies or allowing them to be stored only after your consent. Rejecting cookies does not limit the use of our website. Please refer to your browser manufacturer's instructions for further information.

Links to other websites

This website may contain links to other websites. We are not responsible for whether these websites or the operators of these websites comply with the legal data protection regulations.

Right to information

In the event that personal data is collected, we undertake to always provide information about the stored data, if you so wish.

Up-to-dateness of the data protection declaration

This Privacy Policy is dated September 21, 2012 and may need to be amended as our website evolves or new technologies are implemented. We reserve the right to change this data protection declaration at any time. We therefore recommend that you re-read the current data protection declaration from time to time.

Imprint

Responsible due to §55 Abs. 2 RStV, §5 TMG: Matthias Thimm (thimm@mthimm.de), Universitätsstraße 11, 58097 Hagen, Germany.