It is probably the case that Brian is green. It is highly likely that Greg is yellow. It is almost certain that Mary went to the garden. We doubt that if either 'Mary went to the garden' or 'Greg is yellow' but not both then Lily is a swan. It is probably not the case that if 'Brian is green and Mary went to the garden' then John discarded the apple. There is almost no chance that if 'Mary went to the garden and Greg is yellow' then Julius is white.
Chances are slight that either 'John discarded the apple' or 'Mary went to the garden' but not both.
There is a very good chance that either 'John discarded the apple' or 'Mary went to the garden' but not both.
Chances are slight that either 'John discarded the apple' or 'Mary went to the garden' 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.7::factA.
  0.9::factB.
  0.95::factC.
  %hop1
  0.2::factX:-xor(factC,factB).
  0.25::factY:-and(factA,factC).
  0.02::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'John discarded the apple' or 'Mary went to the garden' but not both.