With the emergence of highly heterogeneous, dynamic and large distributed platforms, the need for a way to efficiently program and manage them has arisen. The concept of autonomic computing proposes to create self-manageable systems --- systems which are aware of their components and their environment, and can configure, optimise, heal and protect themselves. In the context of realisation of such systems, declarative programming, whose goal is to ease the programmer's task by separating the control from the logic of a computation, has regained a lot of interest recently. In particular, rule-based programming is regarded as a promising model in this quest for adequate programming abstractions for these platforms. However, while these models ...