=Paper=
{{Paper
|id=Vol-1571/paper_7
|storemode=property
|title=Towards the Propagation of Model Updates along different Views in Multi-View Models
|pdfUrl=https://ceur-ws.org/Vol-1571/paper_7.pdf
|volume=Vol-1571
|dblpUrl=https://dblp.org/rec/conf/etaps/GottmannNE0E16
}}
==Towards the Propagation of Model Updates along different Views in Multi-View Models==
Towards the Propagation of Model Updates along different Views in Multi-View Models Susann Gottmann Nico Nachtigall Thomas Engel Interdisciplinary Centre for Security, Reliability and Trust, Université du Luxembourg, Luxembourg firstname.lastname@uni.lu Claudia Ermel Frank Hermann Technische Universität Berlin Carmeq GmbH firstname.lastname@tu-berlin.de mail@firstnamelastname.eu Abstract Models are the keystones in model-driven systems development. They describe systems at different layers of abstraction and with a focus to different domains. For each domain, dedicated domain specific visual modelling languages are used for model definitions with the idea to separate concerns to different domain experts. This enables precise problem and requirement definitions and should decrease efforts in de- veloping and validating systems. We focus on multi-view models that are in relationship with source models by triple graph grammars. A multi-view model provides different views of the source model at dif- ferent layers of abstraction but within the same DSL which is typically different from the DSL of the source model. In practice, elements in different views may overlap. We present an informal methodology for consistently propagating updates from one view to the other views and also to the source domain. We motivate our approach by multi-view models in a hospital scenario. 1 Introduction Models are the keystones in the model-driven development (MDD) of systems in general and of software systems (MDSD) in particular as proposed by the object management group (OMG) in the form of the model-driven architecture (MDA) [BBG05]. Models describe systems at different layers of abstraction and with a focus to different domains. For each domain, dedicated domain specific visual modelling languages (DSLs) are used for model definitions with the idea to separate concerns to different domain experts. This enables precise problem and requirement definitions for each domain and should decrease efforts in developing and validating systems. Let us consider Fig. 1, first, which illustrates an abstract scheme of the runnning example in this paper. It shows two departments in a hospital: The management domain (= source domain, on the left) and the therapy domain (= target domain, on the right). Both domains differ in the data they are dealing with, but nethertheless, they are strongly interweaved with each other because they maintain the same patient in the hospital. In addition, in the therapy domain, nurses and doctors have different views on the data, due to different access permissions. Copyright c by the paper’s authors. Copying permitted for private and academic purposes. In: A. Anjorin, J. Gibbons (eds.): Proceedings of the Fifth International Workshop on Bidirectional Transformations (Bx 2016), Eindhoven, The Netherlands, April 8, 2016, published at http://ceur-ws.org Room Management Number Ward Therapy Capacity Name Domain Domain Person Patient Name Name (source Date of Birth (DOB) Diagnosis (only for doctors) (target domain) Admission Date Assignment of patient to ward domain) Assignment of person to room Figure 1: Scheme of hospital scenario The running example is an example of a multi-view model in the target domain, that is in relationship with a model in the source domain. In practice, elements in different views may overlap. In the therapy domain multi- view models exist in which all views share the same DSL. All views in the therapy domain are in relationship with the management domain. The management domain belongs to another DSL. The research question which we want to answer informally in this paper is: If a model update in one view is performed, then how is it possible to consistently propagate this model update to all other views and also to the other domain? This research question evolved during the work on an ongoing industrial applied research project with our industrial partner SES1 [GHE+ 13]. In this project, we apply triple graph grammars (TGGs) for translating source code of satellite control procedures to a visual model of the control flow of the same procedure. The visual model is an extended flow chart model that is extended to fulfill the needs of SES. The visualisation contains different abstraction layers leading to a multi-view visual model of the source code. The hospital scenario in this paper illustrates the effects of our approach, because it has seperate views for nurses and doctors. While this example can be alternatively implemented based on a central database with appropriate access rights, we like to emphasize that the approach can be used for much more complex scenarios like the industrial application for satellite operations described above. The applied research project is a follow-up project of the large-scale industrial project [HGN+ 13], in which we successfully applied TGGs and also the model synchronisation framework based on TGGs [HEEO12, HGN+ 14]. Due to the success of the first industrial project, we continued using triple graph grammars (TGGs) [SK08] as modelling technique in the second industrial project. The descision of using TGGs was made due to the following aspects: The formal framework of TGGs is comprehensive, well elaborated and it offers different analysis techniques for correctness and completeness of the model transformation [HEGO14, HEO+ 15]. TGGs are specified by a set of triple graph rules that establish the relationship between a model in the source domain and a model in the target domain by simultaneously creating the elements of the source model and the elements of the target model with correspondences between them. In our case, the target model is the multiple-view model. Note that formally, we assume multiple views to be contained in one “big” model where user restrictions for accessing the views are left to the implementation details. Now, we introduce our running example based on TGGs in greater detail. Example 1.1 (Hospital Scenario) Fig. 2 illustrates the detailed model of patients in a hospital and the corre- spondences between both. The model MM anagement on the left depicts the occupancy of the hospital and is focused on the Management domain of the hospital. Patients are represented as persons that are assigned (asg) to rooms of specific capacities. The model MT herapy on the right contains two views of the patients at different levels of abstraction and is focused to the Therapy domain. Nurses are able to access the names of the patients and the corresponding ward on which the patient is situated. Doctors have a more detailed view on the patients data. They can additionally access comments on the diagnosis of each patient. Moreover, dedicated nodes : PP define correspondences between the elements of the management model and elements of the therapy model. Each person corresponds to two patient nodes: One patient node in the nurses’ view and one in the doctors’ view. Rooms and wards are not related to each other in both domains. Furthermore, the doctors’ view contains comments on the diagnosis of each patient that are neither contained in the nurses’ view nor in the management model. The correspondences identify each patient in the nurses’ view with a patient in the doctors’ view and vice versa via a corresponding person node in the management model. The correspondences for a person are jointly created by applying a given triple graph rule. We assume that all elements that are jointly created by a rule, belong to each other. 4 1 Société Européenne des Satellites, www.ses.com MManagement s MCorrespondence t MTherapy Nurses View :Patient :PP :asg Name=Polly P arker :Ward :Person :asg Name=Polly P arker :Patient Name=ENT :PP :asg DOB=12-12-1960 Name=Mary Miller Admission=15-05-2015 :Room Doctors View Number=101 Capacity=3 :Person :Patient Name=Mary Miller :PP Name=Polly P arker :asg :asg DOB=06-09-1988 Diagn osis=Polyps :Ward Admission=13-05-2015 Name=ENT :Patient :asg :PP Name=Mary Miller Diagn osis=Fraction Figure 2: Correspondences between management & therapy model of patients We informally introduce the derived propagation framework that is based on the model synchronisation frame- work using triple graph grammars [HEO+ 15], but first, we review the underlying formal framework, i.e., the the- ory behind triple graph grammars in Sec. 2. Then, we informally present the consistent propagation framework of model updates in a given multi-view model using the running example in Sec. 3. Finally, we review future work and conclude the paper in Sec. 4 and present perspectives for future work in Sec. 5. 2 Formal Framework We review basic notions of the formal framework of our approach (cf. [EEPT06, EEGH15]) and address (multi- view) models that are represented by typed attributed graphs [GLEO12] and triple graph grammars [SK08]. Typed attributed graphs are composed of nodes, edges between nodes, node attributes and types for nodes, edges and attributes. The typing is defined by a type morphism between the typed graph (= instance graph) and a type meta-model, also called type graph. A morphism M − m −→ M 0 between two graphs M and M 0 is a structure preserving mapping from nodes, edges and attributes of M to nodes, edges and attributes of M 0 . Structure preservation means that all edges in M are mapped to edges in M 0 such that the source and target nodes of the edge in M are mapped to the corresponding source and target nodes of the corresponding edge in M 0 . The same for attributes. A morpism M − → M 0 between m − 0 two typed graphs M and M is additionally type preserving, i.e., nodes, edges and attributes are mapped to nodes, edges and attributes of the same type. d1 d2 A triple graph M = (MD1 ← −− MC − −→ MD2 ) [SK08, EEGH15] consists of graphs MD1 , MD2 for domains D1 , D2 and a correspondence graph MC with morphisms d1 : MC → MD1 , d2 : MC → MD2 for defining the correspondences between elements of MD1 and MD2 . In this paper, we use typed triple graphs, i.e., triple graphs typed over a triple type graph (cf. Ex. 2.1). A triple graph morphism M − m −→ M 0 between triple graphs M = d d M = MD1 1 MC 2 MD2 0 0 d d (MD1 ← d1 − MC − − −→ MD2 ) and M 0 = (MD d2 0 1 ← −− 1 MC0 − −→ 2 0 MD 2 ) is given m mD1 (=) mC (=) mD2 mD1 0 mC 0 0 0 0 by m = (mD1 , mC , mD2 ) with morphisms MD1 −−−→ MD1 , MC − −−→ MC M 0 = MD1 d0 MC d0 MD2 mD2 0 1 2 and MD2 −−−→ MD 2 , i.e., m consists of three morphisms for each of the triples components. For morphisms m it holds that mD1 ◦ d1 = d01 ◦ mC and mD2 ◦ d2 = d02 ◦ mC , i.e., both parts of the diagram commute (annotated in the diagram with (=)), which means that correspondences between elements are preserved. Example 2.1 (Attributed Triple Graphs & Typing) The attributed triple graph in Fig. 3 depicts the triple type graph for the models in our running example (Ex. 1.1). It consists of attributed graphs MM M anagenemt and MM T herapy which are the type graphs for the two domains as well as the correspondence graph MM Correspondence . Morphisms s and t relate Persons with Patients via correspondence node PP. Each model of the management domain may contain several Rooms and Persons. Persons may be assigned to Rooms (edge asg). Each Room may have a Number and a Capacity. Each Person may have a Name, date of birth (attribute DOB) and date of Admission. s MMManagement MMCorrespondence t MMTherapy Person Room Patient Name: String Ward Number: String PP Name: String asg DOB: String asg Name: String Capacity: Int Diagnosis: String Admission: String Figure 3: Meta-model (type graph) of models in the hospital scenario Each model of the therapy domain may contain several Wards and Patients. Patients may be assigned to Wards (edge asg). Furthermore, each Ward and Patient may have a Name. Each Patient additionally may have comments on his Diagnosis. The attributed triple graph of Fig. 2 is typed over the triple type graph in Fig. 3 by a type triple graph morphism. In the visual notation, the typing is made explicit by a leading colon where each element : Type in Fig. 2 is mapped to element Type in Fig. 3 by the type morphism. Note that formally, the type graph in Fig. 3 is incomplete, because we omitted the additional node type View with attribute Name (of values Nurse or Doctor) and edges to types Ward and Patient. That node type is used to flag whether model elements belong to the doctors’ view or the nurses’ view. In the remainder of the paper, we have chosen the following short-notation for model MT herapy : boxes Nurses0 View and Doctors0 View indicate the corresponding flags. 4 A graph transformation rule p : L ← −l K →−r R contains a left-hand ac ac side (LHS) graph L, a right-hand side (RHS) graph R, a context l r graph K and a span of inclusions l and r. Intuitively, l specifies the p : L K R tr : L tr R deletions and r the additions of the rule. An inclusion G → −i G0 is a m (1) m0 (2) m (3) morphism with G ⊆ G0 . M l0 M M 0 M M0 P (p,m) A transformation step M ====⇒ M 0 is given by the application of p to a graph M via a match morphism m leading to the diagram on the right with commuting pushouts (1) and (2) and the result graph M 0 . Intuitively, a pushout (1) over morphisms l, m0 is the gluing of graphs L and MP via common K resulting in graph M with morphisms m, l0 . Rule p is applicable to M via match m, if pushouts (1) and (2) exist. Intuitively, the application of p to M via match m leads to M 0 which is obtained from M by deleting all elements M that are in L but not in K while preserving all elements of K in M leading to intermediate graph MP and finally, creating all elements that are in R but not in K. tr A triple graph transformation rule L − → R, in short triple rule, contains LHS triple graph L, RHS triple − graph R and inclusion tr . From that it follows, that triple rules are only creating. The application of triple rules is analogue to general rules but restricted to a single pushout (3). Additionally, a (triple) rule may be equipped with negative (positive) nested application conditions, in short NACs (PACs), in order to restrict the application of the rule [HP09, EEGH15]. For a given rule and a match from the rule to a graph, a NAC (PAC) ac defines a context for the matched graph part that is forbidden to exist (must exist) in order that the rule is applicable to the graph via the match. Remark 2.1 (Short Visual Notation) In the remainder of the paper, we use the short notation of (triple) graph transformation rules. In detail, it means that elements, that will be added are marked with ++ and are annotated in green. Those elements are only contained in the RHS. All unmarked elements are contained in the LHS and RHS of the rule and will be preserved by the (triple) graph transformation rule. Elements that will be deleted are marked with −− and are annotated in red. Those elements are only contained in the LHS of the rule. Triple graph rules are non-deleting, i.e., the triple rules in Ex. 2.2 do not delete any element. Yet, we chose the same short notation for visualising the model update (which is deleting in our running example). 4 Example 2.2 (Triple Rules) The triple rules in Fig. 4 define how integrated models (triple graphs) of our hospital scenario are created. All elements that are enclosed by a NAC box are forbidden to exist in M so that the rule is applicable to M . Rule 1 Ward creates a ward with name for the nurses’ and doctors’ view, but only if there does not already exist a ward of the same name (cf. NAC). Rule 2 Diagnosis adds a diagnosis to an existing patient in the doctors’ view. Rule 3 Person-2-Patient assumes that there already exists a room in the management model and a ward with the given name in the nurses’ and doctors’ views of the therapy model. Then, the rule simoultaneously creates a 1:Ward(n:String) 2:Diagnos is(d:String) 3:Person-2-Patient(nW:String,nP:String) Doctors View :Ward NAC :Person NAC Name=n :Patient Nurs es View Doctors View Name=nP Diagnosis=d ++ Nurses View :Ward :Ward :Ward :Room Name=nW Name=nW Name=n ++ ++ :asg ++ ++ :asg ++ :asg ++ ++ :PP ++ ++ ++ Doctors View :Person :Patient :Patient :Ward Name=nP ++ Name=nP Name=nP ++ ++ Name=n ++ :PP Figure 4: Triple rules of our running example person with a name and its corresponding patient nodes with the same name in both views and its correspondences. Finally, the person node (and patient nodes) are assigned to a room (ward). The rule is only applicable, if there does not already exist a person of the same name in the management model. Note that in order to create the graph of Fig. 2, additional rules are required that we implicitly assume but do not explicitly present. This comprises rules for creating rooms, DOB, and admission node attributes. 4 A triple graph grammar TGG = (MM , ∅, TR) over domains D1 and D2 consists of a triple type graph d1 d2 MM = (MM D1 ← −− MM C − → MM D2 ) for domains D1 and D2 (cf. Fig. 3), the empty start graph and a set of − ∗ triple rules TR (cf. Fig. 4). The language L(TGG) = {M 0 | there exists ∅ =tr=⇒ M 0 } that is generated by a TGG is defined by all triple graphs M 0 that are typed over MM and can be created by successively applying the rules tr ∈ TR starting at the empty graph. The language L(TGG)D1 comprises all graphs of L(TGG) but restricted to the graph component for domain D1 . (And similar for L(TGG)D2 .) With L(MM ) (L(MM Di )) we define the set of graphs that are typed over type graph MM (MM Di for i = 1, 2). In general, L(TGG) ⊆ L(MM ), since, the graphs in L(TGG) are additionally restricted by the rules of the TGG. Example 2.3 (Languages of Triple Graph Grammars) Given the TGG = (MM , ∅, TR) over type graph MM of Fig. 3 and with rules TR of Ex. 2.2, then the triple graph of Fig. 2 is contained in L(TGG). Therefore, graph MM anagement is contained in language L(TGG)M anagement and graph MT herapy is contained in language L(TGG)T herapy . Furthermore, graph MM anagement is also contained in L(MM M anagement ) and graph MT herapy is also contained in L(MM T herapy ). 4 3 Propagation of Model Updates We focus on consistent propagations of model updates. Therefore, we clarify the notion of consistency first. s t Given a TGG over type graph MM = (MM D1 ← − MM C → − MM D2 ), then all graphs in L(TGG) are called D1 consistent integrated models. All graphs in L(TGG) are called consistent models of domain D1 and all graphs in L(TGG)D2 are called consistent models of domain D2 . A model update leads to state changes in models and is given by a span of inclusions u : M ← u1 −− MP − −→ M 0 . All elements in M \ u1 (MP ) are deleted, all elements in MP u2 are preserved and all elements in M \ u2 (MP ) are created. An update is consistent, if M 0 is a consistent model. 0 An update is called D1 -update, if it leads to changes in models of domain D1 only and it is called D2 -update, if it leads to changes in models of domain D2 only. If the model update is unknown, existing methods of difference compution [EEGH15] can be used to obtain the update from the state-changes of models. Definition 3.1 ((Domain) Model Update) Given models M, M 0 , then the update u = (u1 , u2 ) between M and M 0 is given by a span of inclusions u : M ← u1 −− MP − → M 0 . Given a TGG over triple type-graph MM = u2 − (MM D1 ← s − MM C → − MM D2 ), then u is called a Di -domain update, short Di -update, if M, MP , M 0 ∈ L(MM Di ) t (i = 1, 2). A Di -update is consistent, if M 0 ∈ L(TGG)Di . With ∆Di = {u | u is a Di -update} we denote all updates in domain Di . 4 Example 3.1 ((Domain) Model Update) We consider the update illustrated in Fig. 5 (top) in the therapy domain of model M = MT herapy (cf. Fig. 2). Due to readability we present an extract of the model but implicitly Nurs es View Doctors View ... ... :Patien t :Patient u Name=Mary Miller -- :asg :Ward Name=ENT Name=Mary Miller :asg -- :Ward Name=ENT Name=Marie Miller ++ Diagnosis=Fraction ... ... Nurses View Doctors View :Patien t δu Name=Mary Miller -- :Patient :asg -- :Ward Name=Marie Miller ++ Nurses View Doctors View δu :Patien t Name=Marie Miller ++ Figure 5: Therapy domain model update (u), delta (δu ) & creating delta (δ u ) assume the whole model. The update consists of the following steps: A nurse is correcting the name of patient Mary Miller to Marie Miller. Simultaneously, a doctor removes the assignment of this patient to ward ENT. Note that the update is not consistent w.r.t. the TGG of Ex. 2.3, i.e., M 0 6∈ L(TGG)T herapy . To be consistent, the name of Mary also needs to be updated to the same new name in the doctors’ view and the assignment to the ward should not be deleted following rule 3 Person-2-Patient of Fig. 4. 4 The delta δu of an update u specifies the update in mimimal context and is given by u restricted to those elements only that are touched by the update. This includes all elements that are created and deleted by u as well as the elements that are directly connected to them. The creating delta δ u of an update u is delta δu but restricted to the created elements of u only. Example 3.2 (Delta & Creating Delta) The delta δu of update u Fig. 5 (middle) only contains those ele- ments of u that are affected by the update. The corresponding creating delta δ u of u is δu but restricted to the created elements of u only. 4 The problem of propagating domain model updates according to a given TGG, is to extend them such that they fit to the TGG, e.g., the update of Fig. 5 needs to be extended in order to also cover the change of Mary0 s name in the doctors’ view. The extension is performed by applying propagation operations. The propagation framework according to a given TGG is given by two total and deterministic propagation operations, one for each domain of the TGG. An operation is total, if for each valid input it leads to a result. An operation is determistic, if it has functional behaviour, i.e., it terminates and leads to a unique result for each valid input, and the operation does not require backtracking. The propagation operation Ppg Di for one domain Di (i ∈ {1, 2}) consists of the two steps Del and Add that are illustrated in Fig. 6. The following listing M = ( MD 1 MC MD2 ) summarises the two steps of Ppg Di : ⇒ i iD1 Del u1 ◦ iD2 • Step Deletion (Del): Given a model M and a model update u, then 2 2 the Del step deletes everything from M that is deleted by update u, first. M 2= ( MD1 MC2 MD 2 ) Then, Del deletes everything that is related to the update in order to ej eD ,j ⇒ eD1 ,j Add 2 obtain a maximal consistent integrated sub-model (namely M 0 ) of M w.r.t. 3 3 3 the given TGG. Thus, step Del propagates the deletion of elements along Mj3= (MD 1 ,j MC,j MD 2 ,j ) different views. • Step Addition (Add): The Add step works with two models: Model M Figure 6: Propagation opera- 0 (no deletion performed) and M (the result of the Del step). tion Ppg D2 in domain D2 0 First of all, the Add step adds everything to M and M that is created by update u. Then, markings are added to both models. Each element that is added by update u is marked with F (False, means: not translated). All other (untouched) elements are marked with T (True, means: translated). Afterwards, in the Ext sub-step, two special kinds of triple rules, are iteratively applied to M 0 and M , in order to change the F markers are to T. At the same time, elements Del CCDel Add Marking Ext (CCAdd) uAdd uAdd uAdd M M M M M M D D D uExt uDel uDel uDel uDel uDel u Del u Del u Del u Del (a) (b) (c) (d) (e) (f) Deletion Addition Figure 7: Propagation of domain model updates: (a) - (f) illustrating sub-steps may be reconstructed that were deleted during the Del step, but that are necessary to derive a consistent model. The special kinds of rules used are called shifted rules and consistency creating rules (CC rules). The latter are a special kind of shifted rules, which only change markers. The iteration stops when no F marker is available anymore (successful), or when no shifted (or CC) rule could be found that is applicable (abort). The derived propagation framework PPG(TGG) returns the modified model M 0 . If the derived propagation framework finishes successfully, then the returned model is consistent. The derived propagation framework of model updates PPG(TGG) summarises all propagation operations Ppg Di (i ∈ {1, 2}). It is defined as follows: Definition 3.2 (Propagation Problem & Framework) Let T GG = (MM , ∅, TR) be a triple graph grammar s t over triple type graph MM = (MM D1 ← − MM C → − MM D2 ) for domains D1 , D2 . A triple graph M = (MD1 ← MC → MD2 ) ∈ L(MM ) coincides with an update u : M ← MP → M 0 ∈ ∆Di , if M = MDi (i = 1, 2). The Di -propagation problem is to construct an operation Ppg Di : UD → ∆Di from tuples UD = {(M, u, δu ) | u ∈ ∆Di , M coincides with u, δu is delta of u} of Di -updates ∆Di on triple graphs with corresponding deltas to extended Di -updates (i = 1, 2). The propagation framework PPG(T GG) = (∆D1 , ∆D2 , Ppg D1 , Ppg D2 ) is given by all updates ∆D1 , ∆D2 of domains D1 and D2 as well as total and deterministic propagation operations Ppg D1 , Ppg D2 for both domains. 4 As illustrated in Fig. 7, intuitively, given a model M (a) and a model update u : M ← u1 −− MP − −→ M 0 , then u2 step Del first deletes everything uDel = M \ u1 (MP ) from M that is deleted by u (b). Del additionally deletes everything u0Del from M that is related to uDel in order to obtain a maximal consistent integrated sub-model M \u0Del of M w.r.t. the given TGG (c). Thus, step Del propagates the deletion of elements along different views. In a first sub-step of step Add those elements uAdd = R \ (M \ u0Del ) are added to the model that are created by the update leading to model (M \ u0Del ) ∪ uAdd (d). Previously deleted elements D by Del may be recreated by this sub-step. Then, the models will be marked (e), which is used in the last sub-step, the extension sub-step. In applying shifted rules and CC rules, the model will be extended in order to derive a consistent integrated model (f ). We will review all steps in detail using the running exmaple. Example 3.3 (Del Step) Applying the update in Fig. 5 to model M in Fig. 2 will delete the name of patient Mary Miller in the nurses’ view as well as her assignment to ward ENT in the doctors’ view of the therapy domain. The result of this first sub-step is visualised in Fig. 8 (left). This completes sub-step Del in Fig. 7 (b). Model I is a triple graph, where the Therapy domain is modified in the sense that the deletion part of the update u is performed on that domain, wheras the Management domain and the correspondence domain stay unchanged. Afterwards, by following Rule 3 Person-2-Patient, Del additionally deletes the whole patient node of Mary Miller not only in the nurses’ view but also in the doctors’ view plus the corresponding : Person node in the management domain and the affected correspondences : PP. This leads to the maximal consistent integrated sub-model M 2 (cf. Fig. 8) (right). (Note, the red elements marked with −− are deleted, i.e., they are not part of M 2 anymore. In Fig. 8) (right) they are visualised for better understanding of that step.) Model M 2 can be created by a terminating sequence of rule applications with the triple rules in Fig. 4. Thus, the sub-model is consistent w.r.t. the given TGG (M 2 ∈ L(TGG)). This completes sub-step CCDel in Fig. 7 (c). 4 The Add step is divided into three sub-steps: The first sub-step extends the model I (intermediate result from Del) and M 2 (result from Del) by the update delta δu resulting in models M 0 and M R . This completes sub-step Add in Fig. 7 (d). Afterwards, in the second sub-step, the extended models M R and M 0 will be marked via model M 2 (c.f. Fig. 10). This completes sub-step Marking in Fig. 7 (e). In the third sub-step, the framework iteratively extends both models from the second sub-step according to the given set of triple rules T R in order to derive a consistent model satisfying the model update u and the corresponding TGG. Note that it may occur, that no consitent model can be derived. Then, the propagation will abort returning an inconsistent model. This completes sub-step Ext in Fig. 7 (f). Example 3.4 (Add Step - Sub-Step 1) In detail, the update creates the attribute Name with updated value Marie Miller in the nurses’ view (c.f. Fig. 9 (left)). As the corresponding : Patient node has been previously deleted by Del, the node together with the updated name attribute are added to the nurses’ view. Therefore, the : Patient node is recreated. Furthermore, the deletion of the : asg edge is also applied to the nurses’ view. The resulting model of the first sub-step is shown in Fig. 9 (right). 4 Example 3.5 (Sub-step 2: Markings) Let us consider Fig. 10. Triple graphs M 0 and M R are marked via interface graph M 2 that is illustrated on the top. During marking, triple graph M 0 is enriched by the following markers: All elements that can be mapped by M 2 are marked with T, i.e., these are all elements that are not touched by update u. In detail, the : Person node of Polly Parker and the corresponding : Patient nodes including the correspondence nodes : PP of that person are marked with T. Additionally the : Room node and both : Ward nodes are marked with T. Furthermore, all attributes included by those nodes and all necessary : asg edges between those nodes and also from and to the corresponding : PP nodes are marked with T, too. All other elements of M 0 are marked with F, i.e., : Person and : Patient nodes of Mary Miller and the modified : Patient node of Marie Miller, including the contained attributes and the correspondence nodes : PP and the necessary : asg edges and edges between from and to the corresponding : PP. Triple graph M R is enriched by the T and F markers accordingly. In detail, all nodes including the contained attributes concerning : Person or : Patient Polly Parker, respectievly, are marked with T. Beyond, all : Room and : Ward nodes and their attributes are marked with T and all edges between the mentioned nodes. In contrast, node : Patient and its attribute Name = Marie Miller get marker F. 4 I M2 :Person Nurses View :Person Nurses View Name=Polly P arker :PP :Patient Name=Polly P arker :PP :Patient DOB=12-12-1960 :asg DOB=12-12-1960 :asg Admission=15-05-2015 Name=Polly P arker :Ward Admission=15-05-2015 Name=Polly P arker :Ward :Patient :asg :Patient -- -- :asg Name=ENT Name=ENT :PP :asg :PP -- :asg Name=Mary Miller -- -- :Room :Room -- Doctors View Number=101 Doctors View Number=101 Capacity=3 :Patien t Capacity=3 :Patient :PP Name=Polly P arker :PP Name=Polly P arker :asg :asg -- :asg :asg Diagnosis=Polyps :Ward Diagnosis=Polyps :Ward :Person -- :Person -- :Patien t Name=ENT :Patient -- Name=ENT :asg Name=Mary Miller -- -- :PP Name=Mary Miller :PP Name=Mary Miller Name=Mary Miller -- DOB=06-09-1988 DOB=06-09-1988 -- -- -- Diagnosis=Fraction Admission=13-05-2015 -- Diagnosis=Fraction -- Admission=13-05-2015 Figure 8: Intermediate model of Del step (left) and result of Del step (right) M D2 MRD2 Nurses View Doctors View Nurses View Doctors View :Patient :Patien t :Patient :Patient :asg :asg Name=Polly P arker :Ward Name=Polly P arker :asg Name=Polly P arker :Ward Name=Polly P arker :asg Diagnosis=Polyps :Ward Diagnosis=Polyps :Ward :Patient Name=ENT :Patient Name=ENT :asg :Patien t Name=ENT :Patient Name=ENT Name=Marie Miller Name=Marie Miller Name=Mary Miller Name=Mary Miller Diagnosis=Fraction Diagnosis=Fraction 0 R Figure 9: Models MD 2 and MD2 , illustration of Therapy domain only M2 :Person Nurs es View Name=Polly P arker :PP :Patient :asg :Ward DOB=12-12-1960 Admission=15-05-2015 Name=Polly P arker Name=ENT Interface for marking: :asg Doctors View :Room :Patient :asg :Ward :PP Name=Polly P arker Number=101 Name=ENT Capacity=3 Diagnosis=Polyps M marked MRmarked [T] :Person Nurses View Nurses View [T] Name=Polly P arker [T] [T] :Person :PP [T] :Patien t [T] :asg [T] [T] :Patien t [T] :asg [T] DOB=12-12-1960 [T] Name=Polly P arker [T] Admission=15-05-2015 [T] Name=Polly P arker [T] DOB=12-12-1960 :PP [T] Name=Polly P arker [T] :Ward [T] :Ward [T] Admission=15-05-2015 [T] :asg [F] [F] :Patient [T] Name=ENT [F] :Patient [T] Name=ENT :PP [T] :asg [F] Name=Marie Miller [F] :asg [F] Name=Marie Miller [T] :Room [T] :Room Doctors View Doctors View [T] Number=101 [T] Number=101 [T] Capacity=3 [T] :Patien t [T] Capacity=3 [T] :Patien t [T] [T] :asg [T] [T] :asg :PP [T] Name=Polly P arker :PP [T] Name=Polly P arker [F] :asg [T] Diagn osis=Polyps [T] :Ward [T] Diagn osis=Polyps [T] :Ward [F] :Person [F] :Patient [T] Name=ENT [T] Name=ENT [F] Name=Mary Miller [F] :PP [F] Name=Mary Miller [F] DOB=06-09-1988 [F] Diagnosis=Fraction [F] Admission=13-05-2015 Figure 10: M 0 and M R are marked resulting in Mmarked 0 R and Mmarked (bottom) via interface M 2 (top) The third sub-step Ext extends the given domain update u such that the update fits to the given TGG. R 0 Therefore, Ext takes models Mmarked and Mmarked from the second sub-step of Add as input. R Sub-step Ext analyses the applicability of the triple rules tr ∈ TR from the given TGG to Mmarked such that R each application maximally overlaps with that part of Mmarked which is marked with F. From each overlapping triple rule that is applicable via a match, an operational rule, called shifted rule sr1 , is derived which creates only those elements of the triple rule that do not overlap. Afterwards, Ext extends the maximal overlapping so that 0 it “fits” to Mmarked and consequently, a second shifted rule sr2 is derived. This will recreate necessary elements. R With the help of the shifted rule sr2 and model Mmarked an intermediate model M R marked is derived. Finally, sr2 R 0 R0 00 will be applied to M marked and also to Mmarked leading to models Mmarked and Mmarked , where the markings of overlapping elements will be changed from F to T ([F > T]). (For details, see Ex. 3.6). The markings T and F are introduced in order to control which part (elements) of an update already have been extended. If such a shifted rule cannot be found, then the Ext step checks for complete overlappings, i.e., no elements will be created. In that case, a special kind of operational rule is applied which is called consistency creating rule (CC rule) [HEO+ 15]. Those rules only change markers from F to T. Applications with empty overlappings are omitted unless they completely overlap with previously deleted elements. If the overlapping contains previously deleted elements, then the application is additionally maximally overlapped with previously deleted elements in order to guide the search for applicable matches. Therefore, previously deleted elements may be recreated in the extension process. R0 00 Then, models Mmarked and Mmarked are taken as input for sub-step Ext again, as long as all elements are not marked with T or no rules are applicable any more. The successive application of shifted rules extends an update step-wise in the sense that the elements which are created by the update are complemented by those elements of the underlying triple rules which do not overlap with the update and therefore, could not be shifted but would also be created when applying the triple rules. As, in all sub-steps of Add, previously deleted elements may be recreated, the proposed propagation framework prioritises creation over deletion. In contrast to propagating the deletion of elements by Del, step Add propagates the creation of elements along different views. A shifted rule is derived from a triple rule by shifting elements from R to L resulting in new left- and right- hand sides L and R. All elements of L in L and all elements of R are marked with T while the markings of the shifted elements is changed from F to T, i.e., K is L without F -markings. Shifted rules are a generalisation of consistency creating (CC) rules (c.f. Ex. 3.6). CC rules were defined in the theory of model synchronisations to mark consistent integrated sub-models of possibly inconsistent models [HEO+ 15]. Given a triple rule tr : L → R, the CC rule of tr is derived by shifting all elements from R to L. CC rules are used for applications (update extensions) based on complete overlappings of the underlying triple rule with previously deleted elements, i.e., 2:Person-2-Patient(nW:String,nP:String) Person-2-Patientdtemp (nW:String,nP:String) NAC Nurses View Doctors View NAC Nurses View Doctors View :Person [T] :Person Name=nP [T] Name=nP 1: :Ward :Ward 3: [T] :Ward [T] :Ward :Room [T] :Room Name=nW Name=nW [T] Name=nW [T] Name=nW :asg ++ ++ :asg ++ :asg :asg ++ :asg ++ ++ ++ ++ ++ :asg ++ ++ ++ ++ :Person ++ ++ :Patient :Patient :Person ++ ++ [F>T] :Patient :Patient :PP :PP Name=nP ++ Name=nP ++ Name=nP ++ Name=nP ++ [F>T] Name=nP Name=nP ++ ++ ++ ++ ++ ++ ++ :PP :PP Person-2-Patient CC(nW:String,nP:String) Person-2-Patientd(nW:String,nP:String) NAC Nurses View Doctors View NAC Nurses View Doctors View [T] :Person [T] :Person [T] Name=nP [T] Name=nP [T] :Ward [T] :Ward [T] :Ward [T] :Ward [T] :Room [T] :Room [T] Name=nW [T] Name=nW [T] Name=nW [T] Name=nW [F>T] :asg [F>T] :asg [F>T] :asg [F>T] :asg [F>T] :asg [F>T] :asg 2: [F>T] 4: [F>T] [F>T] :Person [F>T] :Patient [F>T] :Patient [F>T] :Person [F>T] :Patient [F>T] :Patien t :PP :PP [F>T] Name=nP [F>T] Name=nP [F>T] Name=nP [T] Name=nP ++ [F>T] Name=nP [T] Name=nP ++ [F>T] [F>T] :PP :PP Figure 11: Triple rule Person-2-Patient (1), CC rule (2), & two relevant maximal shifted rules (3) and (4) CC rules only change markings from F (not translated) to T (translated). For update extensions, only shifted rules are of relevance where at least one element is shifted, i.e., the shifted rule is relevant. This omits applications of shifted rules which do not overlap with the elements that are created by the update and therefore are of no importance concerning the update. Furthermore, shifted rules have to be maximal in the sense that they should shift and match as much as possible elements such that the overlappings are maximal and only the non-existing (non-overlapping) elements of the underlying triple rules are created by their application. R Example 3.6 (Relevant Maximal Shifted Rule & CC Rule) Given model Mmarked as illustrated in Fig. 10 (bottom, right), triple rule Person-2-Patient (Rule 3) from Fig. 4 and Fig. 11 (1), respectively, and a decomposition d of Rule Person-2-Patient. Intuitively, the shifted rule that results out of the decomposition d shall R “fit” to triple graph Mmarked , i.e., additionally to all elements from the LHS of triple rule Person-2-Patient, it shall contain the : Patient node including the Name = Marie Miller attribute in the nurses’ view. Technically, this is achieved in the following way: Let d : L → L0 → R be given by the LHS L of Rule Person-2-Patient and L0 which additionally contains node : Patient and its attribute Name = Marie Miller in the nurses’ view. Therefore, decomposition d controls the shifting of elements from R towards L. The rule Person-2-Patientdtemp : L ← K → R R in Fig. 11 (3) is a relevant maximal shifted applicable rule of rule Person-2-Patient w.r.t. d and Mmarked . It is an operational rule derived from triple rule Person-2-Patient (cf. Fig. 11 (1)). The application of the shifted rule updates the markings of the two shifted elements from F to T (F > T). The additional elements in the NAC are all marked with T. The shifted rule is relevant, as, two elements were shifted, i.e., L and L0 are not isomorphic (L 6∼ = L0 ). Beyond, the rule is maximal shifted and applicable w.r.t. R R Mmarked , as, there exists an applicable match from L to Mmarked and no further elements can be shifted such that a new “extended” applicable match is obtained. In Fig. 11 (4) a second shifted rule Person-2-Patientd : L ← K → R is illustrated. It is a relevant maximal R shifted rule w.r.t. Omarked (c.f. Fig. 13). There, the following elements were shifted to L: 1. the two : Patient nodes, 2. the Name attribute with value nP of the nurses’ view, 3. the : Person node, 4. the three : asg edges, 5. the two : PP nodes and 6. the four edges starting at the two : PP nodes. Again, the RHS R of rule Person-2-Patientd is K, but extended by the Name attribute of node : Person of the M marked MRmarked [T] :Person Nurses View Nurses View [T] :Person [T] Name=Polly P arker [T] :PP [T] :Patient [T] :asg [T] Name=Polly P arker [T] [T] :Patient [T] :asg [T] DOB=12-12-1960 [T] Admission=15-05-2015 [T] Name=Polly P arker [T] DOB=12-12-1960 :PP [T] Name=Polly P arker [T] :Ward [T] :Ward [T] Admission=15-05-2015 [T] :asg [F] [F] :Patient [T] Name=ENT [F] :Patient [T] Name=ENT :PP [T] :asg [F] Name=Marie Miller [F] :asg [F] Name=Marie Miller [T] :Room Doctors View [T] :Room Doctors View [T] Number=101 [T] Capacity=3 [T] Number=101 [T] :Patient [T] Capacity=3 [T] :Patient [T] [T] :asg [T] [T] :asg [F] :asg :PP [T] Name=Polly P arker :PP [T] Name=Polly P arker [T] Diagn osis=Polyps [T] :Ward [T] Diagn osis=Polyps [T] :Ward [F] :Person [T] Name=ENT [T] Name=ENT [F] :Patient [F] Name=Mary Miller [F] [F] DOB=06-09-1988 :PP [F] Name=Mary Miller [F] Admission=13-05-2015 [F] Diagnosis=Fraction 0 R Figure 12: Initial situation, including match from Person-2-Patientdtemp to Mmarked and Mmarked M marked ORmarked [T] :Person Nurs es View [T] :Person Nurses View [T] Name=Polly P arker [T] :Patient [T] Name=Polly P arker [T] :Patient [T] DOB=12-12-1960 [T] [T] :asg [T] [T] :asg :PP [T] DOB=12-12-1960 :PP [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] :asg [F] [F] :Patient [T] Name=ENT [T] :asg [F] [F] :Patien t [T] Name=ENT :PP [F] Name=Marie Miller [F] :asg :PP [F] Name=Marie Miller [F] :asg [T] :Room [T] :Room [T] Number=101 Doctors View [T] Number=101 Doctors View [T] Capacity=3 [T] :Patient [T] Capacity=3 [T] :Patient [T] [T] :asg [T] [T] :asg [F] :asg :PP [T] Name=Polly P arker :PP [T] Name=Polly P arker [T] Diagnosis=Polyps [F] :asg [T] Diagnosis=Polyps [T] :Ward [T] :Ward [F] :Person [T] Name=ENT [F] :Person [T] Name=ENT [F] :Patien t [F] :Patien t [F] Name=Mary Miller [F] [F] [F] DOB=06-09-1988 :PP [F] Name=Mary Miller :PP [F] Admission=13-05-2015 [F] Diagnosis=Fraction Figure 13: Intermediate model before shifted rule application M marked MR marked [T] :Person Nurses View [T] :Person Nurses View [T] Name=Polly P arker [T] [T] Name=Polly P arker [T] :PP [T] :Patient [T] :asg [T] :Patient [T] :asg [T] DOB=12-12-1960 [T] DOB=12-12-1960 :PP [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] :asg [T] [T] :Patient [T] Name=ENT [T] :asg [T] [T] :Patient [T] Name=ENT :PP [T] Name=Marie Miller [T] :asg :PP [T] Name=Marie Miller [T] :asg [T] :Room [T] :Room Doctors View Doctors View [T] Number=101 [T] Number=101 [T] Capacity=3 [T] :Patient [T] Capacity=3 [T] :Patient [T] [T] :asg [T] [T] :asg [T] :asg :PP [T] Name=Polly P arker :PP [T] Name=Polly P arker [T] Diagnosis=Polyps [T] :Ward [T] :asg [T] Diagnosis=Polyps [T] :Ward [T] :Person [T] :Patient [T] Name=ENT [T] :Person [T] :Patient [T] Name=ENT [F] Name=Mary Miller [T] [T] [F] DOB=06-09-1988 :PP [F] Name=Mary Miller [T] Name=Marie Miller ++ :PP [T] Name=Marie Miller [F] Admission=13-05-2015 [F] Diagnosis=Fraction ++ [T] Name=Marie Miller ++ [T] Name=Marie Miller ++ Figure 14: Result of shifted rule application - new input to next Ext iteration management model and the Name attribute of node : Patient in the doctors’ view. The rule Person-2-PatientCC in Fig. 11 (2) is the CC rule of rule Person-2-Patient. All elements are shifted from the RHS towards the LHS. Therefore, when applying a CC rule no elements are created but the markings of the shifted elements are updated from F to T. The markings of all other elements remain T. 4 Example 3.7 (Sub-step Ext of Add in Great Detail) The Ext sub-step uses the marked models from the sec- ond sub-step of Add as input. This initial situation is illustrated in Fig. 10. 0 R 1st iteration: First, Ext checks, if a shifted rule can be found with regard to the models Mmarked and Mmarked R (c.f. Fig. 10). This is not possible. A shifted rule can be found with match to Mmarked which is shifted rule Person-2-Patientdtemp (c.f. Fig. 11 (3)). This situation is shown in Fig. 12, where the match is explcitly illustrated with black dots. Based on this “small” shifted rule, an “extended” shifted rule Person-2-Patientd (c.f. Fig. 11 M marked OR marked [T] :Person Nurses View [T] :Person Nurs es View [T] Name=Polly P arker [T] [T] Name=Polly P arker [T] :PP [T] :Patien t [T] :asg :PP [T] :Patient [T] :asg [T] DOB=12-12-1960 [T] DOB=12-12-1960 [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] :asg [T] [T] :Patien t [T] Name=ENT [T] :asg [T] [T] :Patient [T] Name=ENT :PP [T] Name=Marie Miller [T] :asg :PP [T] Name=Marie Miller [T] :asg [T] :Room [T] :Room [T] Number=101 Doctors View Doctors View [T] Number=101 [T] Capacity=3 [T] :Patient [T] Capacity=3 [T] :Patien t [T] [T] :asg [T] [T] :asg [T] :asg :PP [T] Name=Polly P arker :PP [T] Name=Polly P arker [T] Diagnosis=Polyps [T] :Ward [T] :asg [T] Diagnosis=Polyps [T] :Ward [T] :Person [T] :Patient [T] Name=ENT [T] :Person [T] :Patient [T] Name=ENT [F] Name=Mary Miller [T] [T] [F] DOB=06-09-1988 :PP [F] Name=Mary Miller [T] Name=Marie Miller :PP [T] Name=Marie Miller [F] Admission=13-05-2015 [F] Diagnosis=Fraction [F] Diagn osis=Fraction [T] Name=Marie Miller [T] Name=Marie Miller 0 00 R Figure 15: Intermediate model, including match from DiagnosisCC to Mmarked and Omarked M marked MR marked [T] :Person Nurses View [T] :Person Nurses View [T] Name=Polly P arker [T] [T] Name=Polly P arker [T] :PP [T] :Patien t [T] :asg :PP [T] :Patient [T] :asg [T] DOB=12-12-1960 [T] DOB=12-12-1960 [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] :asg [T] [T] :Patient [T] Name=ENT [T] :asg [T] [T] :Patient [T] Name=ENT :PP [T] Name=Marie Miller [T] :asg :PP [T] Name=Marie Miller [T] :asg [T] :Room [T] :Room [T] Number=101 Doctors View [T] Number=101 Doctors View [T] Capacity=3 [T] :Patient [T] Capacity=3 [T] :Patient [T] [T] :asg [T] [T] :asg [T] :asg :PP [T] Name=Polly P arker [T] :asg :PP [T] Name=Polly P arker [T] Diagnosis=Polyps [T] :Ward [T] Diagnosis=Polyps [T] :Ward [T] :Person [T] :Person [T] :Patient [T] Name=ENT [T] :Patient [T] Name=ENT [F] Name=Mary Miller [T] [T] Name=Marie Miller [T] [F] DOB=06-09-1988 :PP [F] Name=Mary Miller :PP [T] Name=Marie Miller [F] Admission=13-05-2015 [T] Diagnosis=Fraction [T] Diagnosis=Fraction [T] Name=Marie Miller [T] Name=Marie Miller Figure 16: Result of CC rule application R (4)) is derived. Then, an intermediate model Omarked (c.f. Fig. 13) is constructed. (For details: We create an 0 R effective pushout (c.f. Def. 4.23 in [EEGH15]) via Mmarked , Mmarked and Person-2-Patientdtemp . Intuitively in sets, an effective pushout E is the union of B and C over a common D, whereas D is the intersection of B and C over a common A.) There, we can see that all elements are reconstructed that are necessary for the application of shifted rule Person-2-Patientd , i.e., elements that we want to restore. In detail, these elements are: • The : Person node and its assignement : asg to the correct : Room in the Management domain. • The empty : Patient node in the doctors’ view. Note, the assignement to the correct : Ward is not recon- structed, because the deletion of this edge is part of upadate u. • The correspondence nodes : PP between the : Person and both corresponding : Patient nodes in the Therapy domain. Note, all reconstructed elements are marked with F. Now, shifted rule Person-2-Patientd will be applied resulting 00 R0 in triple graphs Mmarked and Mmarked (c.f. Fig. 14). Both models are used as input for the next iteration of the Ext sub-step. 2nd iteration: Again, Ext checks successively, if a shifted rule can be found. Diagnosis CC(d:String) Now, this is not applicable. Instead, we can find a CC rule that is applicable. Doctors View We consider CC rule DiagnosisCC shown on the right that is derived out of triple [T] :Patient rule 2 Diagnosis (c.f Fig. 4). Again, we calculate an intermediate triple graph R0 [F>T] Diagnosis=d Omarked (using effective pushout) that is extended by the Diagnosis attribute with marker F. Then, CC rule DiagnosisCC will be applied to both models in Fig. 15 000 R00 resulting in triple graphs Mmarked and Mmarked (c.f. Fig. 16). The latter models are used as input for the next iteration phase of the Ext sub-step. Next iterations: We combine the next steps, because in our running example, they are similar to the 2nd iteration phase, because only CC rules are still applicable. They handle the following two at- tributes contained in node : Person of Marie Miller in the Management domain: a) DOB = 06 − 09 − 1988, M5marked MR4marked [T] :Person Nurs es View [T] :Person Nurses View [T] Name=Polly P arker [T] [T] Name=Polly P arker [T] :PP [T] :Patient [T] :asg [T] :Patient [T] :asg [T] DOB=12-12-1960 [T] DOB=12-12-1960 :PP [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] Admission=15-05-2015 [T] Name=Polly P arker [T] :Ward [T] :asg [T] [T] :Patient [T] Name=ENT [T] :asg [T] [T] :Patient [T] Name=ENT :PP [T] Name=Marie Miller [T] :asg :PP [T] Name=Marie Miller [T] :asg [T] :Room [T] :Room [T] Number=101 Doctors View Doctors View [T] Number=101 [T] Capacity=3 [T] :Patient [T] Capacity=3 [T] :Patient [T] [T] :asg [T] [T] :asg [T] :asg :PP [T] Name=Polly P arker :PP [T] Name=Polly P arker [T] Diagnosis=Polyps [T] :Ward [T] :asg [T] Diagnosis=Polyps [T] :Ward [T] :Person [T] :Patient [T] Name=ENT [T] :Person [T] :Patient [T] Name=ENT [F] Name=Mary Miller [T] [T] [T] DOB=06-09-1988 :PP [F] Name=Mary Miller [T] Name=Marie Miller :PP [T] Name=Marie Miller [T] Admission=13-05-2015 [T] Diagnosis=Fraction [T] DOB=06-09-1988 [T] Diagnosis=Fraction [T] Name=Marie Miller [T] Name=Marie Miller [T] Admission=13-05-2015 Figure 17: Final result R4 and b) Admission = 13 − 05 − 2013. Finally, the Ext sub-step finishes successfully and returns model Mmarked 5 (c.f. Fig. 17 (right)). The other model Mmarked (left) will be discarded. The propagation ends successfully, because all translation markers are set to T, i.e., a consistent triple graph could be derived. As visualised in R4 model Mmarked , the derived propagation framework PPG(TGG) reconstructed all necessary elements that were deleted in the Del step, although deleting those items was not intended by the user. Note, that the : asg edge from the : Patient Marie Miller to the corresponding : Ward in the doctors’ view is restored, too, even though the deletion of this edge was part of update u. This is an example for the priorisation of addition over deletion of the PPG(TGG) framework. 4 Finally, in combining all steps that were informally introduced in this section, the derived propagation frame- work PPG(TGG) can be defined. Definition 3.3 (Derived Propagation Framework) Given a TGG over domains D1 and D2 , then each propagation operation (Ppg Di )i=1,2 of the derived propagation framework PPG(TGG) is defined by the sequence of steps according to Rem. 3.1. 4 Remark 3.1 (Derived Propagation Framework) Given a TGG = (M M, ∅, T R) over type graph M M and with a set of triple rules T R. Furthermore, given a triple graph M and a consistent domain model update u. Then, the derived propagation framework PPG(TGG) applies update u on M and derives a consistent model M 0 in executiong the following steps: 1. Del step, 2. Add step consiting of sub-steps: (a) sub-step 1, first addition, (b) sub-step 2, i.e., marking, (c) sub-step 3, extension Ext is executed iteratively. 4 4 Related Work The presented propagation framework assumes that the underlying TGG is deterministic. As TGGs are non- deterministic in general [HEO+ 15], we introduced a technique for obtaining deterministic sets of operational rules in previous work. The framework of concurrent model synchronisations [HEEO12, GHN+ 13] is equipped with an additional first step for deriving consistent model updates from inconsistent ones. In contrast to the present paper, model synchronisations do not deal with propagating model updates across one model but propagating model updates between two models of typically different domains, called source and target domains. A consistency creating operation CCS (CCT) is used for converting inconsistent updates in the source (target) domain to consistent updates. However, in contrast to our approach, both operations simply neglect inconsistent model updates u without trying to propagate them across the model, i.e., both operations are not delta-preserving. We have motivated our approach by multi-view models but the approach can also be applied in other contexts where consistent model updates and models are requested and consistency is defined in terms of the language L(TGG) that is induced by a TGG. The theory of correct and complete model transformations [DXC+ 11, HEGO14] and model synchronisations [HEEO12, GHN+ 13, HEO+ 15] rely on consistent domain models and consistent model updates based on TGGs. Independently from the present approach, another solution for multiple views based on the existing theory of model synchronisations [HEO+ 15, EEGH15] may be feasible. Assuming a separate model and TGG for each view, then model updates in one view may be propagated back to the source model at first, followed by a forward propagation from the source model to the other view. This solution does not only differ in the assumption of separate models and TGGs for each view from the presented approach, but also rises questions concerning the conflict resolution of simoultaneous updates in several views. Furthermore, it is unclear how to deal with updates of elements that are only contained in the views but not reflected by the source model. The propagation of an update is performed over the source model and therefore, the update would be lost. Developing such a solution and relating it to the presented approach is topic of future work. Another approach that is related to multi-view models are view triple graph grammars (ViewTGGs) [JKS06, JS08, ARDS14]. In our presented running example, the target domain can be interpreted as ViewTGG. The nurses’ view is a view of the doctors’ view. In order to apply the theory of ViewTGGs to our running example, we should divide the information in the target model in a second triple graph grammar: one domain contains the doctors’ view, the other the nurses’ view. Then, we can apply the model synchronisation techniques in [ARDS14]. However, the approach we presented in this paper is more flexible and is also able to deal with models, where the concept of ViewTGGs cannot be applied, but where elements in one domain are still strongly interweaved with each other. 5 Conclusion & Future Work We presented a first informal idea of a derived propagation framework for consistently propagation model updates along different views in multi-view models. This framework extends the existing TGG-based model synchronisa- tion framework by propagating changes also between related elements within one domain. We plan to present a formal elaboration of this framework in future work. Furthermore, we want the framework to fulfill the following properties that we will prove using the formalization of the presented propagation framework. 1. The propagation shall preserve identity. 2. The propagation shall always yield consistent results. 3. If the given model update is consistent, then the propagation shall yield a consistent result. 4. The propagation shall always return a single result. 5. The propagation shall have functional behaviour, i.e., the propagation shall terminate and shall be deterministic [EEPT06]. Termination and determinism lead to functional behaviour, i.e., for the same model M , the propagation shall always produce the same result. It is also desired, to implement the approach as an extension to the existing model transformation tool HenshinTGG [Hen15]. HenshinTGG allows the specification and execution of model transformations between source and target languages based on TGGs. It also provides an implementation of synchronising consistent model updates from source to target and vice versa based on the theory in [HEEO12, GHN+ 13, EEGH15]. Therefore, an implementation of the approach would enable the synchronisation (complete transformation) of inconsistent source and target updates (models) in HenshinTGG. Furthermore, we plan an evaluation of the presented technique on the real world scenario which we introduced in Sec. 1 where source code of satellite procedures is transformed to multi-layered statecharts [GHE+ 13]. Each layer represents one view of the source code at a different level of abstraction. As views of adjacent levels of abstraction may contain overlapping elements, updates made in one view should be consistently propagated to adjacent views. This enables the synchronisation of the extended update back to the source code by using the implementation mentioned above. Furthermore, the derived propagation framework, we introduced in this work, considers only model updates in the same domain and also in the same view at this stage. We want to investigate more complex updates in future work. There, it is also relevant to anaylse the propagation of conflicting model updates. These conflicts may lead to situations where no consistent model update can be obtained by the update propagation and a manual conflict resolution is required. This leads to the notion of conflicting updates that may be forbidden for users as their propagation may yield side effects that are not transparent to the user. For a given model transformation, we plan to provide a construction for obtaining a set of constraints that specify forbidden updates on consistent multi-view models. These constraints can be used directly in order to restrict the user’s behaviour. In addition, we plan to investigate to what extent an additional step for automatic conflict resolution [EET11] as used in concurrent model synchronisations [HEEO12] is beneficial for our approach. Furthermore, the alternative approach for update propagation between views from Sec. 4 is promising enough to be investigated in future work. Acknowledgments Supported by the Fonds National de la Recherche, Luxembourg (3968135, 4895603). References [ARDS14] Anthony Anjorin, Sebastian Rose, Frederik Deckwerth, and Andy Schürr. Efficient model synchro- nization with view triple graph grammars. In Jordi Cabot and Julia Rubin, editors, Modelling Foundations and Applications, volume 8569 of LNCS, pages 1–17. Springer, 2014. [BBG05] Sami Beydeda, Matthias Book, and Volker Gruhn. Model-Driven Software Development. Springer, 2005. [DXC+ 11] Zinovy Diskin, Yingfei Xiong, Krzysztof Czarnecki, Hartmut Ehrig, Frank Hermann, and Fernando Orejas. From state- to delta-based bidirectional model transformations: The symmetric case. In Model Driven Engineering Languages and Systems, Proc. of the 14th International Conference, MODELS 2011, Wellington, New Zealand, October 16-21, 2011, pages 304–318, 2011. [EEGH15] Hartmut Ehrig, Claudia Ermel, Ulrike Golas, and Frank Hermann. Graph and Model Transformation: General Framework and Applications. Springer, 2015. [EEPT06] Hartmut Ehrig, Karsten Ehrig, Ulrike Prange, and Gabriele Taentzer. Fundamentals of Algebraic Graph Transformation (Monographs in Theoretical Computer Science. An EATCS Series). Springer, 2006. [EET11] Hartmut Ehrig, Claudia Ermel, and Gabriele Taentzer. A formal resolution strategy for operation- based conflicts in model versioning using graph modifications. In Proc. of the 14th International Conference on Fundamental Approaches to Software Engineering, FASE 2011, Saarbrücken, Ger- many, March 26-April 3, 2011, pages 202–216, 2011. [GHE+ 13] Susann Gottmann, Frank Hermann, Claudia Ermel, Thomas Engel, and Gianluigi Morelli. Towards bidirectional engineering of satellite control procedures using triple graph grammars. In Proc. of the 7th Workshop on Multi-Paradigm Modeling, MPM 2013, Miami, FL, September 30, 2013, pages 67–76, 2013. [GHN+ 13] Susann Gottmann, Frank Hermann, Nico Nachtigall, Benjamin Braatz, Claudia Ermel, Hartmut Ehrig, and Thomas Engel. Correctness and completeness of generalised concurrent model synchro- nisation based on triple graph grammars. In Proc. of the 2nd Workshop on the Analysis of Model Transformations (AMT 2013), Miami, FL, USA, September 29, 2013, 2013. [GLEO12] Ulrike Golas, Leen Lambers, Hartmut Ehrig, and Fernando Orejas. Attributed graph transformation with inheritance: Efficient conflict detection and local confluence analysis using abstract critical pairs. Theor. Comput. Sci., 424:46–68, 2012. [HEEO12] Frank Hermann, Hartmut Ehrig, Claudia Ermel, and Fernando Orejas. Concurrent model synchro- nization with conflict resolution based on triple graph grammars. In Proc. of the 15th International Conference on Fundamental Approaches to Software Engineering, FASE 2012, Tallinn, Estonia, March 24 - April 1, 2012, pages 178–193, 2012. [HEGO14] Frank Hermann, Hartmut Ehrig, Ulrike Golas, and Fernando Orejas. Formal analysis of model transformations based on triple graph grammars. Mathematical Structures in Computer Science, 24(4), 2014. [Hen15] HenshinTGG. https://github.com/de-tu-berlin-tfs/Henshin-Editor, 2015. [HEO+ 15] Frank Hermann, Hartmut Ehrig, Fernando Orejas, Krzysztof Czarnecki, Zinovy Diskin, Yingfei Xiong, Susann Gottmann, and Thomas Engel. Model synchronization based on triple graph gram- mars: correctness, completeness and invertibility. Software and System Modeling, 14(1):241–269, 2015. [HGN+ 13] Frank Hermann, Susann Gottmann, Nico Nachtigall, Benjamin Braatz, Gianluigi Morelli, Alain Pierre, and Thomas Engel. On an automated translation of satellite procedures using triple graph grammars. In Keith Duddy and Gerti Kappel, editors, Theory and Practice of Model Transformations, volume 7909 of LNCS, pages 50–51. Springer, 2013. [HGN+ 14] Frank Hermann, Susann Gottmann, Nico Nachtigall, Hartmut Ehrig, Benjamin Braatz, Gianluigi Morelli, Alain Pierre, Thomas Engel, and Claudia Ermel. Triple graph grammars in the large for translating satellite procedures. In Davide Di Ruscio and Dniel Varr, editors, Theory and Practice of Model Transformations, volume 8568 of LNCS, pages 122–137. Springer, 2014. [HP09] Annegret Habel and Karl-Heinz Pennemann. Correctness of high-level transformation systems relative to nested conditions. Mathematical Structures in Computer Science, 19(2):245–296, 2009. [JKS06] Johannes Jakob, Alexander Knigs, and Andy Schürr. Non-materialized model view specification with triple graph grammars. In Andrea Corradini, Hartmut Ehrig, Ugo Montanari, Leila Ribeiro, and Grzegorz Rozenberg, editors, Graph Transformations, volume 4178 of LNCS, pages 321–335. Springer, 2006. [JS08] Johannes Jakob and Andy Schürr. View creation of meta models by using modified triple graph grammars. Electronic Notes in Theoretical Computer Science, 211:181 – 190, 2008. Proc. of the 5th International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT 2006). [SK08] Andy Schürr and Felix Klar. 15 years of triple graph grammars. In Proc. of the 4th International Conference on Graph Transformations, ICGT 2008, Leicester, UK, September 7-13, 2008, pages 411–425, 2008.