There is little chance that John discarded the apple. It is highly likely that Brian is yellow. Chances are about even that Julius is a frog. It is probably not the case that if 'Julius is a frog' or 'John discarded the apple' or both then Lily is white. It is probably not the case that if either 'John discarded the apple' or 'Brian is yellow' but not both then Greg is a rhino. It is unlikely that if either 'Julius is a frog' or 'Brian is yellow' but not both then Emily is a wolf.
It is probably not the case that either 'Emily is a wolf' or 'Brian is yellow' but not both.
There is a very good chance that either 'Emily is a wolf' or 'Brian is yellow' but not both.
It is probably not the case that either 'Emily is a wolf' or 'Brian is yellow' 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.1::factA.
  0.9::factB.
  0.5::factC.
  %hop1
  0.25::factX:-or(factC,factA).
  0.25::factY:-xor(factA,factB).
  0.2::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Emily is a wolf' or 'Brian is yellow' but not both.