It is certain that Bernhard is a frog. It is improbable that Lily is green. It is probably not the case that John left the apple. It is certain that if 'Lily is green and John left the apple' then Greg is a swan. There is little chance that if either 'John left the apple' or 'Bernhard is a frog' but not both then Jason is tired. It is highly likely that if either 'Lily is green' or 'John left the apple' but not both then Julius is gray.
It is probable that either 'Lily is green' or 'John left the apple' but not both.
It is probably not the case that either 'Lily is green' or 'John left the apple' but not both.
It is probable that either 'Lily is green' or 'John left the apple' 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
  1.0::factA.
  0.1::factB.
  0.25::factC.
  %hop1
  1.0::factX:-and(factB,factC).
  0.1::factY:-xor(factC,factA).
  0.9::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Lily is green' or 'John left the apple' but not both.