← Prev in month
← Prev in thread
Next in thread →
Next in month →
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 →