XET as a Rule Language for Consistency Maintenance in UML ⋆ Nimit Pattanasri 1 , Vilas Wuwongse 1 , and Kiyoshi Akama 2 1 Computer Science & Information Management Program, Asian Institute of Technology, Pathumthani 12120, Thailand {a028250,vw}@cs.ait.ac.th 2 Hokkaido University, Kita 11, Nishi 5, Kita-ku, Sapporo, 060-0811, Japan akama@cims.hokudai.ac.jp Abstract. Although XET is a powerful rule language, a mechanism to provide an automatic update on an XML document according to mon- itored events cannot be realized easily under the common use of XET. Proposed in the paper is a simple XML-expression transformation by XET enabling applications to perform update actions on an XML doc- ument when an event is detected. As a case study, it will be shown that XET is capable of maintaining consistency between UML diagrams. The capabilities include inconsistency detection according to user changes and automatic resolution process. 1 XET XML Equivalent Transformation (XET) [2] is a new paradigm of programming languages, which is based on an efficient computing paradigm namely Equivalent Transformation (ET) [1] and XML serving as the standard for data represen- tation. An XET program consists of a set of XET rules, each of which is used to specify a transformation of a given problem into a simpler one while preserv- ing the semantics of the problem. Basic concepts are explained first in order to understand XET. An XML expression is an XML element that can carry vari- ables to represent implicit information and to enhance XML elements’ expressive power, e.g., an E-variable (Evar) can represent a sequence of XML expressions, and an S-variable (Svar) can represent a string. An XML clause is of the form: H ← B 1 , ..., B n where n≥0, and H and B i are XML expressions. A logical read- ing of the form is: H is true if B 1 , ..., B n are all true. In general, a given problem is formulated in terms of an XML clause which will be transformed step by step into a simpler one by XET rules. For simplicity, a limited class of XET rules is shown: Head, {Condition } = ⇒{Execution }, Body. which has the meaning: A target XML expression (in the body of a clause) that is matched by Head (an XML expression) will be transformed to Body (a sequence of ⋆ To appear in Proceedings of the 3rd International Workshop Rules and Rule Markup Languages for the Semantic Web (RuleML’04), Hiroshima, Japan, LNCS 3323, pp. 200-204, Springer-Verlag, 2004.