There is almost no chance that Jessica is a sheep. Chances are slight that Lily is white. It is impossible that Bill went to the kitchen. It is almost certain that if 'Lily is white and Bill went to the kitchen' then Bernhard is gray. It is improbable that if 'Bill went to the kitchen and Lily is white' then Sandra left the football. There is little chance that if 'Bill went to the kitchen' or 'Jessica is a sheep' or both then Brian is a swan.
There is almost no chance that either 'Jessica is a sheep' or 'Bernhard is gray' but not both.
There is almost no chance that either 'Jessica is a sheep' or 'Bernhard is gray' but not both.
It is likely that either 'Jessica is a sheep' or 'Bernhard 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.02::factA.
  0.1::factB.
  0.0::factC.
  %hop1
  0.95::factX:-and(factB,factC).
  0.1::factY:-and(factC,factB).
  0.1::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Jessica is a sheep' or 'Bernhard is gray' but not both.