It is highly likely that Antoine is thirsty. Chances are about even that Bill went to the kitchen. There is almost no chance that Greg is gray. It is unlikely that if either 'Greg is gray' or 'Antoine is thirsty' but not both then Daniel put down the milk. It is almost certain that if either 'Bill went to the kitchen' or 'Greg is gray' but not both then John discarded the apple. There is a very good chance that if either 'Antoine is thirsty' or 'Bill went to the kitchen' but not both then Bernhard is yellow.
It is impossible that 'Antoine is thirsty' or 'Greg is gray' or both.
It is highly likely that 'Antoine is thirsty' or 'Greg is gray' or both.
It is impossible that 'Antoine is thirsty' or 'Greg is gray' 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
  0.9::factA.
  0.5::factB.
  0.02::factC.
  %hop1
  0.2::factX:-xor(factC,factA).
  0.95::factY:-xor(factB,factC).
  0.8::factZ:-xor(factA,factB).

  %hop2
  conclusion:-or(factA,factC).

  query(conclusion).
  
'Antoine is thirsty' or 'Greg is gray' or both.