# EtcAbductionPy

### An implementation of Etcetera Abduction in Python

This software is a reference implementation of Etcetera Abduction. Given a knowledge base of first-order definite clauses and a set of observables, this software identifies the most probable set of assumptions that logically entails the observations, assuming the conditional independence of each assumption.

## Tutorial

- Getting started, on installing Etcetera Abduction, input files, and graphing solutions
- Example 1: Chicken and Egg, introducing the etcetera literal, conditional and prior probabilities
- Example 2: Dead Plant, introducing eventuality notation, nonmonotonic reasoning
- Example 3: Lemon or Lime, relating abduction to classification
- Example 4: For Want of a Nail, on backchaining depth, universally and existentially quantified variables
- Example 5: Twenty Ticks, combinatorial explosions, and fast incremental Etcetera Abduction
- Example 6: Man Bites Dog, natural language interpretation with and without word order

## Source code

## Further reading

- Gordon, A. (2016) Commonsense Interpretation of Triangle Behavior. In Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence (AAAI-16), February 12-17, 2016, Phoenix, Arizona.
- Gordon, A. (2017) Solving Interpretation Problems with Etcetera Abduction (Invited talk). Proceedings of the Fifth Annual Conference on Advances in Cognitive Systems, May 12-14, 2017, Troy, New York.
- Inoue, N. and Gordon, A. (2017) A Scalable Weighted Max-SAT Implementation of Propositional Etcetera Abduction. Proceedings of the 30th International Conference of the Florida AI Society (FLAIRS-30), May 22-24, 2017, Marco Island, FL.