Chances are slight that Mary went to the hallway. Chances are about even that Lily is yellow. There is a better than even chance that Winona is a mouse. Chances are about even that if 'Mary went to the hallway' or 'Lily is yellow' or both then John took the apple. There is a better than even chance that if either 'Lily is yellow' or 'Winona is a mouse' but not both then Julius is a swan. There is little chance that if either 'Mary went to the hallway' or 'Lily is yellow' but not both then Sandra dropped the milk.
It is highly unlikely that 'Lily is yellow' or 'Sandra dropped the milk' or both.
Chances are about even that 'Lily is yellow' or 'Sandra dropped the milk' or both.
It is highly unlikely that 'Lily is yellow' or 'Sandra dropped 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.1::factA.
  0.5::factB.
  0.6::factC.
  %hop1
  0.5::factX:-or(factA,factB).
  0.6::factY:-xor(factB,factC).
  0.1::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Lily is yellow' or 'Sandra dropped the milk' or both.