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 n0, 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.