It is certain that Bernhard is green. We believe that Winona is a mouse. There is almost no chance that Greg is white. It is certain that if either 'Greg is white' or 'Winona is a mouse' but not both then John put down the milk. It is certain that if either 'Greg is white' or 'Bernhard is green' but not both then Julius is a frog. It is highly unlikely that if 'Greg is white' or 'Bernhard is green' or both then Mary went to the garden.
We believe that 'Mary went to the garden' or 'John put down the milk' or both.
We believe that 'Mary went to the garden' or 'John put down the milk' or both.
It is impossible that 'Mary went to the garden' or 'John put down the milk' or both.

  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
  1.0::factA.
  0.75::factB.
  0.02::factC.
  %hop1
  1.0::factX:-xor(factC,factB).
  1.0::factY:-xor(factC,factA).
  0.05::factZ:-or(factC,factA).

  %hop2
  conclusion:-or(factZ,factX).

  query(conclusion).
  
'Mary went to the garden' or 'John put down the milk' or both.