It is likely that John moved to the office. It is improbable that Mary went to the kitchen. There is little chance that Greg is yellow. It is probable that if either 'Greg is yellow' or 'Mary went to the kitchen' but not both then Brian is a lion. There is a better than even chance that if 'John moved to the office and Greg is yellow' then Jessica is a mouse. We believe that if 'Greg is yellow and Mary went to the kitchen' then Sandra took the apple.
It is highly unlikely that either 'Jessica is a mouse' or 'Sandra took the apple' but not both.
It is highly unlikely that either 'Jessica is a mouse' or 'Sandra took the apple' but not both.
We believe that either 'Jessica is a mouse' or 'Sandra took the apple' 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.1::factC.
  %hop1
  0.7::factX:-xor(factC,factB).
  0.6::factY:-and(factA,factC).
  0.75::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Jessica is a mouse' or 'Sandra took the apple' but not both.