Re: [xsl] Petri net to BPEL model transformation > How to find patterns?

Subject: Re: [xsl] Petri net to BPEL model transformation > How to find patterns?
From: stgn@xxxxxxx
Date: Mon, 04 Sep 2006 17:45:30 +0200
Thanks for both your postings.

I'll have a look the the book Professional XSL. It might take a few days until the library has it ready.

Thanks for the hint. Unfortunatelly, I haven't found any work by Michael Corning on PNML neither in Google, Google Scholar, Yahoo nor CiteSeer. However, a few webpages mention PNML with reference to his book Web Service Faceplates from Wrox.

Regards
Sagi




At 04.09.2006 15:22 +0200, you wrote:
>just checked the page closer, is old and out of date. I suppose if you
>can find the book used somewhere it can be useful or if you can find
>Corning's work via google on PNML.
>
>Cheers,
>Bryan
>
>On 9/4/06, bryan rasmussen <rasmussen.bryan@xxxxxxxxx> wrote:
>> The book Professional XSL from Wrox had some transforms for working
>> with Petri Nets, can't remember exactly what was being done though.
>>
>> Michael Corning, whose transforms were used, has a homepage here (not
>> sure about current status of it)
>> http://authors.aspalliance.com/mcorning/ where some mention is made of
>> the petri nets stuff.
>>
>> Cheers,
>> Bryan
>>
>> On 9/4/06, stgn@xxxxxxx <stgn@xxxxxxx> wrote:
>> > Hello
>> >
>> > How can I find/describe patterns in a Petri net graph with XSLT?
>> >
>> > For instance a sequence, a concurrency, AND-split, AND-join, 
>OR-split,
>> > OR-join or a while loop.
>> >
>> > Below you see a Petri net model (source model) which I would like to
>> > transform into a BPEL model (target model).
>> >
>> > Can you tell me what the corresponding XSLT code would look like?
>> >
>> > My problem is to find patterns in a graph representation (Petri net)
>> > and to transform them into a tree representation (BPEL). It might be
>> > that such a transformation is not possible with the Petri net example
>> > given below or that the Petri net XML would need further information
>> > (for example an attribute attached to a transition saying "this is 
>the
>> > start of an AND-split").
>> >
>> > I am grateful for any hints. If you need any further information to
>> > solve the problem, please let me know.
>> >
>> > Regards
>> > Sagi
>> >
>> > --------------------
>> > source model
>> > --------------------
>> > <?xml version="1.0"?>
>> > <petrinet>
>> >
>> >         <!-- start of Petri net -->
>> >         <place id="1"></place>
>> >         <transition id="2"></transition>
>> >
>> >         <!-- upper flow of concurrency -->
>> >         <place id="10"></place>
>> >         <transition id="11"></transition>
>> >         <place id="12"></place>
>> >         <transition id="13"></transition>
>> >         <place id="14"></place>
>> >
>> >         <!-- lower flow of concurrency -->
>> >         <place id="20"></place>
>> >         <transition id="21"></transition>
>> >         <place id="22"></place>
>> >
>> >         <!-- end of Petri net -->
>> >         <transition id="3"></transition>
>> >         <place id="4"></place>
>> >
>> >         <!-- arcs connecting places and transitions -->
>> >         <arc>
>> >                 <from>1</from>
>> >                 <to>2</to>
>> >         </arc>
>> >         <!-- next 2 arcs define an AND-split -->
>> >         <arc>
>> >                 <from>2</from>
>> >                 <to>10</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>2</from>
>> >                 <to>20</to>
>> >         </arc>
>> >         <!-- upper flow of concurrency -->
>> >         <arc>
>> >                 <from>10</from>
>> >                 <to>11</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>11</from>
>> >                 <to>12</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>12</from>
>> >                 <to>13</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>13</from>
>> >                 <to>14</to>
>> >         </arc>
>> >         <!-- lower flow of concurrency -->
>> >         <arc>
>> >                 <from>20</from>
>> >                 <to>21</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>21</from>
>> >                 <to>22</to>
>> >         </arc>
>> >
>> >         <!-- next 2 arcs define an AND-join -->
>> >         <arc>
>> >                 <from>14</from>
>> >                 <to>3</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>22</from>
>> >                 <to>3</to>
>> >         </arc>
>> >         <arc>
>> >                 <from>3</from>
>> >                 <to>4</to>
>> >         </arc>
>> > </petrinet>
>> >
>> >
>> >
>> > --------------------
>> > target model
>> > --------------------
>> > <?xml version="1.0"?>
>> >
>> > <process>
>> >         <sequence>
>> >                 <invoke name="2"/>
>> >                 <flow>
>> >                         <!-- upper flow of concurrency -->
>> >                         <sequence>
>> >                                 <invoke name="11"/>
>> >                                 <invoke name="13"/>
>> >                         </sequence>
>> >                         <!-- lower flow of concurrency -->
>> >                         <sequence>
>> >                                 <invoke name="21"/>
>> >                         </sequence>
>> >                 </flow>
>> >                 <invoke name="3"/>
>> >         </sequence>
>> > </process>

Current Thread