Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] XSD: MembraneProperties does not extend either Standalone or Base and so does not have an id attribute #161

Closed
sanjayankur31 opened this issue Jun 17, 2021 · 3 comments · Fixed by #189
Assignees
Labels
C: NeuroML2 standard Component: NeuroML 2 standard T: bug Type: bug T: question Type: question

Comments

@sanjayankur31
Copy link
Member

sanjayankur31 commented Jun 17, 2021

I was looking at how one should refer to membrane properties while constructing a path for record from exposures. In PyNeuroML and libNeuroML, MembraneProperties does not take an id attribute. This is because in the schema, it does not extend Standalone or Base.

So, when one uses MembraneProperties(id=...) in libNeuroML, the generated NeuroML file does not have an id attribute. This means that while constructing the path, one has to use membraneProperties/... instead of the id of the membrane property. However, my understanding is that every Component should be able to take an ID. Bits that are not components should be without ID (See NeuroML/Documentation#15).

So should membrane properties extend standalone or base in the schema to ensure it has an ID? if not, why not? Why should things like biophysical properties have IDs which can be used to refer to them but not membrane properties?

This is all just to figure out how paths are to be constructed to record from exposures etc. There needs to be some explanation of why certain elements can be referred by ID but others need to be referred by name, and this needs to be clear from the schema documentation itself (which is generated from the LEMS description xml files), since users should not have to read the XSD file to figure this out.

Extra information:

If I add an id field to the nml file manually, jnml is perfectly happy simulating the model. Of course, since it's not listed in the schema, jnml -validate does not like it.

@sanjayankur31
Copy link
Member Author

This has come up again because we're adding helper methods in libNeuroML to basewithoutid. MembraneProperties does not even extend that, so it inherits from GenerateDSSuper and does not receive the helper functions we've added to basewithoutid.

@sanjayankur31
Copy link
Member Author

@sanjayankur31
Copy link
Member Author

Fixed in #189. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: NeuroML2 standard Component: NeuroML 2 standard T: bug Type: bug T: question Type: question
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants