It is highly unlikely that Antoine is thirsty. It is likely that Greg is a lion. There is little chance that Mary took the football. It is impossible that if 'Greg is a lion' or 'Antoine is thirsty' or both then John dropped the apple. It is unlikely that if 'Greg is a lion and Antoine is thirsty' then Brian is yellow. It is probably not the case that if 'Antoine is thirsty and Mary took the football' then Julius is a swan.
It is probable that either 'Brian is yellow' or 'Antoine is thirsty' but not both.
It is highly unlikely that either 'Brian is yellow' or 'Antoine is thirsty' but not both.
It is probable that either 'Brian is yellow' or 'Antoine is thirsty' but not 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.05::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.0::factX:-or(factB,factA).
  0.2::factY:-and(factB,factA).
  0.25::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Brian is yellow' or 'Antoine is thirsty' but not both.