Using Reference instead of Definition and Prototype elements
tclose opened this issue · 0 comments
In coming up with a name for the element to reference the Structure and Property Layers from the State Layer analogous to Definition
in the Structure Layer (I was thinking of things like Instance
), I thought that perhaps we could simplify it to just use Reference
for any sort of reference to another object and drop the Definition
and Prototype
elements. e.g.
<DynamicsProperties name="IzhikevichBursting">
<Reference url="http://nineml.net/catalog/2.0/izhikevich2003.xml">Izhikevich2003</Reference>
...
</DynamicsProperties>
since it doesn't really matter at this stage whether Izhikevich2003 is an abstraction layer Dynamics
definition or another DynamicsProperties
object. It could also simplify the parsing a little I think if you only have one lookup mechanism to handle.
One side effect of this would also open up the possibility of nesting abstraction layer definitions inside Structure/Property Layer objects e.g.
<DynamicsProperties name="IzhikevichBursting">
<Dynamics>
<Parameter name="a" dimension="voltage"/>
...
</Dynamics>
...
</DynamicsProperties>
although I am not sure whether this is desirable or not.
Finally, in a small stylistic change (that I can take or leave) I was thinking that instead of referring to the name of the object in the body of the Reference
element, it would fit better with non-XML representations that don't have a concept of a body to move the name to an attribute of the reference, e.g.
<Reference name="Izhikevich2003" url="http://nineml.net/catalog/2.0/izhikevich2003.xml"/>