[great-users] Re: problem about running the transformation

Attila Vizhanyo viza at isis.vanderbilt.edu
Tue Nov 29 11:29:23 CST 2005


Hi Arda,

I couldnt follow your argument exactly, but I have prepared an example 
transformation, which
(1) matches DerivedT classes that have 2 or more BaseT base classes.
(2) counts the number of base classes for each such multiple inheritance 
scenario.

Directions:
(1) unzip the zip file
(2) register the MultipleInheritance GME paradigm
(3) open MI_model file in GME, to ensure that you can open the model 
properly using GME
(4) open and execute the transformation checkMultipleInheritance.
(5) observe the output result_model.xml

If you have any problems or questions with the example, please let us know.

Thanks,
Attila



Arda Göknil wrote:

> >>For example, if you want to find out if a class 'Derived' has multiple
> >>base classes, then you will specify one Derived pattern object, 
> Derived,
> >>and two Base pattern objects: Base1, and Base2. Next connect Base1 and
> >>Derived, Base2 and Derived with pattern association representing the
> >>inheritance association. Finally, set the 'for all' attribute to false.
> >>This rule will find one match if class Derived has multiple base 
> classes
> >>of type Base, because each Base pattern object gets bound to a separate
> >>unique Base class object in your input model. If Derived has 0 or 1 
> base
> >>class, the rule will find no match.
> I set the ForAll attribute to false. But when I have two or more 
> multiple inheritance cases, it still returns one match. I want to get 
> only one match in one case. For example If I have two cases, I want to 
> get two matches. But if I set this attribute to false, I always get 
> one match although I get more than one multiple inheritance cases.
> I think in the second match base2 object pattern binds the base class 
> which is binded by the base1 object pattern in the first match. And 
> also in the second match base1 object pattern binds the base class 
> which is binded by the base2 object pattern in the first match. Does 
> the GReAt allows cross binding in multiple matches???
>
>
> */Attila Vizhanyo <viza at isis.vanderbilt.edu>/* wrote:
>
>     The myHouse1.mga model contains 6 Room-s and 7 AdjacentTo
>     connections, 5
>     of which has doors.
>     The rule effectively counts the number of AdjacentTo connections, and
>     discards those with attribute 'hasDoor' set to false (see the HasDoor
>     guard). Then for each match, the rule increments the Quantity
>     counter in
>     OrderItem.
>
>     GReAT does not have any support for variable pattern cardinality,
>     currently.
>     But you can get the effect of fixed multiple pattern cardinality by
>     using multiple pattern objects to specify the cardinality.
>     The GReAT execution engine binds each pattern variable to a unique
>     object in the input model.
>
>     For example, if you want to find out if a class 'Derived' has
>     multiple
>     base classes, then you will specify one Derived pattern object,
>     Derived,
>     and two Base pattern objects: Base1, and Base2. Next connect Base1
>     and
>     Derived, Base2 and Derived with pattern association representing the
>     inheritance association. Finally, set the 'for all' attribute to
>     false.
>     This rule will find one match if class Derived has multiple base
>     classes
>     of type Base, because each Base pattern object gets bound to a
>     separate
>     unique Base class object in your input model. If Derived has 0 or
>     1 base
>     class, the rule will find no match.
>
>     The limitation of this solution is that you cannot refer to the base
>     classes using pattern objects, except Base1 and Base2, which two are
>     selected in a non-deterministic manner.
>     However, you can write UDM code to fetch all bases of class
>     Derived in
>     an Attribute Mapping block, eg:
>     set< Base> bases= Derived.super_classes();
>     subsitute super_classes with the role name of the inheritance
>     association.
>
>     --Attila
>
>
>
>     Arda Göknil wrote:
>
>     > >>In the house2order example the MakeOrder3/MakeOrder rule has its
>     > >>attribute "For All?" set to false, which means that the pattern
>     > matching
>     > >>stops after it found the first match. This is why the
>     MakeOrder rule
>     > >>will find only one room.
>     > I mean the third rule in the House2Order example. In the second
>     rule
>     > the 'ForAll' attribute is set to false as you said. But in the
>     third
>     > rule, the ForAll attribute is not set to fal se and the quantitiy
>     > attribute of Order is calculated according to the number of the
>     > matches and the attribute is five, not ten.
>     > In my model, I have one parent class and two sub classes. When I
>     run
>     > my multiple inheritance pattern, I expected only one match but
>     there
>     > are two different matches. When I specify the pattern
>     cardinality of
>     > child classes as 2..* and the pattern cardinality of parent
>     classes as
>     > 1, I expect one parent class and at least two child class in one
>     > match. If there is a second multiple inheritance case in the
>     model, it
>     > will return in the second match. And in my case when the number
>     of the
>     > child classes which are inherited from the same class increases, I
>     > expect the number of the matches not to increase but it also
>     increases.
>     > Am I missing something?
>     >
>     > */Attila Vizhanyo /* wrote:
>     >
>     > The pattern cardinality att ribute of pattern objects in GReAT
>     has the
>     > following semantics:
>     > - the cardinality attribute set to 0 means negative application
>     > condition, that is, the pattern matching returns true, if the
>     > specified
>     > pattern could not be found in the input graph.
>     > - any other value than 0 corresponds to 'positive' application
>     > condition, with no regard to pattern cardinality. The pattern
>     > matching
>     > returns true, if the specified pattern can be fou nd in the input
>     > graph.
>     >
>     > Therefore if you specify any non-zero pattern cardinality, the
>     > pattern
>     > matching will return with as many matches as many exists for the
>     > given
>     > input and pattern graph.
>     >
>     > In the house2order example the MakeOrder3/MakeOrder rule has its
>     > attribute "For All?" set to false, which means that the pattern
>     > matching
>     > stops after it found the first match. This is why the MakeOrder
>     rule< BR>> will find only one room.
>     >
>     > HTH,
>     > Attila
>     >
>     >
>     >
>     > Arda Göknil wrote:
>     >
>     > > Hi Daniel,
>     > > It helped me to fix my problem but now I have another problem.
>     I am
>     > > trying to implement a basic transformation between UML and Java
>     > models
>     > > based on very simple UML and Java meta models. In one of my
>     > rules, I
>     > > want to define the pattern of multiple inheritance. In my
>     > structure, I
>     > > have one class called parent class whose cardinality pattern is
>     > 2..*
>     > > and one class called child class whose cardinality pattern is 1.
>     > These
>     > > two classes are connected each other via an connection named
>     > > Inheritance. But in the match of the rule, I have two matches
>     > instead
>     > > of one appropriate match for only one multiple inheritance case.
>     > For
>     > > example if the model has a parent class and two subclasses, the
>     > engine
>     > > returns two matches.
>     > > I am not sure about the use of cardinality patterns but when I
>     read
>     > > the Great User Manual, It does not include anything about the
>     > use of
>     > > cardinality patterns. In the House2Order example, there is two
>     Room
>     > > class in the House2Order example and there is only one match
>     > insted of
>     > > two matches if there is two room which have a room. Is it
>     abour the
>     > > cross productions or something else?
>     > >
>     > > */Daniel Balasubramanian /* wrote:
>     > >
>     > > Hi Arda,
>     > >
>     > > That exception means that one of your input models cannot be
>     > > opened properly, perhap s because you created it with a certain
>     > > paradigm, and then somehow modified that paradigm. To correct the
>     > > error, simply open both of the input models in GME, and it will
>     > > give you a message s aying something like, "The model is not
>     in the
>     > > current paradigm, would you like to upgrade?" - say "Yes", and the
>     > > model will be upgraded to the current paradigm. Save the model,
>     > > then close GME, and try re-running your transformation. (Be sure
>     > > to do this for all of your input models)
>     > >
>     > > Please let me know if this does not f ix the problem.
>     > >
>     > > Thanks,
>     > > Daniel
>     > >
>     > >
>     > >
>     > > -----Original Message-----
>     > > From: great-users-bounces at list.isis.vanderbilt.edu on behalf of
>     > > Arda Göknil
>     > > Sent: Thu 11/24/2005 6:27 AM
>     > > To: great-users
>     > > Cc:
>     > > Subject: [great-users] Re: problem about running the
>     transformation
>     > > Hi,
>     > > I configure the path ("C:\Progra m Files\Microsoft Visual
>     > > Studio\VC98\Bin"). And I can run the samples in GREAT but when I
>     > & gt; try to invoke my example, I get an exception (Exception: Com
>     > > Exception: The paradigm is not registered). Now what should I
>     do???
>     > >
>     > > Attila Vizhanyo wrote:
>     > >
>     > > Hi Arda,
>     > >
>     > > We have a great-users list, so please direct your great-related
>     > > questions to great-users at list.isis.vanderbilt.edu.
>     > >
>     > > When you run the GReAT Master Interpreter make sure you have a
>     > > valid config file name (with absolute path) specified in the top
>     > > of the dialog.
>     > > Use the “R” button to generate a config file path that points to
>     > > the transformation folder.
>     > > < BR>The problem is not necessarily related to the config file
>     > > opening process.
>     > > If you use GReAT with VC6, make sure that the location of
>     > > vcvars32.bat is in path. (e.g. "C:\Program Files\Microsoft Visual
>     > > Studio\VC98\Bin")
>     > > If you use GReAT with VC71, make sure that the location of
>     > > vcvars32.bat is in path. (e.g. "C:\Program Files\Microsoft Visual
>     > > Studio .NET 2003\Common7\Tools”)
>     > >
>     > > HTH,
>     > > Attila
>     > >
>     > > -----Original Message-----
>     > > From: gme-users-bounces at list.isis.vanderbilt.edu
>     > > [mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf Of
>     > > Arda Göknil
>     > > Sent: Wednesday, November 23, 2005 3:34 AM
>     > > To: gme-users
>     > > Subject: [gme-users] problem about running the transformation
>     > >
>     > > Hi,
>     > > I am trying to develop a transformation from UML models to Java
>     > > models by using Great. (It is my first experience in GREAT.)
>     > > When I interpret the transformation by using GreAt Master
>     > > Interpreter, there is no problem. But when I try to invoke the
>     > > Graph Rewrite Engine, a message box appe ars and throws an
>     > > exception. (Exception: Com Exception: File co uld not be opened).
>     > > This exception is thrown when the engine is trying to load the
>     > > NewConfiguration.mga. How can I solve this problem?
>     > > And also when I try to to invoke the engine on the House2Order
>     > > sample of Great, there is an error which tells to add /Vc98/bin
>     > > directory to system path while the engine is trying to load the
>     > > config.mga file.
>     > >
>     > > Arda Goknil
>     > >
>     > >
>     > > _____
>     > >
>     > > To help you stay safe and secure online, we've developed the all
>     > > new Yahoo! Security Centre.
>     > >
>     > >
>     > >
>     > > _____
>     > >
>     > > Yahoo! Messenger NEW - crystal clear PC to PC calling worldwide
>     > > with voicemail
>     > >
>     > >
>     > > _______________________________________________
>     > > great-us ers mailing list
>     > > great-users at list.isis.vanderbilt.edu
>     > > http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>     > >
>     > >
>     > >
>     >
>     ------------------------------------------------------------------------
>     > > Yahoo! Model Search
>     > >
>     > > - Could you be the next catwalk superstar? Check out the
>     > competition
>     > >
>     > > now
>     > >
>     >
>     >------------------------------------------------------------------------
>     > >
>     > >_______________________________________________
>     > >great-users mailing list
>     > >great-users at list.isis.vanderbilt.edu
>     > >http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>     > >
>     > >
>     > _______________________________________________
>     > great-users mailing list
>     > great-users at list.isis.vanderbilt.edu
>     > http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     > How much free photo storage do you get? Store your holiday snaps
>     for
>     > FREE with Yahoo! Photos. *Get Yahoo! Photos*
>     >
>     >
>     >
>     >------------------------------------------------------------------------
>     >
>     >_______________________________________________
>     >great-users mailing list
>     >great-users at list.isis.vanderbilt.edu
>     >http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>     >
>     >
>     _______________________________________________
>     great-users mailing list
>     great-users at list.isis.vanderbilt.edu
>     http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>
>
> ------------------------------------------------------------------------
> Yahoo! Messenger 
> <http://us.rd.yahoo.com/mail/uk/taglines/default/messenger/*http://uk.messenger.yahoo.com%20> 
> NEW - crystal clear PC to PC calling worldwide with voicemail 
> <http://us.rd.yahoo.com/mail/uk/taglines/default/messenger/*http://uk.messenger.yahoo.com%20> 
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>great-users mailing list
>great-users at list.isis.vanderbilt.edu
>http://list.isis.vanderbilt.edu/mailman/listinfo/great-users
>  
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arda.zip
Type: application/x-zip-compressed
Size: 30386 bytes
Desc: not available
Url : http://list.isis.vanderbilt.edu/pipermail/great-users/attachments/20051129/b05031d5/arda.bin


More information about the great-users mailing list