It is probable that Daniel got the milk. Chances are slight that Julius is yellow. It is unlikely that Yann is hungry. There is almost no chance that if 'Yann is hungry and Julius is yellow' then John took the apple. We doubt that if 'Yann is hungry and Daniel got the milk' then Greg is a frog. It is highly unlikely that if 'Julius is yellow and Daniel got the milk' then Bernhard is a frog.
We doubt that either 'John took the apple' or 'Yann is hungry' but not both.
We doubt that either 'John took the apple' or 'Yann is hungry' but not both.
It is probably the case that either 'John took the apple' or 'Yann is hungry' 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.7::factA.
  0.1::factB.
  0.2::factC.
  %hop1
  0.02::factX:-and(factC,factB).
  0.2::factY:-and(factC,factA).
  0.05::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'John took the apple' or 'Yann is hungry' but not both.