We doubt that Mary is in the school. It is almost certain that Fred went to the garden. It is certain that Jessica is a cat. There is a better than even chance that if either 'Jessica is a cat' or 'Fred went to the garden' but not both then Lily is yellow. We believe that if 'Jessica is a cat' or 'Mary is in the school' or both then John grabbed the apple. It is likely that if 'Fred went to the garden' or 'Mary is in the school' or both then Brian is a frog.
It is probably the case that either 'Lily is yellow' or 'Brian is a frog' but not both.
It is probably the case that either 'Lily is yellow' or 'Brian is a frog' but not both.
It is highly unlikely that either 'Lily is yellow' or 'Brian is a frog' 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.95::factB.
  1.0::factC.
  %hop1
  0.6::factX:-xor(factC,factB).
  0.75::factY:-or(factC,factA).
  0.7::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Lily is yellow' or 'Brian is a frog' but not both.