It is improbable that Greg is a lion. It is probable that Mary moved to the garden. It is probably the case that John left the milk. It is unlikely that if 'John left the milk and Greg is a lion' then Sumit is bored. It is certain that if either 'John left the milk' or 'Mary moved to the garden' but not both then Brian is a swan. It is probable that if 'John left the milk' or 'Mary moved to the garden' or both then Bernhard is a rhino.
We doubt that either 'Sumit is bored' or 'Mary moved to the garden' but not both.
It is probably the case that either 'Sumit is bored' or 'Mary moved to the garden' but not both.
We doubt that either 'Sumit is bored' or 'Mary moved to the garden' 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.7::factB.
  0.7::factC.
  %hop1
  0.2::factX:-and(factC,factA).
  1.0::factY:-xor(factC,factB).
  0.7::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'Sumit is bored' or 'Mary moved to the garden' but not both.