DLV
The DLV (DataLog with Disjunction, whereas the logical disjunction symbol V is used) system is a disjunctive logic programming system, implementing the stable model semantics under the Answer set programming paradigm. It extends the datalog language to allow the use of OR in rules. The tutorial page gives a simple example modeling some laughing when told a joke.