We doubt that Mary went to the hallway. It is highly likely that Bernhard is a frog. It is likely that Sandra grabbed the apple. We believe that if 'Mary went to the hallway' or 'Sandra grabbed the apple' or both then John put down the milk. It is probably the case that if 'Mary went to the hallway' or 'Sandra grabbed the apple' or both then Greg is a rhino. We doubt that if 'Sandra grabbed the apple' or 'Bernhard is a frog' or both then Jason is tired.
It is unlikely that either 'Sandra grabbed the apple' or 'John put down the milk' but not both.
It is unlikely that either 'Sandra grabbed the apple' or 'John put down the milk' but not both.
It is likely that either 'Sandra grabbed the apple' or 'John put down the milk' 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.2::factA.
  0.9::factB.
  0.7::factC.
  %hop1
  0.75::factX:-or(factA,factC).
  0.7::factY:-or(factA,factC).
  0.2::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'Sandra grabbed the apple' or 'John put down the milk' but not both.