-
Notifications
You must be signed in to change notification settings - Fork 1
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
Remove phys prop #164
base: develop
Are you sure you want to change the base?
Remove phys prop #164
Conversation
- Remove more spurious normalizers
- Remove 2 extra editable annotations
- TODO: localize sub-sections
- Move out standalone property defintions to `properties/__init__.py`
Regarding re-grouping, I'm undecided on the final interface. Using electronic properties (e.g. eigenvalues, DOS, band structure), I'll illustrate the 2 options I see. Generically, any of these electronic property can be identified using any of the following attributes: particle kind*, semantic group**, k-point, spin. This list is not necessarily exhaustive. Overall, we'd like to present any user with an as similar as possible interface (similar idea in the old
(note: will add example figures later on) Hierarchies like these are easy to express in JSON key-value pairs, but mean deeper and different paths to traverse.
Alternatively, we could have a container section with repeating subsections that annotate all identifying attributes together, at the same level. This means more homogeneity in structure. This also mimics the plots (which are just overlays) better. It does make data traversal harder (especially without the metainfo browser to show
|
I am not sure I understand what "particle kind" and "semantic group" mean. I think particle kind might be info stored in ModelMethod, is that so? Can you put an example? And the same goes with semantic group: is this the degrees of freedom? Only corresponds to some index for orbital or plane-wave index depending on the basis? Furthermore, I don't follow your hierarchy for the different properties. How I consider this, from purely the perspective of the property per se is that we have:
The first JSON looks good. Now, also for @JFRudzinski: is the |
I find it more intuitive and easier to follow when there is a structured tree where i can conceptually drill down |
Sure, but imagine now having 5 of these trees side-by-side that have mostly similar, but not identical structures. |
You're pointing out the same observations as I did:
The 1st approach puts up a preferential structure / order to run over these indices. The 2nd approach groups them all together at the same level. This helps consistency and visualization. That's their main difference.
|
- Apply standard template to `DensityOfStates` - Add naming convention to `OrbitalsState` - Add few comments + correct typos
@JosePizarro3 Thank you for keeping an eye out and giving feedback. Sorry for the delay in updating you about PhysicalProperty, I hope this MR did not come as too much of a shock. There has been much movement in recent weeks and we are trying to make quick movement now in terms of schema dev and parser migration. I want to just slightly expand upon what Nathan shared: Starting from your prototype, Markus made his own implementation of PhysicalProperty, a bit more in a dataframe-like style. If you are interested we will be able to share more information in the near future and there will also be a cafe about it. Markus, Laurie, Hampus, and Nathan have been working to test and improve this implementation, and it is pretty close to usable now. Nathan did many tests of the new implementation into our schema. In the end, we came to the conclusion that applying this structure to every single property in our detailed schema was both tedious and probably not practical in the long run. Instead we focus for now on applying this new structure/tool to try to improve interoperability at a higher level, hence Nathan's mention of results and workflow2. In principle, it could also be used in data if an appropriate use case comes along. It's just that we don't implement it everywhere as default. This also helps us to make more progress on our schema immediately, which is our top priority. I'm happy to discuss further with you, also to see if there are specific use cases you have in mind that could be useful for further testing. Otherwise, we plan to tag you on any relevant MRs for potential input as we go through here. We appreciate your continued input! |
Sure, I just asked if PhysicalProperty was being reworked, and Variables deprecated. Whatever you and the others decide is ok for me. So the idea is to just do whatever in |
- Correct eigenvalues and DOS
Of course, I want to keep you updated 👍 I wouldn't exactly say that the idea is to do "whatever" in data. We are trying to develop some standardization within the schema and also some quasi templates for people to easily use when extending later. You will see here that Nathan kept several aspects of your PP implementation. It's just that we don't allow for the flexibility in data, at least not by default for all properties. If a use cases arises, PP can also be used in data. And yes, exactly, results and workflow2.results are responsible for interoperability. There are still some decisions exactly what is done with the results section. |
From my side, the second structure that Nathan suggested has some advantages for standardization and plotting. I think this will become more clear with some concrete examples... |
Pull Request Test Coverage Report for Build 13209227390Details
💛 - Coveralls |
- Update test case
- Fix plotting legend
- Remove re-use of quantities
Okay, feel free to give some preliminary feedback.
The most fleshed out example is the |
from nomad.metainfo import Quantity, Reference | ||
|
||
|
||
class ModelBaseSection(ArchiveSection): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a small note: the terminology "model" here is a bit confusing to me considering the other uses of model within our schema
I'm starting to set this up for testing but already having some import problems. ../nomad-simulations/src/nomad_simulations/schema_packages/properties/decomposable.py:1: in <module>
from nomad.metainfo import placeholder, Quantity, SubSection, Reference I can only find placeholder defined in the javascript part of nomad-FAIR. Perhaps it's due to the older mapping annotation branch. @ladinesa could you let me know when you rebase your nomad-FAIR branch, I tried myself, but the conflicts are too complicated/unknown to me...also I guess if you have any alternative insight into the |
Make
data
solely reliant on sections and quantities, reserving the use ofDataframe
(newPhysicalProperty
) forresults
.Re-group properties to with a focus on shared normalized quantities, as well as visualization.
Closes #143 #85 #80