{"id":158,"date":"2018-06-27T19:24:27","date_gmt":"2018-06-27T17:24:27","guid":{"rendered":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/?page_id=158"},"modified":"2018-07-16T16:21:59","modified_gmt":"2018-07-16T14:21:59","slug":"lesson-3-modify-and-write-a-first-rule","status":"publish","type":"page","link":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-3-modify-and-write-a-first-rule\/","title":{"rendered":"Lesson 3: Modify and write a first rule"},"content":{"rendered":"<div class=\"toc_sitemap\"><h3 class=\"toc_sitemap_pages\">Pages<\/h3><ul class=\"toc_sitemap_pages_list\"><li class=\"page_item page-item-24\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/\">A RULE-BASED TOPOLOGICAL MODELER GENERATOR<\/a><\/li>\n<li class=\"page_item page-item-671\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/inference-of-topological-operations-illustration-in-geology\/\">Inference of topological operations: illustration in geology<\/a><\/li>\n<li class=\"page_item page-item-596\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/japhy\/\">Japhy : une plate-forme m\u00e9canique et topologique utilisant un langage \u00e0 base de r\u00e8gles pour l&rsquo;animation physique.<\/a><\/li>\n<li class=\"page_item page-item-645\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/jerboaeclatement\/\">JerboaEclatement<\/a><\/li>\n<li class=\"page_item page-item-736\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/joptop-jerboa-optimisation-topologique\/\">Joptop &#8211; Jerboa Optimisation Topologique<\/a><\/li>\n<li class=\"page_item page-item-85\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-1-discover-topological-structures\/\">Lesson 1: Discover topological structures of Jerboa<\/a><\/li>\n<li class=\"page_item page-item-128\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-2-discover-embeddings-and-orbits\/\">Lesson 2: Discover embeddings and orbits<\/a><\/li>\n<li class=\"page_item page-item-158\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-3-modify-and-write-a-first-rule\/\">Lesson 3: Modify and write a first rule<\/a><\/li>\n<li class=\"page_item page-item-164\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-4-write-embedding-expressions\/\">Lesson 4: Write embedding expressions<\/a><\/li>\n<li class=\"page_item page-item-243\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-5-make-topological-transformations\/\">Lesson 5: Design topological transformations<\/a><\/li>\n<li class=\"page_item page-item-248\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-6-using-the-execution-cycle\/\">Lesson 6: Utilize the execution cycle of rules<\/a><\/li>\n<li class=\"page_item page-item-536\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-7-write-scripts-in-jerboa\/\">Lesson 7 : Write scripts in Jerboa<\/a><\/li>\n<li class=\"page_item page-item-449\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-8-create-your-own-modeler\/\">Lesson 8: Create your own modeler<\/a><\/li>\n<li class=\"page_item page-item-775\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/model-reevaluation-based-on-graph-transformation-rules\/\">Model reevaluation based on graph transformation rules<\/a><\/li>\n<li class=\"page_item page-item-712\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/topological-inference-for-subdivision-schemes\/\">Topological inference for subdivision schemes<\/a><\/li>\n<\/ul><\/div>\n<p style=\"text-align: center;\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-2-discover-embeddings-and-orbits\/\" class=\"su-button su-button-style-default\" style=\"color:#FFFFFF;background-color:#2D89EF;border-color:#246ec0;border-radius:6px\" target=\"_self\"><span style=\"color:#FFFFFF;padding:0px 18px;font-size:14px;line-height:28px;border-color:#6cadf4;border-radius:6px;text-shadow:none\"> Lesson 2<\/span><\/a>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #333333;\">In this lesson you will learn how to use the Jerboa editor to write rules like the ones you have used in the generated modeler. You will continue to use this same modeler as the first two lessons but you will be running it as a java project and modifying it in the editor.<\/span><\/p>\n<p><span style=\"color: #808080;\"><span style=\"color: #0000ff;\"><div class=\"su-note\"  style=\"border-color:#e5e5e5;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#ffffff;border-color:#ffffff;color:#808080;\"><\/span>The Jerboa package includes an <b>Editor<\/b>, a <b>Core Library<\/b> and a <b>Viewer Library<\/b>. The editor will enable you to edit the generated modeler kernel and it&rsquo;s rules, the core library enables you to interpret the modeler and apply the rules you write to compute operations and the viewer library enables you to launch a viewer in the project to manipulate the modeler kernel with a graphic interface.<span style=\"color: #0000ff;\"><\/div><\/div><\/span><\/span><\/p>\n<p>First let&rsquo;s set up your development environment.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>DOWNLOAD AND INSTALL<\/strong><\/h3>\n<p>You will need an IDE ( Integrated Development Environment). This tutorial is written for the use of <a href=\"https:\/\/www.eclipse.org\/downloads\/\" target=\"_blank\" rel=\"noopener\">Eclipse<\/a> but you can use the IDE of your choosing, just remember to adjust certain instructions to fit.<\/p>\n<p>You will also need to download the <a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/download.html\" target=\"_blank\" rel=\"noopener\">Jerboa Modeler Editor V2<\/a> and the <a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/distrib\/JerboaTutorial1.zip\" target=\"_blank\" rel=\"noopener\">Tutorial package.<\/a><\/p>\n<ul>\n<li><span style=\"color: #000000;\">the editor is a jar file so you may have to change the access rights to launch it by opening a terminal in the same directory as the jar file and type \u00ab\u00a0chmod 755 JerboaModelerEditor.jar\u00a0\u00bb if you are using linux<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #000000;\">You should now be able to open the editor with a double click on the file icon.<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">copy the \u00ab\u00a0JerboaTurorial1\u00a0\u00bb package to your IDE workspace and unpack it<\/span><\/li>\n<li><span style=\"color: #000000;\">open the \u00ab\u00a0JerboaTutorial1\u00a0\u00bb project in your IDE of choice<\/span><\/li>\n<\/ul>\n<p>In eclipse this is done by creating a \u00ab\u00a0New Java Project\u00a0\u00bb,\u00a0 giving it a name \u00ab\u00a0JerboaTutorial1\u00a0\u00bb and setting the \u00ab\u00a0JerboaTutorial1\u00a0\u00bb folder as the project directory as shown in screen 3.1.<\/p>\n<figure id=\"attachment_312\" aria-describedby=\"caption-attachment-312\" style=\"width: 634px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-312 size-full\" src=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/75.jpg\" alt=\"Sorry, you'll ahve to use your imagination\" width=\"634\" height=\"239\" srcset=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/75.jpg 634w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/75-300x113.jpg 300w\" sizes=\"(max-width: 634px) 100vw, 634px\" \/><figcaption id=\"caption-attachment-312\" class=\"wp-caption-text\">Screen 3.1: New java project<\/figcaption><\/figure>\n<p>You should be all set!<\/p>\n<h3><span style=\"color: #333333;\"><strong>MODIFYING YOUR FIRST RULE<\/strong><\/span><\/h3>\n<ul>\n<li><span style=\"color: #000000;\">open the project in your IDE<\/span><\/li>\n<li><span style=\"color: #000000;\">launch the viewer this time by executing the \u00ab\u00a0Launcher\u00a0\u00bb file in \u00ab\u00a0src &#8211; jerboatutorial1\u00a0\u00bb (right click &#8211; run as &#8211; Java application)<\/span><\/li>\n<li><span style=\"color: #000000;\">execute \u201cc_IcositeHexagon\u201d<br \/>\n<\/span><\/li>\n<li><span style=\"color: #000000;\">select a dart on the object<\/span><\/li>\n<li><span style=\"color: #000000;\">apply the \u00a0\u201cMakeBlue\u201d rule and observe it\u2019s behavior<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #0000ff;\"><div class=\"su-note\"  style=\"border-color:#e5e5e5;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#ffffff;border-color:#ffffff;color:#808080;\"><\/span><span style=\"color: #808080;\">Any modification of an object is achieved by modifying it with rules. <\/span><\/p>\n<p><span style=\"color: #808080;\">A rule in Jerboa includes the transformation of a graph (which is the topology) and the modification of embeddings (the geometric, physical and applicative characteristics).<br \/>\n<\/span><\/p>\n<p><span style=\"color: #808080;\">A rule consists of two patterns, the left pattern specifies which sub-graph is to be matched (the matched sub-graph is the one to which the rule is applied) and the right pattern specifies which transformations are to be applied to the matched pattern. Each embedding of the transformed pattern can be modified with an embedding expression in the Jerboa language.<\/span><span style=\"color: #0000ff;\"><\/div><\/div><\/span><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000000;\">open the Jerboa editor that you downloaded and load the editor (go to \u00ab\u00a0file\u00a0\u00bb \u00ab\u00a0load\u00a0\u00bb and select the \u00ab\u00a0jerboatutorial1.jme\u00a0\u00bb file which you will find in the main directory of the JerboaTutorial1 java project)<br \/>\n<\/span><\/li>\n<li><span style=\"color: #000000;\">double click on the \u00ab\u00a0MakeBlue\u00a0\u00bb rule in the Lesson3 folder, it will open and you can now edit it (see Screen 3.2).<br \/>\n<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #333333;\">This rule is exactly the same as the MakeRed rule from Lesson2 only it makes faces blue instead of making them red.<\/span><\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_555\" aria-describedby=\"caption-attachment-555\" style=\"width: 847px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-555 size-full\" src=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/07\/143.jpg\" alt=\"\" width=\"847\" height=\"626\" srcset=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/07\/143.jpg 847w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/07\/143-300x222.jpg 300w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/07\/143-768x568.jpg 768w\" sizes=\"(max-width: 847px) 100vw, 847px\" \/><figcaption id=\"caption-attachment-555\" class=\"wp-caption-text\">Screen 3.2: The MakeBlue rule in the editor<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #808080;\"><span style=\"color: #333333;\">Note that the node in the left pattern has two rings.<\/span> <\/span><\/p>\n<p><span style=\"color: #808080;\"><span style=\"color: #0000ff;\"><div class=\"su-note\"  style=\"border-color:#e5e5e5;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#ffffff;border-color:#ffffff;color:#808080;\"><\/span>This indicates that the node is also a hook which is the starting node for matching the graph to be transformed. The hook corresponds to the dart you will select when you want to apply the rule in the viewer.<\/span><\/p>\n<p><span style=\"color: #0000ff;\"><span style=\"color: #808080;\">The orbit of the nodes in the left pattern indicates which arcs are to be used to match the sub-graph starting from the hook (in this case &lt;&gt; is the orbit of a dart).<\/span><\/div><\/div><\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">change the color embedding of the dart in the RightPattern<\/span>\n<ul>\n<li><span style=\"color: #000000;\">click on the dart in the RightPattern<\/span><\/li>\n<li><span style=\"color: #000000;\">select the color embedding and click EDIT<\/span><\/li>\n<li><span style=\"color: #000000;\">change the color in the embedding expression (see Screen 3.3) (using the java.awt.color preset colors like \u00ab\u00a0color::YELLOW\u00a0\u00bb<br \/>\n<\/span><\/li>\n<li><span style=\"color: #000000;\">click on \u00ab\u00a0Apply\u00a0\u00bb<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure id=\"attachment_212\" aria-describedby=\"caption-attachment-212\" style=\"width: 848px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-212 size-full\" src=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/27.jpg\" alt=\"Sorry, you'll have to use your imagination !\" width=\"848\" height=\"257\" srcset=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/27.jpg 848w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/27-300x91.jpg 300w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/27-768x233.jpg 768w\" sizes=\"(max-width: 848px) 100vw, 848px\" \/><figcaption id=\"caption-attachment-212\" class=\"wp-caption-text\">Screen 3.3: The color embedding expression<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #333333;\">It is important to always click on \u00ab\u00a0Apply\u00a0\u00bb when modifying an expression to make sure it is saved to the rule.<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">rename the rule to fit the color you chose by opening the \u00ab\u00a0Details\u00a0\u00bb tab (see Screen3.4) and changing the name<\/span><\/li>\n<\/ul>\n<figure id=\"attachment_213\" aria-describedby=\"caption-attachment-213\" style=\"width: 940px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-213 size-full\" src=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/29.jpg\" alt=\"Sorry, you'll have to use your imagination !\" width=\"940\" height=\"311\" srcset=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/29.jpg 940w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/29-300x99.jpg 300w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/29-768x254.jpg 768w\" sizes=\"(max-width: 940px) 100vw, 940px\" \/><figcaption id=\"caption-attachment-213\" class=\"wp-caption-text\">Screen 3.4: The details tab<\/figcaption><\/figure>\n<ul>\n<li><span style=\"color: #000000;\">click on Apply, save the modeler (ctrl+s) and then export the code to the project (file : export Java)<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #333333;\">Remember that if you only <em>export<\/em> the modeler without saving it you will be able to use the rules you wrote in your modeler project but you won&rsquo;t be able to modify them the next time you use the editor because your changes won&rsquo;t have been saved to the modeler.jme file. Think to save the modeler as regularly as possible.<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">open the IDE, refresh the project to update the modeler and execute the Launcher again after having closed it<br \/>\n<\/span><\/li>\n<li><span style=\"color: #000000;\">try the first steps again to see what has changed when you apply the new rule, you should see the faces around your selected dart change to the color you chose<br \/>\n<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>MODIFYING A SECOND RULE<\/strong><\/h3>\n<p><span style=\"color: #0000ff;\"><div class=\"su-note\"  style=\"border-color:#e5e5e5;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#ffffff;border-color:#ffffff;color:#808080;\"><\/span><span style=\"color: #808080;\">The Jerboa viewer shows a 3D render of objects created and modified with the modeler generated kernel. The x axis is red, the y axis is green and the z axis is blue.<\/span><span style=\"color: #0000ff;\"><\/div><\/div><\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">select a dart on the object<\/span><\/li>\n<li><span style=\"color: #000000;\">apply the \u00a0\u201cMoveDown\u201d rule and observe it\u2019s behavior<\/span><\/li>\n<li><span style=\"color: #000000;\">open the editor and double click on the name of the rule to edit it<\/span><\/li>\n<li><span style=\"color: #000000;\">change the point embedding on the node in the right pattern<br \/>\n<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">select the node in the right pattern<br \/>\n<\/span><\/li>\n<li><span style=\"color: #000000;\">select the point embedding and click EDIT<\/span><\/li>\n<li><span style=\"color: #000000;\">modify the embedding expression (see Screen 3.5) to change the coordinates of the returned point<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure id=\"attachment_408\" aria-describedby=\"caption-attachment-408\" style=\"width: 772px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-408 size-full\" src=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/93.jpg\" alt=\"\" width=\"772\" height=\"279\" srcset=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/93.jpg 772w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/93-300x108.jpg 300w, http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-content\/uploads\/2018\/06\/93-768x278.jpg 768w\" sizes=\"(max-width: 772px) 100vw, 772px\" \/><figcaption id=\"caption-attachment-408\" class=\"wp-caption-text\">Screen 5.3: point embedding expression<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000000;\">rename the rule by opening the \u00ab\u00a0Details\u00a0\u00bb tab and changing the name<\/span><\/li>\n<li><span style=\"color: #000000;\">click on Apply, save the modeler (ctrl+s) and then export (file : export Java)<\/span><\/li>\n<\/ul>\n<ul>\n<li><span style=\"color: #000000;\">open the IDE, refresh the project to update the modeler and execute the Launcher again<\/span><\/li>\n<li><span style=\"color: #000000;\">try the first steps again to see what has changed when you apply your new rule<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #0000ff;\"><div class=\"su-note\"  style=\"border-color:#e5e5e5;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#ffffff;border-color:#ffffff;color:#808080;\"><span style=\"color: #808080;\">A rule uses the left pattern to match the correct graph starting from the hook node and following the given orbit. The graph is transformed to suite the graph in the right pattern. The embeddings are changed by the embedding expressions in the rule. Note that when an embedding is modified it is changed for every dart in the orbit to which it is associated even if another orbit is specified in the rule. You may have noticed that the MakeBlue rule made the whole face blue even though the orbit of the hook in the left pattern is the orbit of a dart.<\/span><\/div><\/div><\/span><\/p>\n<h3><strong>WRITING YOUR FIRST RULE<\/strong><\/h3>\n<p>Now you will create a new rule which applies the operations of the two previous rules.<\/p>\n<ul>\n<li><span style=\"color: #000000;\">open the editor and click on the New Atomic Rule button<\/span><\/li>\n<li><span style=\"color: #000000;\">call the rule \u201cMakeBlueMoveDown\u201d and press enter<\/span><\/li>\n<li><span style=\"color: #000000;\">right click in the left pattern to create a node and then select it with the left click<\/span><\/li>\n<li><span style=\"color: #000000;\">tick the Hook box<\/span><\/li>\n<\/ul>\n<p>This node doesn&rsquo;t need an orbit because when we modify the embedding, this modification will automatically be applied to all the darts in the orbit with which the embedding is associated.<\/p>\n<ul>\n<li><span style=\"color: #000000;\">create a node in the right pattern<br \/>\n<\/span><\/li>\n<li><span style=\"color: #000000;\">edit the point embedding of the node in the right pattern to be the same as that of the MoveDown rule<\/span><\/li>\n<li><span style=\"color: #000000;\">edit the color embedding of the same node to\u00a0be the same as that of the MakeBlue rule<\/span><\/li>\n<li><span style=\"color: #000000;\">save the modeler and export it<\/span><\/li>\n<li><span style=\"color: #000000;\">open the IDE, refresh the project to update the modeler and execute the Launcher again<\/span><\/li>\n<li><span style=\"color: #000000;\">try your rule on a dart of the IcositeHexagon<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<h3><span style=\"color: #333333;\"><strong>What have your learned?<\/strong><\/span><\/h3>\n<ul>\n<li>How many embedding expressions can be written for each node ?<\/li>\n<li>Which darts are matched by a hook node ?<\/li>\n<li>What is the difference between saving and exporting?<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-4-write-embedding-expressions\/\" class=\"su-button su-button-style-default\" style=\"color:#FFFFFF;background-color:#2D89EF;border-color:#246ec0;border-radius:6px\" target=\"_self\"><span style=\"color:#FFFFFF;padding:0px 18px;font-size:14px;line-height:28px;border-color:#6cadf4;border-radius:6px;text-shadow:none\"> Lesson 4<\/span><\/a>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; In this lesson you will learn how to use the Jerboa editor to write rules like the ones you have used in the generated modeler. You will continue to use this same modeler as the first two lessons but you will be running it as a java project and modifying it in the editor. &hellip; <a href=\"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/lesson-3-modify-and-write-a-first-rule\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Lesson 3: Modify and write a first rule<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/pages\/158"}],"collection":[{"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":41,"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/pages\/158\/revisions"}],"predecessor-version":[{"id":556,"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/pages\/158\/revisions\/556"}],"wp:attachment":[{"href":"http:\/\/xlim-sic.labo.univ-poitiers.fr\/jerboa\/doc\/wp-json\/wp\/v2\/media?parent=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}