There is almost no chance that Jeff moved to the office. Chances are about even that Brian is yellow. It is unlikely that Mary went to the hallway. There is a very good chance that if 'Brian is yellow' or 'Mary went to the hallway' or both then John discarded the apple. It is probable that if 'Mary went to the hallway and Jeff moved to the office' then Greg is a lion. It is improbable that if either 'Jeff moved to the office' or 'Brian is yellow' but not both then Bernhard is green.
We believe that either 'Greg is a lion' or 'Mary went to the hallway' but not both.
It is unlikely that either 'Greg is a lion' or 'Mary went to the hallway' but not both.
We believe that either 'Greg is a lion' 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.02::factA.
  0.5::factB.
  0.2::factC.
  %hop1
  0.8::factX:-or(factB,factC).
  0.7::factY:-and(factC,factA).
  0.1::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Greg is a lion' or 'Mary went to the hallway' but not both.