It is impossible that Bernhard is gray. There is a very good chance that Sandra left the football. There is a better than even chance that John went to the office. It is impossible that if either 'Bernhard is gray' or 'John went to the office' but not both then Lily is a lion. There is a very good chance that if either 'Sandra left the football' or 'Bernhard is gray' but not both then Brian is a swan. There is a very good chance that if 'Bernhard is gray and John went to the office' then Julius is a frog.
It is improbable that 'Bernhard is gray' or 'John went to the office' or both.
There is a better than even chance that 'Bernhard is gray' or 'John went to the office' or both.
It is improbable that 'Bernhard is gray' or 'John 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.8::factB.
  0.6::factC.
  %hop1
  0.0::factX:-xor(factA,factC).
  0.8::factY:-xor(factB,factA).
  0.8::factZ:-and(factA,factC).

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

  query(conclusion).
  
'Bernhard is gray' or 'John went to the office' or both.