There is a better than even chance that Lily is a rhino. It is likely that Emily is a mouse. It is certain that John went to the hallway. Chances are slight that if either 'Lily is a rhino' or 'Emily is a mouse' but not both then Sandra got the milk. It is improbable that if either 'Emily is a mouse' or 'John went to the hallway' but not both then Julius is gray. There is almost no chance that if 'Lily is a rhino' or 'John went to the hallway' or both then Brian is yellow.
It is highly likely that either 'Julius is gray' or 'Sandra got the milk' but not both.
It is highly unlikely that either 'Julius is gray' or 'Sandra got the milk' but not both.
It is highly likely that either 'Julius is gray' or 'Sandra got the milk' 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.6::factA.
  0.7::factB.
  1.0::factC.
  %hop1
  0.1::factX:-xor(factA,factB).
  0.1::factY:-xor(factB,factC).
  0.02::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Julius is gray' or 'Sandra got the milk' but not both.