← Prev in month ← Prev in thread
Next in thread → Next in month →

Modeling Language Issue

From
Bob Eberlein <>
Date
2013-10-23T01:57:58+00:00
ID
Thread
Modeling Language Issue
Hi Everyone,

    

    The following are some issues for discussion on Thursday.  Karim and
    I have talked briefly about some of these, but not really arrived at
    a conclusion so more input would be great.

    

               Bob Eberlein

    

    
    
Open Issues:

    
NameSpace - some variations are possible here

    
Tags:  For
      tags there
      can be XMILE  defined tags
      or vendor:tag
      where the Vendor set is currently anylogic, forio, isee, powersim,
      simile,
      vensim and others can add names. There is no namespace search path
      for tags.
      Always use  vendor:tag for
      vendor
      specific tags. There is no nesting.

    
In models: Names use the format .x.y.z where
      the leading .
      is for the global namespace followed by nested name spaces. When
      there is no
      leading . the local namespace is searched first for the leading
      name, followed
      by a namespace search path (which might be empty), followed by the
      global
      namespace.

    
Units in models: Could use a completely
      distinct namespace
      or could use .units which would then be reserved. No nesting of
      namespaces in
      any case.

    
Global model namespaces: .std for all XMILE
      identifiers and
      vendor reserved namespaces .anylogic, .forio, .isee, .powersim,
      .simile,
      .vensim

    
Models: Could use either .modelname or
      .model.modelname. The
      advantage of the latter is that collision with the above global
      namespaces is
      not an issue, on the other hand it is cumbersome.

    
User: Could use .user.username where .user is
      reserved and
      anyone can make up .username. Alternative is to allow people to
      create
      .username which could generate conflicts.

    
Vendor: Not on the list should ask to reserve a
      name, but
      likely would also just use .vendor and hope for the best.

    
Namespaces in a model are defined by the model
      name (could
      be an optional namespace tag), if it is a singly instantiated
      model or by the
      instantiation name for multiply instantiated models.

    
A subscript defines its own namespace.  The namespace in use is
      determined by
      position eg if we have population[sex,age] then
      population[male,infant] is the
      same as population[sex.male,age.infant]. But using male or infant
      out of
      context would not work since they are not in the model's local
      namespace.

    
Opaqueness of Macros - should there be a
      mechanism to access
      internal macro variables form elsewhere?

    
init_eqn for stocks with both eqn and optional  init_eqn for rates and
      auxiliaries (the
      latter is the old N equation in Dynamo). 

    
 

    
Subscripts: 

    
Equation with subscripts

    
should

    
eqn: Population * mortality

    
be allowed as shorthand for

    
eqn: 
      Population[sex,age]*mortality[sex,age]

    
?

    
should

    
eqn: Population * base_mortality *
      effect_pollution 

    
be allowed as shorthand for

    
eqn: Population[region,age] *
      base_mortality[age] *
      effect_pollution[region]

    
?

    
 

    
Units: should we allow direct use in equations
      as in

    
auxiliary: output

    
                units:
      $/year

    
                eqn:
Capital
      * 2(1/year)

    
or similar?

    
 

    
    
    
    
    
    
    
  X-NONE
  X-NONE
← Prev in month ← Prev in thread
Next in thread → Next in month →