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
......
docs/assets/components.png

107 KB | W: | H:

docs/assets/components.png

87.9 KB | W: | H:

docs/assets/components.png
docs/assets/components.png
docs/assets/components.png
docs/assets/components.png
  • 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@FAIRDI
============
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.
introduction.md
upload.rst
api_tutorial.md
api.rst
archive.rst
metainfo.rst
client/client.rst
metainfo.rst
archive.rst
ops/ops.rst
dev/setup.md
dev/dev_guidelines.rst
parser_tutorial.md
dev/parser_tutorial.md
api.rst
reference.rst
.. _metainfo-label:
Metainfo
========
NOMAD Metainfo
==============
Introduction
------------
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 <https://repository.nomad-coe.eu/app/gui/metainfo>`_.
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 <https://msgpack.org/>`_ 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 <https://nomad-lab.eu>`_. It was discussed at the
`CECAM workshop Towards a Common Format for Computational Materials Science Data <https://th.fhi-berlin.mpg.de/meetings/FCMSD2016/>`_
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) <http://th.fhi-berlin.mpg.de/site/uploads/Publications/Psik_Highlight_131-2016.pdf>`_ 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 <https://www.nomad-coe.eu/uploads/outreach/Public%20Deliverables/NOMAD%20D1.1%20public%20KO20June2016.pdf>`_ 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 <https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/tree/master/examples/access_metainfo.py>`_.
API
___
......
Reference
=========
Python Reference
================
nomad.metainfo
--------------
......
==============
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.
'''
Introduction
------------
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:`nomad.search`, :py:mod:`nomad.app`.
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
:members:
In addition there are domain specific metadata classes:
Domains
------------------
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
:members:
......@@ -51,6 +75,9 @@ In addition there are domain specific metadata classes:
.. autoclass:: nomad.datamodel.OptimadeEntry
:members:
.. automodule:: nomad.datamodel.encyclopedia
:members:
'''
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