Chances are about even that John went to the garden. It is unlikely that Lily is a rhino. It is probably the case that Mary left the apple. We doubt that if either 'Mary left the apple' or 'John went to the garden' but not both then Yann is tired. It is almost certain that if 'John went to the garden' or 'Lily is a rhino' or both then Gertrude is a sheep. There is a very good chance that if either 'Mary left the apple' or 'Lily is a rhino' but not both then Brian is gray.
It is almost certain that either 'Brian is gray' or 'John went to the garden' but not both.
Chances are about even that either 'Brian is gray' or 'John went to the garden' but not both.
It is almost certain that either 'Brian is gray' or 'John went to the garden' 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.5::factA.
  0.2::factB.
  0.7::factC.
  %hop1
  0.2::factX:-xor(factC,factA).
  0.95::factY:-or(factA,factB).
  0.8::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Brian is gray' or 'John went to the garden' but not both.