Alex Rousskov wrote:
While IRML does not have assignments, it does evaluate expressions. I
wonder if there is an implicit or explicit guarantee that the same
property is evaluated to the same value before and after a delay (such
as service execution). Does IRML assume that all properties are known
and "constant" just before the script is interpreted?
In the current IRML draft we require that IRML interpreters re-evaluate
rule conditions and the referenced message property values after each
service execution. As you pointed out, message properties and in
particular message header values can change as a result of service
executions. A content adaptation service, for example, may modify the
content type and subsequent service operations may not make sense any
more once the content type of a message has changed. So I don't believe
we can assume that all properties are constant while we evaluate a set
of rules for a given message. On the other hand, such a requirement
would rule out certain performance optimizations. When we discussed this
issue a while ago, somebody proposed to divide OPES services into those
that may modify message header values (e.g. a content adaptation
service) and those that won't (e.g. a logging service) and optimize the
rule processing based on this knowledge.
-Andre