It is probable that John discarded the apple. It is unlikely that Bernhard is a frog. It is highly likely that Julius is green. It is certain that if either 'Julius is green' or 'John discarded the apple' but not both then Mary left the football. There is little chance that if 'Julius is green and John discarded the apple' then Emily is a sheep. It is highly unlikely that if either 'Julius is green' or 'Bernhard is a frog' but not both then Lily is a rhino.
It is likely that either 'Lily is a rhino' or 'Bernhard is a frog' but not both.
It is probably not the case that either 'Lily is a rhino' or 'Bernhard is a frog' but not both.
It is likely that either 'Lily is a rhino' or 'Bernhard is a frog' 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.2::factB.
  0.9::factC.
  %hop1
  1.0::factX:-xor(factC,factA).
  0.1::factY:-and(factC,factA).
  0.05::factZ:-xor(factC,factB).

  %hop2
  conclusion:-xor(factZ,factB).

  query(conclusion).
  
Either 'Lily is a rhino' or 'Bernhard is a frog' but not both.