It is probably not the case that Daniel put down the milk. Chances are slight that Greg is a frog. We believe that Julius is gray. We doubt that if either 'Daniel put down the milk' or 'Julius is gray' but not both then Lily is a rhino. It is certain that if 'Julius is gray and Daniel put down the milk' then Mary is in the hallway. It is unlikely that if either 'Julius is gray' or 'Daniel put down the milk' but not both then Bernhard is a swan.
It is likely that either 'Julius is gray' or 'Lily is a rhino' but not both.
It is likely that either 'Julius is gray' or 'Lily is a rhino' but not both.
It is probably not the case that either 'Julius is gray' or 'Lily is a rhino' 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.25::factA.
  0.1::factB.
  0.75::factC.
  %hop1
  0.2::factX:-xor(factA,factC).
  1.0::factY:-and(factC,factA).
  0.2::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'Julius is gray' or 'Lily is a rhino' but not both.