It is highly likely that Greg is yellow. It is almost certain that Brian is gray. It is improbable that Bernhard is white. There is almost no chance that if either 'Brian is gray' or 'Bernhard is white' but not both then Jessica is a mouse. It is impossible that if 'Brian is gray and Greg is yellow' then Julius is a lion. It is impossible that if 'Brian is gray' or 'Bernhard is white' or both then Fred went to the garden.
It is almost certain that either 'Jessica is a mouse' or 'Brian is gray' but not both.
It is almost certain that either 'Jessica is a mouse' or 'Brian is gray' but not both.
It is probably not the case that either 'Jessica is a mouse' 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.9::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.02::factX:-xor(factB,factC).
  0.0::factY:-and(factB,factA).
  0.0::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Jessica is a mouse' or 'Brian is gray' but not both.