There is a better than even chance that Brian is green. It is almost certain that Julius is gray. It is improbable that Bernhard is a rhino. There is almost no chance that if either 'Bernhard is a rhino' or 'Julius is gray' but not both then Winona is a mouse. Chances are about even that if either 'Julius is gray' or 'Brian is green' but not both then John took the apple. It is impossible that if 'Bernhard is a rhino' or 'Julius is gray' or both then Greg is a lion.
It is almost certain that either 'Julius is gray' or 'Brian is green' but not both.
Chances are about even that either 'Julius is gray' or 'Brian is green' but not both.
It is almost certain that either 'Julius is gray' or 'Brian 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.6::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.02::factX:-xor(factC,factB).
  0.5::factY:-xor(factB,factA).
  0.0::factZ:-or(factC,factB).

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

  query(conclusion).
  
Either 'Julius is gray' or 'Brian is green' but not both.