logo       

Re: A list of proposed changes to semantics to makein CellML 1.2: msg#00030

Subject: Re: A list of proposed changes to semantics to makein CellML 1.2
On Sat, Dec 22, 2007 at 11:19:52AM +1300, Poul Nielsen wrote:
> I think that Jonathan is correct - the concept of 'in' and 'out'   
> does not make sense in a declarative description. One way to remedy  
> this would be to remove the 'public_interface' and  
> 'private_interface' attributes from the <variable> element and  
> replace them with an 'interface' attribute which could assume values  
> "public", "private", or "none". This is a pretty fundamental change  
> to the specification but I think that it better reflects the  
> declarative intent of CellML model descriptions.

How would that work for a component like B below, which has both a public
and private interface for the same variable?

Jonathan.


> On 2007 Dec 22, at 03:20, Jonathan Cooper wrote:
> 
> > On Thu, Dec 20, 2007 at 12:30:32AM +0800, David Nickerson wrote:
> >>> * The current specification says:
> >>>   "A variable with either a private_interface or public_interface  
> >>> attribute
> >>>    value of "in" must be mapped to no more than one other  
> >>> variable in the
> >>>    model. [ Note that a similar restriction does not apply to  
> >>> variables with
> >>>    interface values of "out". An output variable can be mapped to  
> >>> multiple
> >>>    input variables in various components in the current model. ]"
> >>>
> >>> The problem with this is that it doesn't properly account for
> >>> mappings where a variable is forwarded into an encapsulated  
> >>> block. As
> >>> an example, consider the following encapsulation hierarchy (higher
> >>> components encapsulate lower ones)...
> >>>
> >>>                    A
> >>>                    |
> >>>                    B
> >>>                   / \
> >>>                  C   D
> >>>
> >>>   Suppose that component A has, for variable v,
> >>>   public_interface="none", private_interface="out", and B has for
> >>>   variable v, public_interface="in", private_interface="out"
> >>>   (connected to A), and C and D have public_interface="in",
> >>>   private_interface="none", both of which are connected to B.
> >>>
> >>>   There is no reason why this should not be valid. However, the
> >>>   specification contradicts itself on whether this is allowed. On  
> >>> one
> >>>   hand, because B has private_interface="out", it "can be mapped to
> >>>   multiple input variables in various components in the current
> >>>   model.", but because it has a public interface of in, it "must be
> >>>   mapped to no more than one other variable in the model".
> >>>
> >>>   This can be fixed by firstly defining the interpretation of
> >>>   connections and interfaces, and then adding constraints based on
> >>>   that which actually describe which connections are allowed to each
> >>>   set of variables.
> >>
> >> will be interesting to see how such a definition ties in with the  
> >> idea
> >> of input variables becoming output variables based on the way the
> >> components are hooked together :)
> >
> > Indeed.
> >
> > The use of "in" and "out" on interfaces very strongly implies that
> > connections have a directionality, and this is also reflected in the
> > quote from the specification above - it assumes that variables are  
> > only
> > defined in one place, and hence it doesn't make sense to import a
> > variable (via an "in" interface) from multiple locations.  It does
> > however make sense to export a variable to multiple locations, or  
> > forward
> > an imported variable to multiple locations (the example Andrew gives).
> >
> > If we don't want connections to have directionality, then I think this
> > requires quite a major change in the specification, even if only to  
> > avoid
> > user confusion.  For example, I would want to deprecate the use of  
> > "in"
> > and "out", and instead allow public_interface="yes" or
> > public_interface="no" (perhaps a synonym for "none") and similarly for
> > private interfaces.  The terms used in the language then reflect the
> > nature of the interfaces - if connections are bidirectional, then it
> > doesn't make sense to talk of an "in" interface, since it may function
> > either as input or output depending on the other components in the
> > system.
> >
> > Jonathan.
> >
> > -- 
> > Jonathan Cooper      MSN: msn-1rRMHruswhi1Qrn1Bg8BZw@xxxxxxxxxxxxxxxx      
> > www: jonc.me.uk/
> >
> > We are tribbles of Borg. Prepare to be replicated.
> > _______________________________________________
> > cellml-discussion mailing list
> > cellml-discussion-+N4dcC6UsuQdnm+yROfE0A@xxxxxxxxxxxxxxxx
> > http://www.cellml.org/mailman/listinfo/cellml-discussion
> 
> _______________________________________________
> cellml-discussion mailing list
> cellml-discussion-+N4dcC6UsuQdnm+yROfE0A@xxxxxxxxxxxxxxxx
> http://www.cellml.org/mailman/listinfo/cellml-discussion

-- 
Jonathan Cooper      MSN: msn-1rRMHruswhi1Qrn1Bg8BZw@xxxxxxxxxxxxxxxx      www: 
jonc.me.uk/

I haven't lost my mind... It's backed up on tape somewhere.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
science.linguis...    culture.sf.lite...    video.mplayer.c...    yellowdog.gener...    ietf.rfc822/199...    emacs.help/2002...    redhat.release....    kernel.speakup/...    java.openejb.de...    debian.devel.gt...    xfree86.newbie/...    bug-tracking.ma...    pam/2003-05/msg...    games.devel.ope...    user-groups.lin...    music.pancham/2...    network.mq.deve...    web.html.genera...    arklinux.bugs/2...    linux.ecasound/...    qnx.openqnx.dev...    org.user-groups...    file-systems.sf...    trustix.contrib...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe