It is probably not the case that Sandra dropped the milk. It is highly likely that Mary picked up the apple. We doubt that John left the football. There is almost no chance that if either 'John left the football' or 'Sandra dropped the milk' but not both then Brian is a frog. Chances are slight that if 'John left the football and Mary picked up the apple' then Bernhard is a lion. It is unlikely that if either 'Mary picked up the apple' or 'Sandra dropped the milk' but not both then Julius is gray.
It is highly likely that either 'Mary picked up the apple' or 'Brian is a frog' but not both.
It is highly likely that either 'Mary picked up the apple' or 'Brian is a frog' but not both.
It is highly unlikely that either 'Mary picked up the apple' or 'Brian is a frog' 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.25::factA.
  0.9::factB.
  0.2::factC.
  %hop1
  0.02::factX:-xor(factC,factA).
  0.1::factY:-and(factC,factB).
  0.2::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Mary picked up the apple' or 'Brian is a frog' but not both.