There is a better than even chance that Brian is a rhino. It is probably not the case that Greg is gray. It is probably not the case that Bernhard is green. It is probable that if 'Bernhard is green and Greg is gray' then Jessica is a sheep. There is a better than even chance that if either 'Greg is gray' or 'Bernhard is green' but not both then Mary moved to the garden. It is probably the case that if either 'Greg is gray' or 'Bernhard is green' but not both then Lily is a swan.
It is almost certain that either 'Mary moved to the garden' or 'Greg is gray' but not both.
It is probably not the case that either 'Mary moved to the garden' or 'Greg is gray' but not both.
It is almost certain that either 'Mary moved to the garden' or 'Greg is gray' 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.6::factA.
  0.25::factB.
  0.25::factC.
  %hop1
  0.7::factX:-and(factC,factB).
  0.6::factY:-xor(factB,factC).
  0.7::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Mary moved to the garden' or 'Greg is gray' but not both.