Chances are about even that Greg is a swan. Chances are about even that Bernhard is white. We doubt that John dropped the apple. It is probable that if either 'John dropped the apple' or 'Bernhard is white' but not both then Brian is green. It is highly likely that if 'Bernhard is white and John dropped the apple' then Mary went to the office. It is certain that if 'Bernhard is white and Greg is a swan' then Lily is a frog.
It is impossible that 'Bernhard is white' or 'John dropped the apple' or both.
There is a better than even chance that 'Bernhard is white' or 'John dropped the apple' or both.
It is impossible that 'Bernhard is white' or 'John dropped 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.5::factA.
  0.5::factB.
  0.2::factC.
  %hop1
  0.7::factX:-xor(factC,factB).
  0.9::factY:-and(factB,factC).
  1.0::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Bernhard is white' or 'John dropped the apple' or both.