It is probably the case that Jessica is a cat. It is probably the case that Antoine is thirsty. It is probable that Brian is a lion. It is probably the case that if either 'Jessica is a cat' or 'Antoine is thirsty' but not both then Gertrude is a sheep. It is certain that if 'Brian is a lion' or 'Antoine is thirsty' or both then Mary dropped the apple. It is certain that if 'Brian is a lion' or 'Antoine is thirsty' or both then Greg is yellow.
There is almost no chance that 'Mary dropped the apple and Antoine is thirsty'.
It is probably the case that 'Mary dropped the apple and Antoine is thirsty'.
There is almost no chance that 'Mary dropped the apple and Antoine is thirsty'.

  and(A,B) :- A,B.
  or(A,B) :- A;B.
  nand(A,B) :- not(and(A,B)).
  nor(A,B) :- not(or(A,B)).
  xor(A,B) :- or(A,B), nand(A,B).

  %hop0
  0.7::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.7::factX:-xor(factA,factB).
  1.0::factY:-or(factC,factB).
  1.0::factZ:-or(factC,factB).

  %hop2
  conclusion:-and(factY,factB).

  query(conclusion).
  
'Mary dropped the apple and Antoine is thirsty'.