We doubt that Julius is a swan. There is almost no chance that Greg is green. It is probably the case that John went to the garden. There is a very good chance that if either 'John went to the garden' or 'Greg is green' but not both then Brian is a frog. We believe that if 'Greg is green and Julius is a swan' then Daniel got the milk. Chances are about even that if 'John went to the garden and Greg is green' then Mary dropped the apple.
We believe that either 'Daniel got the milk' or 'Greg is green' but not both.
There is almost no chance that either 'Daniel got the milk' or 'Greg is green' but not both.
We believe that either 'Daniel got the milk' or 'Greg 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.2::factA.
  0.02::factB.
  0.7::factC.
  %hop1
  0.8::factX:-xor(factC,factB).
  0.75::factY:-and(factB,factA).
  0.5::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Daniel got the milk' or 'Greg is green' but not both.