Chances are slight that Mary dropped the milk. We doubt that Jessica is a cat. There is a very good chance that Julius is gray. It is unlikely that if 'Mary dropped the milk and Julius is gray' then Bernhard is yellow. We believe that if 'Julius is gray and Mary dropped the milk' then Brian is green. Chances are about even that if 'Mary dropped the milk and Julius is gray' then Sandra left the milk.
It is unlikely that either 'Mary dropped the milk' or 'Julius is gray' but not both.
We believe that either 'Mary dropped the milk' or 'Julius is gray' but not both.
It is unlikely that either 'Mary dropped the milk' 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.1::factA.
  0.2::factB.
  0.8::factC.
  %hop1
  0.2::factX:-and(factA,factC).
  0.75::factY:-and(factC,factA).
  0.5::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Mary dropped the milk' or 'Julius is gray' but not both.