It is highly likely that Julius is yellow. Chances are slight that Lily is gray. There is almost no chance that Brian is a swan. We believe that if 'Julius is yellow' or 'Lily is gray' or both then Jessica is a mouse. It is improbable that if 'Julius is yellow' or 'Lily is gray' or both then John dropped the milk. It is certain that if 'Lily is gray' or 'Julius is yellow' or both then Greg is a frog.
It is highly likely that either 'Greg is a frog' or 'Jessica is a mouse' but not both.
It is probably not the case that either 'Greg is a frog' or 'Jessica is a mouse' but not both.
It is highly likely that either 'Greg is a frog' or 'Jessica is a mouse' 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.1::factB.
  0.02::factC.
  %hop1
  0.75::factX:-or(factA,factB).
  0.1::factY:-or(factA,factB).
  1.0::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Greg is a frog' or 'Jessica is a mouse' but not both.