We believe that Lily is yellow. It is almost certain that Bernhard is gray. It is highly likely that Brian is a frog. Chances are slight that if 'Lily is yellow' or 'Brian is a frog' or both then Julius is a rhino. Chances are slight that if 'Brian is a frog' or 'Bernhard is gray' or both then Winona is a sheep. There is little chance that if 'Bernhard is gray' or 'Lily is yellow' or both then John moved to the garden.
It is almost certain that 'Bernhard is gray' or 'Julius is a rhino' or both.
It is almost certain that 'Bernhard is gray' or 'Julius is a rhino' or both.
It is unlikely that 'Bernhard is gray' or 'Julius is a rhino' 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.75::factA.
  0.95::factB.
  0.9::factC.
  %hop1
  0.1::factX:-or(factA,factC).
  0.1::factY:-or(factC,factB).
  0.1::factZ:-or(factB,factA).

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

  query(conclusion).
  
'Bernhard is gray' or 'Julius is a rhino' or both.