Chances are slight that Bernhard is a rhino. It is highly unlikely that Lily is green. It is probably the case that John went to the kitchen. It is impossible that if either 'Bernhard is a rhino' or 'Lily is green' but not both then Brian is gray. It is impossible that if either 'Lily is green' or 'Bernhard is a rhino' but not both then Julius is green. It is highly likely that if 'Bernhard is a rhino and John went to the kitchen' then Mary discarded the apple.
Chances are about even that either 'Julius is green' or 'Mary discarded the apple' but not both.
It is highly unlikely that either 'Julius is green' or 'Mary discarded the apple' but not both.
Chances are about even that either 'Julius is green' or 'Mary discarded 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
  0.1::factA.
  0.05::factB.
  0.7::factC.
  %hop1
  0.0::factX:-xor(factA,factB).
  0.0::factY:-xor(factB,factA).
  0.9::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Julius is green' or 'Mary discarded the apple' but not both.