It is certain that Lily is a frog. We believe that Julius is gray. It is unlikely that John went to the hallway. It is highly unlikely that if either 'Julius is gray' or 'John went to the hallway' but not both then Winona is a sheep. There is little chance that if 'John went to the hallway and Julius is gray' then Brian is a lion. We doubt that if 'Lily is a frog' or 'Julius is gray' or both then Greg is yellow.
It is certain that 'Lily is a frog' or 'Winona is a sheep' or both.
It is certain that 'Lily is a frog' or 'Winona is a sheep' or both.
It is impossible that 'Lily is a frog' or 'Winona is a sheep' 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
  1.0::factA.
  0.75::factB.
  0.2::factC.
  %hop1
  0.05::factX:-xor(factB,factC).
  0.1::factY:-and(factC,factB).
  0.2::factZ:-or(factA,factB).

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

  query(conclusion).
  
'Lily is a frog' or 'Winona is a sheep' or both.