It is unlikely that Emily is a mouse. It is almost certain that John took the apple. It is unlikely that Brian is white. There is a better than even chance that if either 'Emily is a mouse' or 'John took the apple' but not both then Sandra got the milk. It is unlikely that if either 'Emily is a mouse' or 'John took the apple' but not both then Bernhard is a swan. It is highly likely that if either 'Brian is white' or 'Emily is a mouse' but not both then Mary went to the kitchen.
There is little chance that 'Mary went to the kitchen' or 'Sandra got the milk' or both.
It is probably the case that 'Mary went to the kitchen' or 'Sandra got the milk' or both.
There is little chance that 'Mary went to the kitchen' or 'Sandra got the milk' 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.2::factA.
  0.95::factB.
  0.2::factC.
  %hop1
  0.6::factX:-xor(factA,factB).
  0.2::factY:-xor(factA,factB).
  0.9::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Mary went to the kitchen' or 'Sandra got the milk' or both.