Chances are slight that Brian is yellow. It is probably the case that Yann is hungry. It is likely that Greg is a lion. There is a better than even chance that if 'Greg is a lion and Yann is hungry' then Bernhard is green. It is almost certain that if 'Brian is yellow and Greg is a lion' then Lily is a swan. It is highly likely that if 'Greg is a lion' or 'Yann is hungry' or both then Julius is gray.
We believe that either 'Brian is yellow' or 'Julius is gray' but not both.
We believe that either 'Brian is yellow' or 'Julius is gray' but not both.
We doubt that either 'Brian is yellow' or 'Julius 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.1::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.6::factX:-and(factC,factB).
  0.95::factY:-and(factA,factC).
  0.9::factZ:-or(factC,factB).

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

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