It is improbable that Lily is a lion. It is unlikely that John moved to the office. There is a very good chance that Julius is gray. It is likely that if 'John moved to the office and Lily is a lion' then Gertrude is a sheep. It is highly unlikely that if 'John moved to the office' or 'Lily is a lion' or both then Bernhard is a frog. It is probably not the case that if 'John moved to the office and Julius is gray' then Mary left the apple.
It is certain that 'John moved to the office' or 'Gertrude is a sheep' or both.
We doubt that 'John moved to the office' or 'Gertrude is a sheep' or both.
It is certain that 'John moved to the office' or 'Gertrude 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.1::factA.
  0.2::factB.
  0.8::factC.
  %hop1
  0.7::factX:-and(factB,factA).
  0.05::factY:-or(factB,factA).
  0.25::factZ:-and(factB,factC).

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

  query(conclusion).
  
'John moved to the office' or 'Gertrude is a sheep' or both.