It is probable that Greg is white. There is little chance that Julius is a swan. We believe that John took the apple. It is improbable that if 'Julius is a swan and John took the apple' then Lily is a lion. It is likely that if 'Julius is a swan and Greg is white' then Mary went to the bedroom. It is highly unlikely that if either 'John took the apple' or 'Greg is white' but not both then Brian is a frog.
We believe that either 'John took the apple' or 'Mary went to the bedroom' but not both.
We believe that either 'John took the apple' or 'Mary went to the bedroom' but not both.
It is impossible that either 'John took the apple' or 'Mary 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.7::factA.
  0.1::factB.
  0.75::factC.
  %hop1
  0.1::factX:-and(factB,factC).
  0.7::factY:-and(factB,factA).
  0.05::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'John took the apple' or 'Mary went to the bedroom' but not both.