There is little chance that John got the milk. It is probable that Sandra left the milk. It is likely that Bernhard is a swan. It is certain that if either 'Bernhard is a swan' or 'John got the milk' but not both then Jeff moved to the garden. It is almost certain that if either 'Sandra left the milk' or 'John got the milk' but not both then Emily is a mouse. It is likely that if 'Sandra left the milk and Bernhard is a swan' then Brian is a lion.
There is little chance that 'Emily is a mouse' or 'Bernhard is a swan' or both.
It is highly likely that 'Emily is a mouse' or 'Bernhard is a swan' or both.
There is little chance that 'Emily is a mouse' or 'Bernhard is a swan' or 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.1::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  1.0::factX:-xor(factC,factA).
  0.95::factY:-xor(factB,factA).
  0.7::factZ:-and(factB,factC).

  %hop2
  conclusion:-or(factY,factC).

  query(conclusion).
  
'Emily is a mouse' or 'Bernhard is a swan' or both.