Chances are about even that Lily is yellow. It is certain that Brian is gray. It is unlikely that Greg is a rhino. There is a very good chance that if 'Lily is yellow and Greg is a rhino' then Emily is a cat. It is impossible that if 'Brian is gray and Lily is yellow' then Mary left the football. There is a better than even chance that if 'Greg is a rhino' or 'Brian is gray' or both then Bernhard is a swan.
Chances are about even that either 'Lily is yellow' or 'Brian is gray' but not both.
Chances are about even that either 'Lily is yellow' or 'Brian is gray' but not both.
It is certain that either 'Lily is yellow' or 'Brian 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.5::factA.
  1.0::factB.
  0.2::factC.
  %hop1
  0.8::factX:-and(factA,factC).
  0.0::factY:-and(factB,factA).
  0.6::factZ:-or(factC,factB).

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

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