<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="other" dtd-version="1.2" xml:lang="en">
    <front>
        <journal-meta>
            <journal-id journal-id-type="pmc">F1000Research</journal-id>
            <journal-title-group>
                <journal-title>F1000Research</journal-title>
            </journal-title-group>
            <issn pub-type="epub">2046-1402</issn>
            <publisher>
                <publisher-name>F1000 Research Limited</publisher-name>
                <publisher-loc>London, UK</publisher-loc>
            </publisher>
        </journal-meta>
        <article-meta>
            <article-id pub-id-type="doi">10.12688/f1000research.110875.2</article-id>
            <article-categories>
                <subj-group subj-group-type="heading">
                    <subject>Software Tool Article</subject>
                </subj-group>
                <subj-group>
                    <subject>Articles</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>Adamant: a JSON schema-based metadata editor for research data management workflows</article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 2; peer review: 3 approved]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Chaerony Siffa</surname>
                        <given-names>Ihda</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-4232-4543</uri>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Sch&#x00e4;fer</surname>
                        <given-names>Jan</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-0652-5057</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Becker</surname>
                        <given-names>Markus M.</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Project Administration</role>
                    <role content-type="http://credit.niso.org/">Supervision</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-9324-3236</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>Leibniz Institute for Plasma Science and Technology (INP), Greifswald, Felix-Hausdorff-Stra&#x00df;e 2, 17489, Germany</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:ihda.chaeronysiffa@inp-greifswald.de">ihda.chaeronysiffa@inp-greifswald.de</email>
                </corresp>
                <fn fn-type="conflict">
                    <p>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>19</day>
                <month>7</month>
                <year>2022</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2022</year>
            </pub-date>
            <volume>11</volume>
            <elocation-id>475</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>18</day>
                    <month>7</month>
                    <year>2022</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2022 Chaerony Siffa I et al.</copyright-statement>
                <copyright-year>2022</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <self-uri content-type="pdf" xlink:href="https://f1000research.com/articles/11-475/pdf"/>
            <abstract>
                <p>The web tool Adamant has been developed to systematically collect research metadata as early as the conception of the experiment. Adamant enables a continuous, consistent, and transparent research data management (RDM) process, which is a key element of good scientific practice ensuring the path to Findable, Accessible, Interoperable, Reusable (FAIR) research data. It simplifies the creation of on-demand metadata schemas and the collection of metadata according to established or new standards. The approach is based on JavaScript Object Notation (JSON) schema, where any valid schema can be presented as an interactive web-form. Furthermore, Adamant eases the integration of numerous available RDM methods and software tools into the everyday research activities of especially small independent laboratories. A programming interface allows programmatic integration with other software tools such as electronic lab books or repositories. The user interface (UI) of Adamant is designed to be as user friendly as possible. Each UI element is self-explanatory and intuitive to use, which makes it accessible for users that have little to no experience with JSON format and programming in general. Several examples of research data management workflows that can be implemented using Adamant are introduced. Adamant (client-only version) is available from: https://plasma-mds.github.io/adamant.</p>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>Research Data Management</kwd>
                <kwd>JSON Schema</kwd>
                <kwd>FAIR Principles</kwd>
            </kwd-group>
            <funding-group>
                <award-group id="fund-1" xlink:href="http://dx.doi.org/10.13039/501100002347">
                    <funding-source>Bundesministerium f&#x00fc;r Bildung und Forschung</funding-source>
                    <award-id>16QK03A</award-id>
                </award-group>
                <funding-statement>The work was funded by the Federal Ministry of Education and Research (BMBF) under the grant mark 16QK03A granted to the Leibniz Institute for Plasma Science and Technology (INP). The responsibility for the content of this publication lies with the authors.</funding-statement>
                <funding-statement>
                    <italic>The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</italic>
                </funding-statement>
            </funding-group>
        </article-meta>
        <notes>
            <sec sec-type="version-changes">
                <label>Revised</label>
                <title>Amendments from Version 1</title>
                <p>The new version now includes an outlook for the planned future features of Adamant, which will be available in the next releases of the tool.</p>
            </sec>
        </notes>
    </front>
    <body>
        <sec id="sec1" sec-type="intro">
            <title>Introduction</title>
            <p>The demand of funding organizations and publishers to make research data discoverable, accessible, interoperable, and reusable in the sense of the FAIR principles
                <sup>
                    <xref ref-type="bibr" rid="ref1">1</xref>
                </sup> and the associated need for digitization and automation of research data management (RDM) processes pose new challenges for some research fields. In particular, for smaller laboratories in physics departments that operate away from large-scale experiments in astrophysics, or high-energy physics, new processes for research data management must be introduced and established. While the aspects of findability and accessibility can be realized without much effort by means of a data publication on a generic platform, the interoperability and reusability of the (domain-specific) data and metadata often pose a major challenge and requires certain conventions and standards in the communities. There are hardly any common research data management processes in areas such as optics and low-temperature plasma physics, and handwritten laboratory notebooks are still the standard in many places.
                <sup>
                    <xref ref-type="bibr" rid="ref2">2</xref>
                </sup> On the other hand, electronic laboratory notebook (ELN) systems, repositories, collaborative tools, and (meta-)data standards already exist that can support the implementation of the FAIR principles and Open Science practices. A major challenge is to integrate these tools and standards into the everyday research activities. This is especially challenging when extremely diverse needs have to be addressed at institutions, no specific standard procedures and (meta-)data standards exist, and only a few scientists at a time are dealing with similar instruments and data.</p>
            <p>Adamant has been developed to support especially these often small laboratories and departments in the implementation of digital research data management processes and the step-by-step adoption of the FAIR principles. To this end, a tool is provided for the easy use or compilation and creation of domain-specific metadata and metadata schemas based on the widely used JavaScript Object Notation (JSON) schema standard, which recently has been gaining traction in several scientific communities.
                <sup>
                    <xref ref-type="bibr" rid="ref3">3</xref>
                </sup>
                <sup>&#x2013;</sup>
                <sup>
                    <xref ref-type="bibr" rid="ref7">7</xref>
                </sup> The use of JSON schema in Adamant enables straightforward validation of the metadata ensuring its quality.
                <sup>
                    <xref ref-type="bibr" rid="ref8">8</xref>
                </sup>
                <sup>,</sup>
                <sup>
                    <xref ref-type="bibr" rid="ref9">9</xref>
                </sup> Furthermore, storing the metadata in JSON format maintains the adaptability of the created metadata with different RDM tools and processes, and increases the findability of the research data to which the metadata is attached, in view of the fact that JSON documents are human- and machine-readable.
                <sup>
                    <xref ref-type="bibr" rid="ref8">8</xref>
                </sup>
                <sup>,</sup>
                <sup>
                    <xref ref-type="bibr" rid="ref10">10</xref>
                </sup>
                <sup>,</sup>
                <sup>
                    <xref ref-type="bibr" rid="ref11">11</xref>
                </sup> An Application Programming Interface (API) based integration with other systems enables the seamless embedding of Adamant into institutional research data management processes. This positions Adamant directly alongside electronic laboratory notebook systems and makes it suitable for ensuring standards-compliant documentation of scientific studies as early as the planning and execution of experiments.</p>
            <p>In its current form, Adamant (v1.0.0) offers various features that can support diverse workflows within RDM activities. The features are as follow:
                <list list-type="bullet">
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Rendering of interactive web-form based on a valid JSON schema</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>User-friendly editing process of the rendered web-form and the corresponding schema</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Creating a valid JSON schema and web-form from scratch</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Live validation for various field types</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Quick re-use of existing schemas from a list</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Downloadable JSON schema and its form data</p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>API-based integration as various form submission functionalities</p>
                    </list-item>
                </list>
            </p>
        </sec>
        <sec id="sec2" sec-type="methods">
            <title>Methods</title>
            <p>This section describes the thought process of selecting the technology stack for the development of Adamant, and the implementation details of the tool&#x2019;s functionalities. Subsequently, detailed descriptions on how to set up and operate Adamant are described. The code is available from 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/plasma-mds/adamant">GitHub</ext-link> and is archived with Zenodo.
                <sup>
                    <xref ref-type="bibr" rid="ref29">29</xref>
                </sup>
            </p>
            <sec id="sec3">
                <title>Implementation</title>
                <p>
                    <bold>Technology stack and architecture</bold>
                </p>
                <p>Adamant has been developed as a web-based tool. This decision was motivated by the end user experience, where end users can use Adamant directly on a web browser available on their machines and handheld devices with no prior installation and configurations required. We considered several things when choosing the right technology stack for developing Adamant, such as the availability and ease of use of the technology, whether its community is active and big, and the possibility of the technology still being relevant in the coming years, often indicated by its adoption rate and popularity. For these reasons, we adopted a technology stack consisting solely of open-source software, such as ReactJS
                    <sup>
                        <xref ref-type="bibr" rid="ref12">12</xref>
                    </sup> and Flask
                    <sup>
                        <xref ref-type="bibr" rid="ref13">13</xref>
                    </sup> (as the main development frameworks). This stack utilizes two of the most popular programming languages, namely JavaScript and Python
                    <sup>
                        <xref ref-type="bibr" rid="ref14">14</xref>
                    </sup> (Python Programming Language, RRID:SCR_008394). On top of that, we utilized Docker (Docker Desktop, RRID:SCR_016445) and Docker Compose for straightforward packaging and deployment of the developed tool.
                    <sup>
                        <xref ref-type="bibr" rid="ref15">15</xref>
                    </sup> Like a typical web tool or application, Adamant consists of front-end and back-end layers. The front-end part serves as the presentation layer in the form of a Graphical User Interface (GUI) for end users to interact with. The back-end part is a server-side part of the tool with the main task of providing processes that are not suitable to be run on the client-side
                    <sup>[</sup>
                    <xref ref-type="fn" rid="fn1">
                        <sup>1</sup>
                    </xref>
                    <sup>]</sup>. Lastly, the front-end and back-end layers are bridged using an API built upon the Hypertext Transfer Protocol (HTTP) request methods, such as 
                    <monospace>POST</monospace> and 
                    <monospace>GET</monospace>.</p>
                <p>The front-end has been developed in the Node.js
                    <sup>
                        <xref ref-type="bibr" rid="ref16">16</xref>
                    </sup> (v14.15.5) JavaScript runtime environment making use of ReactJS (v17.0.2), which is a popular JavaScript library for developing a highly interactive browser-based GUI. ReactJS is combined with the Material-UI library
                    <sup>
                        <xref ref-type="bibr" rid="ref17">17</xref>
                    </sup> (v4.12.3), which contains many pre-existing user interface (UI) components. The pre-existing components can be modified to one&#x2019;s need straightforwardly thus accelerating the UI development. The main bulk of the features are implemented on the front-end. This includes the automatic rendering process of a JSON schema into a web-form, form editing logic (editing of the rendered web-form or creating one from scratch), and input validation processes. The back-end is written in Python (v3.8.7) using the Flask library (v2.0.2). Flask is a lightweight web framework and straightforward to use making it suitable for the scope of Adamant development. The back-end&#x2019;s tasks include providing the front-end with available JSON schemas from the server, data preparation, necessary e-mail notification for users, and API calls for communication with external applications (API based integration), e.g., ELN and online data repository systems.</p>
                <p>
                    <xref ref-type="fig" rid="f1">Figure 1</xref> provides an overview of Adamant&#x2019;s software architecture and the main functionalities of each application layer along with the corresponding technologies.</p>
                <fig fig-type="figure" id="f1" orientation="portrait" position="float">
                    <label>Figure 1. </label>
                    <caption>
                        <title>Overview of Adamant&#x2019;s software architecture.</title>
                        <p>API, Application Programming Interface; JSON, JavaScript Object Notation; HTTP, Hypertext Transfer Protocol.</p>
                    </caption>
                    <graphic id="gr1" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure1.gif"/>
                </fig>
                <p>
                    <bold>Front-end: JSON schema to editable web-form</bold>
                </p>
                <p>A JSON schema, like every other JSON document, contains key (word)-value pair instances, where the value parts may contain another set of keyword-value pairs, i.e., nested objects.
                    <sup>
                        <xref ref-type="bibr" rid="ref8">8</xref>
                    </sup>
                    <sup>,</sup>
                    <sup>
                        <xref ref-type="bibr" rid="ref10">10</xref>
                    </sup>
                    <sup>,</sup>
                    <sup>
                        <xref ref-type="bibr" rid="ref11">11</xref>
                    </sup> In a JSON schema, there are a number of schema-specific keywords that are mainly used for validation and annotation of the elements in a schema.
                    <sup>
                        <xref ref-type="bibr" rid="ref8">8</xref>
                    </sup>
                    <sup>,</sup>
                    <sup>
                        <xref ref-type="bibr" rid="ref9">9</xref>
                    </sup> For example, a typical set of schema-specific keywords found in a JSON schema and its sub-schema contains 
                    <monospace>$id/id</monospace>, 
                    <monospace>$schema</monospace>, 
                    <monospace>title</monospace>, 
                    <monospace>type</monospace>, and 
                    <monospace>properties</monospace> keywords.
                    <sup>
                        <xref ref-type="bibr" rid="ref9">9</xref>
                    </sup> On many occasions, more specific keywords are used to further annotate or describe the elements in a schema. The specific functions of these keywords are dictated by the schema specification version a JSON schema is specified in, which is declared at the very beginning of the schema under the 
                    <monospace>$schema</monospace> keyword. A comprehensive documentation of the JSON schema standard can be found at 
                    <ext-link ext-link-type="uri" xlink:href="https://json-schema.org/">https://json-schema.org/</ext-link>. An example of a JSON schema with the specification version draft 4 is shown in 
                    <xref ref-type="fig" rid="f7">Listing 1</xref>, which contains the typical keywords stated earlier, and several field elements. One of the main features of Adamant is to create a web-form representation of a given JSON schema, where users can fill it in and create a JSON document containing the form data for anything they want to describe, e.g., a lab experiment or a dataset. It is worth noting that there are several freely-available libraries and tools for JSON form rendering that conform to the JSON schema specifications.
                    <sup>
                        <xref ref-type="bibr" rid="ref18">18</xref>
                    </sup>
                    <sup>&#x2013;</sup>
                    <sup>
                        <xref ref-type="bibr" rid="ref21">21</xref>
                    </sup> Unfortunately, the available libraries and tools, though some offer direct editing of the schema, do not provide a user-friendly interface for schema (or form) creation and editing right out of the box as what we have envisioned with Adamant. Therefore, we decided to build a custom JSON schema form renderer from the ground up in order to achieve this, which allows us to maintain full control as well as flexibility during the development of Adamant&#x2019;s current and future features. At the time of writing this paper, Adamant (v1.0.0) supports the rendering and editing of JSON schemas with a specification version draft 4 or 7.</p>
                <fig fig-type="figure" id="f7" orientation="portrait" position="float">
                    <label>Listing 1. </label>
                    <caption>
                        <title>Example of a draft-4 JSON schema containing typical schema-specific keywords presented in blue with their values presented in black, and field element keywords presented in red.</title>
                        <p>JSON, JavaScript Object Notation.</p>
                    </caption>
                    <graphic id="gr7" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure7.gif"/>
                </fig>
                <p>Adamant employs a recursive form field rendering process that makes accessing of the keyword-value pairs located within nested objects possible. The rendering process starts by determining the value of the 
                    <monospace>type</monospace> keyword in the uppermost object (or parent object) of the schema. The 
                    <monospace>type</monospace> keyword in this location commonly has a string value of 
                    <monospace>object</monospace>. This value indicates that a 
                    <monospace>properties</monospace> keyword is present within the same location. The properties keyword&#x2019;s value is a set of keyword-value pairs (an object), where each pair contains the information that the process needs to render the field. As the process iterates over these keyword-value pairs, it renders a certain form field type according to its 
                    <monospace>type</monospace> keyword&#x2019;s value. The acceptable types in a JSON schema are 
                    <monospace>string</monospace>, 
                    <monospace>number</monospace>, 
                    <monospace>integer</monospace>, 
                    <monospace>boolean</monospace>, 
                    <monospace>array</monospace>, and 
                    <monospace>object</monospace>. If the process stumbles upon a field keyword that has the type of 
                    <monospace>object</monospace> again, then a container will be rendered, and the recursion process is initiated. This process iterates over the current 
                    <monospace>properties</monospace> keyword&#x2019;s value following the same procedure as before, and renders each field within the newly created container. In this way, the process will not terminate until all form fields are rendered. This is a condition where the process does not find any field keyword with the type of 
                    <monospace>object</monospace> anymore. Apart from the 
                    <monospace>type</monospace> keyword&#x2019;s values, the renderer also makes use of other keywords&#x2019; values to adorn the form field with useful information, such as the values of 
                    <monospace>title</monospace> and 
                    <monospace>description</monospace> keywords (annotation keywords). The main steps of this form field rendering process is also represented in a flowchart diagram as shown in 
                    <xref ref-type="fig" rid="f2">Figure 2</xref>.</p>
                <fig fig-type="figure" id="f2" orientation="portrait" position="float">
                    <label>Figure 2. </label>
                    <caption>
                        <title>JSON schema to web-form rendering flowchart.</title>
                        <p>JSON, JavaScript Object Notation.</p>
                    </caption>
                    <graphic id="gr2" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure2.gif"/>
                </fig>
                <p>Another main feature of Adamant is the capability of editing the rendered fields. This feature allows users to change the values of relevant keywords in the schema, and re-order the rendered fields within the same container. To achieve this feature, apart from the rendering of the form fields, each rendered field is also supplied with several editing interfaces along with the editing and input handling logic. Creating a schema (or form) from scratch is another feature made possible by using the same principle of this form editing feature, which basically presents the user with a blank schema and lets them add the field elements as required.</p>
                <p>For a certain use case, a file upload functionality can be included in a rendered form. This functionality is intended as an alternative way of enriching the metadata when texts are no longer sufficient. For example, an experiment may have a graphical description of its set-up. In this case, the user can include an image file within the metadata using this file upload functionality. To add this functionality, a string-type field element, with the addition of &#x201c;contentEncoding&#x201d;:&#x201c;base64&#x201d; keyword-value pair, must be specified in the schema. This particular keyword-value pair will inform the rendering function to create a file upload field element, where the selected file is read as a string of base64-encoded binary data. Fortunately, adding the file upload functionality can be done in only a couple of mouse clicks in Adamant. For a smooth experience, the uploaded file is recommended to have the size of less than 500 kilobytes.</p>
                <p>Lastly, 
                    <xref ref-type="table" rid="T1">Table 1</xref> presents a complete list of the implemented field types and their relevant keywords in the current version of Adamant (v1.0.0).</p>
                <table-wrap id="T1" orientation="portrait" position="float">
                    <label>Table 1. </label>
                    <caption>
                        <title>Implemented JSON schema field types and their relevant keywords in Adamant v1.0.0.</title>
                        <p>Note that the 
                            <monospace>id</monospace> keyword only works with the JSON schema specification version draft 4, whereas 
                            <monospace>$id</monospace> is used for the newer specification drafts. Lastly, the 
                            <monospace>contentEncoding</monospace> keyword is intended to be used with the specification version draft 7 or newer. JSON, JavaScript Object Notation.</p>
                    </caption>
                    <table content-type="article-table" frame="hsides">
                        <thead>
                            <tr>
                                <th align="left" colspan="1" rowspan="1" valign="top">Field type</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Implemented keywords</th>
                                <th align="left" colspan="1" rowspan="1" valign="top">Note</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">String</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>title, id, $id, description, type, enum, contentEncoding, default, minLength, maxLength</monospace>
                                </td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>contentEncoding can only receive a string value of &#x201c;base64&#x201d;</monospace>
                                </td>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Number</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>title, id, $id, description, type, enum, default, minimum, maximum</monospace>
                                </td>
                                <td colspan="1" rowspan="1"/>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Integer</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>title, id, $id, description, type, enum, default, minimum, maximum</monospace>
                                </td>
                                <td colspan="1" rowspan="1"/>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Boolean</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>title, id, $id, description, type, default</monospace>
                                </td>
                                <td colspan="1" rowspan="1"/>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Array</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>title, id, $id, description, type, default, items, minItems, maxItems, uniqueItems</monospace>
                                </td>
                                <td colspan="1" rowspan="1"/>
                            </tr>
                            <tr>
                                <td align="left" colspan="1" rowspan="1" valign="top">Object</td>
                                <td align="left" colspan="1" rowspan="1" valign="top">
                                    <monospace>title, id, $id, description, type, properties, required</monospace>
                                </td>
                                <td colspan="1" rowspan="1"/>
                            </tr>
                        </tbody>
                    </table>
                </table-wrap>
                <p>
                    <bold>Front-end: JSON form data validation using Ajv</bold>
                </p>
                <p>As the user fills in the form, a JSON document containing the entered data is created and updated accordingly and simultaneously, this JSON document is called JSON form data. Upon finishing the form filling process, the created JSON form data can be used for other operations. To ensure the correctness or quality of the entered data, the JSON form data is validated against its schema prior further operation. For this validation purpose, Adamant takes the advantage of the Ajv library (v8.8.2).
                    <sup>
                        <xref ref-type="bibr" rid="ref22">22</xref>
                    </sup> By using this library, any discrepancies between the JSON form data and its schema can be identified. For example, if a field is required to be filled and the user does not provide any input, then the process will throw a validation error with relevant error messages. Many other keyword specific validations are included in this library, which helps with ensuring the quality of the form data with respect to its schema.</p>
                <p>
                    <bold>Back-end: API-based integration</bold>
                </p>
                <p>Many existing web applications provide APIs for seamless integration with other (external) web tools or applications. For instance, web applications that are commonly used in the RDM community include online data repository systems, ELNs, collaborative and version control applications, etc. These applications, more often than not, provide API endpoints that are straightforward to use. Several web tools have also been developed each addressing certain challenges in RDM, such as COPO,
                    <sup>
                        <xref ref-type="bibr" rid="ref3">3</xref>
                    </sup> and Dendro.
                    <sup>
                        <xref ref-type="bibr" rid="ref23">23</xref>
                    </sup> Adamant is equipped with a back-end layer whose main purpose is to ensure the possibility of seamless integration with such web applications. The back-end is written in Python (v3.8.7) using the Flask library (v2.0.2), which is advantageous given numerous web applications provide Python libraries for their API calls. The connection between Adamant&#x2019;s front-end and back-end is achieved primarily using the 
                    <monospace>POST</monospace> and 
                    <monospace>GET</monospace> HTTP request methods. The 
                    <monospace>POST</monospace> method is used to send data from the front-end to the back-end, which is then pre-processed (if needed) and relayed to the external application (using the provided API). The 
                    <monospace>GET</monospace> method is used when the client-side requires information or data only available in the server-side or from an external application, e.g., when retrieving schemas from the server, or retrieving tags and database items from an external application. With this straightforward approach, various functionalities can be implemented in the server-side that can help with realizing application-specific RDM workflows.</p>
            </sec>
            <sec id="sec4">
                <title>Operation</title>
                <p>Many features of Adamant can be explored directly in the client-only version available online at 
                    <ext-link ext-link-type="uri" xlink:href="https://plasma-mds.github.io/adamant">https://plasma-mds.github.io/adamant</ext-link>. This version only lacks the submission-related features, which require the server-side to operate. To access the full features, Adamant can be set up and deployed on a local machine or a server that allows for running both the client and server sides. In most instances, Adamant is not resource intensive, and can be used on a typical smartphone and laptop. However, for deployment and development, we recommend to set up Adamant on a system with at least a 64-bit CPU (with 4 cores) and 8GB of RAM. At the time of writing, Adamant has been tested on Firefox (91.5.1esr), Chrome (v97.0.4692.99), and Chrome Mobile (v97.0.4692.98) web browsers. The following subsections introduce the deployment process of Adamant and how users can interact with it.</p>
                <p>
                    <bold>Setting up Adamant on a local machine</bold>
                </p>
                <p>For development purpose, Adamant can be set up on a local machine. For a Linux system (tested on Ubuntu 20.04.4 LTS), the following steps can be taken for this:
                    <list list-type="order">
                        <list-item>
                            <label>1.</label>
                            <p>
                                <monospace>$ git clone</monospace> 
                                <ext-link ext-link-type="uri" xlink:href="https://github.com/plasma-mds/adamant.git">https://github.com/plasma-mds/adamant.git</ext-link> &#x2014; clone the repository</p>
                        </list-item>
                        <list-item>
                            <label>2.</label>
                            <p>
                                <monospace>$ cd adamant</monospace> &#x2014; go to adamant project directory</p>
                        </list-item>
                        <list-item>
                            <label>3.</label>
                            <p>
                                <monospace>adamant$ npm install</monospace> &#x2014; install the dependencies for the client-side</p>
                        </list-item>
                        <list-item>
                            <label>4.</label>
                            <p>
                                <monospace>adamant$ cd backend</monospace> &#x2014; go to backend directory</p>
                        </list-item>
                        <list-item>
                            <label>5.</label>
                            <p>
                                <monospace>adamant/backend$ python3 -m venv venv</monospace> &#x2014; create a python virtual environment</p>
                        </list-item>
                        <list-item>
                            <label>6.</label>
                            <p>
                                <monospace>adamant/backend$ source./venv/bin/activate</monospace> &#x2014; activate the virtual environment</p>
                        </list-item>
                        <list-item>
                            <label>7.</label>
                            <p>
                                <monospace>adamant/backend$ pip install -r requirements.txt</monospace> &#x2014; install the dependencies for the back-end</p>
                        </list-item>
                        <list-item>
                            <label>8.</label>
                            <p>
                                <monospace>adamant/backend$ ./venv/bin/flask run --no-debugger</monospace> &#x2014; start the back-end</p>
                        </list-item>
                        <list-item>
                            <label>9.</label>
                            <p>Start a new terminal</p>
                        </list-item>
                        <list-item>
                            <label>10.</label>
                            <p>
                                <monospace>adamant$ npm start</monospace> &#x2014; on the new terminal, in the adamant project directory, start the client-side</p>
                        </list-item>
                    </list>
                </p>
                <p>Typically, a web-browser presenting the client-side will open automatically following the last command. In any case, Adamant can be accessed at 
                    <ext-link ext-link-type="uri" xlink:href="http://localhost:3000">http://localhost:3000</ext-link>.</p>
                <p>
                    <bold>Deploying Adamant using Docker</bold>
                </p>
                <p>Adamant is intended to be deployed on an institutional server in the internal network. In this way, anyone who is connected to the institute&#x2019;s network can use Adamant directly. We recommend using Docker to deploy the production build of Adamant, which can be done with the following steps:
                    <list list-type="order">
                        <list-item>
                            <label>1.</label>
                            <p>
                                <monospace>$ git clone</monospace> 
                                <ext-link ext-link-type="uri" xlink:href="https://github.com/plasma-mds/adamant.git">https://github.com/plasma-mds/adamant.git</ext-link> &#x2014; clone the repository</p>
                        </list-item>
                        <list-item>
                            <label>2.</label>
                            <p>
                                <monospace>$ cd adamant</monospace> &#x2014; go to adamant project directory</p>
                        </list-item>
                        <list-item>
                            <label>3.</label>
                            <p>
                                <monospace>adamant$ docker</monospace>
                                <inline-formula>
                                    <mml:math display="inline">
                                        <mml:mo>&#x2212;</mml:mo>
                                    </mml:math>
                                </inline-formula>
                                <monospace>compose build</monospace> &#x2014; build the docker images for both back-end and front-end</p>
                        </list-item>
                        <list-item>
                            <label>4.</label>
                            <p>
                                <monospace>adamant$ docker</monospace>
                                <inline-formula>
                                    <mml:math display="inline">
                                        <mml:mo>&#x2212;</mml:mo>
                                    </mml:math>
                                </inline-formula>
                                <monospace>compose up -d</monospace> &#x2014; start both client and server containers, i.e., the whole system</p>
                        </list-item>
                    </list>
                </p>
                <p>By default, the deployed system can be accessed at 
                    <ext-link ext-link-type="uri" xlink:href="http://localhost:3000">http://localhost:3000</ext-link>.</p>
                <p>
                    <bold>General overview of the Adamant UI</bold>
                </p>
                <p>The general overview of the Adamant UI is presented in 
                    <xref ref-type="fig" rid="f3">Figure 3</xref>. Adamant renders a given JSON schema into a web-form by uploading the schema from a local drive using the &#x201c;BROWSE SCHEMA&#x201d; button, or if already existing, the schema can be selected from a list next to the browse button. Creating a JSON schema from scratch is possible by clicking the &#x201c;CREATE FROM SCRATCH&#x201d; button. After uploading or selecting the schema, the schema is checked by Adamant to see whether the schema file type and structure are valid. If the schema is valid, the schema can be rendered by clicking the &#x201c;RENDER&#x201d; button. The rendering can be undone by clicking the &#x201c;CLEAR&#x201d; button, which also discards the current schema.</p>
                <fig fig-type="figure" id="f3" orientation="portrait" position="float">
                    <label>Figure 3. </label>
                    <caption>
                        <title>Overview of the Adamant UI with a rendered web-form based on the schema in 
                            <xref ref-type="fig" rid="f7">Listing 1</xref> as an example.</title>
                        <p>(A) Main corpus of the UI; (1) from left to right: JSON schema viewer, auto-populate form, edit schema description, revert all changes; (2) remove form field; (3) collapse or expand the field container; (4) field drag handle; (5) edit field description and (B) field editing panel (as a pop-up on top of the main UI) triggered by clicking (5) the edit button. UI, user interface; JSON, JavaScript Object Notation.</p>
                    </caption>
                    <graphic id="gr3" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure3.gif"/>
                </fig>
                <p>As a demonstration, 
                    <xref ref-type="fig" rid="f3">Figure 3</xref> shows the rendered web-form based on the schema represented in 
                    <xref ref-type="fig" rid="f7">Listing 1</xref>. Each rendered field is shown along with its editing interfaces, and the field container&#x2019;s header is rendered in blue for a quick identification. Furthermore, the field container can be expanded and collapsed for a good user experience. The editing interfaces found in each field consists of edit and remove button icons, and a drag handle icon. These interfaces allow the user to change the values of relevant keywords in the schema (directly affecting the rendered field), and re-order the rendered fields by dragging and dropping the field to the desired order within the same container. The changes are reflected to the rendered form immediately, which promotes a What You See Is What You Get (WYSIWYG) application experience for the users. On top of that, each field container is equipped with the &#x201c;ADD ELEMENT&#x201d; button for adding a new field within the corresponding container. By default, Adamant renders the form in the edit mode right after a schema is rendered. The editing mode can be concluded by pressing the &#x201c;COMPILE&#x201d; button, which removes all editing interfaces (thus also removes the editing functionalities) and readies the form for use. In case of needing to edit the form again, the user is able to initiate the editing mode again, and without losing the already entered data.</p>
                <p>
                    <bold>Adding and removing schemas</bold>
                </p>
                <p>A number of schemas can be fixed in the back-end. The back-end serve these stored schemas to the front-end, from which the end users can select. This is important for a quick re-use of the schemas, especially the ones that are regularly used. For this purpose, one can simply add the desired schemas to 
                    <monospace>adamant/backend/schemas/</monospace> directory. Likewise, a schema can be removed from this directory. The list of the schemas in the front-end is updated every time the front-end is refreshed.</p>
            </sec>
        </sec>
        <sec id="sec5">
            <title>Use cases</title>
            <p>At its core, Adamant is a JSON schema form renderer-editor and JSON form data creator presented in an interactive and user-friendly UI. It can be operated by anyone with no prior knowledge of JSON format and coding. This section elaborates the general and 
                <italic toggle="yes">ad hoc</italic> use cases of Adamant that it can be suited to.</p>
            <sec id="sec6">
                <title>Collection of structured and standardized metadata</title>
                <p>The creation or use of a valid JSON schema and the collection of corresponding form data being consistent with the schema can be considered as the general use case of Adamant, which simplifies the collection of structured and standardized metadata. This is particularly relevant for laboratories that are not embedded in large research clusters providing access to established standards and digital research data management workflows. On the one hand, the ability to define required metadata fields and formats supports metadata quality assurance, and on the other hand, storing metadata in JSON format enables further (automated) processing of metadata. This both directly contributes to the &#x201c;FAIRness&#x201d; of metadata.</p>
            </sec>
            <sec id="sec7">
                <title>Creation of an eLabFTW experiment with schema-compliant metadata</title>
                <p>The use case introduced here aims to highlight how the previously described ability to interface with external systems through API-based integration can be used to generate schema-compliant experiment descriptions in eLabFTW. The open source ELN system eLabFTW
                    <sup>
                        <xref ref-type="bibr" rid="ref24">24</xref>
                    </sup>
                    <sup>,</sup>
                    <sup>
                        <xref ref-type="bibr" rid="ref25">25</xref>
                    </sup> (elabFTW, RRID:SCR_013971) is becoming increasingly popular, especially at universities and research institutions. Given Adamant&#x2019;s features (JSON schema-based metadata creation, input validations, etc.), one can see why it could be beneficial to collect structured metadata using Adamant rather than doing it directly in the ELN system, especially when the ELN system is designed to be as general as possible in order to accommodate various kinds of experiments from different scientific fields. Note that eLabFTW already offers the possibility to use predefined templates and to edit JSON files. However, a user-friendly possibility to work directly with JSON schemas and to validate the entered metadata on the basis of these predefined schemas is missing so far.</p>
                <p>
                    <xref ref-type="fig" rid="f4">Figure 4</xref> shows the workflow for creating an experiment using Adamant in the eLabFTW system from the end-user&#x2019;s perspective. The user generates the experiment form by uploading their experiment schema, or selecting it from the list if it already exists. Alternatively, the user can create the form from scratch. If necessary, the user can edit the form (affecting the given schema). For example, changing the title of a certain field, removing a field, etc. When satisfied, the user can compile the rendered form and proceed to fill it in. Upon completing the form, Adamant validates the entered data against the given schema and notifies the user if discrepancies between the entered data and the schema are found, which the user can rectify thereafter. When the entered data are valid, the user can proceed to review the form. After a thorough review, the user can proceed and submit the form. During the submission process, the user will be prompted to input the URL of their eLabFTW system and their eLabFTW API token. Optionally, the user can provide the title and the tags for their experiment. Upon submission, Adamant&#x2019;s back-end prepares the content and creates a new experiment in eLabFTW accordingly, making use of the available eLabFTW API for python, namely elabapy (v0.8.2).
                    <sup>
                        <xref ref-type="bibr" rid="ref26">26</xref>
                    </sup>
                    <sup>,</sup>
                    <sup>
                        <xref ref-type="bibr" rid="ref27">27</xref>
                    </sup> The user will be notified upon a successful submission, and the created experiment can be viewed in the eLabFTW system.</p>
                <fig fig-type="figure" id="f4" orientation="portrait" position="float">
                    <label>Figure 4. </label>
                    <caption>
                        <title>Workflow for creating a new experiment in the eLabFTW system with Adamant.</title>
                    </caption>
                    <graphic id="gr4" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure4.gif"/>
                </fig>
                <p>The eLabFTW system (v4.2.2) makes use of the TinyMCE text editor
                    <sup>
                        <xref ref-type="bibr" rid="ref28">28</xref>
                    </sup> for free text descriptions of experiments. Here, HTML content can be loaded and rendered. Based on this functionality, the present implementation of the described workflow generates an HTML description list content based on the submitted JSON form data and its schema. The title of the field (obtained from the schema) is used and paired with the value of this field, as shown in 
                    <xref ref-type="fig" rid="f5">Figure 5(a)</xref>, where the titles are encapsulated within the 
                    <monospace>&lt;dt&gt;</monospace> tags, the values within the 
                    <monospace>&lt;dd&gt;</monospace> tags, and the complete pairs in the 
                    <monospace>&lt;dl&gt;</monospace> tags. The description list is rendered in a way to attain or simulate the look of a form, as presented in 
                    <xref ref-type="fig" rid="f5">Figure 5(b)</xref>, which increases the readability of the content. This result is achieved by using a custom Cascading Style Sheets (CSS) styling, which can be provided to the eLabFTW system. The generation of this description list content is carried out on Adamant&#x2019;s front-end side. Note that it is equally possible to upload the experiment information prepared in Adamant directly to the eLabFTW experiment in JSON format. However, this would present it in the form of additional information to the experiment description. Since we consider the structured metadata to be the main component of the experiment documentation, the described workaround based on the HTML description lists in the main body has been chosen. Still, the schema, JSON form data, and uploaded files (if available) are sent as attachments to the eLabFTW experiment. In this way, the schema and form data that describe the experiment are preserved and available for re-use, while retaining the high readability of the experiment body for the user.</p>
                <fig fig-type="figure" id="f5" orientation="portrait" position="float">
                    <label>Figure 5. </label>
                    <caption>
                        <title>HTML description list rendering in eLabFTW.</title>
                        <p>(a) Title-value pairs in the HTML description list format, and (b) the rendered description list with a custom CSS styling. CSS, Cascading Style Sheets.</p>
                    </caption>
                    <graphic id="gr5" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure5.gif"/>
                </fig>
            </sec>
            <sec id="sec8">
                <title>Submission of metadata for research lab workflow</title>
                <p>Research institutions are often equipped with advanced laboratory instruments, such as Scanning Electron Microscopy (SEM) and Mass Spectrometry (MS) instruments just to name a few. These instruments are pivotal for various research investigations in many scientific fields. However, not every researcher at the institute is able to operate and has access to such instruments. To this end, we propose a job request workflow using Adamant that also incorporates the use of eLabFTW for experiment documentation.</p>
                <p>The job request workflow represented in 
                    <xref ref-type="fig" rid="f6">Figure 6</xref> aims to streamline the process of requesting a job or an investigation of an object of interest using a laboratory instrument that needs to be carried out by the designated instrument operator. From Adamant&#x2019;s perspective, this workflow involves two users, namely the researcher who wants to get something done with an instrument they do not know how to use (or do not have access to), denoted as the &#x201c;requester&#x201d;, and the instrument operator, denoted as the &#x201c;operator&#x201d;. From the documentary point of view, the requester provides the information required to execute the job, while the operator can add metadata related to the instrument and the analysis method. Hence, the schemas used for this workflow can be divided into two, the request schema and the experiment schema. The request schema is used by the requester, and is a subset of the experiment schema including only the form fields for the request details. The experiment schema is used by the operator, which contains every form field necessary to describe the experiment using the selected instrument. Examples of a request schema and its corresponding experiment schema (complete schema) are available here and here, respectively. Both users are notified automatically per e-mail for relevant events within the workflow, such as when the requester submits the job request and the operator starts working on the request. The e-mail notifications are made sure to work accordingly by including the necessary information of the requester and operator within the used schemas, and by setting up the e-mail notification configuration for the relevant schemas. An example of the e-mail notification configuration file can be found in 
                    <monospace>adamant/backend/conf</monospace>/, in which each configuration parameter is explained. For using more than one job request workflow, one can simply add another schema-specific configuration into the 
                    <monospace>confList</monospace> keyword. The right configuration is then automatically selected based on the relevant schema titles.</p>
                <fig fig-type="figure" id="f6" orientation="portrait" position="float">
                    <label>Figure 6. </label>
                    <caption>
                        <title>Job request workflow using Adamant involving two users: a requester and an operator.</title>
                        <p>JSON, JavaScript Object Notation.</p>
                    </caption>
                    <graphic id="gr6" orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/136205/fc29afae-cdf7-406f-8b35-9cbe89dd5eb1_figure6.gif"/>
                </fig>
            </sec>
        </sec>
        <sec id="sec9" sec-type="conclusions">
            <title>Conclusions and outlook</title>
            <p>We have developed a web-based tool named Adamant with the aim of easing the implementation of digital research data management processes. With this, we intend to support the adoption of the FAIR data principles in independent labs, which do not (yet) have access to established research data management infrastructures and domain-specific standards. Adamant provides straightforward compilation and creation of metadata and metadata schemas based on the JSON schema standard, and API-based integration with other available research data management software tools. The intuitive and self-explanatory UI of Adamant increases the accessibility for users with little to no experience with JSON format and programming in general. A flagship implementation of Adamant is the use of the tool, generally, in a core facility or laboratory of a research institute that often hosts advanced scientific equipment, such as the scanning electron microscopy instrument. This is often an advanced expertise that different teams want to use, while a small competence group (experts in such an instrument) ensures that the investigation tasks are optimally processed. Such a use case is demonstrated in the Adamant&#x2019;s submission of metadata for research lab workflow. With that as an example, Adamant can be suited to many specific use cases by extending it with relevant submission functionalities.</p>
            <p>In future work, we plan to implement features such as ontology and knowledge graph integrations, and workflows for dataset publication in a research data repository. The implementation of the former can promote and simplify the use of existing terminologies and schemas as well as the re-use of already available metadata, e.g., when describing instruments used in the experiments. The latter, i.e., the integration of Adamant with data repositories such as CKAN/DKAN, Dataverse or DSpace would simplify the process of data publications, e.g., by directly transferring metadata stored in the ELN to the repository. This also supports data provenance tracking. These features are expected to further support the implementation of the FAIR principles in research-lab workflows and will be included in future releases of Adamant.</p>
        </sec>
        <sec id="sec10">
            <title>Data availability</title>
            <sec id="sec11">
                <title>Underlying data</title>
                <p>All data underlying the results are available as part of the article and no additional source data are required.</p>
            </sec>
        </sec>
        <sec id="sec12">
            <title>Software availability</title>
            <p>
                <list list-type="bullet">
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Adamant (client-only version) available from: 
                            <ext-link ext-link-type="uri" xlink:href="https://plasma-mds.github.io/adamant">https://plasma-mds.github.io/adamant</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Source code available from: 
                            <ext-link ext-link-type="uri" xlink:href="https://github.com/plasma-mds/adamant">https://github.com/plasma-mds/adamant</ext-link>
                        </p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>Archived source code at time of publication: 
                            <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.6396182">https://doi.org/10.5281/zenodo.6396182</ext-link>
                            <sup>
                                <xref ref-type="bibr" rid="ref29">29</xref>
                            </sup>
                        </p>
                    </list-item>
                    <list-item>
                        <label>&#x2022;</label>
                        <p>License: 
                            <ext-link ext-link-type="uri" xlink:href="https://opensource.org/licenses/MIT">MIT</ext-link>
                        </p>
                    </list-item>
                </list>
            </p>
        </sec>
    </body>
    <back>
        <ack>
            <title>Acknowledgements</title>
            <p>The authors would like to thank Nick Plathe for their helpful suggestions and Laura Vilardell Scholten for developing the description list CSS code.</p>
        </ack>
        <ref-list>
            <title>References</title>
            <ref id="ref1">
                <label>1</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Wilkinson</surname>
                            <given-names>MD</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Dumontier</surname>
                            <given-names>M</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Aalbersberg</surname>
                            <given-names>IJ</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>The FAIR guiding principles for scientific data management and stewardship.</article-title>
                    <source>

                        <italic toggle="yes">Sci. Data.</italic>
</source>
                    <year>2016</year>;<volume>3</volume>:<fpage>160018</fpage>.
                    <pub-id pub-id-type="pmid">26978244</pub-id>
                    <pub-id pub-id-type="doi">10.1038/sdata.2016.18</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref2">
                <label>2</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Israel</surname>
                            <given-names>H</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Tobschall</surname>
                            <given-names>E</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Tristram</surname>
                            <given-names>F</given-names>
                        </name>
</person-group>:
                    <article-title>Dataset for the publication &#x201c;Umfrage zum Forschungsdatenmanagement in der Physik&#x201d;.</article-title>
                    <year>2021</year>.
                    <pub-id pub-id-type="doi">10.7795/730.20210511</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref3">
                <label>3</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Shaw</surname>
                            <given-names>F</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Etuk</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Minotto</surname>
                            <given-names>A</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>COPO: a metadata platform for brokering FAIR data in the life sciences [version 1; peer review: 1 approved, 1 approved with reservations].</article-title>
                    <source>

                        <italic toggle="yes">F1000Res.</italic>
</source>
                    <year>2020</year>;<volume>9</volume>
                    <issue>
</issue>: 495.
                    <pub-id pub-id-type="doi">10.12688/f1000research.23889.1</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref4">
                <label>4</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Franke</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Paulet</surname>
                            <given-names>L</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Sch&#x00e4;fer</surname>
                            <given-names>J</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Plasma-MDS, a metadata schema for plasma science with examples from plasma technology.</article-title>
                    <source>

                        <italic toggle="yes">Sci. Data.</italic>
</source>
                    <year>2020</year>;<volume>7</volume>:<fpage>439</fpage>.
                    <pub-id pub-id-type="doi">10.1038/s41597-020-00771-0</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref5">
                <label>5</label>
                <mixed-citation publication-type="journal">
                    <collab>P.-K. consortium</collab>:
                    <article-title>PDBe-KB: a community-driven resource for structural and functional annotations.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>10 2019</year>;<volume>48</volume>:<fpage>D344</fpage>&#x2013;<lpage>D353</lpage>.
                    <pub-id pub-id-type="doi">10.1093/nar/gkz853</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref6">
                <label>6</label>
                <mixed-citation publication-type="other">
                    <collab>The Human Cell Atlas Metadata Standards: JSON Schemas</collab>:<year>2022</year>. Accessed: 2022-04-12.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/HumanCellAtlas/metadata-schema/tree/master/json_schema">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref7">
                <label>7</label>
                <mixed-citation publication-type="other">
                    <collab>Metadata-Schemas-for-Materials-Science</collab>:<year>2022</year>. Accessed: 2022-04-12.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/kit-data-manager/Metadata-Schemas-for-Materials-Science">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref8">
                <label>8</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Pezoa</surname>
                            <given-names>F</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Reutter</surname>
                            <given-names>JL</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Suarez</surname>
                            <given-names>F</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Foundations of JSON Schema.</article-title>
                    <source>

                        <italic toggle="yes">Proceedings of the 25th International Conference on World Wide Web.</italic>
</source>
                    <year>2016</year>; pp.<fpage>263</fpage>&#x2013;<lpage>273</lpage>. International World Wide Web Conferences Steering Committee.
                    <pub-id pub-id-type="doi">10.1145/2872427.2883029</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref9">
                <label>9</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Droettboom</surname>
                            <given-names>M</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Understanding JSON Schema.</article-title>
                    <year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://json-schema.org/understanding-json-schema/UnderstandingJSONSchema.pdf">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref10">
                <label>10</label>
                <mixed-citation publication-type="other">
                    <collab>Introducing JSON</collab>:<year>2022</year>. Accessed: 2022-03-01.
                    <ext-link ext-link-type="uri" xlink:href="https://www.json.org/json-en.html">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref11">
                <label>11</label>
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Bray</surname>
                            <given-names>T</given-names>
                        </name>
</person-group>:
                    <article-title>The JavaScript Object Notation (JSON) Data Interchange Format.</article-title>
                    <year>RFC 7158, 2014</year>.</mixed-citation>
            </ref>
            <ref id="ref12">
                <label>12</label>
                <mixed-citation publication-type="other">
                    <collab>ReactJS API</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://reactjs.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref13">
                <label>13</label>
                <mixed-citation publication-type="other">
                    <collab>Flask</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://flask.palletsprojects.com/en/2.0.x/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref14">
                <label>14</label>
                <mixed-citation publication-type="book">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Van Rossum</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Drake</surname>
                            <given-names>FL</given-names>
                        </name>
</person-group>:
                    <source>

                        <italic toggle="yes">Python 3 Reference Manual.</italic>
</source>
                    <publisher-loc>Scotts Valley, CA</publisher-loc>:
                    <publisher-name>CreateSpace</publisher-name>;<year>2009</year>.</mixed-citation>
            </ref>
            <ref id="ref15">
                <label>15</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Merkel</surname>
                            <given-names>D</given-names>
                        </name>
</person-group>:
                    <article-title>Docker: lightweight linux containers for consistent development and deployment.</article-title>
                    <source>

                        <italic toggle="yes">Linux journal.</italic>
</source>
                    <year>2014</year>;<volume>2014</volume>(<issue>239</issue>):<fpage>2</fpage>.</mixed-citation>
            </ref>
            <ref id="ref16">
                <label>16</label>
                <mixed-citation publication-type="other">
                    <collab>Node.js</collab>:<year>2022</year>. Accessed: 2022-04-12.
                    <ext-link ext-link-type="uri" xlink:href="https://nodejs.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref17">
                <label>17</label>
                <mixed-citation publication-type="other">
                    <collab>Material-UI</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://mui.com/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref18">
                <label>18</label>
                <mixed-citation publication-type="other">
                    <collab>react-jsonschema-form</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/rjsf-team/react-jsonschema-form">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref19">
                <label>19</label>
                <mixed-citation publication-type="other">
                    <collab>jsonform</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/jsonform/jsonform">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref20">
                <label>20</label>
                <mixed-citation publication-type="other">
                    <collab>jsonforms.io</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://jsonforms.io/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref21">
                <label>21</label>
                <mixed-citation publication-type="other">
                    <collab>json-editor</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/json-editor/json-editor">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref22">
                <label>22</label>
                <mixed-citation publication-type="other">
                    <collab>Ajv JSON schema validator</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://ajv.js.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref23">
                <label>23</label>
                <mixed-citation publication-type="book">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Rocha da Silva</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Aguiar Castro</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Ribeiro</surname>
                            <given-names>C</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <chapter-title>Dendro: Collaborative research data management built on linked open data.</chapter-title>
                    <source>

                        <italic toggle="yes">The Semantic Web: ESWC 2014 Satellite Events.</italic>
</source>
                    <person-group person-group-type="editor">

                        <name name-style="western">
                            <surname>Presutti</surname>
                            <given-names>V</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Blomqvist</surname>
                            <given-names>E</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Troncy</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>, editors.
                    <publisher-loc>Cham</publisher-loc>:
                    <publisher-name>Springer International Publishing</publisher-name>;<year>2014</year>; pp.<fpage>483</fpage>&#x2013;<lpage>487</lpage>.
                    <pub-id pub-id-type="doi">10.1007/978-3-319-11955-7_71</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref24">
                <label>24</label>
                <mixed-citation publication-type="other">
                    <collab>eLabFTW: a free and open source electronic lab notebook</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://www.elabftw.net/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref25">
                <label>25</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Carpi</surname>
                            <given-names>N</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Minges</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Piel</surname>
                            <given-names>M</given-names>
                        </name>
</person-group>:
                    <article-title>eLabFTW: An open source laboratory notebook for research labs.</article-title>
                    <source>

                        <italic toggle="yes">J. Open Source Softw.</italic>
</source>
                    <year>2017</year>;<volume>2</volume>(<issue>12</issue>):<fpage>146</fpage>.
                    <pub-id pub-id-type="doi">10.21105/joss.00146</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref26">
                <label>26</label>
                <mixed-citation publication-type="other">
                    <collab>eLabFTW API</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://doc.elabftw.net/api/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref27">
                <label>27</label>
                <mixed-citation publication-type="other">
                    <collab>elabapy at PyPI</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://pypi.org/project/elabapy/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref28">
                <label>28</label>
                <mixed-citation publication-type="other">
                    <collab>TinyMCE</collab>:<year>2022</year>. Accessed: 2022-02-04.
                    <ext-link ext-link-type="uri" xlink:href="https://www.tiny.cloud/powered-by-tiny">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref29">
                <label>29</label>
                <mixed-citation publication-type="software">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Chaerony Siffa</surname>
                            <given-names>I</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Sch&#x00e4;fer</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Becker</surname>
                            <given-names>MM</given-names>
                        </name>
</person-group>:
                    <part-title>plasma-mds/adamantt: Adamant Initial Release v1.0.0 (v1.0.0).</part-title>[Software]
                    <source>

                        <italic toggle="yes">Zenodo.</italic>
</source>
                    <year>2022</year>.
                    <pub-id pub-id-type="doi">10.5281/zenodo.6396182</pub-id>
                </mixed-citation>
            </ref>
        </ref-list>
        <fn-group content-type="footnotes">
            <fn id="fn1">
                <label>

                    <sup>1</sup>
</label>
                <p>In this paper, the terms &#x201c;front-end&#x201d; and &#x201c;client-side&#x201d; are used interchangeably, as well as &#x201c;back-end&#x201d; and &#x201c;server-side&#x201d;.</p>
            </fn>
        </fn-group>
    </back>
    <sub-article article-type="reviewer-report" id="report136390">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.136205.r136390</article-id>
            <title-group>
                <article-title>Reviewer response for version 2</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Horsch</surname>
                        <given-names>Martin Thomas</given-names>
                    </name>
                    <xref ref-type="aff" rid="r136390a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-9464-6739</uri>
                </contrib>
                <aff id="r136390a1">
                    <label>1</label>Norwegian University of Life Sciences, &#x00c5;s, Norway</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>5</day>
                <month>8</month>
                <year>2022</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2022 Horsch MT</copyright-statement>
                <copyright-year>2022</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport136390" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.110875.2"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>Adamant is a tool for editing JSON schemas and creating a data ingest front end from a given JSON schema. Such tools are useful to have, and it is good that the developers are contributing a concise presentation of their work to F1000Research. It is also good to see a demonstration of interoperability with the eLabFTW ELN.</p>
            <p> </p>
            <p> The issue of its application to graph-based data, which was raised by the previous reviewers as well, will be of interest to readers and users, and here the appropriate mechanism would probably be through JSON-LD. Any support that can be provided in this field would be helpful to many since ontologies etc. are easily written, but it is then the data ingest through web forms, etc. that become the main challenge in making them useful in practice.</p>
            <p> </p>
            <p> Fig. 2 looks confusing to me; pseudocode convention has it that "&lt;-" normally means "is assigned to," but in the boxes from this figure, such as "Object &lt;- Schema" or "Object &lt;- Object.properties.keyword" it must have a different meaning. I have the suspicion that Fig. 2 must mean something very simple that is just obscured by this visualization.</p>
            <p> </p>
            <p> The material included under "setting up Adamant on a local machine" and "deploying Adamant using docker" would really best belong into a README file rather than a paper presenting the software - no doubt, however, it will be helpful to users.</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Applied ontology, data management, molecular simulation, process data technology, thermodynamics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment8707-136390">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Chaerony Siffa</surname>
                            <given-names>Ihda</given-names>
                        </name>
                        <aff>Leibniz-Institut f&#x00fc;r Plasmaforschung und Technologie e.V., Germany</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>31</day>
                    <month>8</month>
                    <year>2022</year>
                </pub-date>
            </front-stub>
            <body>
                <p>We thank Martin Thomas Horsch for their valuable remarks.</p>
                <p> </p>
                <p> We apologize that Fig. 2 appears to be confusing. We indeed meant to use this convention as well (&#x201c;&lt;-&#x201d; means &#x201c;assigned to&#x201d;). The following might clear some confusion inflicted by this figure: 
                    <list list-type="order">
                        <list-item>
                            <p>&#x201c;Object &lt;- Schema&#x201d;. A variable &#x201c;Object&#x201d; is assigned a value of &#x201c;Schema&#x201d;</p>
                        </list-item>
                        <list-item>
                            <p>&#x201c;Object &lt;- Object.properties.keyword&#x201d;. Again a variable called &#x201c;Object&#x201d; is assigned a value located in &#x201c;Object.properties.keyword&#x201d;. Since this assignment happens in a loop, the &#x201c;Object&#x201d; variable is repeatedly overwritten with a new value obtained as the value of the &#x201c;Keyword&#x201d; variable changes.</p>
                        </list-item>
                        <list-item>
                            <p>And do recall that this loop function is done recursively.</p>
                        </list-item>
                    </list> Hopefully, you and the readers would find this clarification helpful in understanding the flowchart.</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report136576">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.122529.r136576</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Kr&#x00fc;ger</surname>
                        <given-names>Frank</given-names>
                    </name>
                    <xref ref-type="aff" rid="r136576a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0002-7925-3363</uri>
                </contrib>
                <aff id="r136576a1">
                    <label>1</label>Institute of Communications Engineering, University of Rostock, Rostock, Germany</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>7</day>
                <month>6</month>
                <year>2022</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2022 Kr&#x00fc;ger F</copyright-statement>
                <copyright-year>2022</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport136576" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.110875.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>The FAIR Guiding Principles require, among other things, the provision of rich metadata for research data and the generating processes. For this purpose, structured information that reuses existing vocabulary in a standardized way is desired. While such thorough documentation improves the reusability of the research data, it demands knowledge about appropriate vocabularies (e.g. DCAT, DDI...) and some minimum technical understanding of structured documentation (e.g. JSON, JSON-LD, RDF...) of researchers from all scientific domains. Furthermore, mechanisms to ensure the provision of some minimal required information are necessary. These requirements increase the complexity of providing FAIR data and create the need for appropriate tool support.</p>
            <p> </p>
            <p> Adamant is a web-based tool for the provision of structured metadata which guides the researcher through the documentation process and provides a means for validation of the content and completeness by providing a schema-based form. The underlying schema can either be loaded from a library or particularly designed for the research process at hand. By providing a rich API, Adamant satisfies further requirements for the integration into complex workflows based on virtual research environments.</p>
            <p> </p>
            <p> From the technical perspective, Adamant employs JSON Schema, a technology to specify the structure of JSON documents including required and optional information. A web-form, based on Python/Flask, is generated from the schema that is presented to the end-user to provide the necessary information. Adamant is publicly hosted for testing purposes and can easily be deployed by using the provided docker image. All code is available from github and archived at Zenodo. The released version worked without any problems for me. I tested the web-form and the integration with elabFTW.</p>
            <p> </p>
            <p> While I like Adamant and the article very much, I have a few suggestions/questions: 
                <list list-type="order">
                    <list-item>
                        <p>Adamant is based on JSON Schema and JSON, but recently I recognized an increase in RDF-based (meta)data management. I was wondering if RDF/S and SHACL would also be a viable base for Adamant and why the authors didn't employ those.</p>
                    </list-item>
                    <list-item>
                        <p>I further agree with Felix Shaw (Reviewer 1) about the integration of ontologies for the structured and semantic documentation of research data.</p>
                    </list-item>
                </list>
            </p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Data Science, Provenance, Metadata</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment8505-136576">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Chaerony Siffa</surname>
                            <given-names>Ihda</given-names>
                        </name>
                        <aff>Leibniz-Institut f&#x00fc;r Plasmaforschung und Technologie e.V., Germany</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>12</day>
                    <month>7</month>
                    <year>2022</year>
                </pub-date>
            </front-stub>
            <body>
                <p>We thank Frank Kr&#x00fc;ger for their valuable comments. The following are our responses to each individual comment: 
                    <list list-type="order">
                        <list-item>
                            <p>
                                <bold>Response for comment 1</bold>: From our understanding, it is feasible to use RDF(S) formats and SHACL for generating web-forms and validation. Our arguments on using JSON and JSON Schema instead of RDF(S) and SHACL are (in no particular order): 
                                <list list-type="bullet">
                                    <list-item>
                                        <p>RDF(S)/SHACL are ontology-related standards that are surely the means of choice in cases where well-defined ontologies already exist. Note that Adamant specifically targets use cases for which ontologies or metadata standards do not yet exist.</p>
                                    </list-item>
                                    <list-item>
                                        <p>JSON Schema supports a set of data types that are analogous to those found in many programming languages (e.g., Python, JavaScript). This allows straightforward implementation of specific input types and their validations.</p>
                                    </list-item>
                                    <list-item>
                                        <p>To the best of our knowledge, the JSON format is the de-facto standard of API data interchange. Since Adamant can be used with different external applications by means of API integration, describing the metadata and its schema in the JSON format seems sensible.</p>
                                    </list-item>
                                    <list-item>
                                        <p>Many existing metadata schemas are available in the JSON format.</p>
                                    </list-item>
                                    <list-item>
                                        <p>On top of that, we plan on using ontologies, serialized in an RDF format, to describe the schema elements that are used in JSON schemas. A Uniform Resource Identifier (URI) can be assigned to each schema element in the JSON format, which allows the interoperability of these schema elements across both formats.</p>
                                    </list-item>
                                </list> </p>
                        </list-item>
                        <list-item>
                            <p>
                                <bold>Response for comment 2</bold>: Please see the response under Reviewer 1&#x2019;s comments.</p>
                        </list-item>
                    </list>
                </p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report136392">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.122529.r136392</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Shaw</surname>
                        <given-names>Felix</given-names>
                    </name>
                    <xref ref-type="aff" rid="r136392a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-9649-5906</uri>
                </contrib>
                <aff id="r136392a1">
                    <label>1</label>Data Infrastructure and Algorithms, Earlham Institute, Norwich, UK</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>3</day>
                <month>5</month>
                <year>2022</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2022 Shaw F</copyright-statement>
                <copyright-year>2022</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport136392" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.110875.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>Standards for experimental metadata are in most cases sub-optimal or non-existent. Being able to describe protocols, samples, instruments, etc. in a consistent way is vital to the reusability of data and the reproducibility of work. This situation will only continue with the prevalence of machine learning techniques in science which rely heavily on labeled data. Adamant is a web tool for authoring generic experimental assays and then filling out such assays. Users are presented with an interface in which they can add fields of different data types, and various input restrictions (e.g. enumerations, character lengths, etc.). The system then creates a JSON document that records these fields and can be used later for validation and display. Users can then fill out these generated forms with real assay data which is validated against the JSON document, and in turn, produces another JSON document with the assay data itself.</p>
            <p> </p>
            <p> This is a good tool, is well presented, and is easy to use. In functionality, it seems comparable with the ISATools suite of software, although less mature and (arguably) more intuitive. It uses industry-standard software (Python, Flask, React, etc.) and is under an MIT license on Github, meaning anyone can download and modify it. This means if uptake is good, there is a fair possibility of community maintenance. There are precious few tools for authoring metadata schemas, and this is a welcome step in the right direction. I downloaded and tested the docker version and it worked without any problem. I didn't download and run the development version.</p>
            <p> </p>
            <p> There are some things I would like to see: 
                <list list-type="bullet">
                    <list-item>
                        <p>Creating metadata standards is in my experience very much a community effort. Whilst this tool makes the "process" of making metadata standards easy, there needs to be an emphasis on community agreed standards. Otherwise, we risk the proliferation of a multitude of standards that fit only very niche applications.</p>
                    </list-item>
                    <list-item>
                        <p>Talking of community agreed standards, it would be nice to have a large selection of existing standard schemas available for users to select, and then possibly edit. This would be a big time-saver for a lot of researchers.</p>
                    </list-item>
                    <list-item>
                        <p>There doesn't seem to be a way of using ontology terms for field names, values, or units. Ontologies are the best way of disambiguating metadata, and services such as EMBL/EBI's Ontology Lookup Service make real-time searching for ontology terms easy. I would like to see this implemented in the authoring stage.</p>
                    </list-item>
                    <list-item>
                        <p>I have a feeling this will not scale particularly well. It's fine to fill out a web form for a few samples or assays, but in practice, researchers will have hundreds or thousands of records. Filling out web forms on this scale is impracticable. I would like to know the author's views on how to overcome this issue.</p>
                    </list-item>
                    <list-item>
                        <p>Whilst the authors give the use case of submitting an assay to eLabFTW, it would be nice to see some other integrations, such as with Dataverse, Dspace, or CKAN repositories, which are often used by smaller research facilities (the apparent target audience for this work).</p>
                    </list-item>
                </list>
            </p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>Data Science, Open Science, Metadata Standards, Web Development</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment8503-136392">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Chaerony Siffa</surname>
                            <given-names>Ihda</given-names>
                        </name>
                        <aff>Leibniz-Institut f&#x00fc;r Plasmaforschung und Technologie e.V., Germany</aff>
                    </contrib>
                </contrib-group>
                <author-notes>
                    <fn fn-type="conflict">
                        <p>
                            <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                    </fn>
                </author-notes>
                <pub-date pub-type="epub">
                    <day>12</day>
                    <month>7</month>
                    <year>2022</year>
                </pub-date>
            </front-stub>
            <body>
                <p>We thank Felix Shaw for their insightful and constructive comments and helpful suggestions. Some of the comments are in line with what we already have in mind for further development of the tool which we will include in the next version of the manuscript as an outlook. Nevertheless, we will still attempt to address each individual comment briefly as follows: 
                    <list list-type="order">
                        <list-item>
                            <p>
                                <bold>Response for comment 1:</bold> We definitely agree and have experienced this matter first hand. At the very early stage, Adamant is intended to be used to create and design the initial experiment schema, which later can be shared/made public in a publicly available collaborative version control platform (like GitHub). Once the schema is made public, the community can participate in the further development and maintenance of the said schema.</p>
                        </list-item>
                        <list-item>
                            <p>
                                <bold>Response for comment 2: </bold>Thank you very much for this suggestion. Besides the public maintenance of already available schemas for the domain of plasma technology (see our community effort at
                                <ext-link ext-link-type="uri" xlink:href="https://www.plasma-mds.org"> 
                                    <underline>https://www.plasma-mds.org</underline>
                                </ext-link>) it is indeed an interesting idea to provide easy access to established standards like Dublin Core, DataCite, etc., via Adamant. We will think further in that direction.</p>
                        </list-item>
                        <list-item>
                            <p>
                                <bold>Response for comment 3:</bold> We agree with the comments regarding ontologies and we have already thought of something in this direction. We will definitely implement features related to the use of ontologies in the future release of Adamant. One thing that we have planned is to have a domain-specific ontology that can be attached to the tool where it can be used to populate the domain-specific knowledge graph.</p>
                        </list-item>
                        <list-item>
                            <p>
                                <bold>Response for comment 4: </bold>This is true. In the field of low-temperature plasma science and technology, there is rarely any case that requires the researcher to fill out hundreds or even thousands of entries in an experiment. However, to make sure that Adamant can be adopted in different research fields, this requirement is, of course, crucial. One thing that we have in mind is to have a feature of uploading a tabular file, which is then translated to its JSON representation. Such a feature would also enable the collection and further processing of standard-conform metadata in &#x201c;offline&#x201d; field experiments.</p>
                        </list-item>
                        <list-item>
                            <p>
                                <bold>Response for comment 5: </bold>Currently, we are looking into implementing a feature of dataset publication in the DKAN-based data platform INPTDAT (https://www.inptdat.de/). The idea is to re-use the collected experiment metadata (created with Adamant and stored in the eLabFTW ELN) and bundle it with the dataset for publication
                                <italic>. </italic>Note that the back-end can be easily adapted to use the existing APIs of the mentioned repository platforms to publish metadata, once it is available in a standardized format.</p>
                        </list-item>
                    </list>
                </p>
            </body>
        </sub-article>
    </sub-article>
</article>
