We believe that Brian is white. It is probably not the case that Mary got the football. It is improbable that Julius is a rhino. It is highly likely that if 'Julius is a rhino and Mary got the football' then Greg is gray. It is unlikely that if either 'Mary got the football' or 'Brian is white' but not both then Lily is a lion. It is highly unlikely that if 'Julius is a rhino and Brian is white' then Sumit is thirsty.
We believe that either 'Sumit is thirsty' or 'Greg is gray' but not both.
There is almost no chance that either 'Sumit is thirsty' or 'Greg is gray' but not both.
We believe that either 'Sumit is thirsty' or 'Greg is gray' 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.75::factA.
  0.25::factB.
  0.1::factC.
  %hop1
  0.9::factX:-and(factC,factB).
  0.2::factY:-xor(factB,factA).
  0.05::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Sumit is thirsty' or 'Greg is gray' but not both.