It is certain that Mary is in the hallway. Chances are slight that Jeff left the football. It is highly likely that Bernhard is a frog. It is likely that if either 'Mary is in the hallway' or 'Jeff left the football' but not both then Greg is yellow. It is probable that if either 'Bernhard is a frog' or 'Jeff left the football' but not both then John went to the bedroom. Chances are slight that if 'Bernhard is a frog and Mary is in the hallway' then Brian is green.
It is highly likely that either 'Brian is green' or 'Mary is in the hallway' but not both.
It is highly likely that either 'Brian is green' or 'Mary is in the hallway' but not both.
Chances are slight that either 'Brian is green' or 'Mary is in 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
  1.0::factA.
  0.1::factB.
  0.9::factC.
  %hop1
  0.7::factX:-xor(factA,factB).
  0.7::factY:-xor(factC,factB).
  0.1::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Brian is green' or 'Mary is in the hallway' but not both.