There is little chance that Bill went to the garden. It is impossible that Gertrude is a mouse. It is impossible that Brian is yellow. There is a better than even chance that if 'Gertrude is a mouse and Brian is yellow' then Lily is a rhino. It is improbable that if 'Bill went to the garden and Brian is yellow' then Mary left the football. It is impossible that if either 'Bill went to the garden' or 'Brian is yellow' but not both then Julius is a lion.
It is probably the case that either 'Lily is a rhino' or 'Julius is a lion' but not both.
It is impossible that either 'Lily is a rhino' or 'Julius is a lion' but not both.
It is probably the case that either 'Lily is a rhino' or 'Julius is a lion' 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.0::factB.
  0.0::factC.
  %hop1
  0.6::factX:-and(factB,factC).
  0.1::factY:-and(factA,factC).
  0.0::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Lily is a rhino' or 'Julius is a lion' but not both.