nomad-FAIR issueshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues2023-05-08T12:47:15Zhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1436A base section for custom schemas to normalize and populate results from crys...2023-05-08T12:47:15ZJose Marquez PrietoA base section for custom schemas to normalize and populate results from crystal structure filesWe need a base section that allows us to normalize and populate `results` from crystal structure files. This might be related to #1137 and partly to #1038We need a base section that allows us to normalize and populate `results` from crystal structure files. This might be related to #1137 and partly to #1038https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1432Polymorphy in Archive queries2023-05-30T12:38:14ZMarkus ScheidgenPolymorphy in Archive queriesThe archive query seems to have problems with requests that target properties in subclasses.
For example, we have the subsection: `EntryArchive.workflow: Workflow` and a subclass `SimulationWorkflow(Workflow)`. Now only `SimulationWorkf...The archive query seems to have problems with requests that target properties in subclasses.
For example, we have the subsection: `EntryArchive.workflow: Workflow` and a subclass `SimulationWorkflow(Workflow)`. Now only `SimulationWorkflow` has a subsection `results` and `Workflow` has not. Here an archive like this
```yaml
workflow:
m_def: SimulationWorkflow
results: ...
```
cannot be queried with
```json
{
"workflow": {
"results": *
}
}
```
Polymorphy is a rather new concept in the metainfo, but is important for all ELN data and the new workflow section. It might also affect the nexus data.Theodore ChangTheodore Changhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1430Workflow for chemical reaction steps2023-10-23T16:51:58ZNathan DaelmanWorkflow for chemical reaction stepsA workflow ready to contain a general (computational) **elementary reaction step** and extract the energy, e.g. calculating adsorption energies: Fe_50 + CO_gas -> Fe_50CO, E[Fe_50CO] - E[Fe_50] - E[CO_gas].
In general, there can be m rea...A workflow ready to contain a general (computational) **elementary reaction step** and extract the energy, e.g. calculating adsorption energies: Fe_50 + CO_gas -> Fe_50CO, E[Fe_50CO] - E[Fe_50] - E[CO_gas].
In general, there can be m reactants and n products.
(We could also consider a reaction with a transition state, which has a 3rd intermediate state?)
- [ ] Add example data.
- [ ] Define a workflow schema with input section and yaml (reactants vs products).
- [ ] Build workflow normalizer to compute (adsorption) energies.
- [ ] Add a tester (based on the example data).
Set up jointly with @jschumann and @ladinesa .Alvin Noe LadinesAlvin Noe Ladineshttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1416Serialize subsections as dictionaries2023-05-24T14:14:13ZMarkus ScheidgenSerialize subsections as dictionariesWe are currently (de-)serialising (`m_to_dict`, `m_from_dict`) repeating sub-sections as lists. As lists are basically "integer keyed dicts", we could offer dicts as an alternative. This could be done transparently for deserialising and ...We are currently (de-)serialising (`m_to_dict`, `m_from_dict`) repeating sub-sections as lists. As lists are basically "integer keyed dicts", we could offer dicts as an alternative. This could be done transparently for deserialising and per flag on serialising.
Further, we have the concept of a "label_quantity" already. This is implemented very softly as a `more` quantity on sections. This is used by the archive browser in the UI to show values instead of numbers when presenting subsections.
Further, we added specialised deserialisation for schemas to support dicts for the `quantities` and `sub_sections` sub section of `Section` and `section_definitions` and `category_definitions` sub section of `Package`. Maybe there is more for attributes?
This is how this could get implemented more properly:
- `SubSection` gets a new `key_quantity: Quantity` property that refers to a quantity in the SubSection's `sub_section:Section`. If the `sub_section` has a quantity with `more.label_quantity`, we use this as `key_quantity` for backwards compatibility.
- When a sub section with `key_quantity` is set or deserialised, we check if the key quantity has unique values for all sub sections.
- `m_from_dict` deals both with dicts or lists.
- `m_to_dict` has three modes: always dict, always list, dict if `key_quantity` is set (default).
- The UI deals with both lists and dicts. We remove the treatment of the old `more.label_quantity`.
- We remove the specialised `m_from_dict` implementations on the schema classes `Section`, `Package`.
This could also be beneficial for the new graph API #1180 which uses dicts to realise a sub-section-like relationship between uploads->entries, users->uploads, etc.Theodore ChangTheodore Changhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1406Yaml schemas: data section not generated if I use a specific name for a section2023-04-19T14:40:38ZAndrea AlbinoYaml schemas: data section not generated if I use a specific name for a sectionIt's a small and sneaky bug:
in the `Contacts` section I have a sub_section called `contact`. If I call it `Contact`, then the processing fails.
In the original schema file I have many sections that use capital letters or same name of ...It's a small and sneaky bug:
in the `Contacts` section I have a sub_section called `contact`. If I call it `Contact`, then the processing fails.
In the original schema file I have many sections that use capital letters or same name of the section they inherit from.
Only in this section the processing is failing.
Edit: mind also the lines
```
target_sub_section:
- contact
```
where the `contact` appears
```
definitions:
name: 'ELN for MOVPE'
sections:
Movpe_experiment:
base_sections:
- nomad.parsing.tabular.TableData
m_annotations:
eln:
quantities:
data_file:
type: str
description: |
A reference to an uploaded .xlsx
m_annotations:
browser:
adaptor: RawFileAdaptor
eln:
component: FileEditQuantity
tabular_parser:
comment: '#'
mode: root
sub_sections:
Contacts:
section:
base_sections:
- nomad.parsing.tabular.TableData
m_annotations:
eln:
quantities:
data_file:
type: str
default: '#data/data_file'
description: |
A reference to an uploaded .xlsx
m_annotations:
tabular_parser:
comment: '#'
mode: row
target_sub_section:
- contact
browser:
adaptor: RawFileAdaptor
eln:
component: FileEditQuantity
sub_sections:
contact:
repeats: true
section:
base_sections:
- '#/Contact'
```
Error messages:
```
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 214, in _prepare_root_tabular_data
getattr(self, sub_section_name).normalize(archive, logger)
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 104, in normalize
self.tabular_parser(quantity_def, archive, logger, annotation)
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 162, in tabular_parser
self.append_section_to_subsection(section_name, section)
File "/usr/local/lib/python3.9/site-packages/nomad/parsing/tabular.py", line 189, in append_section_to_subsection
self_updated.append(section_updated)
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 1277, in __getattr__
raise AttributeError(name)
AttributeError: append
```
```
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/processing/base.py", line 1049, in wrapper
rv = func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 964, in process_entry_local
self._process_entry_local()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1034, in _process_entry_local
entry.archiving()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1199, in archiving
self._entry_metadata.apply_archive_metadata(self._parser_results)
File "/usr/local/lib/python3.9/site-packages/nomad/datamodel/datamodel.py", line 829, in apply_archive_metadata
for section, property_def, _ in archive.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
AttributeError: 'str' object has no attribute 'm_traverse'
```
```
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/processing/base.py", line 1049, in wrapper
rv = func(self, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 964, in process_entry_local
self._process_entry_local()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1034, in _process_entry_local
entry.archiving()
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1199, in archiving
self._entry_metadata.apply_archive_metadata(self._parser_results)
File "/usr/local/lib/python3.9/site-packages/nomad/datamodel/datamodel.py", line 829, in apply_archive_metadata
for section, property_def, _ in archive.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
AttributeError: 'str' object has no attribute 'm_traverse'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/nomad/processing/data.py", line 1087, in _on_fail
self._entry_metadata.apply_archive_metadata(self._parser_results)
File "/usr/local/lib/python3.9/site-packages/nomad/datamodel/datamodel.py", line 829, in apply_archive_metadata
for section, property_def, _ in archive.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
File "/usr/local/lib/python3.9/site-packages/nomad/metainfo/metainfo.py", line 2374, in m_traverse
for i in sub_section.m_traverse():
AttributeError: 'str' object has no attribute 'm_traverse'
```
You can reproduce it with the following three files:
[Parma_datafile_nomad.xlsx](/uploads/46438a4ae19b28139950c9a974a889dc/Parma_datafile_nomad.xlsx)
[movpe_cnr.schema.archive.yaml](/uploads/f852385b74367f30e9c990430b241bf3/movpe_cnr.schema.archive.yaml)
[base_classes.schema.archive.yaml](/uploads/2e827ee78fb7cf2b1f05febc1b58eec8/base_classes.schema.archive.yaml)Amir GolparvarAmir Golparvarhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1403User define quantities are not registered properly2023-03-23T20:41:01ZMichael GötteUser define quantities are not registered properlynot all scalar quantities are picked up correctly by the user defined quantity search.
I make a minimal breaking example.not all scalar quantities are picked up correctly by the user defined quantity search.
I make a minimal breaking example.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1395User.is_admin is not working with OasisUserManagement2023-03-16T09:54:26ZMichael GötteUser.is_admin is not working with OasisUserManagementHey Nomad, @himanel1 @mscheidg
I am testing the capabilities of an admin user for automated uploading of data.
I set the admin id in my `nomad.yaml` file.
Then the code in `nomad/search.py` throws an error when i do an API call with ...Hey Nomad, @himanel1 @mscheidg
I am testing the capabilities of an admin user for automated uploading of data.
I set the admin id in my `nomad.yaml` file.
Then the code in `nomad/search.py` throws an error when i do an API call with `owner='admin'`. So i played around a bit and i found that
```python
if user_id is None or not datamodel.User.get(user_id=user_id).is_admin:
raise AuthenticationRequiredError('This can only be used by the admin user.')
```
throws the error,
while
```python
if user_id is None or not user_id == config.services.admin_user_id:
raise AuthenticationRequiredError('This can only be used by the admin user.')
```
doesnt. Somehow `datamodel.User.get(user_id=user_id).is_admin` is not doing what it should in my opinion, or am i missing something?
Best Michahttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1375Deprecate browse annotation for explicit JSON and HTML metainfo type.2023-12-21T16:04:41ZMarkus ScheidgenDeprecate browse annotation for explicit JSON and HTML metainfo type.This would remove a relatively unknown and superflous annotation. Explicit types would give us more options to check values (e.g. sanitize) on deserialisation.This would remove a relatively unknown and superflous annotation. Explicit types would give us more options to check values (e.g. sanitize) on deserialisation.https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1314Clean XC Functional Names2023-12-21T16:06:49ZNathan DaelmanClean XC Functional NamesThe entries under `xc_functional_name` should be cleaned up.
This can be done is some progressive stages:
- [x] Fix simple typos. We continue using the LibXC nomenclature and extend it with `HF_X` for capturing exact exchange.
- [ ] Fi...The entries under `xc_functional_name` should be cleaned up.
This can be done is some progressive stages:
- [x] Fix simple typos. We continue using the LibXC nomenclature and extend it with `HF_X` for capturing exact exchange.
- [ ] Fix the non-trivial mapping issues.
- [ ] Turn `xc_functional_name` into an enumerate quantity.
- @mscheidg How feasible would it be to perform a partial reparsing (`xc_functional_name` only) after this point?
- [ ] Add metainfo for distingusihing internal DFT from those forwarded to LibXC.
- [ ] Improve the mapping logic for getting `HF_X` into the LibXC terminology.
- [ ] Separate out exchange- and correlation-only functionals (not to forget kinetic), while also providing an exchange-correlation field for matched names, e.g. `PBE` as a combination of `GGA_X_PBE` and `GGA_C_PBE` (?)Nathan DaelmanNathan Daelmanhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1237Formal models, validation, and documentation for metainfo annotations2022-12-20T16:40:02ZMarkus ScheidgenFormal models, validation, and documentation for metainfo annotationsMarkus ScheidgenMarkus Scheidgenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1205Refactor metainfo Packages and references2023-12-21T15:39:15ZMarkus ScheidgenRefactor metainfo Packages and referencesMetainfo packages are either defined in Python or in custom schemas. Packages in custom schemas are linked to the archive of the entry that they are defined in. To create references towards definitions in a Package, the archive needs to ...Metainfo packages are either defined in Python or in custom schemas. Packages in custom schemas are linked to the archive of the entry that they are defined in. To create references towards definitions in a Package, the archive needs to be connected to the Package.
- Packages loaded from mongo are not liked to the respective archive. The qualified_name (with `entry_id:...`) is preserved, but the upload_id is not. Instead of storing the qualified name, we should rather store upload_id and entry_id in mongo
- `metainfo.py` is couples to entry_ids, archives, etc. But the `metainfo.py` is supposed to be independent and such aspects should be moved to `datamodel`.
- we should replace `entry_id:...` style qualified names with actual referencesTheodore ChangTheodore Changhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1149Error in rendering ReferenceEditQuantity2022-11-18T12:36:19ZAmir GolparvarError in rendering ReferenceEditQuantityArchiveBrowser (the data tab) returns the following error when creating a new instance of a `ReferenceEditQuantity` out of any sections of the following python `eln`.
<details><summary>GUI before creating a new data</summary>
![image](/...ArchiveBrowser (the data tab) returns the following error when creating a new instance of a `ReferenceEditQuantity` out of any sections of the following python `eln`.
<details><summary>GUI before creating a new data</summary>
![image](/uploads/640921c9963aa6c61acf9bd85f4c855b/image.png)
</details>
<details><summary>Error after creating a new data</summary>
![image](/uploads/1761229d453878a4e8c9049d4b177f75/image.png)
</details>
<details><summary>Error</summary>
![image](/uploads/e969c414500bcec05ea328127098b596/image.png)
</details>
<details><summary>Python file</summary>
[test.py](/uploads/47b8a4fd2eeda380a7116fadab44ff49/test.py)
</details>Mohammad NakhaeeMohammad Nakhaeehttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1148bug in yaml archive file processing2023-05-31T09:30:47ZAndrea Albinobug in yaml archive file processingGiven the following:
```
definitions:
name: 'IR cameras data'
sections:
IR_camera:
quantities:
image:
type: str
description: png visualization of heat map matrix
m_annotations:
...Given the following:
```
definitions:
name: 'IR cameras data'
sections:
IR_camera:
quantities:
image:
type: str
description: png visualization of heat map matrix
m_annotations:
browser:
adaptor: RawFileAdaptor
eln:
component: FileEditQuantity
heat_map:
type: str
description: heat map matrix
m_annotations:
browser:
adaptor: RawFileAdaptor
eln:
component: FileEditQuantity
IR_cameras:
base_sections:
- nomad.datamodel.data.EntryData
m_annotations:
eln:
dict()
sub_sections:
ir_camera:
repeats: true
section: '#/IR_camera'
data:
m_def: IR_cameras
ir_camera:
- image: test.csv
- image: zioccan.png
```
if I open the data within the eln, I add another instance of ir_camera and save again, I got the following error:
```
Traceback (most recent call last):
File "/home/andrea/NOMAD/nomad/nomad/processing/data.py", line 1089, in parsing
parser.parse(self.mainfile_file.os_path, self._parser_results, logger=logger, **kwargs)
File "/home/andrea/NOMAD/nomad/nomad/parsing/parser.py", line 417, in parse
self.parse_file(mainfile, f, archive, logger)
File "/home/andrea/NOMAD/nomad/nomad/parsing/parser.py", line 399, in parse_file
errors, warnings = archive.definitions.m_all_validate()
File "/home/andrea/NOMAD/nomad/nomad/metainfo/metainfo.py", line 2580, in m_all_validate
more_errors, more_warnings = section.m_validate()
File "/home/andrea/NOMAD/nomad/nomad/metainfo/metainfo.py", line 2523, in m_validate
constraint()
File "/home/andrea/NOMAD/nomad/nomad/metainfo/metainfo.py", line 3210, in annotations_are_valid
validate_eln_quantity_annotations(self)
File "/home/andrea/NOMAD/nomad/nomad/datamodel/metainfo/eln/annotations.py", line 55, in validate_eln_quantity_annotations
component = quantity.m_annotations['eln'].get('component', False)
AttributeError: 'list' object has no attribute 'get'
```
If I generate a data archive from the eln and I add instances and save, I don't get errors and the json file looks exactly as my yaml:
```
{
"data": {
"m_def": "../upload/raw/IRcameras.archive.yaml#/definitions/section_definitions/1",
"ir_camera": [
{
"image": "aaa"
},
{
"image": "bbb"
},
{
"image": "ccc"
},
{
"image": "ggg"
}
]
},
"m_ref_archives": {}
}
```Mohammad NakhaeeMohammad Nakhaeehttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1140Python defined sections cannot be used as quantity types in yaml schemas2022-11-02T14:03:57ZAndrea AlbinoPython defined sections cannot be used as quantity types in yaml schemasMe and @hnaesstroem realized that the "section" quantity in the following schema is working in python but not in yaml,
if I drag and drop a yaml schema, I'm getting the reference broken.
If the "section" quantity has as type, e.g., En...Me and @hnaesstroem realized that the "section" quantity in the following schema is working in python but not in yaml,
if I drag and drop a yaml schema, I'm getting the reference broken.
If the "section" quantity has as type, e.g., Entity (or whatever else defined in the yaml file) the reference is working
```python
class Link(ArchiveSection):
name = Quantity(type=str,
a_eln=dict(component='StringEditQuantity'))
section = Quantity(type=ArchiveSection,
a_eln=dict(component='ReferenceEditQuantity'))
```
```yaml
definitions:
name: Workflow Base sections
sections:
Entity:
m_annotations:
eln:
base_sections:
- nomad.datamodel.data.EntryData
quantities:
comment:
type: str
m_annotations:
eln:
component: StringEditQuantity
Link:
base_section: nomad.datamodel.data.ArchiveSection
quantities:
name:
type: str
m_annotations:
eln:
component: StringEditQuantity
section:
type: nomad.datamodel.data.ArchiveSection # '#/Entity' this would work
m_annotations:
eln:
component: ReferenceEditQuantity
```
![Screenshot_from_2022-10-24_15-31-37](/uploads/89c44abb4a969f0add4dd9896f61630d/Screenshot_from_2022-10-24_15-31-37.png)Markus ScheidgenMarkus Scheidgenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1134Modify band_gap to optical_band_gap section in results.properties.optoelectro...2022-11-28T13:42:41ZJose Marquez PrietoModify band_gap to optical_band_gap section in results.properties.optoelectronicsA new OpticalBandgap section for `results.properties.optoelectronics` needs to be defined to replace `results.properties.optoelectronics.band_gap`. This section should consider the following:
- [x] Be repeating.
- [x] Contain a value qu...A new OpticalBandgap section for `results.properties.optoelectronics` needs to be defined to replace `results.properties.optoelectronics.band_gap`. This section should consider the following:
- [x] Be repeating.
- [x] Contain a value quantity similar to the former.
- [x] Be able to discern the origin of how the value was derived.
- [ ] Be able to identify a subcell in a tandem device for the value associated with it.
- [x] OptoelectronicProperties card to point to the new BandGapOptical section
- [x] Align with BanGap section to be merged with Alvin's
- [x] Update the GUI components related to this.
- [x] Optoelectronic card
- [x] Search filter
We also need to verify changes in other codes:
- [x] Update normalizers in perovskite_solar_cell_database.
- [x] Update normalizers in ELN solar cell base sections.
- [x] Check the tests units.
- [x] Reprocess an upload with solar cell entries after the changes.Jose Marquez PrietoJose Marquez Prietohttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1126Complex quantities in the metainfo2022-12-08T06:25:09ZJose PizarroComplex quantities in the metainfoUsually, excited-states calculations have to deal with Green functions which are complex quantities. I was preparing a metainfo schema for this, but complex quantities seem to not be supported in Nomad (**please correct me if I am wrong*...Usually, excited-states calculations have to deal with Green functions which are complex quantities. I was preparing a metainfo schema for this, but complex quantities seem to not be supported in Nomad (**please correct me if I am wrong**).
Should I simply go with two quantities defined for the same one as `x_real` and `x_imag` or is there a simpler way of dealing with this?
@mscheidg @lucamghiTheodore ChangTheodore Changhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1111Revise and formalize annotations2023-02-22T10:04:52ZMarkus ScheidgenRevise and formalize annotationsThere are lots of annotations that are just dictionary types key-value pairs. Often without checks or documentation. Many of those have questionable or incomplete functionality.
- [x] eln
- [x] hide
- [x] table, tabular
- [x] plot
For...There are lots of annotations that are just dictionary types key-value pairs. Often without checks or documentation. Many of those have questionable or incomplete functionality.
- [x] eln
- [x] hide
- [x] table, tabular
- [x] plot
For these we should:
- establish proper classes that can be used in python and that check yaml definitions
- these classes should by pydantic models ... with documentation
- find a way to include the documentation in our docs.Markus ScheidgenMarkus Scheidgenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1095Search and Source fields in NOMAD Metainfo browser are broken2023-02-28T15:23:45ZAmir GolparvarSearch and Source fields in NOMAD Metainfo browser are brokenIn the Beta version, the search field and the source field are not returning the correct lanes:
<details><summary>Click to expand</summary>
![image](/uploads/a440d57b3fca93109d0680574637a255/image.png)
</details>In the Beta version, the search field and the source field are not returning the correct lanes:
<details><summary>Click to expand</summary>
![image](/uploads/a440d57b3fca93109d0680574637a255/image.png)
</details>Markus ScheidgenMarkus Scheidgenhttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1092Improvements in Perovskite Solar Cell Database Schema2022-11-28T13:42:10ZJose Marquez PrietoImprovements in Perovskite Solar Cell Database SchemaCurrently, there are certain things that need to be improved in the Perovskite Database Schema. We need:
- [x] Add descriptions to sections, in particular to the root section stating that the descriptions of the quantities are the origi...Currently, there are certain things that need to be improved in the Perovskite Database Schema. We need:
- [x] Add descriptions to sections, in particular to the root section stating that the descriptions of the quantities are the original ones from the Perovskite Database to provide the context on how this data was curated.
- [x] Improve the MD style in some descriptions. Particularly change the bullet points to "-" to render them properly in the GUI.
- [x] Check that the results section gets populated properly. Correct writing `perovskite` into `archive.results.material.material_name`. @himanel1 is there a place in `results.material` where I could annotate that is possibly a perovskite-type structure, regardless of cubic, tetragonal or monoclinic?
- [x] Change the `results.properties.optoelectronic.band_gap` to `results.properties.optoelectronic.band_gap_optical` section. Keep it as a repeating section
- [x] Update the bandgap writing to band_gap_optical instead in ELN base sections and in Perovskite Database schema
In general, it would be great if you @himanel1 and @mscheidg could click around the perovskite solar cell entries and with your knowledge of the software and metainfo check if there are some points to make it better. This is with the perspective of the Solar Cell tutorial series in December but maybe also for a paper. I leave a link here [Perovskite Database Staging](https://nomad-lab.eu/prod/v1/staging/gui/search/entries?external_db=The%20Perovskite%20Database%20Project&statistics=results.material.elements&statistics=results.properties.optoelectronic.solar_cell.efficiency&statistics=results.properties.optoelectronic.band_gap.value&statistics=results.properties.optoelectronic.solar_cell.open_circuit_voltage&statistics=results.properties.optoelectronic.solar_cell.device_stack&statistics=results.properties.optoelectronic.solar_cell.short_circuit_current_density&statistics=results.properties.optoelectronic.solar_cell.device_area&statistics=results.properties.optoelectronic.solar_cell.illumination_intensity)Jose Marquez PrietoJose Marquez Prietohttps://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/issues/1078`children` and `parents` quantities create an error in SampleID ELN base class2022-09-26T07:05:12ZJose Marquez Prieto`children` and `parents` quantities create an error in SampleID ELN base classThe self-referencing in SampleID base class in the quantities `children` and `parents` does not work after new implementations in `develop`.
The former implementation looks like this:
```
children = Quantity(
type=Referen...The self-referencing in SampleID base class in the quantities `children` and `parents` does not work after new implementations in `develop`.
The former implementation looks like this:
```
children = Quantity(
type=Reference(SectionProxy('SampleID')),
shape=["*"],
descriptions='A reference to a sample which are children of this one.',
a_eln=dict(component='ReferenceEditQuantity'))
parents = Quantity(
type=Reference(SectionProxy('SampleID')),
descriptions='A reference to sample which are parents of this one.',
a_eln=dict(component='ReferenceEditQuantity'))
```
@mscheidg, Any suggestions on how to change this to make it work?Jose Marquez PrietoJose Marquez Prieto