View source with raw comments or as raw
    1% Birds with abducibles. If we observe that a bird is abnormal, we can use our
    2% abducibles to speculate why.
    3
    4#abducible wounded_bird(X).
    5#abducible penguin(X).
    6#abducible ab(X).
    7
    8% Sam, Tweety and John are birds.
    9bird(sam).
   10bird(tweety).
   11bird(john).
   12
   13% penguins and wounded birds are abnormal
   14ab(X) :- penguin(X).
   15ab(X) :- wounded_bird(X).
   16
   17% birds that are not abnormal can fly
   18flies(X) :- bird(X), not ab(X).
   19
   20?- not flies(tweety).