Skip to content
MonikaVo edited this page Apr 16, 2024 · 3 revisions

Welcome

This repository provides the schemas used for the demonstration of the FINALES framework using the FINALES2 implementation.

What is a FINALES schema and what is it used for?

The FINALES schemas provide a defined and uniform data structure for the communication within a Materials Acceleration Platform (MAP) deplying the FINALES framework. Every request and result posted to the FINALES must obey to data structures registered in the database of FINALES. This enables the verification of incoming data versus the schema registered for the type of input and in case allows for the rejection of malformatted or non-compliant data structures. This contributes to securing the database against malicious input and facilitates the (re)use of the data stored in the database. The structure of the schemas is registered with the FINALES using a JSON schema describing the data structure. After registration, the schemas are stored in the FINALES database and accessed when needed for verification.

The schemas define the input and output structures of methods used by the tenants. The FINALES allows for one schema per quantity-method pair (referred to as a capability). An attempt to register a second schema for a capability with the same instance of FINALES will result in a prompt informing the user about a schema already being registered and active within the instance. Schemas are registered, inactivated or reactivated by the FINALES administrator as described in the respective procedure in the FINALES documentation. The schemas in FINALES are designed to be reused as much as possible to avoid several schemas describing the same objects. This means, that the same structures can and should be commonly used by several tenants.

The schemas provided in this repository may be reused in, extended or adapted for future studies.

The structure of this repository

This repository is mainly structured in three directories (classes_common, classes_input, and classes_output), which will be shortly described in the following. Additionally to these directories, the generate_schemas.py script is important since it creates the JSON files for the capabilities needed to register them with the FINALES.

classes_common

This directory collects structures for objects, which are relevant for several tenants. These structures should be reused as much as possible to avoid differences in the structures. For details see Classes Common.

classes_input

This directory contains the definitions of classes used as inputs for a capability of a tenant. These definitions are relevant for requests posted to the FINALES. For details see Classes Input.

classes_output

The schema definitions in this directory define outputs of tenant capabilities, which are relevant in the results posted to the FINALES. For details see Classes Output.