It is unlikely that Lily is a swan. There is a very good chance that Sumit is bored. Chances are slight that Brian is yellow. It is unlikely that if 'Lily is a swan and Sumit is bored' then Daniel dropped the apple. It is almost certain that if 'Sumit is bored and Brian is yellow' then John went to the bedroom. It is probable that if either 'Lily is a swan' or 'Brian is yellow' but not both then Bernhard is a lion.
There is almost no chance that either 'Brian is yellow' or 'John went to the bedroom' but not both.
There is almost no chance that either 'Brian is yellow' or 'John went to the bedroom' but not both.
It is likely that either 'Brian is yellow' 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.2::factA.
  0.8::factB.
  0.1::factC.
  %hop1
  0.2::factX:-and(factA,factB).
  0.95::factY:-and(factB,factC).
  0.7::factZ:-xor(factA,factC).

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

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