It is probably not the case that Lily is green. It is improbable that Mary went to the hallway. Chances are slight that Bernhard is a frog. It is probably the case that if 'Mary went to the hallway and Bernhard is a frog' then John grabbed the apple. There is almost no chance that if 'Mary went to the hallway and Lily is green' then Greg is a rhino. It is probable that if 'Mary went to the hallway' or 'Lily is green' or both then Sandra dropped the milk.
There is little chance that either 'Mary went to the hallway' or 'John grabbed the apple' but not both.
There is little chance that either 'Mary went to the hallway' or 'John grabbed the apple' but not both.
It is probable that either 'Mary went to the hallway' or 'John grabbed the apple' 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.25::factA.
  0.1::factB.
  0.1::factC.
  %hop1
  0.7::factX:-and(factB,factC).
  0.02::factY:-and(factB,factA).
  0.7::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Mary went to the hallway' or 'John grabbed the apple' but not both.