-
Notifications
You must be signed in to change notification settings - Fork 8
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
NeXus search_quantities
in NOMAD
#542
Comments
I don't think that this depends on NOMAD. If we consider "searching for an element" as an application, then having all searchable fields in the corresponding application definition is natural. |
That is a good point. I think the current mechanism in Nexus does not prevent adding arbitrary entries, so there is no relationship of the kind NXspx is_a NXmpes. |
Alone for that reason, I have some issues with this idea. |
I am not sure I understand what this would mean conceptually. |
Problems:
Discussion/Decisions:
Action items for now:
Action items (postponed):
For future discussion, if the action items don't solve our problems right now, we may have to think about ways of limiting the allowed Suggestions for limiting the
|
Recently, we have started playing around with adding more and more search quantities in NOMAD (mostly in #525). In particular, this includes adding all NeXus attributes as NOMAD quantities (using the
__<attribute_name>
convention) and field aggregation statistics (using__mean
,__var
, etc.), with the idea of powering the search in the apps that we are developing.However, we soon started running into some limitations. Most notably, the GUI becomes incredibly slow for groups that have lots of fields. A noteable example is the XPS example, where there are a lot of cycle and scan repititions in the default
NXdata
group (see image). Loading thedata/data/ENTRY:0/data
tab here takes up to 1 min due to a lag in the GUI. Similar situations are expected in descriptions of microstructures, with potentially millions of instances of the same concept.So, we are faced with an issue: which
search_quantities
do we want to expose from the NeXus definitions in NOMAD. This issue is meant to summarize the current situation and suggested ideas and also to store any results coming from upcoming discussions on this, e.g. in the TF meetings.One suggestion (made by @sanbrock and @rettigl) is that we only make those concepts that are specifically mentioned in the application definition available for search. That includes all required or recommended elements, but also those that are optional. But explicitly not those that are just defined in the base class that are inherited in the application definition.
Comments so far on this:
AXISNAME
andDATA
fields inNXdata
), see MPES: new concepts from NIAC discussions, searchable fields nexus_definitions#329.NXxps
extendingNXmpes
), to allow for moresearch_quantities
that are relevant for this new use case. The second option raises a problem/question which I have been asking myself for a while: If an appdef extends another one (thinkNXxps
extendingNXmpes
), is it possible to add more elements or can they only specialize what is already in the sup-appdef. If I have anNXfit
class inNXxps
, but not inNXmpes
, is a file that implementsNXxps
with a fit even compliant withNXmpes
anymore?There is an alternative proposed by @mkuehbach: we ship a "concept filtration configuration" with pynxtools that explicitly states for each application definition what the searchable quantities should be. This would be a yaml/json file that defines a selected set of elements you can search for. This may include all or some of the appdef concepts, but could also include some of those from the base classes.
Comments so far on this:
pynxtools-mpes/xps
both write toNXmpes
) or a plugin that can touch many appdefs (likepynxtools-igor
).We could also go for a combination of the two approaches: for specific appdefs (i.e., the ones designed by FAIRmat) you have a "concept filtration configuration", whereas for the other application definition you can only search for what is in the appplication definition itself (this would be the default).
Further comments:
Sorry for the wall of text, but I just wanted to summarize the current situation accurately. Looking for input here and in the upcoming TF meetings. @FAIRmat-NFDI/areab
The text was updated successfully, but these errors were encountered: