It is certain that Bill got the milk there. There is a very good chance that John moved to the office. It is unlikely that Brian is green. It is certain that if 'Brian is green' or 'Bill got the milk there' or both then Julius is gray. There is little chance that if 'Brian is green and Bill got the milk there' then Sandra took the football. We doubt that if 'Brian is green and John moved to the office' then Jessica is a mouse.
It is unlikely that either 'John moved to the office' or 'Julius is gray' but not both.
It is unlikely that either 'John moved to the office' or 'Julius is gray' but not both.
It is certain that either 'John moved to the office' or 'Julius is gray' 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
  1.0::factA.
  0.8::factB.
  0.2::factC.
  %hop1
  1.0::factX:-or(factC,factA).
  0.1::factY:-and(factC,factA).
  0.2::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'John moved to the office' or 'Julius is gray' but not both.