We believe that Mary picked up the apple. It is highly likely that Sandra dropped the milk. We believe that John moved to the garden. It is almost certain that if 'John moved to the garden and Mary picked up the apple' then Greg is a rhino. There is a very good chance that if 'Sandra dropped the milk' or 'John moved to the garden' or both then Bernhard is gray. It is highly unlikely that if 'John moved to the garden' or 'Mary picked up the apple' or both then Brian is a frog.
It is highly likely that either 'Brian is a frog' or 'Sandra dropped the milk' but not both.
It is highly likely that either 'Brian is a frog' or 'Sandra dropped the milk' but not both.
It is probably not the case that either 'Brian is a frog' or 'Sandra dropped 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.75::factA.
  0.9::factB.
  0.75::factC.
  %hop1
  0.95::factX:-and(factC,factA).
  0.8::factY:-or(factB,factC).
  0.05::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Brian is a frog' or 'Sandra dropped the milk' but not both.