It is likely that Mary moved to the garden. It is highly unlikely that John dropped the apple. It is probable that Greg is a rhino. It is almost certain that if either 'John dropped the apple' or 'Mary moved to the garden' but not both then Lily is a swan. There is almost no chance that if 'Greg is a rhino and Mary moved to the garden' then Emily is a sheep. Chances are slight that if either 'Greg is a rhino' or 'John dropped the apple' but not both then Julius is white.
It is unlikely that 'Mary moved to the garden' or 'John dropped the apple' or both.
It is probable that 'Mary moved to the garden' or 'John dropped the apple' or both.
It is unlikely that 'Mary moved to the garden' or 'John dropped the apple' 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.05::factB.
  0.7::factC.
  %hop1
  0.95::factX:-xor(factB,factA).
  0.02::factY:-and(factC,factA).
  0.1::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Mary moved to the garden' or 'John dropped the apple' or both.