Software académico

El software académico está ganando importancia y se equipara con otros resultados de investigación como las publicaciones o los datos de investigación. En el informe Scholarly Infrastructures for Research Software del European Open Science Cloud, se dice que "el software ofrece conocimiento usando lenguajes de programación, de la misma manera que las publicaciones ofrecen conocimiento usando lenguaje natural".

 

La importancia del software académico se muestra en algunas agencias de financiación. Por ejemplo, el programa H2020 indica que "los proyectos deben proporcionar información a través del repositorio elegido sobre las herramientas que se necesitan para validar los resultados, por ejemplo, software especializado o código fuente, algoritmos y protocolos de análisis. Siempre que sea posible, deberán proporcionar estos instrumentos".

 

Organizaciones como la EOSC o la UNESCO empiezan a demandar que se incluyan en los programas de financiación cláusulas específicas sobre la disponibilidad del software académico con una licencia Open Source por defecto. Por otra parte, cada vez más investigadores se hacen eco de la necesidad de disponer del software académico utilizado en las investigaciones para poder validar y reutilizar los datos.

 

La Declaración de San Francisco sobre la Evaluación de la Investigación (DORA) reconoce la importancia del software académico en la evaluación de la actividad investigadora. No hay que olvidar que la Universitat Politècnica de València es una de las instituciones que se ha adherido a la DORA.

 

Ante esta situación, es muy posible que cada vez más agencias de financiación añadan este tipo de cláusulas, tal y como sucedió en el pasado con las publicaciones en Acceso Abierto y los datos de investigación siguiendo los principios FAIR.

 

Los principios FAIR hacen referencia a cómo deben tratarse los datos de investigación para que sean localizables, accesibles, interoperables y reutilizables (Findable, Accessible, Interoperable, Re-usable). Aunque técnicamente el software académico es un tipo de dato de investigación, existen varias diferencias entre ambos:

  • Los datos son hechos u observaciones que ofrecen evidencias mientas que el software es el resultado de un proceso creativo que ofrece una herramienta para hacer algo, por ejemplo, con los datos

  • Los datos tienen un tiempo de vigencia más alto que el software, ya que es habitual la realización de actualizaciones sobre el software

  • El software es ejecutable y realizado a partir de otro software

 

Basándose en los principios FAIR para datos, se han publicado unas recomendaciones para aplicar los principios FAIR al software académico. Por otra parte, el Netherlands eScience Center y DANS han establecido cinco acciones sencillas para cumplir con los principios FAIR para software académico:

  1. Usar un repositorio público que soporte control de versiones

  2. Añadir una licencia

  3. Registrar el software en registros de la comunidad

  4. Facilitar que el software pueda ser citado

  5. Usar checklist para asegurar la calidad del software

 

A continuación, se muestra una tabla comparativa entre los principios FAIR para datos y para software académico:

 

 

Fuente: Lamprecht, Anna-Lenna et al. Towards FAIR principles for research software. DOI: 10.3233/DS-190026

Cuando se inicia el desarrollo de un software académico, una de las primeras cuestiones a plantear es cuál va a ser el entorno de trabajo para desarrollar el software. Actualmente existen varias opciones que se pueden utilizar: GitHub, GitLab, BitBucket, etc. El Software Sustainability Institute ofrece información sobre estas plataformas y qué se debe tener en cuenta para seleccionar una de ellas (por ejemplo, el soporte del control de versiones).

 

Sin embargo, el depósito del software académico en un repositorio adecuado va a garantizar que el software sea preservado correctamente y cumpla con los principios FAIR. Aspectos como la asignación de un identficador persistente, la selección de licencias específicas para software o mecanismos de acceso e identificación son imprescindibles para seleccionar un repositorio.

 

En r3data.org se pueden encontrar múltiples repositorios donde depositar el software académico. Desde la Biblioteca UPV recomendamos la utilización de un repositorio temático de uso generalizado dentro de la disciplina. En caso de no localizar un repositorio temático se podría depositar el software académico en un repositorio multidisciplinar:

  • Zenodo: repositorio financiado por OpenAIRE que contiene diferentes tipos de publicaciones académicas, incluyendo datos de investigación y software académico. Se pueden subir todo tipo de formatos de archivos, con un tamaño máximo de 50 GB por archivo. Además, ofrece un DOI que permite identificar de forma unívoca y persistente al software académico y soporta control de versiones. También se puede integrar automáticamente con GitHub

 

 

  • Software Heritage: repositorio que recopila de forma automática el contenido de diferentes plataformas (GitHub, GitLab, BitBucket, etc.) para preservar y compartir el código fuente disponible públicamente. Todo el software puede ser referenciado a través del identificador SWHID. También es posible subir código de forma manual al repositorio

 

 

  • RiuNet: es el repositorio institucional de la UPV. Actualmente tiene una colección específica llamada Software, donde se permite el depósito de software académico proveniente de entidades y/o servicios de la UPV, así como proyectos en los que participen investigadores de la UPV. El depósito en RiuNet presenta diferentes beneficios: se pueden asociar licencias específicas para software, posibilidad de restringir el acceso al software por un periodo de tiempo si fuera necesario, almacenamiento y preservación de los datos facilitando su difusión a lo largo del tiempo, soporta control de versiones, etc.

 

La correcta descripción del software académico es imprescindible si se quiere facilitar su compresión y reutilización por parte de otras personas. Para ello se debe describir el software tanto a nivel interno (código fuente) como a nivel externo (metadatos que acompañan al software):

  • Nivel interno:

    • La redacción de un archivo README.txt que acompañe al software permitirá conocer aspectos como la fecha de creación, versión, autores, finalidad, funcionalidades, requisitos de software/hardware para ejecutar el código, etc.

    • La documentación del propio código fuente es fundamental, tanto en la fase de desarrollo del software (varios programadores pueden trabajar de forma conjunta) como para permitir la comprensión a personas que quieran reutilizar el código fuente

    • Para asegurar una correcta documentación, y unas buenas prácticas en el desarrollo del software, existen checklists que contienen diferentes aspectos para describir correctamente el software

 

  • Nivel externo:

    • El registro del software académico en diferentes comunidades, por ejemplo según el lenguaje de programación o la temática, es una práctica que va a ayudar a difundir el software que se ha desarrollado. Sin embargo, también ayuda a describir correctamente el software ya que normalmente se utilizan unos metadatos propios de esa comunidad que están asociados a la información que se introduce durante el proceso de registro del software

    • Al igual que sucede con el registro del software en diferentes comunidades, el depósito del software en un repositorio (Zenodo, Software Heritage, RiuNet, etc.) también va a permitir asociar metadatos que estarán vinculados a la información que se proporciona durante el proceso de depósito del software

Es fundamental asignar al software académico una licencia para poder establecer los usos que se pueden hacer del sofware que se ha desarrollado. De esta forma se facilita su reutilización y se cumple con los principios FAIR.

 

Existen múltiples licencias que se pueden asignar al software académico. Algunas de las más utilizadas son las siguientes:

  • MIT License: se mantiene el copyright pero se permite distribuir, modificar e incluso reutilizar con fines comerciales

  • Apache License v2: se mantiene el copyright pero se permite distribuir, modificar e incluso reutilizar con fines comerciales. Los cambios realizados deben estar documentados y se da permiso expreso para patentar el software

  • GNU GPL v3: se mantiene el copyright pero se permite distribuir, modificar e incluso reutilizar con fines comerciales. Los cambios realizados deben estar documentados y se da permiso expreso para patentar el software. Si se distribuye se debe ofrecer el código fuente y utilizar esta misma licencia

 

Para la selección de licencias se recomienda la utilización de la herramienta License selector, que permite escoger la licencia a partir de una serie de preguntas.

 

Existen diferentes mecanismos de añadir una licencia al sofware académico:

  • Creación de un archivo "LICENSE.txt" con el contenido de la licencia que se ha seleccionado

  • Directamente en el proyecto existente en GitHub

  • Utilizando los SPDX ID en el código fuente

La citación es una parte fundamental para obtener un reconocimiento por el software que se ha desarrollado, haciendo que el software sea considerado como un producto de la investigación científica. Dos factores que van a facilitar la citación del software académico son:

  • El depósito del software en un repositorio

  • La vinculación del software con un identificador persistente, por ejemplo, un DOI

 

Realizar una cita de un software académico puede no ser trivial. Por este motivo, es importante facilitar cómo debe ser citado el software académico. Existen varias recomendaciones sobre cómo citar el software académico:

  • Software citation principles de FORCE11: se establecen diferentes los metadatos básicos que se deben incluir en función de diferentes situaciones (ver tabla 2)

  • Utilización de la cita propuesta por el repositorio: cuando se deposita el software académico en un repositorio (por ejemplo, Zenodo), el mismo repositorio ofrece la referencia bibliográfica que se debe usar cuando se cita el software en una publicación

  • Utilización del Citation File Format (.ciff): es un archivo de texto plano legible por personas y máquinas para informar sobre cómo se debe citar el software. Para generar automáticamente el archivo "CITATION.ciff" es posible utilizar un formulario o usar diferentes herramientas

  • Utilización de BibLaTeX: BibLaTeX es un paquete que produce referencias bibliográficas desde BibTeX y que soporta diferentes tipos de referencias bibliográficas para software:

    • @software: para software

    • @softwareversion: para una nueva versión de un software

    • @softwaremodule: para un módulo específico de un determinado software

    • @codefragment: para un algoritmo presente en el código o en una librería

 

Fuente: Software Heritage (2020). Tutorial: citing software using biblatex-software

Volver arriba