It is impossible that Jessica is a cat. There is little chance that Greg is yellow. It is almost certain that John put down the apple. There is a better than even chance that if 'John put down the apple and Greg is yellow' then Yann is bored. There is almost no chance that if 'Jessica is a cat and Greg is yellow' then Mary went to the bedroom. It is improbable that if 'Jessica is a cat and Greg is yellow' then Sandra left the milk.
Chances are slight that either 'Greg is yellow' or 'Mary went to the bedroom' but not both.
Chances are slight that either 'Greg is yellow' or 'Mary went to the bedroom' but not both.
There is a better than even chance that either 'Greg is yellow' 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.0::factA.
  0.1::factB.
  0.95::factC.
  %hop1
  0.6::factX:-and(factC,factB).
  0.02::factY:-and(factA,factB).
  0.1::factZ:-and(factA,factB).

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

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