It is impossible that Bernhard is gray. It is unlikely that Bill went to the office. There is a very good chance that Brian is a swan. Chances are about even that if 'Brian is a swan' or 'Bernhard is gray' or both then Jason is bored. It is likely that if 'Bill went to the office' or 'Bernhard is gray' or both then Winona is a mouse. It is highly likely that if 'Brian is a swan' or 'Bill went to the office' or both then John took the apple.
It is highly unlikely that 'Jason is bored' or 'Bill went to the office' or both.
Chances are about even that 'Jason is bored' or 'Bill went to the office' or both.
It is highly unlikely that 'Jason is bored' or 'Bill went to the office' 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.0::factA.
  0.2::factB.
  0.8::factC.
  %hop1
  0.5::factX:-or(factC,factA).
  0.7::factY:-or(factB,factA).
  0.9::factZ:-or(factC,factB).

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

  query(conclusion).
  
'Jason is bored' or 'Bill went to the office' or both.