Stable model semantics for tuple-generating dependencies revisited