{"id":783,"date":"2013-11-19T10:46:35","date_gmt":"2013-11-19T10:46:35","guid":{"rendered":"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/?page_id=783"},"modified":"2013-11-19T10:46:35","modified_gmt":"2013-11-19T10:46:35","slug":"task-metamodel-expressions","status":"publish","type":"page","link":"https:\/\/blog.uclm.es\/ricardotesoriero\/research\/cauce-model-driven-development-of-context-aware-applications-for-ubiquitous-computing-environments\/analysis-layer-metamodels\/task-metamodel-expressions\/","title":{"rendered":"Task Metamodel Expressions"},"content":{"rendered":"<p style=\"text-align:justify\">Task Metamodel Conditions are defined in terms of Expressions. There are 5 types of expressions:<\/p>\n<ul>\n<li>Data expressions<\/li>\n<li>Social expressions<\/li>\n<li>Task expressions<\/li>\n<li>Space expressions<\/li>\n<li>Logic expressions<\/li>\n<\/ul>\n<p style=\"text-align:justify\">The Figure 8 shows and overview of the Expression metamodel.<\/p>\n<figure id=\"attachment_842\" aria-describedby=\"caption-attachment-842\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-expression-metamodel-overview.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-842\" src=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-expression-metamodel-overview.png\" alt=\"Overview of the Task Expression Metamodel\" width=\"1000\" height=\"326\" srcset=\"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-expression-metamodel-overview.png 1000w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-expression-metamodel-overview-300x98.png 300w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-expression-metamodel-overview-768x250.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><figcaption id=\"caption-attachment-842\" class=\"wp-caption-text\">Figure 8: Overview of the Task Expression Metamodel<\/figcaption><\/figure>\n<h4>Data Expressions<\/h4>\n<p style=\"text-align:justify\">Data Expressions relate Social Instances (defined by the the Social Metamodel) to information.<\/p>\n<blockquote>\n<p style=\"text-align:justify\">For instance, suposse that we have to model the Exchange File task. The Pre-condition for this task defines the <b>sender(file)<\/b> Data expression to represent that the \u00absender\u00bb holds the file to be exchanged and the Post condition defines the <b>receiver(file)<\/b> Data expression to represent that the \u00abreceiver\u00bb has received the file that was exchanged.<\/p>\n<\/blockquote>\n<h4>Social Expressions<\/h4>\n<p style=\"text-align:justify\">Social expressions relate Social instances (defined by the the Social Metamodel) to express social relationships. These relationships include: the Social Synchronization and the Social Alternative.<br \/>\nWhile the Social Synchronization represents a synchronization point where entities exchange information during a task execution, the Social Alternative represents entities that are able to perform the same tasks. The Social Expression metamodel is depicted on Figure 9.<\/p>\n<figure id=\"attachment_843\" aria-describedby=\"caption-attachment-843\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-social-expression.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-843\" src=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-social-expression.png\" alt=\"The Social Expression Metamodel\" width=\"1000\" height=\"415\" srcset=\"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-social-expression.png 1000w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-social-expression-300x125.png 300w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-social-expression-768x319.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><figcaption id=\"caption-attachment-843\" class=\"wp-caption-text\">Figure 9: The Social Expression Metamodel<\/figcaption><\/figure>\n<blockquote>\n<p style=\"text-align:justify\">An example of Social Synchronization emerges when we have to model the Exchange File task. The Pre-condition for this task defines the <b>sender, receiver<\/b> Social expression to represent that the \u00absender\u00bb and the \u00abreceiver\u00bb are ready to exchange information.<\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align:justify\">An example of Social Alternative emerges when we have to model the Cancel File Transference task. The Pre-condition for this task defines the <b>sender + receiver<\/b> Social expression to represent that the \u00absender\u00bb or the \u00abreceiver\u00bb can cancel the exchange of information.<\/p>\n<\/blockquote>\n<h4>Task Expressions<\/h4>\n<p style=\"text-align:justify\">The aim of Task Expressions is the definition of task dependencies. Although task dependiencies are represented using Route tasks, this alternative allows designers to define task dependencies when Route tasks reduce the readability of the model. Task Expressions are based on Regular Expressions to define task dependencies. The Task Expression metamodel is depicted on Figure 10.<\/p>\n<figure id=\"attachment_845\" aria-describedby=\"caption-attachment-845\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-task-expression.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-845\" src=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-task-expression.png\" alt=\"Task Expression Metamodel\" width=\"1000\" height=\"473\" srcset=\"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-task-expression.png 1000w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-task-expression-300x142.png 300w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-task-expression-768x363.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><figcaption id=\"caption-attachment-845\" class=\"wp-caption-text\">Figure 10: Task Expression Metamodel<\/figcaption><\/figure>\n<p style=\"text-align:justify\">The Task Performance is Task Expression that relates a Social Instance (from the Social Metamodel) to a System Task (from the Task Metamodel).<br \/>\nThe Task Expression Metamodel defines 2 unary and 2 binary operations for Task Expressions.<br \/>\nWhile the Task Repetition unary operator defines the Kleene Closure (represented by the * symbol) for expressions, the At Least Once unary expression (represented by the ! symbol) defines the variant of the Kleene Closure where the expression occurs at least once. Regarding the binary operators, the Task Expression Metamodel defines the Task Sequence (represented by the , symbol) to define that the expression is satisfied iff a task expression is executed before another one, and the Task Alternative (represented by the + symbol) to define the expression is satisfied iff one of the expressions was executed.<\/p>\n<blockquote>\n<p style=\"text-align:justify\">For instance, suppose that you have to model the Exchange File task, where the <b>sender<\/b> and the <b>receiver<\/b> Users have to execute a set of tasks in a defined order. In order to send a file, a User (the <b>receiver<\/b>) has to be Listening incomming files before the <b>sender<\/b> performs Load the file. Therefore, the Task Expression for the Load File task should be: \u00ab(receiver(Listening))\u00bb. Once the file was loaded, the Exchange File task should be performed; therefore the Task Expression for the Exchange File task is \u00ab(sender(Load))\u00bb. Once the File Exchange was performed, the Save task should be performed; thus, the Task Expression for this task should be \u00ab(sender(Exchange File), receiver(Exchange File))\u00bb.<\/p>\n<\/blockquote>\n<p>The Figure 11 depicts this example.<\/p>\n<figure id=\"attachment_883\" aria-describedby=\"caption-attachment-883\" style=\"width: 2000px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/task-expression-sample.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-883\" src=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/task-expression-sample.png\" alt=\"Task Expression Sample\" width=\"2000\" height=\"1451\" srcset=\"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/task-expression-sample.png 2000w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/task-expression-sample-300x218.png 300w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/task-expression-sample-1024x743.png 1024w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/task-expression-sample-768x557.png 768w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/task-expression-sample-1536x1114.png 1536w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><figcaption id=\"caption-attachment-883\" class=\"wp-caption-text\">Figure 11: Task Expression Sample<\/figcaption><\/figure>\n<h4>Space Expressions<\/h4>\n<p style=\"text-align:justify\">Space Expressions&#8217; goal is the definition of location-aware conditions. To represent this type of situations, Space expressions relate Space models to entities in order to define conditions that should be satified before\/after a task is\/was performed. They are expressed in terms of Regular Expressions. The Space Event expression is used to relate Spaces and Social Instances (i.e. User IN Room) where User is a Role instance from the Social metamodel and Room is a Space from the Space metamodel). As in Task Expressions, Space expressions define 2 unary and 2 binary operator for Space Expressions.<\/p>\n<p style=\"text-align:justify\">While the Space Repetition unary operator (represented by the * symbol) defines the Kleene Closure for expressions, the Space At Least Once unary operator (represented by the ! symbol) defines the variant of the Kleene Closure where the expression occurs at least once. Regarding the binary operators, the Space Expression Metamodel defines the Space Path (represented by the , symbol) to define a Space Expression should be satisfied before the another one, and the Space Alternative (represented by the + symbol) to define that the expression is satisfied if one of the two Space Expressions are satisfied.<\/p>\n<p style=\"text-align:justify\">The Space Expression Metamodel is depicted in Figure 12.<\/p>\n<figure id=\"attachment_892\" aria-describedby=\"caption-attachment-892\" style=\"width: 1000px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-space-expression.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-892\" src=\"http:\/\/poseidon.iseresearch.i3a.uclm.es\/~tesorieror\/wp-content\/uploads\/2013\/11\/tamm-space-expression.png\" alt=\"Space Expression metamodel\" width=\"1000\" height=\"379\" srcset=\"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-space-expression.png 1000w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-space-expression-300x114.png 300w, https:\/\/blog.uclm.es\/ricardotesoriero\/wp-content\/uploads\/sites\/80\/2013\/11\/tamm-space-expression-768x291.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/a><figcaption id=\"caption-attachment-892\" class=\"wp-caption-text\">Figure 12: Space Expression metamodel<\/figcaption><\/figure>\n<blockquote>\n<p style=\"text-align:justify\">For instance, suppose that you have to model the location aware printing system where users (represented by the User <strong>Role<\/strong>) are able to print documents from mobile devices in the nearest printer. Besides, suppose that there are 3 offices (Spaces) in the floor: <strong>Office A<\/strong>, <strong>Office B<\/strong> and <strong>Office C<\/strong>; and 2 printers (Social Instances) : <strong>Printer A<\/strong> and <strong>Printer B<\/strong>. Finally, suppose that while users located on Office A and Office C print their documents on Printer A, users located on Office B print their documents on Printer B. Therefore, to model this situation we define two tasks: Print Document on Printer A and Print Document on Printer B. Before defining the the Space Expression for these tasks, we define 3 events: User IN Office A, User IN Office B, User IN Office C. Thus, the Space Expression for the Print Document on Printer A task is \u00ab(User IN Office A + User IN Office C)\u00bb and \u00ab(User IN Office B)\u00bb for the Print Document on Printer B task.<\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align:justify\">A variant to this example is considering the idea of a <strong>Mobile Printer<\/strong> that is able to move itself around the building from office to office. Therefore, in order to print we may use the \u00abco-location\u00bb concept that allows users execute the Print Document task on a Printer that is in the same <strong>Room<\/strong> the user is located. The Space Expression representing this situation is \u00ab(User IN Room, Mobile Printer IN Room)\u00bb.<\/p>\n<\/blockquote>\n<h4>Logic Expressions<\/h4>\n<p style=\"text-align:justify\">Logic Expressions define logic relationships based on Data expressions (i.e. the Air Conditioning System is turned on if Sensor Temperature measurement is above the Max Temperature defined by the user and is turned off if Sensor Tepeature measurement is below the Min Temperature defined by the user).<\/p>\n<blockquote>\n<p style=\"text-align:justify\">Thus, the Turn On task defines the &amp;qout;(Sensor Temperature &gt; Max Temperature)&amp;qout; Logic Expression as a pre-condition, and the &amp;\u00bb(Sensor Temperature &lt; Min Temperature)&amp;\u00bb Logic Expression as a pre-condition of the Turn Off task.<\/p>\n<\/blockquote>\n<p><span style=\"text-align:justify;line-height:1.5\">You can reference this work as:<br \/>\nRicardo Tesoriero, Jos\u00e9 A. Gallud, Mar\u00eda D. Lozano and V\u00edctor M. R. Penichet.\u00a0<strong>CAUCE: Model-driven Development of Context-aware Applications for Ubiquitous Computing Environments<\/strong>.\u00a0<\/span><i style=\"text-align:justify;line-height:1.5\">Journal of Universal Computer Science<\/i><span style=\"text-align:justify;line-height:1.5\">, \u00a0Vol. 16, \u00a0No. 15, pp. 2111-2138. 2010. Link:\u00a0<a style=\"text-align:justify;line-height:1.5\" href=\"http:\/\/www.jucs.org\/jucs_16_15\/cauce_model_driven_development\">http:\/\/www.jucs.org\/jucs_16_15\/cauce_model_driven_development<\/a><br \/>\n<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Task Metamodel Conditions are defined in terms of Expressions. There are 5 types of expressions: Data expressions Social expressions Task expressions Space expressions Logic expressions The Figure 8 shows and overview of the Expression metamodel. Data Expressions Data Expressions relate Social Instances (defined by the the Social Metamodel) to information. For instance, suposse that we &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.uclm.es\/ricardotesoriero\/research\/cauce-model-driven-development-of-context-aware-applications-for-ubiquitous-computing-environments\/analysis-layer-metamodels\/task-metamodel-expressions\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abTask Metamodel Expressions\u00bb<\/span><\/a><\/p>\n","protected":false},"author":97,"featured_media":0,"parent":704,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-783","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/pages\/783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/users\/97"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/comments?post=783"}],"version-history":[{"count":0,"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/pages\/783\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/pages\/704"}],"wp:attachment":[{"href":"https:\/\/blog.uclm.es\/ricardotesoriero\/wp-json\/wp\/v2\/media?parent=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}