It is probably the case that Sandra put down the milk. We doubt that Julius is yellow. It is highly unlikely that Brian is gray. Chances are slight that if 'Julius is yellow' or 'Sandra put down the milk' or both then Bill went to the garden. It is probable that if 'Julius is yellow' or 'Sandra put down the milk' or both then Mary left the football. Chances are about even that if 'Sandra put down the milk' or 'Julius is yellow' or both then Lily is a swan.
It is probable that either 'Julius is yellow' or 'Brian is gray' but not both.
It is probably not the case that either 'Julius is yellow' or 'Brian is gray' but not both.
It is probable that either 'Julius is yellow' or 'Brian 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
  0.7::factA.
  0.2::factB.
  0.05::factC.
  %hop1
  0.1::factX:-or(factB,factA).
  0.7::factY:-or(factB,factA).
  0.5::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Julius is yellow' or 'Brian is gray' but not both.