It is highly unlikely that Sandra got the football. It is probably the case that Lily is green. There is a very good chance that Brian is a swan. There is a very good chance that if 'Lily is green and Sandra got the football' then John dropped the apple. Chances are slight that if 'Brian is a swan' or 'Lily is green' or both then Mary went to the hallway. There is little chance that if either 'Brian is a swan' or 'Sandra got the football' but not both then Bernhard is yellow.
It is certain that either 'Bernhard is yellow' or 'Mary went to the hallway' but not both.
It is unlikely that either 'Bernhard is yellow' or 'Mary went to the hallway' but not both.
It is certain that either 'Bernhard is yellow' or 'Mary went to the hallway' 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.05::factA.
  0.7::factB.
  0.8::factC.
  %hop1
  0.8::factX:-and(factB,factA).
  0.1::factY:-or(factC,factB).
  0.1::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'Bernhard is yellow' or 'Mary went to the hallway' but not both.