[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