Chances are about even that Mary went to the kitchen. There is a better than even chance that Jessica is a cat. It is highly likely that Greg is gray. It is improbable that if 'Greg is gray' or 'Mary went to the kitchen' or both then Daniel left the apple. It is impossible that if either 'Jessica is a cat' or 'Mary went to the kitchen' but not both then Julius is a swan. It is highly likely that if 'Greg is gray and Mary went to the kitchen' then John dropped the milk.
Chances are about even that either 'John dropped the milk' or 'Julius is a swan' but not both.
Chances are about even that either 'John dropped the milk' or 'Julius is a swan' but not both.
It is almost certain that either 'John dropped the milk' or 'Julius is a swan' 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.5::factA.
  0.6::factB.
  0.9::factC.
  %hop1
  0.1::factX:-or(factC,factA).
  0.0::factY:-xor(factB,factA).
  0.9::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'John dropped the milk' or 'Julius is a swan' but not both.