Chances are slight that Greg is a rhino. It is probably not the case that Fred dropped the milk. We doubt that Mary left the apple. There is almost no chance that if either 'Fred dropped the milk' or 'Mary left the apple' but not both then Bill moved to the office. It is highly likely that if either 'Mary left the apple' or 'Fred dropped the milk' but not both then Brian is a swan. There is little chance that if 'Greg is a rhino' or 'Fred dropped the milk' or both then Julius is a lion.
It is impossible that 'Brian is a swan' or 'Mary left the apple' or both.
Chances are about even that 'Brian is a swan' or 'Mary left the apple' or both.
It is impossible that 'Brian is a swan' or 'Mary left the apple' 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.1::factA.
  0.25::factB.
  0.2::factC.
  %hop1
  0.02::factX:-xor(factB,factC).
  0.9::factY:-xor(factC,factB).
  0.1::factZ:-or(factA,factB).

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

  query(conclusion).
  
'Brian is a swan' or 'Mary left the apple' or both.