We believe that Julius is yellow. It is almost certain that Lily is a swan. It is unlikely that Winona is a sheep. It is probably not the case that if 'Winona is a sheep and Lily is a swan' then Emily is a wolf. It is certain that if either 'Winona is a sheep' or 'Lily is a swan' but not both then John grabbed the milk. It is certain that if 'Winona is a sheep and Lily is a swan' then Daniel left the football.
It is probably not the case that either 'Julius is yellow' or 'John grabbed the milk' but not both.
It is probably not the case that either 'Julius is yellow' or 'John grabbed the milk' but not both.
It is almost certain that either 'Julius is yellow' or 'John grabbed 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.75::factA.
  0.95::factB.
  0.2::factC.
  %hop1
  0.25::factX:-and(factC,factB).
  1.0::factY:-xor(factC,factB).
  1.0::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Julius is yellow' or 'John grabbed the milk' but not both.