Skip to content

Base Sections

The nomad.datamodel.metainfo.basesections Metainfo package contains a set of base sections. They provides shared definitions across materials science domains and schemas. Some functionality, e.g. the workflow visualisation, depend on these definitions. Inherit from these base sections when you create your own schemas to align your definitions with those of other schemas and to make use of respective functionality.

BaseSection

description: A generic abstract base section that provides a few commonly used properties. If you inherit from this section, but do not need some quantities, list those quantities in the eln.hide annotation of your inheriting section definition.

Besides predefining some quantities, these base sections will add some metadata to NOMAD's search. A particular example are tags, if you define a string or enum quantity in your sections named tags, its values will be searchable.

inherits from: nomad.datamodel.data.ArchiveSection

links: http://purl.obolibrary.org/obo/BFO_0000001

properties:

name type
name str A short human readable and descriptive name.
datetime nomad.metainfo.data_type.Datetime The date and time associated with this section.
lab_id str An ID string that is unique at least for the lab that produced this data.
description str Any information that cannot be captured in the other fields.

normalization:

  • If the instance is of type EntryData, it sets the archive's entry name based on the instance's name.
  • Sets the datetime field to the current time if it is not already set.
  • Manages the lab_id field and updates the archive's results.eln.lab_ids list.
  • Adds the instance's name and description to the archive's results.eln.names and results.eln.descriptions lists, respectively.
  • Handles the tags attribute, if present, and updates the archive's results.eln.tags list.
  • Appends the section's name to the archive's results.eln.sections list.

Entity

description: An object that persists, endures, or continues to exist through time while maintaining its identity.

inherits from: BaseSection

links: http://purl.obolibrary.org/obo/BFO_0000002

normalization:

  • If the instance is of type EntryData, it sets the archive's entry name based on the instance's name.
  • Sets the datetime field to the current time if it is not already set.
  • Manages the lab_id field and updates the archive's results.eln.lab_ids list.
  • Adds the instance's name and description to the archive's results.eln.names and results.eln.descriptions lists, respectively.
  • Handles the tags attribute, if present, and updates the archive's results.eln.tags list.
  • Appends the section's name to the archive's results.eln.sections list.

ActivityStep

description: Any dependant step of an Activity.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
name str A short and descriptive name for this step.
start_time nomad.metainfo.data_type.Datetime Optionally, the starting time of the activity step. If omitted, it is assumed to follow directly after the previous step.
comment str Any additional information about the step not captured by the other fields.

Activity

description: An action that has a temporal extension and for some time depends on some entity.

inherits from: BaseSection

links: http://purl.obolibrary.org/obo/BFO_0000015

properties:

name type
datetime nomad.metainfo.data_type.Datetime The date and time when this activity was started.
method str A short consistent handle for the applied method.
location str location of the experiment.
steps ActivityStep An ordered list of all the dependant steps that make up this activity.
sub-section, repeats

normalization:

  • Ensures the results.eln.methods list is initialized and appends the method or section name.
  • Converts each step in self.steps to a task, using the steps to_task() method, and assigns it to archive.workflow2.tasks.

SectionReference

description: A section used for referencing another section.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
name str A short descriptive name for the role of this reference.
reference nomad.datamodel.data.ArchiveSection A reference to a NOMAD archive section.

EntityReference

description: A section used for referencing an Entity.

inherits from: SectionReference

properties:

name type
reference Entity A reference to a NOMAD Entity entry.
lab_id str The readable identifier for the entity.

normalization:

Will attempt to fill the reference from the lab_id or vice versa.

ExperimentStep

description: Any dependant step of an Experiment.

inherits from: ActivityStep

properties:

name type
activity Activity The activity that makes up this step of the experiment.
lab_id str The readable identifier for the activity.

normalization:

Will attempt to fill the activity from the lab_id or vice versa. If the activity reference is filled but the start time is not the time will be taken from the datetime property of the referenced activity.

Experiment

description: A section for grouping activities together into an experiment.

inherits from: Activity

properties:

name type
steps ExperimentStep An ordered list of all the dependant steps that make up this activity.
sub-section, repeats

normalization:

  • Ensures the results.eln.methods list is initialized and appends the method or section name.
  • Converts each step in self.steps to a task, using the steps to_task() method, and assigns it to archive.workflow2.tasks.

Collection

description: A section for grouping entities together into a collection.

inherits from: Entity

properties:

name type
entities EntityReference References to the entities that make up the collection.
sub-section, repeats

normalization:

  • If the instance is of type EntryData, it sets the archive's entry name based on the instance's name.
  • Sets the datetime field to the current time if it is not already set.
  • Manages the lab_id field and updates the archive's results.eln.lab_ids list.
  • Adds the instance's name and description to the archive's results.eln.names and results.eln.descriptions lists, respectively.
  • Handles the tags attribute, if present, and updates the archive's results.eln.tags list.
  • Appends the section's name to the archive's results.eln.sections list.

ElementalComposition

description: A section for describing the elemental composition of a system, i.e. the element and its atomic fraction.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
element ['Ac', 'Ag', 'Al', 'Am', 'Ar', 'As', 'At', 'Au', 'B', 'Ba', 'Be', 'Bh', 'Bi', 'Bk', 'Br', 'C', 'Ca', 'Cd', 'Ce', 'Cf', 'Cl', 'Cm', 'Cn', 'Co', 'Cr', 'Cs', 'Cu', 'Db', 'Ds', 'Dy', 'Er', 'Es', 'Eu', 'F', 'Fe', 'Fl', 'Fm', 'Fr', 'Ga', 'Gd', 'Ge', 'H', 'He', 'Hf', 'Hg', 'Ho', 'Hs', 'I', 'In', 'Ir', 'K', 'Kr', 'La', 'Li', 'Lr', 'Lu', 'Lv', 'Mc', 'Md', 'Mg', 'Mn', 'Mo', 'Mt', 'N', 'Na', 'Nb', 'Nd', 'Ne', 'Nh', 'Ni', 'No', 'Np', 'O', 'Og', 'Os', 'P', 'Pa', 'Pb', 'Pd', 'Pm', 'Po', 'Pr', 'Pt', 'Pu', 'Ra', 'Rb', 'Re', 'Rf', 'Rg', 'Rh', 'Rn', 'Ru', 'S', 'Sb', 'Sc', 'Se', 'Sg', 'Si', 'Sm', 'Sn', 'Sr', 'Ta', 'Tb', 'Tc', 'Te', 'Th', 'Ti', 'Tl', 'Tm', 'Ts', 'U', 'V', 'W', 'Xe', 'Y', 'Yb', 'Zn', 'Zr'] The symbol of the element, e.g. 'Pb'.
atomic_fraction float64 The atomic fraction of the element in the system it is contained within. Per definition a positive value less than or equal to 1.
mass_fraction float64 The mass fraction of the element in the system it is contained within. Per definition a positive value less than or equal to 1.

normalization:

Will add a results.material subsection if none exists. Will append the element to the elements property of that subsection and a nomad.datamodel.results.ElementalComposition instances to the elemental_composition property using the element and atomic fraction from this section.

System

description: A base section for any system of materials which is investigated or used to construct other systems.

inherits from: Entity

properties:

name type
elemental_composition ElementalComposition A list of all the elements found in the system together and their respective atomic fraction within the system.
sub-section, repeats

normalization:

Will attempt to fill mass fractions or atomic fractions if left blank.

Instrument

description: A base section that can be used for instruments.

inherits from: Entity

normalization:

Adds the name of the instrument to the results.eln.instruments list.

InstrumentReference

description: A section used for referencing an Instrument.

inherits from: EntityReference

properties:

name type
reference Instrument A reference to a NOMAD Instrument entry.

normalization:

Will attempt to fill the reference from the lab_id or vice versa.

Component

description: A section for describing a component and its role in a composite system.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
name str A short name for the component.
mass float64 The mass of the component.
unit=kilogram
mass_fraction float64 The mass fraction of the component in the composite system.

SystemComponent

description: A section for describing a system component and its role in a composite system.

inherits from: Component

properties:

name type
system System A reference to the component system.

normalization:

If none is set, the normalizer will set the name of the component to be that of the referenced system if it has one.

PureSubstanceSection

description: A sub section for describing any elemental, molecular or single phase pure substance.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
name str A short name for the substance.
iupac_name str IUPAC name.
molecular_formula str Molecular formula.
molecular_mass float64 The mass of the most likely isotopic composition for a single molecule, corresponding to the most intense ion/molecule peak in a mass spectrum.
unit=dalton
molar_mass float64 The molar mass is the sum of all atomic masses of the constituent atoms in a compound, measured in g/mol. In the absence of explicit isotope labelling, averaged natural abundance is assumed. If an atom bears an explicit isotope label, 100%% isotopic purity is assumed at this location.
unit=gram / mole
monoisotopic_mass float64 The mass of a molecule, calculated using the mass of the most abundant isotope of each element.
unit=dalton
inchi str Inchi.
inchi_key str Inchi key.
smile str Smile.
canonical_smile str Canonical smile.
cas_number str CAS number.

PureSubstanceComponent

description: A section for describing a substance component and its role in a composite system.

inherits from: Component

properties:

name type
substance_name str The name of the substance within the section where this component is contained.
pure_substance PureSubstanceSection Section describing the pure substance that is the component.
sub-section

normalization:

If none is set, the normalizer will set the name of the component to be the molecular formula of the substance.

CompositeSystem

description: A base section for a material systems composed of components. Each component of the composite system is of a (sub)type of System.

inherits from: System

properties:

name type
components Component A list of all the components of the composite system containing a name, reference to the system section and mass of that component.
sub-section, repeats

normalization:

If the elemental composition list is empty, the normalizer will iterate over the components and extract all the elements for populating the elemental composition list. If masses are provided for all components and the elemental composition of all components contain atomic fractions the normalizer will also calculate the atomic fractions for the composite system. The populated elemental composition list is added to the results by the normalizer in the System super class.

CompositeSystemReference

description: A section used for referencing a CompositeSystem.

inherits from: EntityReference

properties:

name type
reference CompositeSystem A reference to a NOMAD CompositeSystem entry.

normalization:

Will attempt to fill the reference from the lab_id or vice versa.

ProcessStep

description: Any dependant step of a Process.

inherits from: ActivityStep

properties:

name type
duration float The duration time of the process step.
unit=second

Process

description: A planned process which results in physical changes in a specified input material. [ obi : prs obi : mc obi : fg obi : jf obi : bp ]

Synonyms: - preparative method - sample preparation - sample preparative method - material transformations

inherits from: Activity

links: http://purl.obolibrary.org/obo/OBI_0000094

properties:

name type
end_time nomad.metainfo.data_type.Datetime The date and time when this process was finished.
steps ProcessStep An ordered list of all the dependant steps that make up this activity.
sub-section, repeats
instruments InstrumentReference A list of all the instruments and their role in this process.
sub-section, repeats
samples CompositeSystemReference The samples as that have undergone the process.
sub-section, repeats

normalization:

  • Sets the start time for each step in self.steps if not already set, based on the datetime and duration fields.
  • Sets the end_time field to the calculated end time if it is not already set.
  • Updates the archive.workflow2.outputs list with links to the samples processed.

ActivityResult

description: A section for the results of an Activity.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
name str A short and descriptive name for the result.

AnalysisResult

description: A section for the results of an Analysis process.

inherits from: ActivityResult

Analysis

description: A planned process that produces output data from input data. Synonyms: - data processing - data analysis

inherits from: Activity

links: http://purl.obolibrary.org/obo/OBI_0200000

properties:

name type
inputs SectionReference The input data of the analysis.
sub-section, repeats
outputs AnalysisResult The output data of the analysis.
sub-section, repeats

normalization:

  • Updates the archive.workflow2.inputs list with links to the input data.
  • Updates the archive.workflow2.outputs list with links to the output data.

SynthesisMethod

description: A method used to synthesise a sample.

inherits from: Process

links: http://purl.obolibrary.org/obo/CHMO_0001301

normalization:

  • Sets the start time for each step in self.steps if not already set, based on the datetime and duration fields.
  • Sets the end_time field to the calculated end time if it is not already set.
  • Updates the archive.workflow2.outputs list with links to the samples processed.

MeasurementResult

description: A section for the results of an Measurement process.

inherits from: ActivityResult

Measurement

description: A planned process with the objective to produce information about the material entity that is the evaluant, by physically examining it or its proxies. [ obi : pppb ]

inherits from: Activity

links: http://purl.obolibrary.org/obo/OBI_0000070

properties:

name type
samples CompositeSystemReference A list of all the samples measured during the measurement.
sub-section, repeats
instruments InstrumentReference A list of all the instruments and their role in this process.
sub-section, repeats
results MeasurementResult The result of the measurement.
sub-section, repeats

normalization:

  • Updates the archive.workflow2.inputs list with links to the input samples.
  • Updates the archive.workflow2.outputs list with links to the measurement results.

PureSubstance

description: A base section for any elemental, molecular, or single phase pure substance.

inherits from: System

links: http://purl.obolibrary.org/obo/CHEBI_23367

properties:

name type
name str The name of the substance entry.
lab_id str A human human readable substance ID that is at least unique for the lab.
description str A field for adding additional information about the substance that is not captured by the other quantities and subsections.
pure_substance PureSubstanceSection Section with properties describing the substance.
sub-section

normalization:

This method will populate the results.material section and the elemental composition sub section using the molecular formula.

PubChemPureSubstanceSection

description: A section for pure substances existing as "compounds" in the PubChem database.

inherits from: PureSubstanceSection

properties:

name type
pub_chem_cid int
pub_chem_link str

normalization:

This method will attempt to get data on the substance instance from the PubChem PUG REST API: https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest If a PubChem CID is specified the details are retrieved directly. Otherwise a search query is made for the filled attributes in the following order:

  1. smile
  2. canonical_smile
  3. inchi_key
  4. iupac_name
  5. name
  6. molecular_formula
  7. cas_number

CASExperimentalProperty

description: A section for experimental properties retrieved from the CAS API.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
name str CAS experimental property name.
property str CAS experimental property.
sourceNumber str CAS experimental property source.

CASPropertyCitation

description: A section for citations of the experimental properties retrieved from the CAS API.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
docUri str CAS property citation document uri.
sourceNumber int
source str CAS property citation source.

CASPureSubstanceSection

description: A base section for any PureSubstance with a CAS number.

inherits from: PureSubstanceSection

properties:

name type
cas_uri str CAS uri
cas_number str CAS number.
cas_name str CAS name.
image str CAS image.
cas_synonyms str CAS synonyms.
shape=['*']
cas_experimental_properties CASExperimentalProperty sub-section, repeats
cas_property_citations CASPropertyCitation sub-section, repeats

normalization:

This method will attempt to get data on the pure substance instance from the CAS API: https://commonchemistry.cas.org/api-overview If a CAS number is specified the details are retrieved directly. Otherwise a search query is made for the filled attributes in the following order:

  1. cas_name
  2. inchi
  3. inchi_key
  4. smile
  5. canonical_smile
  6. name

ReadableIdentifiers

description: A base section that can be used to generate readable IDs. If the owner, short_name, institute, and datetime quantities are provided, the lab_id will be automatically created as a combination of these four quantities.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
institute str Alias/short name of the home institute of the owner, i.e. HZB.
owner str Alias for the owner of the identified thing. This should be unique within the institute.
datetime nomad.metainfo.data_type.Datetime A datetime associated with the identified thing. In case of an Activity, this should be the starting time and, in case of an Entity, the creation time.
short_name str A short name of the the identified thing (e.g. the identifier scribed on the sample, the process number, or machine name), e.g. 4001-8, YAG-2-34. This is to be managed and decided internally by the labs, although we recommend to avoid the following characters in it: "_", "/", "\" and ".".
lab_id str Full readable id. Ideally a human readable id convention, which is simple, understandable and still have chances of becoming unique. If the owner, short_name, ìnstitute, and datetime are provided, this will be formed automatically by joining these components by an underscore (_). Spaces in any of the individual components will be replaced with hyphens (-). An example would be hzb_oah_20200602_4001-08.

normalization:

If owner is not filled the field will be filled by the first two letters of the first name joined with the first two letters of the last name of the author. If the institute is not filled a institute abreviations will be constructed from the author's affiliation.

If no datetime is filled, the datetime will be taken from the datetime property of the parent, if it exists, otherwise the current date and time will be used.

If no short name is filled, the name will be taken from the parent name, if it exists, otherwise it will be taken from the archive metadata entry name, if it exists, and finally if no other options are available it will use the name of the mainfile.

PublicationReference

description: A base section that can be used for references.

inherits from: nomad.datamodel.data.ArchiveSection

properties:

name type
DOI_number str The DOI number referring to the published paper or dataset where the data can be found. Examples: 10.1021/jp5126624 10.1016/j.electacta.2017.06.032
publication_authors str The authors of the publication. If several authors, end with et al. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org
shape=['*']
publication_date nomad.metainfo.data_type.Datetime Publication date. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org
journal str Name of the journal where the data is published. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org
publication_title str Title of the publication. If the DOI number is given correctly, this will be extracted automatically from www.crossref.org

normalization:

  • If a DOI number is provided, retrieves publication details from the CrossRef API.
  • Populates the publication_authors, journal, publication_title, and publication_date fields based on the CrossRef response.
  • Ensures the DOI number has the prefix https://doi.org/.
  • Updates the archive's metadata references with the DOI number if it is not already present.

HDF5Normalizer

inherits from: nomad.datamodel.data.ArchiveSection

normalization without further documentation