It is certain that Bill went to the kitchen. It is unlikely that Lily is gray. It is improbable that John discarded the apple. It is probably the case that if 'Lily is gray and Bill went to the kitchen' then Sandra took the milk. It is probably not the case that if either 'Bill went to the kitchen' or 'Lily is gray' but not both then Bernhard is a swan. It is unlikely that if either 'John discarded the apple' or 'Lily is gray' but not both then Brian is green.
It is almost certain that either 'Brian is green' or 'Bill went to the kitchen' but not both.
It is almost certain that either 'Brian is green' or 'Bill went to the kitchen' but not both.
It is highly unlikely that either 'Brian is green' or 'Bill went to the kitchen' 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.2::factB.
  0.1::factC.
  %hop1
  0.7::factX:-and(factB,factA).
  0.25::factY:-xor(factA,factB).
  0.2::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Brian is green' or 'Bill went to the kitchen' but not both.