[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: 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? |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]