We believe that Brian is white. We doubt that Julius is a swan. We believe that Mary went to the kitchen. We doubt that if 'Mary went to the kitchen and Julius is a swan' then Bill left the milk. Chances are slight that if 'Julius is a swan' or 'Mary went to the kitchen' or both then John took the football. It is likely that if either 'Mary went to the kitchen' or 'Brian is white' but not both then Bernhard is a frog.
It is impossible that 'Julius is a swan' or 'Bernhard is a frog' or both.
Chances are about even that 'Julius is a swan' or 'Bernhard is a frog' or both.
It is impossible that 'Julius is a swan' or 'Bernhard is a frog' 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.75::factA.
  0.2::factB.
  0.75::factC.
  %hop1
  0.2::factX:-and(factC,factB).
  0.1::factY:-or(factB,factC).
  0.7::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Julius is a swan' or 'Bernhard is a frog' or both.