It is highly likely that Lily is a frog. Chances are slight that Bernhard is green. There is a very good chance that Julius is white. There is little chance that if either 'Lily is a frog' or 'Bernhard is green' but not both then Brian is yellow. There is a better than even chance that if 'Bernhard is green' or 'Lily is a frog' or both then Sandra left the milk. It is highly unlikely that if 'Julius is white' or 'Lily is a frog' or both then John went to the garden.
It is almost certain that either 'Brian is yellow' or 'Bernhard is green' but not both.
We doubt that either 'Brian is yellow' or 'Bernhard is green' but not both.
It is almost certain that either 'Brian is yellow' or 'Bernhard is green' 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.9::factA.
  0.1::factB.
  0.8::factC.
  %hop1
  0.1::factX:-xor(factA,factB).
  0.6::factY:-or(factB,factA).
  0.05::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Brian is yellow' or 'Bernhard is green' but not both.