It is highly unlikely that Bernhard is a lion. There is almost no chance that Julius is gray. It is highly likely that Fred went to the office. It is unlikely that if 'Fred went to the office and Julius is gray' then Brian is a rhino. It is probably not the case that if 'Bernhard is a lion' or 'Julius is gray' or both then Greg is a frog. Chances are slight that if 'Fred went to the office' or 'Bernhard is a lion' or both then John took the football.
It is likely that 'Julius is gray' or 'Brian is a rhino' or both.
There is almost no chance that 'Julius is gray' or 'Brian is a rhino' or both.
It is likely that 'Julius is gray' or 'Brian 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.05::factA.
  0.02::factB.
  0.9::factC.
  %hop1
  0.2::factX:-and(factC,factB).
  0.25::factY:-or(factA,factB).
  0.1::factZ:-or(factC,factA).

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

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