There is almost no chance that Bill moved to the office. There is a better than even chance that Sumit is thirsty. It is highly likely that John went to the garden. It is likely that if 'Bill moved to the office and Sumit is thirsty' then Bernhard is a rhino. Chances are slight that if either 'Bill moved to the office' or 'John went to the garden' but not both then Lily is yellow. It is improbable that if 'John went to the garden' or 'Bill moved to the office' or both then Jessica is a sheep.
There is little chance that 'Bernhard is a rhino' or 'Jessica is a sheep' or both.
There is little chance that 'Bernhard is a rhino' or 'Jessica is a sheep' or both.
There is a better than even chance that 'Bernhard is a rhino' or 'Jessica 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
  0.02::factA.
  0.6::factB.
  0.9::factC.
  %hop1
  0.7::factX:-and(factA,factB).
  0.1::factY:-xor(factA,factC).
  0.1::factZ:-or(factC,factA).

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

  query(conclusion).
  
'Bernhard is a rhino' or 'Jessica is a sheep' or both.