It is probably the case that John went to the garden. Chances are slight that Greg is white. It is likely that Bernhard is white. It is certain that if 'Bernhard is white and Greg is white' then Lily is green. It is probably the case that if 'Greg is white and John went to the garden' then Fred put down the apple. It is probably the case that if 'John went to the garden and Greg is white' then Mary left the football.
It is improbable that either 'Bernhard is white' or 'Lily is green' but not both.
There is a better than even chance that either 'Bernhard is white' or 'Lily is green' but not both.
It is improbable that either 'Bernhard is white' or 'Lily 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.1::factB.
  0.7::factC.
  %hop1
  1.0::factX:-and(factC,factB).
  0.7::factY:-and(factB,factA).
  0.7::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Bernhard is white' or 'Lily is green' but not both.