There is almost no chance that Bernhard is a rhino. It is probable that Julius is gray. It is unlikely that Mary left the football. Chances are slight that if 'Mary left the football and Julius is gray' then Lily is green. It is impossible that if 'Bernhard is a rhino' or 'Julius is gray' or both then Brian is yellow. We doubt that if either 'Bernhard is a rhino' or 'Julius is gray' but not both then John moved to the office.
There is almost no chance that either 'Bernhard is a rhino' or 'Lily is green' but not both.
There is almost no chance that either 'Bernhard is a rhino' or 'Lily is green' but not both.
It is almost certain that either 'Bernhard is a rhino' or 'Lily 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.02::factA.
  0.7::factB.
  0.2::factC.
  %hop1
  0.1::factX:-and(factC,factB).
  0.0::factY:-or(factA,factB).
  0.2::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Bernhard is a rhino' or 'Lily is green' but not both.