Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding FAIR4RS Viewer #178

Merged
merged 21 commits into from
Aug 24, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 100 additions & 24 deletions rdmorganiser/views/FAIR4RSview.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<rdmo xmlns:dc="http://purl.org/dc/elements/1.1/" created="2023-08-10T11:36:36.809444+02:00">
<rdmo created="2023-08-18T09:18:26.451429+02:00" xmlns:dc="http://purl.org/dc/elements/1.1/">
<view dc:uri="https://rdmo.mpdl.mpg.de/views/FAIR4RSview">
<uri_prefix>https://rdmo.mpdl.mpg.de/</uri_prefix>
<key>FAIR4RSview</key>
Expand All @@ -26,12 +26,23 @@ you can revisit the Software Management Plan and provide the necessary details.
&lt;a class=&quot;link&quot; href=&quot;https://qa-rdmo.mpdl.mpg.de/projects/{{id.0.value}}/questions/2515/&quot; target=&quot;_blank&quot;&gt;F1.1. Components of the software representing levels of granularity are assigned distinct identifiers&lt;/a&gt;
&lt;span class=&quot;info-icon&quot; data-info=&quot;The use of identifiers for more than the software project (often synonymous with “software concept” or “software product”) improves findability by enabling components to be assigned distinct identifiers e.g, a software library, and a function in that library. The relationship between these components is embodied in the associated metadata.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The single software components can be identified implicitely via the version number and the source file name.&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
&lt;p&gt;The single software components can be identified implicitely via the version number and the source file name.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
JanStuden marked this conversation as resolved.
Show resolved Hide resolved
&lt;li class=&quot;category&quot;&gt;F1.2. Different versions of the software are assigned distinct identifiers&lt;span class=&quot;info-icon&quot; data-info=&quot;To make different versions of the same software (or component) findable, each version needs to be assigned a different identifier. The relationship between versions is embodied in the associated metadata. What is considered a “version” is defined by the owner of the software: in many cases this will be something that the owner wants to specifically identify and use and/or “release” or “publish” so that others can use and reference/cite. There are existing software engineering practices (e.g., version control, semantic versioning) around the management and versioning of software that may form part of the implementation of these relationships.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;Versioning will be handled as follows:&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
{% render_value_list 'smp/versioning' %}
&lt;li&gt;
Versioning will be handled as follows:
&lt;ul class=&quot;nested-answers&quot;&gt;
{% get_values 'smp/versioning' set_index=0 as keyword %}
{% for value in keyword %}
&lt;li&gt;{{value.value}}&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;F2. Software is described with rich metadata&lt;span class=&quot;info-icon&quot; data-info=&quot;Software requires descriptive metadata to support indexing, search and discoverability. This metadata must itself be FAIR (F4), should follow community standards, and use controlled vocabularies. The FAIR4RS principles do not define which standards should be used, as this is better captured in guidance for implementing the principles coming out of each community. R1,R1.1, and R1.2 describe categories of metadata that enable reuse.&quot;&gt;&amp;#9432;&lt;/span&gt;
Expand All @@ -41,13 +52,21 @@ you can revisit the Software Management Plan and provide the necessary details.
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;F3. Metadata clearly and explicitly include the identifier of the software they describe&lt;span class=&quot;info-icon&quot; data-info=&quot;The association between the metadata (wherever it is stored; see F4) and the software should be made explicit by mentioning the software’s globally unique and persistent identifier in its associated metadata. In conjunction with A1, this means the metadata describes how the software can be obtained. Metadata are not required to include references for all of the softwares dependencies in order for software to be findable. I2 and R2 describe how references to dependencies increase the likelihood that software is interoperable and reusable.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The following identifiers are used:&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/software-pid' %}&lt;/li&gt;
&lt;li&gt;
The following identifiers are used:
&lt;ul class=&quot;nested-answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/software-pid' %}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;F4. Metadata are FAIR, searchable and indexable&lt;span class=&quot;info-icon&quot; data-info=&quot;Making the metadata about the software FAIR, including making it readable and discoverable byboth humans and machines, improves the findability of software by supporting searching andindexing by others. It allows the metadata to be published in or harvested by a registry orcatalog or repository, or by a search engine. FAIR metadata also enables and encouragescitation of research software.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;li class=&quot;bold&quot;&gt;F4. Metadata are FAIR, searchable and indexable&lt;span class=&quot;info-icon&quot; data-info=&quot;Making the metadata about the software FAIR, including making it readable and discoverable byboth humans and machines, improves the findability of software by supporting searching andindexing by others. It allows the metadata to be published in or harvested by a registry orcatalog or repository, or by a search engine. FAIR metadata also enables and encourages citation of research software.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;Searchability of the software metadata is granted by the platform where the software is stored.&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
&lt;p&gt;Searchability of the software metadata is granted by the platform where the software is stored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
JanStuden marked this conversation as resolved.
Show resolved Hide resolved
&lt;/ul&gt;
&lt;h2&gt;Accessibility&lt;/h2&gt;
&lt;h3&gt;A: Software, and its metadata, is retrievable via standardized protocols&lt;/h3&gt;
Expand All @@ -60,29 +79,55 @@ you can revisit the Software Management Plan and provide the necessary details.
&lt;ul&gt;
&lt;li class=&quot;category&quot;&gt;A1.1. The protocol is open, free, and universally implementable&lt;span class=&quot;info-icon&quot; data-info=&quot;It is the openness of the communications protocol (including the resolver for the identifier) that is important, not the implementation of the infrastructure that supports it. Here “open” means that there are no restrictions to implementing it and “free” means that there are no fees or licensing costs to implement it&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The communication protocol is determined by the platform where the software is stored.&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
&lt;p&gt;The communication protocol is determined by the platform where the software is stored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
JanStuden marked this conversation as resolved.
Show resolved Hide resolved
&lt;li class=&quot;category&quot;&gt;A1.2. The protocol allows for an authentication and authorization procedure, where necessary&lt;span class=&quot;info-icon&quot; data-info=&quot;The FAIR Guiding Principles put specific emphasis on enhancing the ability of machines to use digital objects. In the context of software, there are often conditions of access, for instance, requiring a license server to be contacted, requirement for payment before use, or restrictions based on the privilege level of the user.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The communication protocol is determined by the platform where the software is stored.&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
&lt;p&gt;The communication protocol is determined by the platform where the software is stored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
JanStuden marked this conversation as resolved.
Show resolved Hide resolved
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;A2. Metadata are accessible, even when the software is no longer available&lt;span class=&quot;info-icon&quot; data-info=&quot;Availability of software may change over time, because there is a cost to maintaining access or because the software has degraded and is no longer safely usable, or because dependencies are no longer available. The metadata describing the software is generally easier and cheaper to store and maintain than the software itself (e.g., in the software repository, or in a software registry or catalog) and there is value in understanding the details of the software even if it is no longer accessible.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;Long-term accessibility of the software metadata is granted by the platform where the software is stored.&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
&lt;p&gt;Long-term accessibility of the software metadata is granted by the platform where the software is stored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
JanStuden marked this conversation as resolved.
Show resolved Hide resolved
&lt;/ul&gt;
&lt;h2&gt;Interoperability&lt;/h2&gt;
&lt;h3&gt;I: Software interoperates with other software by exchanging data and/or metadata, and/or through interaction via application programming interfaces (APIs), described through standards&lt;/h3&gt;
&lt;ul&gt;
&lt;li class=&quot;bold&quot;&gt;I1. Software reads, writes and exchanges data in a way that meets domain-relevant community standards&lt;span class=&quot;info-icon&quot; data-info=&quot;Software interoperates through the exchange of data. This includes the use of data and metadata types, controlled vocabularies, and formats that are formally defined through standards to facilitate the exchange. Whereas F4 requires that metadata describing the software are FAIR, this principle ensures that the way that software interacts with other software is clearly described. A domain-relevant standard is an agreed standard that addresses the needs of a given community (or communities). Examples of community standards for data are curated by the FAIRSharing Registry athttps://fairsharing.org/standards/.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The following coding standards and guidelines are followed:&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/coding-standards' %}&lt;/li&gt;
&lt;li&gt;
The following coding standards and guidelines are followed:
&lt;ul class=&quot;nested-answers&quot;&gt;
{% get_values 'smp/coding-standards' set_index=0 as keyword %}
{% for value in keyword %}
&lt;li&gt;{{value.value}}&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;I2. Software includes qualified references to other objects&lt;span class=&quot;info-icon&quot; data-info=&quot;Some software includes references to external data objects required to execute the software (e.g., parameter files for certain applications). Ideally, the data would be FAIR as well, and references to external data would be fully qualified. Qualified references should be to digital objects (e.g., metadata, other software, data), as well as to non-digital objects that have a virtual presence in digital systems (e.g., samples, reagents, instruments, etc.) with which the software interacts. These qualified references should be described using identifiers and/or controlled vocabularies. “Qualified” means specifying the authoritative source for an identifier or vocabulary item, possibly including a resolvable reference to further information about the source. Ideally this is in a form that includes a resolver within the reference (e.g., in the form of a persistent identifier, or URL). This information can also improve the reusability of software by explicitly including references to articles and data sets that document its use.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The software relies on the following external services:&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/web-services' %}&lt;/li&gt;
&lt;li&gt;
The software relies on the following external services:
&lt;ul class=&quot;nested-answers&quot;&gt;
{% get_values 'smp/web-services' set_index=0 as keyword %}
{% for value in keyword %}
&lt;li&gt;{{value.value}}&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h2&gt;Reusability&lt;/h2&gt;
Expand All @@ -97,25 +142,52 @@ you can revisit the Software Management Plan and provide the necessary details.
&lt;ul&gt;
&lt;li class=&quot;category&quot;&gt;R1.1. Software is given a clear and accessible license&lt;span class=&quot;info-icon&quot; data-info=&quot;To enable reuse, software must have a license that clearly describes how it can be used and reused, ideally with conditions that are readable by humans and machines. Licenses are often referred to by name, but machine readable licenses can be specified by reference to a standard vocabulary such as the SPDX License List4 (SPDX Consortium, 2020). To support a wide range of reuse scenarios, the license should be as unrestrictive as possible and, to avoid license proliferation, choosing a widely used and recognized license is strongly recommended. This license must also be compatible with the requirements of the licenses of the software’s dependencies so that the software can be legally combined&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;&lt;i&gt;Software:&lt;/i&gt; {% render_value 'smp/software-license' %}&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Third-party components:&lt;/i&gt; {% render_value 'smp/third-party-licenses' %}&lt;/li&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
Software:
&lt;ul class=&quot;nested-answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/software-license' %}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
Third-party components:
&lt;ul class=&quot;nested-answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/third-party-licenses' %}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;category&quot;&gt;R1.2. Software is associated with detailed provenance&lt;span class=&quot;info-icon&quot; data-info=&quot;Software provenance is a type of metadata that describes why and how the software came to be, as well as who contributed what, when and where. Provenance is sometimes referred to as lineage or pedigree. This extends beyond capturing a log of changes to source code as it is developed. Good provenance metadata clarifies the origins and intent behind the development of the software, and establishes authenticity and trust. As a type of metadata this overlaps with the metadata called for in guiding principles F2 and F4.&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;Information on provenance is granted by the platform where the software is stored.&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
&lt;p&gt;Information on provenance is granted by the platform where the software is stored.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
JanStuden marked this conversation as resolved.
Show resolved Hide resolved
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;R2. Software includes qualified references to other software&lt;span class=&quot;info-icon&quot; data-info=&quot;Software is rarely standalone and in most cases is built upon other software (e.g., dependencies), it should include appropriate references to other software (e.g., requirements, imports, libraries) which are necessary to compile and run the software. “Qualified” here means specifying the authoritative source for an identifier, possibly including a resolvable reference to further information about the source. To follow this principle, it is desirable but not required that the other software referenced implements the FAIR4RS Principles. In many programming languages, base methods or functions take a reference to a named entity, possibly in combination with a version number or qualifying domain and resolves this to a source. This principle goes beyond this in calling for qualified references to external dependencies, meaning that the reference itself resolves to the source via the qualifying authority. This guiding principle calls for qualified references in software to other software (in aid of reuse).Principle I2 calls for qualified references to anything other than software (in aid of interoperability).&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;This software uses the following external components and libraries:&lt;/p&gt;
&lt;ul&gt;
{% render_value_list 'smp/external-components' %}
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;
This software uses the following external components and libraries:
&lt;ul class=&quot;nested-answers&quot;&gt;
{% get_values 'smp/external-components' set_index=0 as keyword %}
{% for value in keyword %}
&lt;li&gt;{{value.value}}&lt;/li&gt;
{% endfor %}
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;bold&quot;&gt;R3. Software meets domain-relevant community standards&lt;span class=&quot;info-icon&quot; data-info=&quot;Software, including its documentation and license, should meet domain-relevant community standards and coding practices (e.g., choice of programming language, standards for testing, usage of file formats, accessibility [in the sense of usable by as many people as possible]) that enable reuse. While the FAIR4RS Principles do not specify particular community standards, the intent is to ensure that practitioners are aware of what others are doing and using in the community, e.g., through initiatives like FAIRsharing (Sansone et al., 2019), whilst acknowledging that community standards are (and should be) under constant development&quot;&gt;&amp;#9432;&lt;/span&gt;
&lt;/li&gt;
&lt;p&gt;The following third-party requirements are followed:&lt;/p&gt;
&lt;ul class=&quot;answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/community-requirements' %}&lt;/li&gt;
&lt;li&gt;
The following third-party requirements are followed:
&lt;ul class=&quot;nested-answers&quot;&gt;
&lt;li&gt;{% render_value 'smp/community-requirements' %}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;

Expand Down Expand Up @@ -151,6 +223,7 @@ you can revisit the Software Management Plan and provide the necessary details.
}
.answers{
list-style-type: disc;

}
.category1{
font-style: italic;
Expand All @@ -177,6 +250,9 @@ you can revisit the Software Management Plan and provide the necessary details.
line-height: 1.4;
font-size: 14px;
}
.nested-answers {
list-style-type: circle;
}
&lt;/style&gt;</template>
</view>
</rdmo>