It is highly likely that Fred is in the office. It is unlikely that Bernhard is yellow. There is a very good chance that John took the football. It is highly likely that if either 'Fred is in the office' or 'John took the football' but not both then Mary went to the kitchen. It is probably not the case that if 'Fred is in the office and Bernhard is yellow' then Jessica is a sheep. There is a very good chance that if either 'Fred is in the office' or 'Bernhard is yellow' but not both then Brian is gray.
It is probably not the case that either 'John took the football' or 'Fred is in the office' but not both.
It is probably not the case that either 'John took the football' or 'Fred is in the office' but not both.
It is likely that either 'John took the football' or 'Fred is in the office' 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.9::factA.
  0.2::factB.
  0.8::factC.
  %hop1
  0.9::factX:-xor(factA,factC).
  0.25::factY:-and(factA,factB).
  0.8::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'John took the football' or 'Fred is in the office' but not both.