It is likely that Jeff moved to the garden. It is probably not the case that Bernhard is green. Chances are about even that Greg is a rhino. There is a very good chance that if either 'Jeff moved to the garden' or 'Greg is a rhino' but not both then Lily is a lion. It is probably not the case that if 'Jeff moved to the garden' or 'Greg is a rhino' or both then Jessica is a sheep. Chances are slight that if either 'Jeff moved to the garden' or 'Greg is a rhino' but not both then John grabbed the apple.
There is a better than even chance that either 'Jeff moved to the garden' or 'Bernhard is green' but not both.
There is a better than even chance that either 'Jeff moved to the garden' or 'Bernhard is green' but not both.
There is little chance that either 'Jeff moved to the garden' or 'Bernhard is green' 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.7::factA.
  0.25::factB.
  0.5::factC.
  %hop1
  0.8::factX:-xor(factA,factC).
  0.25::factY:-or(factA,factC).
  0.1::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Jeff moved to the garden' or 'Bernhard is green' but not both.