We doubt that Brian is white. There is a better than even chance that Mary got the football. Chances are slight that Greg is a swan. There is a better than even chance that if 'Brian is white and Greg is a swan' then Fred dropped the milk. It is probably not the case that if either 'Brian is white' or 'Mary got the football' but not both then Jeff left the football. It is certain that if either 'Brian is white' or 'Greg is a swan' but not both then Winona is a cat.
It is probably not the case that 'Fred dropped the milk' or 'Winona is a cat' or both.
It is probably not the case that 'Fred dropped the milk' or 'Winona is a cat' or both.
It is certain that 'Fred dropped the milk' or 'Winona is a cat' 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.6::factB.
  0.1::factC.
  %hop1
  0.6::factX:-and(factA,factC).
  0.25::factY:-xor(factA,factB).
  1.0::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Fred dropped the milk' or 'Winona is a cat' or both.