Schemas for ELNs

This is a topic to discuss how to build custom schemas for the ELN functionalities of NOMAD. Use this topic to post questions and discussions. Feature requests and issues can go to the NOMAD GitHub repository.

Some documentation:

3 Likes

Hi,
I don’t know if this is exactly the right place to ask, but here goes:
We would like to use NOMAD like a pen and paper notebook. The ELN schemas you have are nice and all, but if you’re in the lab you have a somewhat “stream of consciousness” labbook entry.

For this we would like to develop an interface that handles and feels more like an actual notebook that you can use to write down your workflow while you’re performing experiments.

We heard that the GUI of NOMAD is being overhauled, is there something like this planned? If not, what kind of plugin would you propose to write such a “notebook” functionality in? We were thinking either an app or an external piece of software that can be run through NORTH.

Hi @KGoetz91!

As far as I know (maybe @Pepe_Marquez or @mscheidgen can correct me), we do not have any explicit plans for supporting handwritten notes directly in our software as of now. If that becomes a highly-requested feature, maybe we could consider it. The same applies to speech-to-text.

However, I do not see any problem with combining some existing handwriting recognition software with custom ELN schemas. The workflow could be something like:

  • During experiments users log their hand-written notes e.g. on tablets or on paper
  • A custom ELN schema takes these notes in one of the following forms:
    1. As images, which is automatically processed with some Python library, get turned into text and saved in an appropriate field in the schema.
    2. As text files produced by some 3rd party software from the handwritten notes and saved in an appropriate field in the schema.

Hi @laurih,

thanks for the reply. We were thinking about something like that. A piece of python software that takes the user input and feeds it into a custom ELN schema.

We were thinking if it was possible to have the python programm run in the NORTH environment. What do you think? I’m not familiar with the jupyter hubs and there is no real documentation for the NORTH yet (that I could find). How could we implement that piece of software on our local nomad oasis into north?

Hi @KGoetz91 ,
in the ELNs we have that RichTextEditor (RichTextEditQuantity) where you can write in anything in an unstructured manner and also put pictures etc. If you open an NOMAD ELN in the “Overview” tab you get an rather “flat view” on your NOMAd entry. When you are in the “data” tab/view you get confronted with the data structure which is what you do not want in a lab situation. See attached picture of the “Basic ELN” in Overview tab:

Regarding your implementation question, you could put that Python code also in a plugin (see our tutorials 12 and 13 to learn more about plugins: FAIRmat Tutorial 12: Getting started with NOMAD and NOMAD Oasis for research data management (RDM) (14 February 2024): Overview · FAIRmat (Indico) and FAIRmat Tutorial 13: NOMAD for Experimental Data Management in Synthesis (May 15, 2024): Overview · FAIRmat (Indico)
In case you have already running another ELN solution in your lab, we can also import data from elabFTW, Labfolder, OpenBis and Chemotion into NOMAD.
Let me know if you have further questions,
Sebastian

If I understand the use case correctly, I don’t think you should use NORTH for this task. NORTH is more used for long-running, compute-intensive, and often human-driven tasks that work on the data remotely.

I think your use case would be possible to implement as a normalize-function that is attached to a custom schema (see for an example here). These are small Python functions that are triggered whenever the user saves the data. What I would do is to call some image-to-text Python library in this step that stores the extracted data into a field in the schema.

After the afore mentioned UI overhaul, it will be possible to give more space and prominence to the richt text editor.

The new UI will also have some responsiveness to screen sizes and we consider touch surfaces. But, we have no explicit plans to support actual handwritten notes, beyond what a respective device might support to fill out form fields.

If you want to process images, e.g. to recognise text, I would indeed recommend a Python schema with a “normalize” function. This way you could implement a plugin for processing hand written notes.

We are not sure yet, in how far we will support “photo taking” to upload images. But with rising demand this will become a more and more likely feature. It seems like a almost mandatory feature for proper tabled/phone support.