It is almost certain that Lily is white. It is almost certain that Bernhard is gray. It is certain that Brian is white. It is certain that if either 'Lily is white' or 'Brian is white' but not both then Winona is a sheep. We doubt that if 'Brian is white' or 'Lily is white' or both then John dropped the milk. It is almost certain that if either 'Lily is white' or 'Brian is white' but not both then Julius is yellow.
It is certain that 'Brian is white' or 'Lily is white' or both.
It is certain that 'Brian is white' or 'Lily is white' or both.
There is almost no chance that 'Brian is white' or 'Lily is white' or 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.95::factA.
  0.95::factB.
  1.0::factC.
  %hop1
  1.0::factX:-xor(factA,factC).
  0.2::factY:-or(factC,factA).
  0.95::factZ:-xor(factA,factC).

  %hop2
  conclusion:-or(factC,factA).

  query(conclusion).
  
'Brian is white' or 'Lily is white' or both.