There is little chance that Antoine is thirsty. It is almost certain that Mary discarded the milk. Chances are slight that John took the football. It is improbable that if either 'John took the football' or 'Mary discarded the milk' but not both then Brian is white. There is a better than even chance that if 'John took the football' or 'Mary discarded the milk' or both then Winona is a sheep. It is highly likely that if 'Mary discarded the milk and John took the football' then Greg is a lion.
There is almost no chance that 'Antoine is thirsty' or 'Winona is a sheep' or both.
There is a better than even chance that 'Antoine is thirsty' or 'Winona is a sheep' or both.
There is almost no chance that 'Antoine is thirsty' or 'Winona is a sheep' 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.1::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.1::factX:-xor(factC,factB).
  0.6::factY:-or(factC,factB).
  0.9::factZ:-and(factB,factC).

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

  query(conclusion).
  
'Antoine is thirsty' or 'Winona is a sheep' or both.