There is little chance that Bernhard is a rhino. It is probably the case that Brian is green. There is a very good chance that Greg is yellow. We believe that if 'Greg is yellow' or 'Bernhard is a rhino' or both then Julius is gray. It is improbable that if 'Bernhard is a rhino' or 'Brian is green' or both then Lily is a swan. There is a very good chance that if 'Brian is green and Bernhard is a rhino' then Mary put down the apple.
It is certain that either 'Julius is gray' or 'Greg is yellow' but not both.
It is unlikely that either 'Julius is gray' or 'Greg is yellow' but not both.
It is certain that either 'Julius is gray' or 'Greg is yellow' 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.1::factA.
  0.7::factB.
  0.8::factC.
  %hop1
  0.75::factX:-or(factC,factA).
  0.1::factY:-or(factA,factB).
  0.8::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'Julius is gray' or 'Greg is yellow' but not both.