It is probably not the case that Daniel got the football. It is unlikely that Winona is a sheep. We doubt that Brian is white. We doubt that if 'Brian is white and Daniel got the football' then John discarded the milk. It is probably the case that if 'Daniel got the football' or 'Winona is a sheep' or both then Lily is a swan. There is almost no chance that if 'Winona is a sheep' or 'Daniel got the football' or both then Mary went to the kitchen.
It is unlikely that either 'Lily is a swan' or 'Winona is a sheep' but not both.
It is unlikely that either 'Lily is a swan' or 'Winona is a sheep' but not both.
It is likely that either 'Lily is a swan' or 'Winona is a sheep' 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.25::factA.
  0.2::factB.
  0.2::factC.
  %hop1
  0.2::factX:-and(factC,factA).
  0.7::factY:-or(factA,factB).
  0.02::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Lily is a swan' or 'Winona is a sheep' but not both.