Chances are slight that Yann is bored. It is probably not the case that Greg is a swan. It is unlikely that John went to the kitchen. It is unlikely that if 'John went to the kitchen and Greg is a swan' then Jason is thirsty. It is probably not the case that if 'Yann is bored and John went to the kitchen' then Julius is a frog. There is almost no chance that if 'John went to the kitchen and Yann is bored' then Mary moved to the garden.
We believe that either 'Jason is thirsty' or 'John went to the kitchen' but not both.
We doubt that either 'Jason is thirsty' or 'John went to the kitchen' but not both.
We believe that either 'Jason is thirsty' or 'John went to the kitchen' 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.25::factB.
  0.2::factC.
  %hop1
  0.2::factX:-and(factC,factB).
  0.25::factY:-and(factA,factC).
  0.02::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Jason is thirsty' or 'John went to the kitchen' but not both.