It is probably the case that Jeff left the apple. It is unlikely that John got the milk. Chances are slight that Mary moved to the office. It is likely that if 'John got the milk' or 'Mary moved to the office' or both then Julius is a rhino. We doubt that if 'Mary moved to the office and Jeff left the apple' then Greg is a swan. There is a very good chance that if either 'Mary moved to the office' or 'Jeff left the apple' but not both then Lily is a frog.
Chances are about even that 'Lily is a frog' or 'Greg is a swan' or both.
Chances are about even that 'Lily is a frog' or 'Greg is a swan' or both.
It is highly unlikely that 'Lily is a frog' or 'Greg is a swan' 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.7::factA.
  0.2::factB.
  0.1::factC.
  %hop1
  0.7::factX:-or(factB,factC).
  0.2::factY:-and(factC,factA).
  0.8::factZ:-xor(factC,factA).

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

  query(conclusion).
  
'Lily is a frog' or 'Greg is a swan' or both.