Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [amp-dev] Antwort: Re: IAgentChild


You know, what we really need is just to do a telecon. I know we has one planned, but we should have one just to discuss these issues, I think. This week is quite full for me, but let me know if there is a good time to set that up?

On Jun 22, 2011, at 11:59 AM, Miles Parker wrote:


On Jun 21, 2011, at 11:10 PM, Urs Frei wrote:

Hi Miles,

I think there was a slight missunderstanding concearning the IAgentChild issue. All we tried to accomplish here was just to get all tests and all examples running.

Yes, that's what we intended. I just wasn't sure when it got it and want to make sure we follow up on it.

I'm aware that you do not agree with the design we've chosen to add SD codegen functionality. We definitely need to talk about that again. I think I didn't quite get your point when you last mentioned your concearns. I think it's quite challenging to talk about design issues on e-mail basis.

True!

The design we've chosen is a very global one. But it's not the only way to go. It was just the one we've decided to take. So we're very open for change requests. In our opinion, this design is the base to get a common sense of what we're trying to accomplish.

A big problem is the fact, that a lot of requirements exist neither as tests nor as developer documentation. This makes it really hard (if not impossible) for us to add or change anything in the AMP environment. In fact, this will make contributions of every committer difficult. How would I know if I'm not breaking anything when committing?

I can see your frustration very well. :) I also see that we're making progress on the testing, which is great. But of course even if we had perfect test coverage that wouldn't address higher level design issues.

But one thing I should point out is that the high-level design approach for Ascape is pretty well described, both in papers and documentation. See e.g.:


And in Javadoc (though some of this may be a bit out-of-date):


The semantics of rule execution and agent structural hierarchy in particular are well defined.

Now...I am *not* saying that this is the best way to do things, only that it is one way that has worked at least for the particular target domain. Now that we are bringing SD in to the picture we will want to modify that or even throw it out altogether, but I think that the Acape frame -- with Escape as a simple exemplar extension -- gives us a relatively simple place to start. In fact, I know that there are things that are wrong with Ascape API, for example Agents have to explicitly extend a subclass and it would be better if they could implement an interface.

So..the reason that the IAgentChild thing is hard for me to understand the need for is that Ascape already has support for Agent hierarchies, as does MetaABM/Acore. We also have semantics for starting a simulation and so on. So I think I just need help understanding why those existing mechanisms can't be reused. It feels like I'm missing some essential point here. I'll also take a look at the new example models ... perhaps that will make it clear.

But no matter what we do, we don't want want to break the existing Ascape API codegen. If we need to we can just break that apart further. But right now, Scape.xpt is used for both the Escape and Ascape targets so even if we decide that it makes sense to change Escape, we Probably want to keep Ascape backward compatible.

Another completely reasonable option is to just declare the existing codegen mature and being discussing an entirely fresh approach to all of this, using Eclipse idioms such as providers, etc.. I am completely open to that, and in fact that's what the ICompositionProvider and other features are designed to support.


Getting back to the Ascape issue... What is it exactly that doesn't run with Ascape? How does Ascape reference outside classes? And what exaclty are the "outside" classes? It was not our intension to change Ascape models at all. SD is supposed to end only in Escape models. Which test can I run to see if my future changes will fix the problem?

The Ascape generated code now imports IAgentChild, requiring a dependency on the o.e.a namespace that didn't exist before.


The git repo shows the same log as my local repo. When pushing my changes to git yesterday, nothing got changed in the log. So what git is telling you is correct. :-)

Good news. :)

cheers,

Miles


Cheers,
Jonas & Urs




Von:        Miles Parker <milesparker@xxxxxxxxx>
An:        AMP developer mailing list <amp-dev@xxxxxxxxxxx>
Datum:        22.06.2011 02:57
Betreff:        Re: [amp-dev] IAgentChild
Gesendet von:        amp-dev-bounces@xxxxxxxxxxx





I looked a little closer at this, and it seems that the changes did not get into the Indigo build...I was actually going against a slightly newer version. Weird. :)

On Jun 21, 2011, at 5:53 PM, Miles Parker wrote:

>
> Hi guys,
>
> The good news is that it looks like some of the important SD stuff got back into the final build, though technically we shouldn't have been making any changes. :) The bad news is that we ended up with a regression. See below.
>
> I'm a little worried that some stuff might have gotten written over in the process but I haven't looked carefully through everything. I'm honestly completely confused about when changes happened and what got into the build. :) I'm not sure what we decided to do with the whole IAgentChild thing. I guess perhaps get things working and then revisit. On balance, it is probably better to have the SD stuff working than to worry about having the "perfect" codegen for Escape. That's sort of the point of codegen. The problem though with the below is that it breaks the Ascape models since the definitely can't reference outside classes. Can we put the change back in so that this only affects the Escape generation? This won't work for Indigo but we can have a fix in the update site. Do you know when you put that back in and then when it was merged back and pushed to the main repos? I'm not trusting what git is telling me anymore.
>
> More generally, now that we're though the Indigo crunch, let's get back to the issue of how we can get the functionality below using the existing Ascape API as much as possible. Let's follow up on the relevant bug(s).
>
>
http://git.eclipse.org/c/amp/org.eclipse.amp.git/commit/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.escape/src/metaabm/escape/tmpl/EscapeAspect.xpt?id=a50c6901bc1abb1f1b5276b76af4af56ba0e527b
>
> Unfortunatly,


_______________________________________________
amp-dev mailing list
amp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/amp-dev




________________________________________________________________

Urs Frei, Ingenieur FH
Wissenschaftlicher Mitarbeiter

Fon +41 71 226 12 22
Fax +41 71 226 12 13
Web http://www.fhsg.ch

FHS St.Gallen, Hochschule für Angewandte Wissenschaften
IMS-FHS | Poststrasse 28 | Postfach 1664 | 9001 St.Gallen | Switzerland


FHO Fachhochschule Ostschweiz_______________________________________________
amp-dev mailing list
amp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/amp-dev


______________________________
Miles T. Parker
President and Chief Software Architect
Metascape, LLC
Project Lead
Eclipse Agent Modeling Project

tel: 509-643-4441
skype: milestravisparker
______________________________


Back to the top