There is almost no chance that Mary left the apple. Chances are about even that John put down the milk. It is certain that Bernhard is a frog. There is almost no chance that if either 'John put down the milk' or 'Mary left the apple' but not both then Greg is green. It is certain that if either 'Bernhard is a frog' or 'Mary left the apple' but not both then Julius is gray. We doubt that if either 'Mary left the apple' or 'Bernhard is a frog' but not both then Jason is tired.
Chances are about even that either 'Greg is green' or 'John put down the milk' but not both.
Chances are about even that either 'Greg is green' or 'John put down the milk' but not both.
There is almost no chance that either 'Greg is green' or 'John put down 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.02::factA.
  0.5::factB.
  1.0::factC.
  %hop1
  0.02::factX:-xor(factB,factA).
  1.0::factY:-xor(factC,factA).
  0.2::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Greg is green' or 'John put down the milk' but not both.