<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<!-- MHonArc v2.6.10 -->
	<channel>
		<title>henshin-dev</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/maillist.html</link>
		<description>henshin-dev</description>
		<language>en-us</language>
		<pubDate>Wed, 22 May 2013 15:10:05 GMT</pubDate>
		<lastBuildDate>Wed, 22 May 2013 15:10:05 GMT</lastBuildDate>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<generator>MHonArc RSS 2.0 RCFile</generator>
		<managingEditor>webmaster@eclipse.org (Webmaster)</managingEditor>
		<webMaster>webmaster@eclipse.org (Webmaster)</webMaster>
		<image>
			<title>henshin-dev</title>
			<url>http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg</url>
			<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/maillist.html</link>
		</image>
 

	<item>
		<title>Re: [henshin-dev] Henshin Transformation Units</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00711.html</link>
		<description>in addition to what Christian wrote, you can also take a look at the tests and the accompanying documentation. Tests of TransformationUnits should hopefully be complete. You can find the test (and testframework) documentation at /trunk/plugins/org.eclipse....</description>
		<content:encoded><![CDATA[<pre style="margin: 0em;">Hi Yannic,</pre><br>
<tt>On 2013-05-22 14:16, Yannic Noller wrote:
</tt><blockquote style="border-left: #5555EE solid 0.2em; margin: 0em; padding-left: 0.85em"><pre style="margin: 0em;">is there any documentation about the transformation units? Especially I
would like to know how exactly the PriorityUnit works.
</pre></blockquote><tt><br>in addition to what Christian wrote, you can also take a look at the 
tests and the accompanying documentation. Tests of TransformationUnits 
should hopefully be complete. You can find the test (and testframework) 
documentation at 
/trunk/plugins/org.eclipse.emf.henshin.tests/documentation/test-documentation.html 
and 
/trunk/plugins/org.eclipse.emf.henshin.tests/documentation/testframework/testframework-documentation.html</tt><br>
<br>
<pre style="margin: 0em;">Felix</pre><br>
]]></content:encoded>
		<pubDate>Wed, 22 May 2013 15:09:31 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00711.html</guid>
		<author>riegerf@xxxxxxx (Felix Rieger)</author>
	</item>
	<item>
		<title>Re: [henshin-dev] Henshin Transformation Units</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00710.html</link>
		<description>Dear Yannic,you can take a look at this paper:&amp;#xA0;http://journal.ub.tu-berlin.de/eceasst/article/view/528/530. There you can find the following: A HENSHIN transformation unit may be of type IndependentUnit (all&amp;#xA0;subunits are applied in arbitrary order), Sequen...</description>
		<content:encoded><![CDATA[<div dir="ltr">Dear Yannic,<div><br></div><div>you can take a look at this paper:&#xA0;<a href="http://journal.ub.tu-berlin.de/eceasst/article/view/528/530">http://journal.ub.tu-berlin.de/eceasst/article/view/528/530</a>. There you can find the following:</div>
<div><br></div><div><div>A HENSHIN transformation unit may be of type IndependentUnit (all&#xA0;subunits are applied in arbitrary order), SequentialUnit (all subunits are applied sequentially in&#xA0;a given order), CountedUnit (its subunit is applied a given number of times), ConditionalUnit</div>
<div>(its subunits are applied depending on the evaluation of a given condition unit), and PriorityUnit&#xA0;(the applicable subunit with the highest priority is applied next). A unit is applicable (and returns true) if it can be successfully executed. PriorityUnits and IndependentUnits are always applicable, while SequentialUnits (CountedUnits) are applicable only if all subunits are applicable in&#xA0;the given order (the given number of times). A ConditionalUnit is applicable if either the thensubunit (in case the condition is true) or the else-subunit (in case the condition is false) are&#xA0;applicable.</div>
</div><div><br></div><div>If you want to know exactly how they work, you can take a look at the default implementation of UnitApplication:&#xA0;<a href="http://dev.eclipse.org/svnroot/modeling/org.eclipse.emft.henshin/trunk/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/UnitApplicationImpl.java">http://dev.eclipse.org/svnroot/modeling/org.eclipse.emft.henshin/trunk/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/UnitApplicationImpl.java</a>&#xA0;(check out the execute* methods)</div>
<div><br></div><div>Hope that helps.</div><div><br></div><div>Cheers,</div><div>Christian</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/5/22 Yannic Noller <span dir="ltr">&lt;<a href="mailto:nolleryc@xxxxxxxxx" target="_blank">nolleryc@xxxxxxxxx</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Dear Henshin developers,<div><br></div><div>is there any documentation about the transformation units? Especially I would like to know how exactly the PriorityUnit works.</div>
<div><br></div><div>
Best Regards,</div><div>Yannic Noller</div></div>
<br>_______________________________________________<br>
henshin-dev mailing list<br>
<a href="mailto:henshin-dev@xxxxxxxxxxx">henshin-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/henshin-dev</a><br>
<br></blockquote></div><br></div>
]]></content:encoded>
		<pubDate>Wed, 22 May 2013 12:51:14 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00710.html</guid>
		<author>henshin.ck@xxxxxxx (Christian Krause)</author>
	</item>
	<item>
		<title>[henshin-dev] Henshin Transformation Units</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00709.html</link>
		<description>Dear Henshin developers,is there any documentation about the transformation units? Especially I would like to know how exactly the PriorityUnit works. Best Regards,Yannic Noller </description>
		<content:encoded><![CDATA[<div dir="ltr">Dear Henshin developers,<div><br></div><div style>is there any documentation about the transformation units? Especially I would like to know how exactly the PriorityUnit works.</div><div style><br></div><div style>
Best Regards,</div><div style>Yannic Noller</div></div>
]]></content:encoded>
		<pubDate>Wed, 22 May 2013 12:16:08 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00709.html</guid>
		<author>nolleryc@xxxxxxx (Yannic Noller)</author>
	</item>


	<item>
		<title>[henshin-dev] Copying EMF models with Henshin</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00708.html</link>
		<description>http://www.ckrause.org/2013/04/copying-emf-models-with-henshin.html&amp;#xA0; </description>
		<content:encoded><![CDATA[<div dir="ltr"><a href="http://www.ckrause.org/2013/04/copying-emf-models-with-henshin.html">http://www.ckrause.org/2013/04/copying-emf-models-with-henshin.html</a>&#xA0;<br></div>
]]></content:encoded>
		<pubDate>Fri, 26 Apr 2013 08:15:01 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00708.html</guid>
		<author>henshin.ck@xxxxxxx (Christian Krause)</author>
	</item>


	<item>
		<title>Re: [henshin-dev] specifying multi-objects in a rule</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00707.html</link>
		<description>In the graphical editor, you specify that an object is a multi-object by appending a * to its action (stereotype). Is that what you mean? Cheers,Christian&amp;#xA0;2013/4/19 Christian Krause &amp;lt;me@xxxxxxxxxxx&amp;gt; _______________________________________________ henshin-d...</description>
		<content:encoded><![CDATA[<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">In the graphical editor, you specify that an object is a multi-object by appending a * to its action (stereotype). Is that what you mean?</span><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">Cheers,</div><div style="font-family:arial,sans-serif;font-size:13px">Christian&#xA0;</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/19 Christian Krause <span dir="ltr">&lt;<a href="mailto:me@xxxxxxxxxxx" target="_blank">me@xxxxxxxxxxx</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">In the graphical editor, you specify that an object is a multi-object by appending a * to its action (stereotype). Is that what you mean?<div>
<br></div><div>Cheers,</div><div>Christian&#xA0;</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/4/19 Zille Huma <span dir="ltr">&lt;<a href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div>Hi Christian,<br>
      <br>
      thanks a lot for the quick response. That is exactly what i was
      looking for. My next question would be, how can i determine
      whether a node or edge in a rule is single or multi-object, e.g.,
      in the first example on blog, is there any method of Node or Edge
      class to determin where the &#39;:Message&#39; is a single object or
      multi-object?<br>
      <br>
      best Regards,<br>
      Zille<div><div><br>
      <br>
      On 4/19/2013 3:29 PM, Christian Krause wrote:<br>
    </div></div></div><div><div>
    <blockquote type="cite">
      <div dir="ltr">Hi Zille,
        <div>what exactly do you mean by multi-object? Maybe this blog
          post on multi-rules is helpful:&#xA0;<a href="http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html" target="_blank">http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html</a></div>
        <div><br>
        </div>
        <div>Cheers,</div>
        <div>Christian</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">2013/4/19 Zille Huma <span dir="ltr">&lt;<a href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a>&gt;</span><br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
            <br>
            My question is that can i specify a multi-object in a rule
            or not?<br>
            <br>
            Regards,<br>
            <br>
            -- <br>
            Zille Huma<br>
            Database and Information Systems<br>
            Institute of Computer Science<br>
            University of Paderborn<br>
            Zukunftsmeile 1<br>
            33102 Paderborn, Germany<br>
            <br>
            Tel : <a href="tel:%2B49%280%295251%2F60-3355" value="+495251603355" target="_blank">+49(0)5251/60-3355</a><br>
            Fax : <a href="tel:%2B49%280%295251%2F60-3431" value="+495251603431" target="_blank">+49(0)5251/60-3431</a><br>
            <br>
            Email: <a href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a><br>
            <br>
            _______________________________________________<br>
            henshin-dev mailing list<br>
            <a href="mailto:henshin-dev@xxxxxxxxxxx" target="_blank">henshin-dev@xxxxxxxxxxx</a><br>
            <a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/henshin-dev</a><br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
henshin-dev mailing list
<a href="mailto:henshin-dev@xxxxxxxxxxx" target="_blank">henshin-dev@xxxxxxxxxxx</a>
<a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/henshin-dev</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre cols="72">-- 
Zille Huma
Database and Information Systems
Institute of Computer Science
University of Paderborn
Zukunftsmeile 1
33102 Paderborn, Germany

Tel : <a href="tel:%2B49%280%295251%2F60-3355" value="+495251603355" target="_blank">+49(0)5251/60-3355</a>
Fax : <a href="tel:%2B49%280%295251%2F60-3431" value="+495251603431" target="_blank">+49(0)5251/60-3431</a>

Email: <a href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a></pre>
  </div></div></div>

<br>_______________________________________________<br>
henshin-dev mailing list<br>
<a href="mailto:henshin-dev@xxxxxxxxxxx" target="_blank">henshin-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev" target="_blank">https://dev.eclipse.org/mailman/listinfo/henshin-dev</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
]]></content:encoded>
		<pubDate>Fri, 19 Apr 2013 15:00:44 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00707.html</guid>
		<author>henshin.ck@xxxxxxx (Christian Krause)</author>
	</item>
	<item>
		<title>Re: [henshin-dev] specifying multi-objects in a rule</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00706.html</link>
		<description> _______________________________________________ henshin-dev mailing list henshin-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/henshin-dev -- Zille Huma Database and Information Systems Institute of Computer Science University of Paderborn Zuku...</description>
		<content:encoded><![CDATA[<table width="100%"><tr><td bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #000000; "><font color="#000000">
  
  
    <div class="moz-cite-prefix">Hi Christian,<br>
      <br>
      thanks a lot for the quick response. That is exactly what i was
      looking for. My next question would be, how can i determine
      whether a node or edge in a rule is single or multi-object, e.g.,
      in the first example on blog, is there any method of Node or Edge
      class to determin where the ':Message' is a single object or
      multi-object?<br>
      <br>
      best Regards,<br>
      Zille<br>
      <br>
      On 4/19/2013 3:29 PM, Christian Krause wrote:<br>
    </div>
    <blockquote
cite=""
      type="cite">
      <div dir="ltr">Hi Zille,
        <div>what exactly do you mean by multi-object? Maybe this blog
          post on multi-rules is helpful:&nbsp;<a moz-do-not-send="true"
            href="http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html">http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html</a></div>
        <div><br>
        </div>
        <div>Cheers,</div>
        <div>Christian</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">2013/4/19 Zille Huma <span dir="ltr">&lt;<a
              moz-do-not-send="true" href="mailto:zille.huma@xxxxxx"
              target="_blank">zille.huma@xxxxxx</a>&gt;</span><br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
            <br>
            My question is that can i specify a multi-object in a rule
            or not?<br>
            <br>
            Regards,<br>
            <br>
            -- <br>
            Zille Huma<br>
            Database and Information Systems<br>
            Institute of Computer Science<br>
            University of Paderborn<br>
            Zukunftsmeile 1<br>
            33102 Paderborn, Germany<br>
            <br>
            Tel : <a moz-do-not-send="true"
              href="tel:%2B49%280%295251%2F60-3355"
              value="+495251603355" target="_blank">+49(0)5251/60-3355</a><br>
            Fax : <a moz-do-not-send="true"
              href="tel:%2B49%280%295251%2F60-3431"
              value="+495251603431" target="_blank">+49(0)5251/60-3431</a><br>
            <br>
            Email: <a moz-do-not-send="true"
              href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a><br>
            <br>
            _______________________________________________<br>
            henshin-dev mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:henshin-dev@xxxxxxxxxxx" target="_blank">henshin-dev@xxxxxxxxxxx</a><br>
            <a moz-do-not-send="true"
              href="https://dev.eclipse.org/mailman/listinfo/henshin-dev"
              target="_blank">https://dev.eclipse.org/mailman/listinfo/henshin-dev</a><br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
henshin-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:henshin-dev@xxxxxxxxxxx">henshin-dev@xxxxxxxxxxx</a>
<a class="moz-txt-link-freetext" href="https://dev.eclipse.org/mailman/listinfo/henshin-dev">https://dev.eclipse.org/mailman/listinfo/henshin-dev</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Zille Huma
Database and Information Systems
Institute of Computer Science
University of Paderborn
Zukunftsmeile 1
33102 Paderborn, Germany

Tel : +49(0)5251/60-3355
Fax : +49(0)5251/60-3431

Email: <a class="moz-txt-link-abbreviated" href="mailto:zille.huma@xxxxxx">zille.huma@xxxxxx</a></pre>
  

</font></td></tr></table>]]></content:encoded>
		<pubDate>Fri, 19 Apr 2013 13:51:15 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00706.html</guid>
		<author>zille.huma@xxxxxxx (Zille Huma)</author>
	</item>
	<item>
		<title>Re: [henshin-dev] specifying multi-objects in a rule</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00705.html</link>
		<description>Hi Zille,what exactly do you mean by multi-object? Maybe this blog post on multi-rules is helpful:&amp;#xA0;http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html Cheers,Christian2013/4/19 Zille Huma &amp;lt;zille.huma@xxxxxx&amp;gt; </description>
		<content:encoded><![CDATA[<div dir="ltr">Hi Zille,<div>what exactly do you mean by multi-object? Maybe this blog post on multi-rules is helpful:&#xA0;<a href="http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html">http://www.ckrause.org/2013/01/nested-multi-rules-in-henshin.html</a></div>
<div><br></div><div>Cheers,</div><div>Christian</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/19 Zille Huma <span dir="ltr">&lt;<a href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
My question is that can i specify a multi-object in a rule or not?<br>
<br>
Regards,<br>
<br>
-- <br>
Zille Huma<br>
Database and Information Systems<br>
Institute of Computer Science<br>
University of Paderborn<br>
Zukunftsmeile 1<br>
33102 Paderborn, Germany<br>
<br>
Tel : <a href="tel:%2B49%280%295251%2F60-3355" value="+495251603355" target="_blank">+49(0)5251/60-3355</a><br>
Fax : <a href="tel:%2B49%280%295251%2F60-3431" value="+495251603431" target="_blank">+49(0)5251/60-3431</a><br>
<br>
Email: <a href="mailto:zille.huma@xxxxxx" target="_blank">zille.huma@xxxxxx</a><br>
<br>
______________________________<u></u>_________________<br>
henshin-dev mailing list<br>
<a href="mailto:henshin-dev@xxxxxxxxxxx" target="_blank">henshin-dev@xxxxxxxxxxx</a><br>
<a href="https://dev.eclipse.org/mailman/listinfo/henshin-dev" target="_blank">https://dev.eclipse.org/<u></u>mailman/listinfo/henshin-dev</a><br>
</blockquote></div><br></div>
]]></content:encoded>
		<pubDate>Fri, 19 Apr 2013 13:29:25 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00705.html</guid>
		<author>henshin.ck@xxxxxxx (Christian Krause)</author>
	</item>
	<item>
		<title>[henshin-dev] specifying multi-objects in a rule</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00704.html</link>
		<description>Hi, My question is that can i specify a multi-object in a rule or not? Regards, -- Zille Huma Database and Information Systems Institute of Computer Science University of Paderborn Zukunftsmeile 1 33102 Paderborn, Germany Tel : +49(0)5251/60-3355 Fax : +49...</description>
		<content:encoded><![CDATA[<pre style="margin: 0em;">Hi,</pre><br>
<pre style="margin: 0em;">My question is that can i specify a multi-object in a rule or not?</pre><br>
<pre style="margin: 0em;">Regards,</pre><br>
<pre style="margin: 0em;">--
Zille Huma
Database and Information Systems
Institute of Computer Science
University of Paderborn
Zukunftsmeile 1
33102 Paderborn, Germany</pre><br>
<pre style="margin: 0em;">Tel : +49(0)5251/60-3355
Fax : +49(0)5251/60-3431</pre><br>
<pre style="margin: 0em;">Email: zille.huma@xxxxxx</pre><br>
<br>
]]></content:encoded>
		<pubDate>Fri, 19 Apr 2013 13:08:25 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00704.html</guid>
		<author>zille.huma@xxxxxxx (Zille Huma)</author>
	</item>


	<item>
		<title>Re: [henshin-dev] Improving Variable Sorting</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00703.html</link>
		<description>Hi Matthias, this is a nice performance tweak for the match finder. Thanks a lot for your contribution! I will add your patch to the development branch.Cheers, ChristianVon Samsung Mobile gesendet -------- Urspr&amp;#xC3;ngliche Nachricht --------Von: Matthias Tich...</description>
		<content:encoded><![CDATA[<div>Hi Matthias,&nbsp;</div><div>this is a nice performance tweak for the match finder. Thanks a lot for your contribution! I will add your patch to the development branch.</div><div><br></div><div>Cheers,&nbsp;</div><div>Christian</div><div><br></div><div><br></div><div><div style="font-size:75%;color:#575757">Von Samsung Mobile gesendet</div></div> <br><br><br>-------- Urspr&#xC3;ngliche Nachricht --------<br>Von: Matthias Tichy &lt;tichy@xxxxxxxxxxx&gt; <br>Datum:  <br>An: henshin-dev@xxxxxxxxxxx <br>Betreff: [henshin-dev] Improving Variable Sorting <br> <br><br>Dear all,<br><br>I battled with a weird performance problem in the Henshin interpreter<br>quite some time. My henshin rule contains two nodes in the lhs. One node<br>(T) is fixed to an object by a rule parameter so it is already contained<br>in the partial match. The other (I) has an attribute which is constrained<br>using a parameter. Both are connected by a reference. In my example, there<br>are 2000 objects which are valid with the type constraint for I but only<br>200 of them are valid when taking the reference constraint for the fixed T<br>into account. <br><br>While debugging the VariableComparator, i was surprised that node T has<br>been sorted in after node I which is not good as then the restriction of<br>the target domain in ReferenceConstraint does not work.<br><br>The reason for that is that the VariableComparator does not distinguish<br>between the two cases (attribute condition for I and fixed object for T)<br>in the original method isNodeMatched(). I divided this method into two.<br>One isNodeObjectMatched() considers only whether the node is already in<br>the partialMatch, the other isNodeAttributeMatched() only considers the<br>attribute condition. In the compare()-Method, i check now<br>isNodeObjectMatched() before isNodeAttributeMatched() which results in the<br>correct variable sorting. The performance increased for my example by a<br>factor of 10 due to the possible matchings for I is 200 instead of 2000<br>due the successful target domain restriction in ReferenceConstraint. All<br>tests still run successfully. This change should not decrease the<br>performance for any other case. (I believe :-) )<br><br>I attached the patch.<br><br>Cheers,<br><br>mtt<br><br>-- <br>Matthias Tichy, Assistant Professor<br>Software Engineering Division<br>Department of Computer Science and Engineering<br>Chalmers University of Technology and University of Gothenburg, Sweden<br>Phone: +46-(0)31-772 6031<br>Email: matthias.tichy@xxxxxxxxx<br><br><br><br><br><br><br>Index: src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java<br>===================================================================<br>--- src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java	(revision<br>1801)<br>+++ src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java	(working<br>copy)<br>@@ -461,8 +461,10 @@<br> <br> 			// One of the nodes already matched or an attribute given as a<br>parameter?<br> 			if (partialMatch!=null) {<br>-				if (isNodeMatched(n1)) return -1;<br>-				if (isNodeMatched(n2)) return 1;<br>+				if (isNodeObjectMatched(n1)) return -1;<br>+				if (isNodeObjectMatched(n2)) return 1;<br>+				if (isNodeAttributeMatched(n1)) return -1;<br>+				if (isNodeAttributeMatched(n2)) return 1;<br> 			}<br> 			<br> 			// Get the domain sizes (smaller number wins):<br>@@ -479,10 +481,14 @@<br> 			<br> 		}<br> 		<br>-		private boolean isNodeMatched(Node node) {<br>+		private boolean isNodeObjectMatched(Node node) {<br> 			if (partialMatch.getNodeTarget(node)!=null) {<br> 				return true;<br> 			}<br>+			return false;<br>+		}<br>+		<br>+		private boolean isNodeAttributeMatched(Node node) {<br> 			for (Attribute attribute : node.getAttributes()) {<br> 				String value = attribute.getValue();<br> 				if (value!=null) {<br><br><br>_______________________________________________<br>henshin-dev mailing list<br>henshin-dev@xxxxxxxxxxx<br>https://dev.eclipse.org/mailman/listinfo/henshin-dev<br>]]></content:encoded>
		<pubDate>Thu, 18 Apr 2013 11:13:51 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00703.html</guid>
		<author>henshin.ck@xxxxxxx (Christian Krause)</author>
	</item>


	<item>
		<title>[henshin-dev] Improving Variable Sorting</title>
		<link>http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00702.html</link>
		<description>Dear all, I battled with a weird performance problem in the Henshin interpreter quite some time. My henshin rule contains two nodes in the lhs. One node (T) is fixed to an object by a rule parameter so it is already contained in the partial match. The othe...</description>
		<content:encoded><![CDATA[<pre>Dear all,

I battled with a weird performance problem in the Henshin interpreter
quite some time. My henshin rule contains two nodes in the lhs. One node
(T) is fixed to an object by a rule parameter so it is already contained
in the partial match. The other (I) has an attribute which is constrained
using a parameter. Both are connected by a reference. In my example, there
are 2000 objects which are valid with the type constraint for I but only
200 of them are valid when taking the reference constraint for the fixed T
into account. 

While debugging the VariableComparator, i was surprised that node T has
been sorted in after node I which is not good as then the restriction of
the target domain in ReferenceConstraint does not work.

The reason for that is that the VariableComparator does not distinguish
between the two cases (attribute condition for I and fixed object for T)
in the original method isNodeMatched(). I divided this method into two.
One isNodeObjectMatched() considers only whether the node is already in
the partialMatch, the other isNodeAttributeMatched() only considers the
attribute condition. In the compare()-Method, i check now
isNodeObjectMatched() before isNodeAttributeMatched() which results in the
correct variable sorting. The performance increased for my example by a
factor of 10 due to the possible matchings for I is 200 instead of 2000
due the successful target domain restriction in ReferenceConstraint. All
tests still run successfully. This change should not decrease the
performance for any other case. (I believe :-) )

I attached the patch.

Cheers,

mtt

-- 
Matthias Tichy, Assistant Professor
Software Engineering Division
Department of Computer Science and Engineering
Chalmers University of Technology and University of Gothenburg, Sweden
Phone: +46-(0)31-772 6031
Email: matthias.tichy@xxxxxxxxx






Index: src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java
===================================================================
--- src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java	(revision
1801)
+++ src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java	(working
copy)
@@ -461,8 +461,10 @@
 
 			// One of the nodes already matched or an attribute given as a
parameter?
 			if (partialMatch!=null) {
-				if (isNodeMatched(n1)) return -1;
-				if (isNodeMatched(n2)) return 1;
+				if (isNodeObjectMatched(n1)) return -1;
+				if (isNodeObjectMatched(n2)) return 1;
+				if (isNodeAttributeMatched(n1)) return -1;
+				if (isNodeAttributeMatched(n2)) return 1;
 			}
 			
 			// Get the domain sizes (smaller number wins):
@@ -479,10 +481,14 @@
 			
 		}
 		
-		private boolean isNodeMatched(Node node) {
+		private boolean isNodeObjectMatched(Node node) {
 			if (partialMatch.getNodeTarget(node)!=null) {
 				return true;
 			}
+			return false;
+		}
+		
+		private boolean isNodeAttributeMatched(Node node) {
 			for (Attribute attribute : node.getAttributes()) {
 				String value = attribute.getValue();
 				if (value!=null) {



</pre>]]></content:encoded>
		<pubDate>Wed, 17 Apr 2013 21:49:57 GMT</pubDate>
		<guid isPermaLink="true">http://dev.eclipse.org/mhonarc/lists/henshin-dev/msg00702.html</guid>
		<author>tichy@xxxxxxx (Matthias Tichy)</author>
	</item>

 
	</channel>
	</rss>
<!-- MHonArc v2.6.10 -->
