On this page:
1.1 Key Features
1.2 Quick Example

1 Overview🔗ℹ

Defeasible logic allows you to express rules that “typically” hold but can be overridden. For example:

  • Birds typically fly

  • Penguins are birds

  • Penguins typically don’t fly

  • The penguin rule is superior to the bird rule

Spindle will correctly conclude that a penguin does not fly, even though it is a bird.

1.1 Key Features🔗ℹ

  • Defeasible reasoning Rules can be strict (always apply) or defeasible (can be overridden)

  • Multiple syntaxes DFL (textual) and SPL (S-expression) formats

  • Explanations Understand why conclusions hold or don’t hold

  • What-if analysis Hypothetical reasoning with temporary assumptions

  • Process mining Learn rules from event logs

1.2 Quick Example🔗ℹ

Using DFL syntax:

# Facts

>> bird

>> penguin

 

# Rules

r1: bird => flies        # Birds typically fly

r2: penguin => ¬flies    # Penguins typically don't fly

 

# Superiority

r2 > r1                  # Penguin rule beats bird rule

Using SPL (Spindle LISP) syntax:

(given bird)
(given penguin)
(normally r1 bird flies)
(normally r2 penguin (not flies))
(prefer r2 r1)