It is highly likely that Bernhard is green. There is a better than even chance that Sandra took the football. It is unlikely that Emily is a mouse. We believe that if 'Sandra took the football' or 'Bernhard is green' or both then Lily is a rhino. It is highly likely that if 'Emily is a mouse' or 'Sandra took the football' or both then Mary dropped the milk. It is highly unlikely that if either 'Emily is a mouse' or 'Sandra took the football' but not both then John went to the office.
It is certain that either 'Bernhard is green' or 'Mary dropped the milk' but not both.
Chances are about even that either 'Bernhard is green' or 'Mary dropped the milk' but not both.
It is certain that either 'Bernhard is green' or 'Mary 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.9::factA.
  0.6::factB.
  0.2::factC.
  %hop1
  0.75::factX:-or(factB,factA).
  0.9::factY:-or(factC,factB).
  0.05::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Bernhard is green' or 'Mary dropped the milk' but not both.