
.. _entities-dictionary:

########
Glossary
########



.. _List of Abbreviations:

---------------------------
List of Abbreviations
---------------------------

* **AAI** - Authentication and Authorization Interface
* **API** - Application Programming Interface
* **DAG** - Directed Acyclic Graph
* **DCI** - Distributed Computing Infrastructure
* **DDI** - Distributed Data Infrastructure
* **FAIR** principles - Findable, Accessible, Interoperable, Reusable
* **GPU** - Graphics Processing Unit
* **HEAppE** - High-End Application Execution Middleware
* **HPC** - High-Performance-Computing
* **iRODS** - Integrated Rule-Oriented Data System
* **PI** - Principal Investigator
* **PIDs** - Persistent unique identifiers
* **WCDA** - Weather and Climate Data API

.. _dict-hpc-command-application:

-----------------------
HPC Command Application
-----------------------
These applications are defined by the **HEAppE** command
template on clusters. The list of available templates
can be viewed in the portal or accessed via the **HEAppE** **API**.

.. _HPC Computational Project:

-------------------------
HPC Computational Project
-------------------------

An **HPC Computational Project** is an abstraction
of the computing resources allocated to the
HPC users by the HPC centres for running their applications.
HPC centres usually allocate a given amount
of resources represented by core hours
(or different units, depending on the centre).
**HPC Computational Projects** have the following characteristics:

* Requests are submitted by users that want to utilise the resources. HPC centres then grant the resources to the selected requests. Different computing centres can provide different resources (GPU nodes, Cloud etc.) and the request for the resources must contain what resources the user asks for.
* After the resources are granted, the **HPC Computational Project** is created. The project itself usually has an ID which is unique within a given centre and has a given timeframe in which the resources have to be depleted.
* Commonly, a project has one :ref:`Principal Investigator` and possibly additional project members with administrator-like roles (privileged users), depending on the HPC centre and the project. The privileged and normal users within an **HPC Computational Project** have respective accounts in the HPC centres' AAI systems.

.. _dict-hpc-container-application:

-------------------------
HPC Container Application
-------------------------
Container applications are executed from `APPTAINER <https://apptainer.org>`_ images on HPC clusters.
The images are staged from data storages, such as LEXIS DDI.

.. _LEXIS Computation Resource:

---------------------------
LEXIS Computing Resource
---------------------------

A **LEXIS Computing Resource** refers to the individual hardware
or software component (such as HPC nodes, storage systems, or cloud instances)
that is allocated or made available within the **LEXIS platform**
to support the execution of tasks in a **LEXIS Computational Project**.
These resources may include CPU/GPU compute power, memory, storage,
and network access, and they are typically provisioned from
HPC centres or cloud environments integrated into the LEXIS infrastructure.

.. _LEXIS Project:

---------------------------
LEXIS Computational Project
---------------------------

A **LEXIS Computational Project** is an abstraction
of the computing and storage resources allocated
for running **LEXIS Workflows**. As such,
each **LEXIS Computational Project** can have multiple associated
**HPC Computational Projects** which may be provided
by different HPC centres following some dedicated approval process.

.. _LEXIS Dataset Listing:

---------------------
LEXIS Dataset Listing
---------------------

The **LEXIS Dataset Listing** produces a list of the datasets available via the
LEXIS DDI and via the WCDA. In general, this comprises
of public datasets, project specific datasets and datasets owned
and managed by the user, all hosted on the DDI.

.. _LEXIS Task:

----------
LEXIS Task
----------

A **LEXIS Task** represents an element of the **LEXIS Workflow**,
and it defines a set of operations to be performed,
along with attributes such as the required input data,
output data, monitoring information etc.
The lifecycle of a **LEXIS Task** depends on the specific
operations it has to perform. However, it is (in any case)
restricted to the lifetime of the **LEXIS Workflow**.

.. _LEXIS Task Execution:

--------------------
LEXIS Task Execution
--------------------

A LEXIS Task Execution represents the actual execution of
a task within a **LEXIS Workflow Execution**.
The tasks are selected and deployed on the resources
dynamically by the orchestrator.

.. _dict-users-dataset:

--------------------
LEXIS User's Dataset
--------------------

A **LEXIS Dataset** represents the input or output
set of data that a **LEXIS Workflow** consumes or produces
respectively during its execution. The datasets can be
uploaded or downloaded in the LEXIS Portal
user interface. User's dataset is set of files uploaded
to LEXIS platform via LEXIS portal, HTTP API or other options.
User's dataset consists of zero or more files structured into directories,
and dataset's metadata inspired by `DataCite <https://datacite.org/>`_ format.
Modifiable level of visibility has three levels: user, project, and public.

.. _LEXIS Workflow:

--------------
LEXIS Workflow
--------------

Starting from a **LEXIS Workflow** template,
the corresponding **LEXIS Workflow** associates
the inputs to the **LEXIS Tasks** and the application of configurations
(i.e., setting up of specific input parameters) to each **LEXIS Task**.

.. _LEXIS Workflow Catalogue:

------------------------
LEXIS Workflow Catalogue
------------------------

The **LEXIS Workflow Catalogue** provides the repository
of **LEXIS Workflow Templates** managed by the LEXIS Platform.
It contains the set of workflow templates (catalogue)
that users can instantiate and execute on the associated computational
resources in particular centres (HPC systems, Cloud, etc.).
Note that access restrictions apply to the **Workflow Catalogue**:
users can only create **LEXIS Workflows**
based on the **LEXIS Workflow Templates** available to them.

.. _LEXIS Workflow Execution:

------------------------
LEXIS Workflow Execution
------------------------
A **LEXIS Workflow Execution** represents the actual
deployment of the **LEXIS Workflow** on the resources
selected by the orchestrator. Each **LEXIS Task** is deployed
on the set of computational resources dynamically selected
by the orchestrator (according to monitoring data,
internal placement policies, user's specified criteria),
along with their required inputs (e.g., **LEXIS User's Dataset**).
The operations defining the **LEXIS Tasks** are thus executed.
The execution of **LEXIS Tasks** generates
outputs (e.g., output **LEXIS User's Dataset**).

.. _LEXIS Workflow Template:

------------------------
LEXIS Workflow Template
------------------------

The **LEXIS Workflow Template** is a description
of the connections of **LEXIS Tasks** that must be
performed to complete the processing
of the input **LEXIS User's Datasets** and producing
output **LEXIS User's Datasets**. As such,
**LEXIS Tasks** inside a **LEXIS Workflow Template**
can be organised to form a DAGs,
with ability to access the databases, etc.
A **LEXIS Workflow Template** provides a description
of its **LEXIS Tasks** and the correct sequence of their execution.

.. _Principal Investigator:

----------------------
Principal Investigator
----------------------

Each **HPC Computational Project** must have
a **Principal Investigator**. **Principal Investigator**
is responsible for appropriate use of the project resources.
The PI can perform standard administrative operations
on the project including adding and removing users,
viewing usage of the resources, requesting more
resources etc. Note that the LEXIS can support
**HPC Computational Projects** in which the **Principal Investigator**
is not involved in any of the LEXIS Projects
(i.e., they are not a LEXIS user).
