It is almost certain that Brian is yellow. It is probably not the case that Julius is gray. It is probable that John discarded the apple. It is almost certain that if either 'John discarded the apple' or 'Brian is yellow' but not both then Lily is green. It is probably the case that if 'John discarded the apple and Brian is yellow' then Sandra left the football. It is almost certain that if either 'Brian is yellow' or 'Julius is gray' but not both then Bernhard is a lion.
It is almost certain that 'Julius is gray' or 'Brian is yellow' or both.
It is almost certain that 'Julius is gray' or 'Brian is yellow' or both.
It is impossible that 'Julius is gray' or 'Brian 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.95::factA.
  0.25::factB.
  0.7::factC.
  %hop1
  0.95::factX:-xor(factC,factA).
  0.7::factY:-and(factC,factA).
  0.95::factZ:-xor(factA,factB).

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

  query(conclusion).
  
'Julius is gray' or 'Brian is yellow' or both.