It is probably the case that Brian is yellow. There is a very good chance that Bernhard is green. It is highly likely that Mary left the milk. It is certain that if 'Bernhard is green and Mary left the milk' then Greg is a lion. It is almost certain that if 'Bernhard is green' or 'Mary left the milk' or both then Fred put down the apple. It is impossible that if 'Brian is yellow' or 'Bernhard is green' or both then John went to the kitchen.
There is little chance that either 'John went to the kitchen' or 'Bernhard is green' but not both.
There is a very good chance that either 'John went to the kitchen' or 'Bernhard is green' but not both.
There is little chance that either 'John went to the kitchen' or 'Bernhard is green' 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.8::factB.
  0.9::factC.
  %hop1
  1.0::factX:-and(factB,factC).
  0.95::factY:-or(factB,factC).
  0.0::factZ:-or(factA,factB).

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

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