<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">OCL-Lite: A Decidable (Yet Expressive) Fragment of OCL</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Anna</forename><surname>Queralt</surname></persName>
							<email>aqueralt@essi.upc.edu</email>
							<affiliation key="aff1">
								<orgName type="department">Dept. of Service and Information System Engineering UPC -BarcelonaTech</orgName>
								<address>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Alessandro</forename><surname>Artale</surname></persName>
							<email>artale@inf.unibz.it</email>
							<affiliation key="aff0">
								<orgName type="department">KRDB Research Centre for Knowledge and Data</orgName>
								<orgName type="institution">University of Bozen-Bolzano</orgName>
								<address>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Diego</forename><surname>Calvanese</surname></persName>
							<email>calvanese@inf.unibz.it</email>
							<affiliation key="aff0">
								<orgName type="department">KRDB Research Centre for Knowledge and Data</orgName>
								<orgName type="institution">University of Bozen-Bolzano</orgName>
								<address>
									<country key="IT">Italy</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ernest</forename><surname>Teniente</surname></persName>
							<email>teniente@essi.upc.edu</email>
							<affiliation key="aff1">
								<orgName type="department">Dept. of Service and Information System Engineering UPC -BarcelonaTech</orgName>
								<address>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">OCL-Lite: A Decidable (Yet Expressive) Fragment of OCL</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">6D9A95D2A584F37D68DB49F25AD6C973</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:09+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>UML has become a de facto standard in conceptual modeling. Class diagrams in UML allow one to model the data in the domain of interest by specifying a set of graphical constraints. However, in most cases one needs to provide the class diagram with additional semantics to completely specify the domain, and this is where OCL comes into play. While reasoning over class diagrams is decidable and has been investigated intensively, it is well known that checking the correctness of OCL constraints is undecidable. Thus, we introduce OCL-Lite, a fragment of the full OCL language and prove that reasoning over UML class diagrams with OCL-Lite constraints is in ExpTime by an encoding in the description logic ALCI. As a side result, DL techniques and tools can be used to reason on UML class diagrams annotated with arbitrary OCL-Lite constraints.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The Unified Modeling Language (UML) has become a de facto standard in conceptual modeling of information systems. In UML, a conceptual schema is represented by means of a class diagram, with its graphical constraints, together with a set of user-defined constraints, which are usually specified in the Object Constraint Language (OCL). In every application domain the set of instances that can be stored or managed is necessarily finite and, thus, a schema has not only to be consistent, but also finitely satisfiable <ref type="bibr" target="#b12">[13]</ref>. It is well-known that reasoning with OCL integrity constraints in their full generality is undecidable since it amounts to full FOL reasoning <ref type="bibr" target="#b3">[4]</ref>. Thus, reasoning with UML conceptual schemas in the presence of OCL constraints has been approached in the following alternative ways: teeing termination in all cases <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b5">6,</ref><ref type="bibr" target="#b14">15]</ref>. 2. Allowing general constraints and ensuring termination without guaranteeing completeness of the result <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b16">17,</ref><ref type="bibr" target="#b11">12]</ref>. 3. Ensuring both termination and completeness of finite reasoning by allowing only specific kinds of constraints <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b17">18]</ref>. 4. Ensuring terminating and complete reasoning by disallowing OCL constraints and admitting unrestricted models <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b1">2]</ref>.</p><p>To our knowledge, none of the existing approaches guarantees complete and terminating reasoning on UML schemas coupled with OCL constraints able to capture those in Figure <ref type="figure" target="#fig_0">1</ref>. With approaches of the first kind, a result may not be obtained in some particular cases. On the contrary, the second kind of approaches may fail to find existing valid solutions. Approaches of the third kind do not allow arbitrary constraints as the ones in Figure <ref type="figure" target="#fig_0">1</ref>. Finally, the last approaches are based on a Description Logic (DL) encoding of a UML schema. These methods do not consider OCL constraints and they usually check unrestricted satisfiability.</p><p>The main purpose of this paper is to identify a fragment of OCL, which we call OCL-Lite, that guarantees finite satisfiability while being significantly expressive at the same time. In other words, we propose the specification of arbitrary constraints within the bounds of OCL-Lite in a UML conceptual schema to ensure completeness and decidability of reasoning. Such nice properties are due to the finite model property (FMP) of the language, i.e., it is guaranteed that a satisfiable UML/OCL-Lite schema is always finitely satisfiable. The proposed OCL-Lite is the result of identifying a fragment of OCL that can be encoded into the DL ALCI <ref type="bibr" target="#b6">[7]</ref>, which has interesting reasoning properties. In particu-lar, ALCI enjoys the FMP, i.e., every satisfiable set of constraints formalized in ALCI admits a finite model. Thus, the FMP is also guaranteed for any fragment of OCL that fits into ALCI.</p><p>The contributions of this paper can be summarized as follows:</p><p>-The identification of a fragment of OCL that enjoys the FMP. To our knowledge, the reasoning properties of OCL had not been studied before, except that full OCL leads to undecidability. -A mapping from OCL-Lite to the DL ALCI to prove that the proposed fragment has the same reasoning properties as ALCI. To our knowledge, this is the first attempt to encode OCL constraints in DLs. As a side result, a DL reasoner can be used to verify the correctness of a schema. -Thanks to the mapping to ALCI we are able to show both the FMP and that checking satisfiability in UML/OCL-Lite is an ExpTime-complete problem.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">OCL-Lite Syntax and Semantics</head><p>In this section we present the fragment of OCL that corresponds to OCL-Lite. We start by an overview of basic concepts of UML and OCL.</p><p>A UML class diagram represents the static view of the domain basically by means of classes and associations between them, representing, respectively, sets of objects and relations between objects. An association is constrained by a set of participating classes. An association end is a part of an association that defines the participation of a class in the association. The name of the role played by a participant in an association is placed in the association end near the corresponding class. If the role name is omitted, the role played by the participant is the name of its class.</p><p>An OCL constraint (or invariant) has the form: context C inv: OCLExpr , where C is the contextual class, i.e., the class to which the constraint belongs, and OCLExpr is an expression that results in a boolean value. An OCL constraint is satisfied by an instantiation of the schema if OCLExpr evaluates to true for each instance of the contextual class. An OCL expression is defined by means of navigation paths, combined with predefined OCL operations to specify conditions on those paths. A navigation path is a sequence of role names defined in the associations of the class diagram. Each role name used in a path indicates the direction of the navigation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">OCL-Lite Syntax</head><p>In this section we specify the syntax rules that allow one to construct OCL constraints belonging to the fragment of OCL that we call OCL-Lite. An OCL-Lite constraint has the form: context C inv: OCL-LiteExpr . In the syntax rules, shown in Figure <ref type="figure" target="#fig_1">2</ref>, an OCL-Lite expression OCL-LiteExpr is defined recursively. Intuitively, OCL-LiteExpr allows one to construct a boolean OCL-Lite expression, which can correspond to the whole constraint, or can be the condition specified as a parameter in a select operation (see SelectExpr ) or in exists and forall operations (see BooleanOp ). An OCL-LiteExpr can be either a Path to which a SelectExpr is applied, a check of whether an object is of a certain type, or boolean combinations of these OCL-Lite expressions.</p><p>The label Path indicates how a navigation path can be constructed as a non-empty sequence of PathItem s. Each PathItem can be either a role name r i specified in the class diagram, or a role name preceded by the operation oclAsType(C) , when we need to access a role name of a particular class C . When OCL-LiteExpr corresponds to the whole constraint, each path starts from a role that is accessible from the contextual class (or a subclass C of the contextual class, in which case oclAsType(C ) must be specified first). Otherwise, when OCL-LiteExpr is inside a select, exists, or forall operation, then, the starting role name will depend on the context where the operation is used. After a Path , one can apply a (possibly empty) sequence of selections on the collection of objects obtained through the path, always followed by a BooleanOp .</p><p>The intuitive meaning of the OCL collection operations included in this fragment of OCL is as follows. Let col denote the collection of objects reachable along a path, and let o denote a single object, then:</p><p>col -&gt;select(OCL-LiteExpr ): returns the subset of elements of col that satisfy OCL-LiteExpr ; col -&gt;exists(OCL-LiteExpr ): returns true iff there is some element of col that satisfies OCL-LiteExpr ; col -&gt;forall(OCL-LiteExpr ): returns true iff all the elements of col satisfy OCL-LiteExpr ; col -&gt;size(): returns the number of elements of col ; col -&gt;isEmpty(): returns true iff col is empty; col -&gt;notEmpty(): returns true iff col is not empty; o .oclIsTypeOf(C ): returns true iff o is an instance of the class C ; All constraints in Figure <ref type="figure" target="#fig_0">1</ref> are examples of well-formed OCL-Lite expressions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">OCL-Lite Semantics</head><p>OCL-Lite operations, except for oclIsTypeOf and oclAsType, can be expressed only in terms of select, isEmpty, and notEmpty. Thus, to specify the seman- </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Original expression</head><p>Normalized expression a) col -&gt;exists(cond)</p><formula xml:id="formula_0">col -&gt;select(cond)-&gt;notEmpty() b) col -&gt;forall(cond) col -&gt;select(not cond)-&gt;isEmpty() c) col -&gt;select(cond1)-&gt;select(cond2) col -&gt;select(cond1 and cond2) d) col -&gt;size()&gt;0 col -&gt;notEmpty() e) col -&gt;size()=0 col -&gt;isEmpty() f) not col -&gt;isEmpty() col -&gt;notEmpty() g) not col -&gt;notEmpty() col -&gt;isEmpty()</formula><p>tics of OCL-Lite expressions, we first rewrite each expression as an equivalent normalized one, which is expressed in terms of these operations only. Table <ref type="table" target="#tab_0">1</ref> shows the OCL-Lite expressions together with their normal form. These normalizations, together with de Morgan's laws, are iteratively applied until the expression only contains the operations select, isEmpty, and notEmpty, and the boolean operator not only appears before oclIsTypeOf(C ). In the table, col and cond denote, respectively, a collection and a condition, which must be defined according to the syntax rules.</p><p>In our running example, the constraints in Figure <ref type="figure" target="#fig_0">1</ref> that have to be normalized are 1, 3, 4, and 5. The resulting expressions we get after applying the rules in Table <ref type="table" target="#tab_0">1 are:</ref> -Constraint 1. We apply rule a) and we get the normalized expression:</p><p>context Person inv: organized-&gt;select(oclIsTypeOf(CriticalEvent) and sponsor-&gt;isEmpty())-&gt;notEmpty() -Constraint 3. We first apply rule b) and we get:</p><p>context Person inv: audited-&gt;select(not sponsor-&gt;notEmpty())-&gt;isEmpty() We then apply rule g) to obtain the normalized expression: context Person inv: audited-&gt;select(sponsor-&gt;isEmpty())-&gt;isEmpty() -Constraint 4. We apply rule f) and we get:</p><p>context CriticalEvent inv: responsible.organized-&gt;notEmpty() -Constraint 5. We apply rule a) and we get:</p><p>context Sponsor inv: event-&gt;select(oclIsTypeOf(CriticalEvent))-&gt;notEmpty() or event-&gt;select(sibling-&gt;isEmpty() or sibling-&gt;select(sponsor-&gt;isEmpty())-&gt;notEmpty())-&gt;notEmpty()</p><p>It can be seen from Table <ref type="table" target="#tab_0">1</ref> that the expressions resulting from the normalization conform to a limited set of patterns, basically consisting of an optional select operation followed either by isEmpty or notEmpty. Also, the expression may include the operation oclIsTypeOf.</p><p>In the following we consider OCL-Lite expressions in their normal form. For each of them we specify its semantics by means of an interpretation function, f , that maps each OCL-LiteExpr into a FOL formula OCL-LiteExpr f (x) with one free variable. Other approaches specify the semantics of OCL expressions using first-order terms instead of formulas <ref type="bibr" target="#b3">[4]</ref>. However, as also argued in <ref type="bibr" target="#b3">[4]</ref>, using formulas is preferable when dealing with sets, as in our case.</p><p>We start by formalizing the semantics of an OCL-Lite constraint</p><formula xml:id="formula_1">context C inv: OCL-LiteExpr Its interpretation is: ∀x (C(x) → OCL-LiteExpr f (x))</formula><p>where C is the unary predicate corresponding to class C .</p><p>To define the semantics of OCL-Lite expressions, we first introduce some notation to deal with navigation paths. Consider a navigation path p n ...p 1 in an OCL-Lite expression, where each p i is either a role name or oclAsType(C i ).r i . To formalize a (binary) association A i , we introduce a binary predicate, A i , whose first argument represents an instance of dom(A i ) (the domain of A i ) and whose second argument represents an instance of range(A i ) (the range of A i ). To fix a semantics for role names we conform to the UML convention about role names <ref type="bibr" target="#b15">[16]</ref>, i.e., a role name attached to an association end labeled with a class C is used to navigate from one object to another one belonging to the class C . Thus, in the following, p f i (x, y) = A i (x, y) when p i is a role name attached to the range(A i )-end of A i , and, viceversa, p f i (x, y) = A i (y, x) when p i is a role name attached to the dom(A i )-end of A i . Similarly, p f i (x, y) = C i (x) ∧ A i (x, y), when p i = oclAsType(C i ).r i and r i is a role name attached to the range(A i )-end of A i , while p f i (x, y) = C i (x) ∧ A i (y, x), when p i = oclAsType(C i ).r i and r i is a role name attached to the dom(A i )-end of A i .</p><p>1. OCL-LiteExpr = p n ...p 1 -&gt;select(OCL-LiteExpr 0 )-&gt;notEmpty()</p><p>The semantics of this expression is</p><formula xml:id="formula_2">OCL-LiteExpr f (x) = ∃xn • • • ∃x1(p f n (x, xn) ∧ • • • ∧ p f 1 (x2, x1) ∧ OCL-LiteExpr f 0 (x1))</formula><p>A particular case of this expression is when no select operation is applied on the objects obtained from the navigation, which corresponds to the expression OCL-LiteExpr = p n ...p 1 -&gt;notEmpty(). In this case, we have</p><formula xml:id="formula_3">OCL-LiteExpr f (x) = ∃xn • • • ∃x1 (p f n (x, xn) ∧ • • • ∧ p f 1 (x2, x1))</formula><p>2. OCL-LiteExpr = p n ...p 1 -&gt;select(OCL-LiteExpr 0 )-&gt;isEmpty() The semantics of this expression is</p><formula xml:id="formula_4">OCL-LiteExpr f (x) = ∀xn • • • ∀x1(¬p f n (x, xn)∨• • •∨¬p f 1 (x2, x1)∨¬OCL-LiteExpr f 0 (x1))</formula><p>Again, we have a particular case of this kind of expression in the absence of select, namely OCL-LiteExpr = p n ...p 1 -&gt;isEmpty(). In this case, the semantics of the expression is</p><formula xml:id="formula_5">OCL-LiteExpr f (x) = ∀xn • • • ∀x1 (¬p f n (x, xn) ∨ • • • ∨ ¬p f 1 (x2, x1)) 3. OCL-LiteExpr = [not] oclIsTypeOf(C )</formula><p>where the brackets denote optionality. The semantics of the expression is</p><formula xml:id="formula_6">OCL-LiteExpr f (x) = [¬]C(x)</formula><p>4. OCL-LiteExpr = OCL-LiteExpr 1 and OCL-LiteExpr 2</p><p>The semantics of this expression is</p><formula xml:id="formula_7">OCL-LiteExpr f (x) = OCL-LiteExpr f 1 (x) ∧ OCL-LiteExpr f 2 (x)</formula><p>5. OCL-LiteExpr = OCL-LiteExpr 1 or OCL-LiteExpr 2</p><p>The semantics of this expression is</p><formula xml:id="formula_8">OCL-LiteExpr f (x) = OCL-LiteExpr f 1 (x) ∨ OCL-LiteExpr f 2 (x) 6. OCL-LiteExpr = OCL-LiteExpr 1 implies OCL-LiteExpr 2</formula><p>The semantics of this expression is</p><formula xml:id="formula_9">OCL-LiteExpr f (x) = OCL-LiteExpr f 1 (x) → OCL-LiteExpr f 2 (x)</formula><p>Definition 1 (Satisfiability of OCL-Lite constraints). Let Γ be a set of OCL-Lite constraints and Γ f the resulting FOL theory. Then, Γ is said to be satisfiable if there exists a first order interpretation I = (∆ I , • I ) that satisfies Γ f . I is called a model of Γ .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Encoding UML/OCL-Lite in ALCI</head><p>In this section we show that the proposed fragments of OCL and UML can both be encoded in the DL ALCI. Thus, finite reasoning is guaranteed for every conceptual schema expressed in this language. We first present the fragment of UML we are interested in, and then we provide an encoding for the OCL-Lite fragment, too. We assume the encoding of a fragment of UML class diagrams in ALCI, based on the encoding in ALCQI proposed in <ref type="bibr" target="#b4">[5]</ref>. Since ALCQI is an extension of ALCI that does not have the FMP <ref type="bibr" target="#b6">[7]</ref> (i.e., a schema specified in ALCQI might be satisfiable only by an infinite number of instances), we focus on a fragment of UML that can be encoded into ALCI. In particular, we consider UML class diagrams where the domain of interest is represented through classes (representing sets of objects), possibly equipped with attributes and associations (representing relations among objects), and types (representing the domains of attributes, i.e., integer, string, etc.). The kind of UML constraints that we consider in this paper are the ones typically used in conceptual modeling, namely hierarchical relations between classes, disjointness and covering between classes, cardinality constraints for participation of entities in relationships, and multiplicity and typing constraints for attributes. To preserve the FMP we restrict both cardinality and multiplicity constraints to be of the form * or 1..* (meaning that either no constraint applies or the class participates at-least once, respectively).</p><p>The encoding, starting from a UML class diagram Σ, generates a satisfiability preserving ALCI knowledge base K Σ (see <ref type="bibr" target="#b4">[5]</ref> for details on the encoding). Given the UML fragment chosen, a model of the knowledge base K Σ can be viewed as an instantiation of the UML class diagram Σ.</p><p>In the following, we provide a mapping to translate OCL-Lite constraints into ALCI. An OCL-Lite constraint, which has the general form context C inv: OCL-LiteExpr is encoded as the following ALCI inclusion assertion:</p><formula xml:id="formula_10">C OCL-LiteExpr †</formula><p>where • † is a mapping function that assigns to each OCL-Lite expression its corresponding ALCI encoding. This inclusion assertion, according to the semantics of OCL constraints, states that each instance of C must satisfy OCL-LiteExpr . We now illustrate the encoding of OCL-Lite expressions in ALCI. We consider OCL-Lite expressions in their normal form, as provided in Section 2.2, and define OCL-LiteExpr † by induction on the structure of OCL-LiteExpr .</p><p>1. OCL-LiteExpr = p n ...p 1 -&gt;select(OCL-LiteExpr 0 )-&gt;notEmpty() We define the ALCI concept OCL-LiteExpr † by induction on the length n of the navigation path. For convenience, we consider as base case n = 0, and in this case we set OCL-LiteExpr † = OCL-LiteExpr † 0 . For the inductive case, let OCL-LiteExpr n = p n ...p 1 -&gt;select(OCL-LiteExpr 0 )-&gt;notEmpty(), let p n+1 be an additional path item, and let OCL-</p><formula xml:id="formula_11">LiteExpr n+1 = p n+1 .OCL-LiteExpr n . Then OCL-LiteExpr † n+1 = p † n+1 .(OCL-LiteExpr † n )</formula><p>, where p † n+1 (for the various cases of p n+1 , cf. the OCL syntax in Section 2.1) is an abbreviation<ref type="foot" target="#foot_0">3</ref> defined as follows (r denotes a role name of an association A , and dom(A ) and range(A ) denote respectively the domain and range of A ):</p><formula xml:id="formula_12">r † = ∃A if r is attached to range(A ) ∃A − if r is attached to dom(A ) (oclAsType(C ).r ) † = C ∃A if r is attached to range(A ) C ∃A − if r is attached to dom(A )</formula><p>Note that the ALCI concept corresponding to OCL-LiteExpr has the form</p><formula xml:id="formula_13">p † n .(p † n−1 .(• • • (p † 1 .(OCL-LiteExpr † 0 )) • • • ))</formula><p>Intuitively, this concept represents the fact that OCL-LiteExpr evaluates to true, for a given instance o in the domain of p n , if o is related through the path p n ...p 1 to some object o 1 that satisfies the condition specified by OCL-LiteExpr 0 . When there is no select operation, i.e., the OCL expression has the form p n ...p 1 -&gt;notEmpty(), then OCL-LiteExpr † 0 = , and the constraint is encoded as p</p><formula xml:id="formula_14">† n .(p † n−1 .(• • • (p † 1 . )• • • )).</formula><p>For example, once it has been normalized in Section 2.2, an expression that follows this pattern is the one in the body of constraint 4. The ALCI assertion that encodes this constraint is:</p><formula xml:id="formula_15">CriticalEvent ∃ResponsibleFor − .(∃Organizes. )</formula><p>Note that, the first DL role, ResponsibleFor − , is inverted since the association ResponsibleFor has domain Person and range CriticalEvent, and the role name responsible is attached to Person. Thus, responsible † = ∃ResponsibleFor − . The next role name in the OCL-Lite expression is organized, which is attached to Event, the range of the association Organizes. Thus, organized † = ∃Organizes. Finally, since the OCL operation select does not appear in the constraint, no condition must be imposed on the instances reached at the end of the path. 2. OCL-LiteExpr = p n ...p 1 -&gt;select(OCL-LiteExpr 0 )-&gt;isEmpty()</p><p>Similarly to the previous case, we define OCL-LiteExpr † by induction on n.</p><p>For the base case of n = 0, we set OCL-LiteExpr † = ¬OCL-LiteExpr † 0 . For the inductive case, let:</p><p>OCL-LiteExpr n = p n ...p 1 -&gt;select(OCL-LiteExpr 0 )-&gt;isEmpty(), let p n+1 be an additional path item, and let OCL-LiteExpr n+1 = p n+1 .OCL-LiteExpr n . Then OCL-LiteExpr † n+1 = ¬p † n .(¬OCL-LiteExpr † n ), Considering that ¬¬C is equivalent to C, the ALCI concept corresponding to OCL-LiteExpr has the form</p><formula xml:id="formula_16">¬(p † n .(p † n−1 .(• • • (p † 1 .(OCL-LiteExpr † 0 )) • • • )))</formula><p>Intuitively, this concept represents the fact that OCL-LiteExpr evaluates to true, for a given instance o, if o is not related through the path p n ...p 1 to any object that satisfies the condition specified by OCL-LiteExpr 0 . As in the previous case, if there is no select operation in the OCL expression, i.e., the OCL expression has the form p n ... To further illustrate the mapping, we apply it to some other constraints of our running example. For instance, consider the normalized expression of constraint 1. This constraint is of kind 1, and its subexpressions are respectively of kinds 4, 3, and 2. Applying the corresponding mapping rules we obtain:</p><p>Person ∃Organizes.(CriticalEvent ¬∃SponsoredBy. )</p><p>As an example of an OCL-Lite expression of kind 6 we have constraint 2. According to the mapping rule, its corresponding ALCI expression is:</p><formula xml:id="formula_17">Event ¬∃HeldWith. ¬CriticalEvent</formula><p>Constraint 5 is of kind 5 once normalized. We recursively apply the mapping rules to each part of the disjunction: rules 1 and 3 to the first subexpression, and rules 5, 2, 1 to the second subexpression. The resulting ALCI expression is:</p><p>Company ∃SponsoredBy − .CriticalEvent ∃SponsoredBy − .(¬∃HeldWith. ∃HeldWith.¬∃SponsoredBy. )</p><p>The following theorem states that the mapping from OCL-Lite to ALCI is correct (we refer to <ref type="bibr" target="#b13">[14]</ref> for the proof).</p><p>Theorem 1 (Correctness of the OCL-Lite encoding). Let Γ be a set of OCL-Lite constraints and K Γ its ALCI encoding. Then, Γ is satisfiable if and only if K Γ is satisfiable.</p><p>Concerning the complexity of reasoning over UML/OCL-Lite schemas we first notice that reasoning just over the UML diagrams as proposed in this paper is an NP-complete problem. Indeed, the UML language we consider here is a sub-language of ER bool which was proved to be NP-complete in <ref type="bibr" target="#b2">[3]</ref>, and the very same complexity proof applies to the UML language we use.</p><p>Theorem 2 (Complexity of UML/OCL-Lite). Checking the satisfiability of UML/OCL-Lite conceptual schemas is an ExpTime-complete problem.</p><p>The upper bound follows from the fact that the ALCI encoding is correct, and that reasoning in ALCI is in ExpTime. The lower bound is established by reducing satisfiability of ALC TBoxes, which is known to be ExpTime-complete, to satisfiability of OCL-Lite constraints (see <ref type="bibr" target="#b13">[14]</ref> for the proof).</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. UML class diagram with OCL constraints</figDesc><graphic coords="2,137.60,115.83,340.16,200.85" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Syntax of OCL-Lite expressions</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>p 1 - 4 . 1 OCL-LiteExpr † 2 5. 1 OCL-LiteExpr † 2 6. 1 OCL-LiteExpr † 2</head><label>14121212</label><figDesc>&gt;isEmpty(), then OCL-LiteExpr † 0 = , and the constraint is encoded as ¬(p † n .(p † n−1 .(• • • (p † 1 . )• • • ))) As an example, let us consider constraint 3 in its normal form. The overall OCL-Lite expression is encoded in ALCI as ¬(∃Audits.(¬∃SponsoredBy. )), and the ALCI assertion corresponding to the constraint is: Person ¬∃Audits.¬∃SponsoredBy. 3. OCL-LiteExpr = oclIsTypeOf(C ), OCL-LiteExpr = not oclIsTypeOf(C ) The ALCI concept OCL-LiteExpr † corresponding to these OCL-Lite expressions is respectively C, and ¬C, OCL-LiteExpr = OCL-LiteExpr 1 and OCL-LiteExpr 2 The corresponding ALCI concept OCL-LiteExpr † is OCL-LiteExpr † OCL-LiteExpr = OCL-LiteExpr 1 or OCL-LiteExpr 2 The corresponding ALCI concept OCL-LiteExpr † is OCL-LiteExpr † OCL-LiteExpr = OCL-LiteExpr 1 implies OCL-LiteExpr 2 The corresponding ALCI concept OCL-LiteExpr † is ¬OCL-LiteExpr †</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Normalization of OCL-Lite expressions</figDesc><table /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">Note that p † is not a valid DL expression.</note>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper is a shortened version of <ref type="bibr" target="#b13">[14]</ref>. This work has been partly supported by the Ministerio de Ciencia e Innovación under the projects TIN2008-03863 and TIN2008-00444, Grupo Consolidado.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">On challenges of model transformation from UML to Alloy</title>
		<author>
			<persName><forename type="first">K</forename><surname>Anastasakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Bordbar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Georg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Ray</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and Systems Modeling</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="69" to="86" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Full satisfiability of UML class diagrams</title>
		<author>
			<persName><forename type="first">A</forename><surname>Artale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ibáñez-García</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 29th Int. Conf. on Conceptual Modeling (ER 2010)</title>
				<meeting>of the 29th Int. Conf. on Conceptual Modeling (ER 2010)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">6412</biblScope>
			<biblScope unit="page" from="317" to="331" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Reasoning over extended ER models</title>
		<author>
			<persName><forename type="first">A</forename><surname>Artale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kontchakov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Ryzhikov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zakharyaschev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 26th Int. Conf. on Conceptual Modeling (ER 2007)</title>
				<meeting>of the 26th Int. Conf. on Conceptual Modeling (ER 2007)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">4801</biblScope>
			<biblScope unit="page" from="277" to="292" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Translating the Object Constraint Language into first-order predicate logic</title>
		<author>
			<persName><forename type="first">B</forename><surname>Beckert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Keller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">H</forename><surname>Schmitt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the VERIFY Workshop at Federated Logic Conferences (FLoC)</title>
				<meeting>of the VERIFY Workshop at Federated Logic Conferences (FLoC)</meeting>
		<imprint>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="113" to="123" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Reasoning on UML class diagrams</title>
		<author>
			<persName><forename type="first">D</forename><surname>Berardi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>De Giacomo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">168</biblScope>
			<biblScope unit="issue">1-2</biblScope>
			<biblScope unit="page" from="70" to="118" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">The HOL-OCL Book</title>
		<editor>Brucker, A.D., Wolff, B.</editor>
		<imprint>
			<date type="published" when="2006">2006</date>
			<publisher>Swiss Federal Institute of Technology</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Expressive description logics</title>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>De Giacomo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">The Description Logic Handbook: Theory, Implementation, and Applications</title>
				<editor>
			<persName><forename type="first">F</forename><surname>Baader</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><forename type="middle">L</forename><surname>Mcguinness</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Nardi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</editor>
		<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="178" to="218" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Unifying class-based representation formalisms</title>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lenzerini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Nardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. of Artificial Intelligence Research (JAIR)</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="page" from="199" to="240" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">An overview of RoZ: A tool for integrating UML and Z specifications</title>
		<author>
			<persName><forename type="first">S</forename><surname>Dupuy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Ledru</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Chabre-Peccoud</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 12th Int. Conf. on Advanced Information Systems Engineering (CAiSE 2000)</title>
				<meeting>of the 12th Int. Conf. on Advanced Information Systems Engineering (CAiSE 2000)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="volume">1789</biblScope>
			<biblScope unit="page" from="417" to="430" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">The new ICOM ontology editor</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">R</forename><surname>Fillottrani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Franconi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Tessaris</surname></persName>
		</author>
		<ptr target="http://ceur-ws.org/" />
	</analytic>
	<monogr>
		<title level="m">Proc. of the 19th Int. Workshop on Description Logic (DL 2006</title>
				<meeting>of the 19th Int. Workshop on Description Logic (DL 2006</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page">189</biblScope>
		</imprint>
	</monogr>
	<note>CEUR Electronic Workshop Proceedings</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Coping with inconsistent constraint specifications</title>
		<author>
			<persName><forename type="first">S</forename><surname>Hartmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 20th Int. Conf. on Conceptual Modeling (ER 2001)</title>
				<meeting>of the 20th Int. Conf. on Conceptual Modeling (ER 2001)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="volume">2224</biblScope>
			<biblScope unit="page" from="241" to="255" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Extensive validation of OCL models by integrating SAT solvers into USE</title>
		<author>
			<persName><forename type="first">M</forename><surname>Kuhlmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Hamann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gogolla</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 49th Int. Conf. on Technology of Object-Oriented Languages and Systems (TOOLS 2011)</title>
				<meeting>of the 49th Int. Conf. on Technology of Object-Oriented Languages and Systems (TOOLS 2011)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="volume">6705</biblScope>
			<biblScope unit="page" from="290" to="306" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">On the satisfiability of dependency constraints in entityrelationship schemata</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lenzerini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Nobili</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information Systems</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="453" to="461" />
			<date type="published" when="1990">1990</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">OCL-Lite: Finite reasoning on UML/OCL conceptual schemas</title>
		<author>
			<persName><forename type="first">A</forename><surname>Queralt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Artale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Teniente</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Data and Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">73</biblScope>
			<biblScope unit="page" from="1" to="22" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
	<note>DKE)</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Verification and validation of UML conceptual schemas with OCL constraints</title>
		<author>
			<persName><forename type="first">A</forename><surname>Queralt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Teniente</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">21</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page">41</biblScope>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title level="m" type="main">The Unified Modeling Language Reference Manual</title>
		<author>
			<persName><forename type="first">J</forename><surname>Rumbaugh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Jacobson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Booch</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1998">1998</date>
			<publisher>Addison Wesley Publ. Co</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">UML-B: Formal modeling and design aided by UML</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">F</forename><surname>Snook</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>Butler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">15</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="92" to="122" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Efficient analysis of patternbased constraint specifications</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wahler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Basin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">D</forename><surname>Brucker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Koehler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and Systems Modeling</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="225" to="255" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
