It is likely that Sandra dropped the milk. It is certain that Bernhard is a frog. It is improbable that John went to the office. It is highly likely that if 'John went to the office and Bernhard is a frog' then Lily is yellow. It is highly unlikely that if either 'Bernhard is a frog' or 'Sandra dropped the milk' but not both then Greg is green. There is a better than even chance that if either 'John went to the office' or 'Bernhard is a frog' but not both then Fred is in the school.
There is a better than even chance that either 'Fred is in the school' or 'Lily is yellow' but not both.
There is a better than even chance that either 'Fred is in the school' or 'Lily is yellow' but not both.
It is highly unlikely that either 'Fred is in the school' or 'Lily is yellow' 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.
  1.0::factB.
  0.1::factC.
  %hop1
  0.9::factX:-and(factC,factB).
  0.05::factY:-xor(factB,factA).
  0.6::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Fred is in the school' or 'Lily is yellow' but not both.