It is highly unlikely that Brian is a rhino. Chances are about even that Jessica is a sheep. It is certain that Lily is a frog. We believe that if either 'Brian is a rhino' or 'Lily is a frog' but not both then Jeff moved to the garden. Chances are slight that if either 'Jessica is a sheep' or 'Brian is a rhino' but not both then Greg is yellow. We doubt that if 'Jessica is a sheep and Brian is a rhino' then Julius is gray.
There is almost no chance that 'Jeff moved to the garden' or 'Greg is yellow' or both.
We believe that 'Jeff moved to the garden' or 'Greg is yellow' or both.
There is almost no chance that 'Jeff moved to the garden' or 'Greg 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.05::factA.
  0.5::factB.
  1.0::factC.
  %hop1
  0.75::factX:-xor(factA,factC).
  0.1::factY:-xor(factB,factA).
  0.2::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Jeff moved to the garden' or 'Greg is yellow' or both.