semi-ring