There is little chance that Greg is green. There is little chance that Jason is tired. There is almost no chance that Julius is a lion. It is highly unlikely that if 'Greg is green and Julius is a lion' then Bernhard is gray. It is highly unlikely that if 'Greg is green and Jason is tired' then Daniel left the milk. There is a very good chance that if 'Julius is a lion' or 'Greg is green' or both then John went to the garden.
It is probable that either 'Greg is green' or 'Jason is tired' but not both.
We doubt that either 'Greg is green' or 'Jason is tired' but not both.
It is probable that either 'Greg is green' or 'Jason is tired' 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.1::factB.
  0.02::factC.
  %hop1
  0.05::factX:-and(factA,factC).
  0.05::factY:-and(factA,factB).
  0.8::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Greg is green' or 'Jason is tired' but not both.