It is impossible that Daniel left the apple. It is highly likely that Antoine is hungry. It is impossible that John went to the bedroom. It is highly unlikely that if 'Daniel left the apple and John went to the bedroom' then Julius is a swan. It is likely that if 'John went to the bedroom' or 'Antoine is hungry' or both then Lily is a rhino. There is a very good chance that if either 'Daniel left the apple' or 'Antoine is hungry' but not both then Greg is a frog.
It is impossible that either 'Daniel left the apple' or 'John went to the bedroom' but not both.
It is impossible that either 'Daniel left the apple' or 'John went to the bedroom' but not both.
It is likely that either 'Daniel left the apple' or 'John went to the bedroom' but not 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.0::factA.
  0.9::factB.
  0.0::factC.
  %hop1
  0.05::factX:-and(factA,factC).
  0.7::factY:-or(factC,factB).
  0.8::factZ:-xor(factA,factB).

  %hop2
  conclusion:-xor(factA,factC).

  query(conclusion).
  
Either 'Daniel left the apple' or 'John went to the bedroom' but not both.