There is a better than even chance that Lily is a rhino. It is certain that Brian is a frog. It is highly unlikely that Jason is thirsty. It is improbable that if 'Lily is a rhino' or 'Brian is a frog' or both then Bernhard is yellow. It is probably the case that if 'Jason is thirsty' or 'Lily is a rhino' or both then John discarded the milk. It is likely that if 'Jason is thirsty' or 'Brian is a frog' or both then Mary got the football.
It is likely that either 'Bernhard is yellow' or 'Mary got the football' but not both.
It is likely that either 'Bernhard is yellow' or 'Mary got the football' but not both.
It is improbable that either 'Bernhard is yellow' or 'Mary got the football' 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.
  1.0::factB.
  0.05::factC.
  %hop1
  0.1::factX:-or(factA,factB).
  0.7::factY:-or(factC,factA).
  0.7::factZ:-or(factC,factB).

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

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