It is impossible that Jeff moved to the office. We believe that Mary went to the kitchen. It is improbable that Brian is yellow. It is improbable that if 'Mary went to the kitchen' or 'Jeff moved to the office' or both then Julius is gray. There is a very good chance that if 'Jeff moved to the office and Mary went to the kitchen' then Daniel dropped the milk. It is improbable that if 'Mary went to the kitchen and Brian is yellow' then Lily is green.
It is impossible that either 'Lily is green' or 'Daniel dropped the milk' but not both.
It is impossible that either 'Lily is green' or 'Daniel dropped the milk' but not both.
It is certain that either 'Lily is green' or 'Daniel dropped the milk' 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.75::factB.
  0.1::factC.
  %hop1
  0.1::factX:-or(factB,factA).
  0.8::factY:-and(factA,factB).
  0.1::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'Lily is green' or 'Daniel dropped the milk' but not both.