Handling model variables not mentioned in a view

This forum is for discussion of the System Dynamics model representation standard XMILE. Discussion here will be monitored by the Society's technical standards committee with ideas and concerns conveyed to the OASIS Technical Committee responsible for defining the standard.
Forum rules
Please note: By posting here you grant permission to the Society Technical Committee members to repost with attribution on the OASIS discussion forum. If you have material for which you wish to maintain copyright control please post a link to the copyrighted work.
Post Reply
Robert Muetzelfeldt
Posts: 29
Joined: Sun Jan 08, 2012 7:20 pm
Location: Edinburgh, Scotland, UK

Handling model variables not mentioned in a view

Post by Robert Muetzelfeldt » Thu Dec 10, 2015 11:24 am

I am developing a tool to translate XMILE into the model representation format used by Simile. I have a question regarding how this tool - and indeed any software that claims to be XMILE-compliant - should handle the case where a variable (stock, flow or aux) can be represented in the model, but not mentioned in any of the model's views.

According to the XMILE spec:
Section 5.1.1.
Any object appearing in the <variables> tag (stock, flow, auxiliary, module, and group) is RECOMMENDED to have a related <stock|flow|aux|module|group> tag in at least one of the,<view> tags associated with its model in order to be XMILE compatible.

First, there is a certain ambiguity here. Leaving out the details, this sentence says:
Any object ..... is RECOMMENDED to have a .... in order to be XMILE compatible.
"... in order to be XMILE compatible" implies a MUST, but it is only RECOMMENDED. So, if an XMILE document has a variable which is not in any view, is it XMILE compatible, or not?

If it isn't, then RECOMMENDED should be replaced by MUST.

If it is (i.e. if an XMILE document can have variables not in any view), then this creates a real headache for the developers of any software that claims to be XMILE compliant and uses view information. What is it to do when it encounters a variable which is not in any view, and therefore has no diagram-position information associated with it? The only answer I can see is that it would have to have its own mechanism for working out a suitable position for such variable(s) - perhaps using a graph-layout algorithm that allows some nodes to have fixed positions (those in a view), and automatically positions the un-viewed floating ones. This is a considerable additional burden on the XMILE-importing software.

It might be argued that, in virtually all cases, view 1 will contain layout information for all variables. However, the problem is that the software could be given a perfectly valid XMILE model for which that information is missing for some variables, and must be able to handle it.


Karim Chichakly
Posts: 46
Joined: Fri Apr 10, 2009 11:52 am

Re: Handling model variables not mentioned in a view

Post by Karim Chichakly » Mon Dec 21, 2015 3:43 pm

The problem is that there are indeed popular SD modeling packages that do not require that all variables appear in a view. To be compatible with them, this clause is necessary (but you are right that the use of XMILE-compliant is confusing). In such packages, those variables do not appear in any view, so the best solution (and what we do) is not to show them in the view.

Leonard Malczynski
Posts: 96
Joined: Fri Jan 16, 2009 11:12 am
Location: Albuquerque, NM USA

Re: Handling model variables not mentioned in a view

Post by Leonard Malczynski » Tue Dec 22, 2015 11:18 am

This is an interesting issue beyond XMILE.
A variable not in any diagram may be inactive at best (e.g. just showing a result or aggregation) or logic altering at worst.

Powersim Studio has an icon indicator and pull-down list to show variables that do not appear on any diagrams.
The SDM-Doc tool will point out variables not in a View in Vensim.
Vensim Model Check will point out variables not used in the model (i.e. terminal variables that are not endogenous).
Unfortunately I am unfamiliar with how and if other tools manage this issue.

This is a model quality concern that is more subtle than what John Sterman calls 'add factoring', a kinder term for what we used to call fudge factor.
Those factors may be visible in a model (especially in the econometric models Sterman refers to), not so in the current case.

Model evaluators and model builders should practice due diligence when checking model quality.

Jean-Jacques Lauble
Posts: 74
Joined: Fri Aug 23, 2013 3:49 pm

Re: Handling model variables not mentioned in a view

Post by Jean-Jacques Lauble » Wed Dec 23, 2015 3:34 am


Xmile seems to permit putting or not putting a variable in a view.

But why does it 'recommend' putting it in a view?

I personally check my Vensim models with SDM-doc to see if there is a variable not in any view.
If there is one, there are two possibilities.

First: there is a calculation supposed to have some utility that is not viewed somewhere. This is in contradiction with my principle of showing all the calculations somewhere, and this is the utility of views at least for me. Showing some calculations and not some others seems illogical, and I do not see any reason for doing it. In this case I just add the missing variable to one view.

Secondly: It is possible that there is a constant or a variable that has no more utility after some correction and that I forgot to erase not seeing it anywhere. In this case I just erase the variable.



Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests