It is highly unlikely that Fred is in the school. We believe that John took the apple. We doubt that Mary went to the office. Chances are about even that if 'Mary went to the office and John took the apple' then Brian is yellow. There is a very good chance that if 'Fred is in the school and Mary went to the office' then Greg is a rhino. It is impossible that if 'Mary went to the office' or 'Fred is in the school' or both then Bernhard is a frog.
There is a very good chance that either 'Bernhard is a frog' or 'Mary went to the office' but not both.
We doubt that either 'Bernhard is a frog' or 'Mary went to the office' but not both.
There is a very good chance that either 'Bernhard is a frog' or 'Mary went to the office' 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.05::factA.
  0.75::factB.
  0.2::factC.
  %hop1
  0.5::factX:-and(factC,factB).
  0.8::factY:-and(factA,factC).
  0.0::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Bernhard is a frog' or 'Mary went to the office' but not both.