Hi Boaz: more implementation notes: -- Karl ======================= Compatability In the Demeter/C++ system we implemented the concept of compatibility between traversal specifications and class graphs. Compatibility errors proved to be a useful debugging tool for adaptive programs. Therefore we generalize the concept to strategy graphs as follows: >A strategy graph S is compatible with a class graph G, a name map N, >and edge constraints B if for all strategy graph edges e of S there is >a path P in G from s = N(Source(e)) to t = N(Target(e)) such that for >every element [node or edge] x in P except for s and t, (B(e))(x) is >true. [B(e) is the edge constraints of the strategy edge e, i.e. a >predicate function mapping path elements to booleans.] The idea behind compatability is to warn the user if there is a strategy edge which does not define any path in the class graph.