Commit 1cfd01ef authored by Markus Scheidgen's avatar Markus Scheidgen
Browse files

Misc improvements to the documentation. #351

parent e46209d2
API(s) Documentation
API Reference
This is just a brief summary of all API endpoints of the NOMAD API. For a more compelling documention
.. _access-the-archive-label:
Accessing the Archive
Using the NOMAD Archive
Of course, you can access the NOMAD Archive directly via the NOMAD API (see the `API tutorial <api_tutorial.html>`_
and `API reference <api.html>`_). But, it is more effective and convenient to use NOMAD's Python client

107 KB | W: | H:


87.9 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
......@@ -25,8 +25,8 @@ sys.path.insert(0, os.path.abspath('..'))
# -- Project information -----------------------------------------------------
project = 'nomad-FAIRDI'
copyright = '2018, FAIRDI e.V.'
project = 'NOMAD Repository and Archive'
copyright = '2014-2020, FAIRDI e.V.'
author = 'FAIRDI e.V.'
# The short X.Y version
# How to write a parser for nomad@FAIRDI
# How to write a parser
## The parser project
NOMAD Repository and Archive
This project is a prototype for the continuation of the original NOMAD-coe software
and infrastructure with a simplyfied architecture and consolidated code base.
......@@ -10,12 +10,12 @@ and infrastructure with a simplyfied architecture and consolidated code base.
.. _metainfo-label:
NOMAD Metainfo
The NOMAD Metainfo stores descriptive and structured information about materials-science
data contained in the NOMAD Archive. The Metainfo can be understood as the schema of
the Archive. The NOMAD Archive data is
structured to be independent of the electronic-structure theory code or molecular-simulation,
(or beyond). The NOMAD Metainfo can be browsed as part of the `NOMAD Repository and Archive web application <>`_.
Typically (meta-)data definitions are generated only for a predesigned and specific scientific field,
application or code. In contrast, the NOMAD Metainfo considers all pertinent information
in the input and output files of the supported electronic-structure theory, quantum chemistry,
and molecular-dynamics (force-field) codes. This ensures a complete coverage of all
material and molecule properties, even though some properties might not be as important as
others, or are missing in some input/output files of electronic-structure programs.
.. image:: assets/metainfo_example.png
NOMAD Metainfo is kept independent of the actual storage format and is not bound to any
specific storage method. In our practical implementation, we use a binary form of JSON,
called `msgpack <>`_ on our servers and provide Archive data as JSON via
our API. For NOMAD end-users the internal storage format is of little relevance, because
the archive data is solely served by NOMAD's API.
The NOMAD Metainfo started within the `NOMAD Laboratory <>`_. It was discussed at the
`CECAM workshop Towards a Common Format for Computational Materials Science Data <>`_
and is open to external contributions and extensions. More information can be found in:
- `Towards a Common Format for Computational Materials Science Data (Psi-K 2016 Highlight) <>`_ provides a description on how to establish code-independent formats in detail and presents the challenges and practical strategies for achieving a common format for the representation of computational material-science data.
- `The Novel Materials Discovery Laboratory - Data formats and compression, D1.1 <>`_ outlines possible data formats, concepts, and compression techniques used to build a homogeneous (code-independent) data archive, called the NOMA
Metainfo Python Interface
.. automodule:: nomad.metainfo
......@@ -34,6 +69,9 @@ Python modules:
from nomad.datamodel.metainfo.public import section_run
my_run = section_run()
Many more examples about how to read the NOMAD Metainfo programmatically can be found
`here <>`_.
Python Reference
Uploading Data
Uploading Data to the NOMAD Repository
To contribute your data to the repository, please, login to our `upload page <../uploads>`_ (you need to register first, if you do not have a NOMAD account yet).
......@@ -13,12 +13,31 @@
# limitations under the License.
This is about the *datamodel* that is used to represent NOMAD entries in our databases and
search engines. The respective data, also known as (repository) metadata is also part of
the NOMAD Archive and the datamodel is also defined based on the NOMAD Metainfo
(section *metadata*). It covers all information that users can search for and that can
be easily rendered on the GUI. The information is readily available through the
**repo** API.
.. image:: assets/data.png
See also the `datamodel section in the introduction <introduction.html#data-model>`_.
This module contains classes that allow to represent the core
nomad data entities (entries/calculations, users, datasets) on a high level of abstraction
independent from their representation in the different modules
:py:mod:`nomad.processing`, :py:mod:`nomad.parsing`, :py:mod:``, :py:mod:``.
It is not about representing every detail, but those parts that are directly involved in
Datamodel entities
The entities in the datamodel are defined as NOMAD Metainfo sections. They are treated
similarily to all Archive data. The entry/calculation datamodel data is created during
processing. It is not about representing every detail, but those parts that are directly involved in
api, processing, mirroring, or other 'infrastructure' operations.
The class :class:`User` is used to represent users and their attributes.
......@@ -41,7 +60,12 @@ The class :class:`EntryMetadata` is used to represent all metadata about an entr
.. autoclass:: nomad.datamodel.EntryMetadata
In addition there are domain specific metadata classes:
The datamodel supports different *domains*. This means that most domain metadata of an
entry/calculation is stored in domain-specific sub sections of the :class:`EntryMetadata`
section. We currently have the following domain specific metadata classes/sections:
.. autoclass:: nomad.datamodel.dft.DFTMetadata
......@@ -51,6 +75,9 @@ In addition there are domain specific metadata classes:
.. autoclass:: nomad.datamodel.OptimadeEntry
.. automodule:: nomad.datamodel.encyclopedia
from .dft import DFTMetadata
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment