In general Rules hav to be able to check if a certain condition holds for a certain object in the database. So the rule table has to encode conditions.
Rules consist of literals which are anded.
This leads to the thought that our system at the moment is resource driven, we perform whatever is possible on the data provided. Updates though might want to have demand driven processing. The software literal might be expensive and does not give insight, when one of the condition literals change that a certain other input id is to be processed. Although at the moment not of any importance, the system might want to be able to handle things like this. It evaluates the rule and if satisfied, it will start the goal analysis.