It is probably the case that Julius is gray. Chances are slight that Lily is white. It is probably the case that Bernhard is a rhino. There is almost no chance that if 'Bernhard is a rhino and Lily is white' then Winona is a wolf. There is almost no chance that if 'Julius is gray and Bernhard is a rhino' then Brian is yellow. Chances are slight that if 'Lily is white' or 'Bernhard is a rhino' or both then John went to the office.
It is likely that either 'Lily is white' or 'Julius is gray' but not both.
It is likely that either 'Lily is white' or 'Julius is gray' but not both.
It is probably not the case that either 'Lily is white' or 'Julius 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.7::factA.
  0.1::factB.
  0.7::factC.
  %hop1
  0.02::factX:-and(factC,factB).
  0.02::factY:-and(factA,factC).
  0.1::factZ:-or(factB,factC).

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

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