It is probably not the case that Winona is a wolf. There is little chance that Julius is gray. It is impossible that Lily is green. Chances are slight that if either 'Julius is gray' or 'Lily is green' but not both then Jessica is a cat. It is almost certain that if either 'Julius is gray' or 'Winona is a wolf' but not both then Bernhard is a frog. We believe that if 'Julius is gray' or 'Winona is a wolf' or both then Bill left the milk.
It is probably the case that either 'Jessica is a cat' or 'Lily is green' but not both.
There is almost no chance that either 'Jessica is a cat' or 'Lily is green' but not both.
It is probably the case that either 'Jessica is a cat' or 'Lily is green' 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.0::factC.
  %hop1
  0.1::factX:-xor(factB,factC).
  0.95::factY:-xor(factB,factA).
  0.75::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Jessica is a cat' or 'Lily is green' but not both.