There is almost no chance that Bernhard is a swan. Chances are slight that Mary dropped the milk. It is certain that Julius is white. It is probably not the case that if either 'Bernhard is a swan' or 'Julius is white' but not both then Lily is green. There is almost no chance that if either 'Julius is white' or 'Bernhard is a swan' but not both then Greg is a rhino. It is likely that if 'Julius is white' or 'Mary dropped the milk' or both then John went to the bedroom.
It is improbable that either 'Lily is green' or 'John went to the bedroom' but not both.
There is a better than even chance that either 'Lily is green' or 'John went to the bedroom' but not both.
It is improbable that either 'Lily is green' or 'John went to the bedroom' 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.02::factA.
  0.1::factB.
  1.0::factC.
  %hop1
  0.25::factX:-xor(factA,factC).
  0.02::factY:-xor(factC,factA).
  0.7::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'Lily is green' or 'John went to the bedroom' but not both.