TweetyProject is a collection of various Java libraries that implement approaches to different areas of artificial intelligence. In particular, it provides a general interface layer for doing research and working with different knowledge representation formalisms such as classical logics, conditional logics, probabilistic logics, and argumentation. Furthermore, TweetyProject contains libraries for dealing with agents, multi-agent systems, and dialog systems for agents, as well as belief revision, preference reasoning, preference aggregation, and action languages. A series of utility libraries that deal with e.g. mathematical optimization complement the collection.
TweetyProject is in development since 2010.
Project website: http://tweetyproject.org/
Newsletter: http://tweetyproject.org/newsletter/
Step-by-step guides can be found here:
- Installing TweetyProject from the command line
- Installing TweetyProject in Eclipse
- Installing the snapshot version of TweetyProject
Want to contribute? We appreciate it! If you find a bug or would like to request a feature, please open an issue here. For bug reports, include steps to recreate the bug and screenshots, if possible.
If you want to make your own contributions to the code, follow the usual steps:
- Fork this repository
- Create a new branch
git checkout -b wip/myfeature
- Make your changes
- Add your changes
git add your-files
- Commit your changes
git commit -m "description of your feature"
- Push to your branch
git push origin wip/myfeature
- Create a pull request`
- API: The most recent version of the technical documentation for all TweetyProject libraries in form of the JavaDoc API can be found here: TweetyProject API 1.27
- Integration of third-party solvers: The following pages give some more detailed information on how third-party products such as SAT solvers and optimization solvers can be integrated in TweetyProject:
- Tutorials: The slidedecks of the following tutorials give a more detailed and practical introduction into working with TweetyProject:
- Papers: The following papers give a brief overview on the functionalities of TweetyProject and should also be used as a reference when citing TweetyProject in scientific papers.
- 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
- Example code and resources: Example code snippets that show the functionality of the library (also distributed as part of the library).
- Developer guide
A manual on how to use TweetyProject in your programs is currently in development.
All parts of the TweetyProject available on this website are licensed under the GNU Lesser General Public License version 3 (beginning with TweetyProject version 1.6, the versions before are licensed under the GNU General Public License version 3) except when this is noted otherwise. Use and modification of the libraries is encouraged but please give credit by referring to this repository. Please note that some libraries make also use of other third-party libraries such as Apache Commons.