It is likely that Jessica is a cat. Chances are slight that Jason is tired. There is almost no chance that Mary got the football. Chances are slight that if 'Mary got the football and Jessica is a cat' then Lily is a rhino. There is little chance that if 'Mary got the football and Jessica is a cat' then Sandra grabbed the milk. It is certain that if either 'Mary got the football' or 'Jessica is a cat' but not both then Julius is green.
It is certain that either 'Mary got the football' or 'Jason is tired' but not both.
There is little chance that either 'Mary got the football' or 'Jason is tired' but not both.
It is certain that either 'Mary got the football' 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.7::factA.
  0.1::factB.
  0.02::factC.
  %hop1
  0.1::factX:-and(factC,factA).
  0.1::factY:-and(factC,factA).
  1.0::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'Mary got the football' or 'Jason is tired' but not both.