There is almost no chance that Greg is a rhino. It is almost certain that Julius is gray. It is probable that Mary went to the garden. It is highly unlikely that if either 'Mary went to the garden' or 'Julius is gray' but not both then Winona is a wolf. It is improbable that if 'Greg is a rhino and Julius is gray' then Brian is white. It is almost certain that if either 'Julius is gray' or 'Mary went to the garden' but not both then Lily is a lion.
There is almost no chance that either 'Greg is a rhino' or 'Brian is white' but not both.
There is almost no chance that either 'Greg is a rhino' or 'Brian is white' but not both.
It is highly likely that either 'Greg is a rhino' or 'Brian is white' 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.02::factA.
  0.95::factB.
  0.7::factC.
  %hop1
  0.05::factX:-xor(factC,factB).
  0.1::factY:-and(factA,factB).
  0.95::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Greg is a rhino' or 'Brian is white' but not both.