It is impossible that Greg is gray. We doubt that Daniel got the football. It is likely that Bernhard is a lion. Chances are slight that if either 'Bernhard is a lion' or 'Daniel got the football' but not both then John discarded the apple. Chances are slight that if 'Bernhard is a lion' or 'Greg is gray' or both then Bill went to the office. It is probable that if either 'Daniel got the football' or 'Greg is gray' but not both then Julius is yellow.
It is certain that 'Bill went to the office' or 'Julius is yellow' or both.
We doubt that 'Bill went to the office' or 'Julius is yellow' or both.
It is certain that 'Bill went to the office' or 'Julius is yellow' 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.7::factC.
  %hop1
  0.1::factX:-xor(factC,factB).
  0.1::factY:-or(factC,factA).
  0.7::factZ:-xor(factB,factA).

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

  query(conclusion).
  
'Bill went to the office' or 'Julius is yellow' or both.