We doubt that John discarded the milk. It is probably the case that Brian is gray. It is unlikely that Emily is a sheep. It is certain that if either 'Emily is a sheep' or 'John discarded the milk' but not both then Mary moved to the garden. It is highly unlikely that if 'John discarded the milk' or 'Brian is gray' or both then Bernhard is a frog. It is almost certain that if either 'John discarded the milk' or 'Brian is gray' but not both then Lily is white.
It is probably not the case that 'Emily is a sheep' or 'Lily is white' or both.
It is probable that 'Emily is a sheep' or 'Lily is white' or both.
It is probably not the case that 'Emily is a sheep' or 'Lily is white' 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.7::factB.
  0.2::factC.
  %hop1
  1.0::factX:-xor(factC,factA).
  0.05::factY:-or(factA,factB).
  0.95::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Emily is a sheep' or 'Lily is white' or both.