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

Enhancement: show errors if there are issues with NeuroML #468

Closed
JustasB opened this issue Jan 24, 2016 · 6 comments
Closed

Enhancement: show errors if there are issues with NeuroML #468

JustasB opened this issue Jan 24, 2016 · 6 comments

Comments

@JustasB
Copy link

JustasB commented Jan 24, 2016

There are cases where Geppetto just shows the loading spinner without giving an error or a message.

There is a particular example of this happening when the synapse used in the NeuroML-defined network was not valid. Eventually, after a few posts involving the team it was discovered that this was the case.

It would likely save time for the team in the future if an error message regarding the issue with supplied NeuroML could be shown to the user. This way, future users would be able to solve their own problems without involving the team.

E.g.: https://github.com/JustasB/Mig3DTest/blob/be8239f81adff74726231441385317344ba087cb/NeuroML2/Networks/Bulb_2MC_20GC.net.nml#L152

This happened in the course of working on a model here: OpenSourceBrain/MiglioreEtAl14_OlfactoryBulb3D#16

@tarelli
Copy link
Member

tarelli commented Jan 25, 2016

@JustasB yo :) This is very possible in principle, we have all the communication channels already in place for the NeuroML interpreter to raise an exception which is then displayed in the UI. @adrianq any reason why this can't happen?

@adrianq
Copy link
Contributor

adrianq commented Jan 25, 2016

@tarelli @JustasB I talked about this to @pgleeson last week. We can (and should) raise an exception so that instead of the load spinner the user show an error message. However, if we do this at the moment the error won't be helpful as it would be a Geppetto specific error. What @JustasB is asking for is an error that let him know what is the problem with the NeuroML Model. For instance, in that issue he mentioned the error was: 'you are using a component type instead of a component and this is not neuroml compliant'. @pgleeson suggested to call a method that we can find in org.neuroml.model (something like validate) whenever we have an exception loading the model and return the returned string as part of the error message. This method provides the kind of information Justas is looking for. I wanted to talk you before implementing it in order to check if you see any conceptual problem about it. I forgot to do it in our last meeting though. Too many things on my plate :(

@tarelli
Copy link
Member

tarelli commented Jan 25, 2016

@adrianq I don't see a conceptual problem putting inside the exception a detail of the error that is domain specific. This is an enhancement for the near future, nothing to worry about now, I just wanted to know if in principle you see any problems with it :)

@JustasB
Copy link
Author

JustasB commented Jan 25, 2016

Sounds good, guys. Thank you.

@adrianq adrianq self-assigned this Jan 28, 2016
@adrianq
Copy link
Contributor

adrianq commented Jan 28, 2016

@JustasB I have implemented what we discussed in this issue. If there is an error parsing and resolving the model we will try to get an explanation from the neuromlvalidator. If we manage to get a message, it will be displayed in the browser. Otherwise we will show the exception... for sure it is going to be better than the loading spinner. See what you will see in the example you mentioned in the image attached. This will be part of the next release (in 2-3 weeks it will be released)

screenshot from 2016-01-28 18 08 19

@adrianq adrianq closed this as completed Jan 28, 2016
@JustasB
Copy link
Author

JustasB commented Jan 28, 2016

That's awesome. Thank you @adrianq

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants