We doubt that Brian is white. It is certain that John moved to the office. It is improbable that Mary got the football. We believe that if 'Brian is white and John moved to the office' then Lily is a swan. It is unlikely that if 'Mary got the football' or 'John moved to the office' or both then Greg is yellow. Chances are about even that if 'Brian is white' or 'John moved to the office' or both then Bill went to the bedroom.
It is highly unlikely that either 'Lily is a swan' or 'Brian is white' but not both.
It is highly unlikely that either 'Lily is a swan' or 'Brian is white' but not both.
It is probable that either 'Lily is a swan' or 'Brian is white' 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.2::factA.
  1.0::factB.
  0.1::factC.
  %hop1
  0.75::factX:-and(factA,factB).
  0.2::factY:-or(factC,factB).
  0.5::factZ:-or(factA,factB).

  %hop2
  conclusion:-xor(factX,factA).

  query(conclusion).
  
Either 'Lily is a swan' or 'Brian is white' but not both.