¿Puedo solicitar el código detrás de un trabajo de investigación del autor?

Estoy en el campo de la informática. A menudo, cuando estoy leyendo un artículo, empiezo a preguntarme: "Vaya resultados sorprendentes, sin embargo, me gustaría demostrarlo". o "¿Cómo obtuvo exactamente estos sorprendentes resultados? Simplemente escribió una descripción general aproximada de la metodología real utilizada en este documento". . Como puede ver, muchas veces las cosas pequeñas tienen un gran impacto en el rendimiento general de la metodología subyacente. A menudo no son parte del documento o no se revelan en absoluto.

Mi idea sería contactar al autor del artículo, preguntarle por sus programas de investigación para recrearlos y entenderlos. ¿Puedo/debo hacer eso?

Personalmente, creo que probablemente no haya muchos investigadores que dejarían que alguien más "mirara sus cartas" . ¿Cuál es tu experiencia con eso?

@mmh Esas preguntas son sobre datos; las respuestas pueden o no ser las mismas para el código fuente. (Por ejemplo, los autores pueden opinar de manera diferente sobre la publicación de código defectuoso o "feo" que sobre el intercambio de datos sin procesar en cualquier forma en que se encuentren).
Solicité y recibí con éxito el código (binario) en un momento en que esto no era un estándar. Pero esto depende de los autores.
Preguntaría a los autores. A menudo están felices de compartir. Muchas revistas requieren que se comparta. Pero estoy en el campo de la biología.

Respuestas (4)

Pide el código. Sin embargo, explique por qué lo quiere y para qué piensa usarlo.

Personalmente, estaría muy feliz si alguien me contactara acerca de mi investigación y trataría de brindar todas las herramientas necesarias para recrear mis datos. Especialmente si no estoy trabajando actualmente en una pieza de seguimiento.

Dicho esto, he pedido parámetros, códigos, procedimientos, etc. varias veces a los autores cuando la descripción en un artículo ha sido vaga. He recibido muchas respuestas diferentes: algunos simplemente me han ignorado, otros me han dado todo lo que pedí y, sin embargo, otros solo accedieron cuando sugerí que podría estar dispuesto a ponerlos como coautores si yo construido sobre su código de una manera que conduce a una publicación. Finalmente, algunos han rechazado mi solicitud. Esto ha sucedido por una serie de razones, por ejemplo, las discutidas en esta pregunta .

Si solicita un código y dice que solo desea verificar algunas de las conclusiones de los autores o utilizarlo como referencia para su propia implementación, normalmente puede esperar un rechazo o ninguna respuesta. Esta, al menos, es la experiencia que he tenido.

¿Es posible que su inferencia sobre los motivos de quienes rechazaron su solicitud sea errónea? ¿Es posible que actúen de buena fe y le hayan dado una respuesta honesta? Después de todo, la telepatía es un negocio muy difícil de hacer bien (AIUI no hay un solo caso probado de que funcione), así que quizás el tuyo no sea infalible.
@EnergyNumbers Creo que aquí eres tú quien está empleando la telepatía: por supuesto, no estoy escribiendo los detalles de un asunto privado en un foro público, que pareces estar asumiendo al hacer tus juicios bastante audaces. Algunos de los casos a los que me refiero, después de una comunicación posterior, eran claramente situaciones en las que sus autores no confiaban en los códigos. Naturalmente, su primera suposición siempre debe ser que las personas actúan de buena fe y quieren decir lo que dicen, razón por la cual en mi respuesta sentí que escribir explícitamente un posible motivo ulterior aportaría más valor a mi texto.
Me temo que te equivocas: en lugar de aportar más valor a tu texto, su grosería le resta valor.
@EnergyNumbers Al ver su punto de que mi texto se puede entender de una manera que no estaba destinada, lo he editado. Sin embargo, al final, supongo que tendremos que estar de acuerdo en no estar de acuerdo: siento que mi respuesta ahora es más PC, pero contiene un poco menos de información.
@amlrg ¡Gracias por su alentadora respuesta! ¿Alguna sugerencia de cómo contactar con el autor? Le agradecería que me mostrara uno de sus correos...

Sí, está bien preguntar. Según mi experiencia, no muchos investigadores comparten su código. A veces, la razón es que los autores temen que escribas un algoritmo mejor o que extiendas su trabajo antes que ellos. Algunas otras razones pueden ser que el software no tiene documentación y no tienen tiempo para preparar alguna documentación, no está escrito en inglés o depende de software comercial o software que pertenece a otros autores. Sin embargo, hay muchas razones para compartir el código. Da más visibilidad a tu trabajo, ayuda a otros investigadores para que no necesiten reimplementar tu trabajo, permite una comparación más justa al comparar algoritmos, etc.

Personalmente, he pedido varias veces el código fuente o los conjuntos de datos de otros autores. Si no quieren compartir, por lo general simplemente no responden al correo electrónico, o pueden decir que no. Pero no hay ninguna consecuencia en preguntar. Así que solo pregunta. Además, a veces los autores no proporcionarán el código fuente o los conjuntos de datos, pero a menudo aún pueden proporcionarle los archivos binarios. En ese caso, todavía puede ser útil.

Personalmente, comparto el código fuente y los conjuntos de datos de todos mis trabajos de investigación como primer autor como parte de una biblioteca de minería de datos de fuente abierta ( http://www.philippe-fournier-viger.com/spmf/ ) y creo que todos los autores también deben compartir el código fuente y los conjuntos de datos. Aquí hay una publicación de blog donde explico con más detalles por qué es importante hacerlo: http://data-mining.philippe-fournier-viger.com/why-it-is-important-to-publish-source-code -y-conjuntos-de-datos-para-investigadores/

¿Qué quieres decir con compartir los archivos binarios? ¿podría aclarar estos puntos?
Está bien, lo explicaré. Para escribir un programa, un programador tiene que escribir algún código usando algún lenguaje de programación. Luego, generalmente, el programador "compila" el programa para convertirlo en un ejecutable (un software que puede ejecutar en su computadora, como un archivo .exe en Windows). Ese archivo ejecutable es lo que también llamamos un "archivo binario". Así, si un investigador te da su código fuente (el código), puedes modificar su software. Pero si un investigador le proporciona sus archivos ejecutables (archivos binarios), entonces solo puede ejecutar el programa pero no puede modificarlo. Espero que esté claro.

Creo que está perfectamente bien, y animo a pedir el código. De hecho, apoyo la posición de que cualquier resultado publicado basado en software vale casi nada si los autores no están dispuestos a publicar el código fuente junto con ellos. Si aún no lo han hecho al publicar su artículo, creo que es su obligación moral hacerlo lo antes posible o al menos cuando se lo soliciten. Si el motivo por el que los autores no publican su código fuente es que no confían plenamente en su propio software, entonces los resultados no deberían haberse publicado en absoluto. ¿Por qué alguien debería confiar en sus resultados si no está dispuesto a defender la forma en que los produjo?

Es absolutamente aceptable ponerse en contacto con un autor y pedir su código, y en mi experiencia, una buena parte de los investigadores están más que felices de compartir su código. Si bien sí, hay algunos que no querrán dejar que alguien eche un vistazo a su trabajo, esta no es una postura universal.

Algunas cosas a tener en cuenta:

  • Estás pidiendo un favor, reconócelo como tal. La preparación del código no es una actividad de esfuerzo cero. Por ejemplo, si está hablando con investigadores que trabajan con sujetos humanos, es posible que haya datos que deban eliminarse. Incluso si no lo hay, es posible que el código para la investigación en curso, aún no publicada, deba eliminarse, limpiarse los comentarios, cosas así.
  • Cuando solicite el código de alguien, deje en claro para qué planea usarlo. Más allá de hacer que sea más probable que su solicitud se cumpla favorablemente, será útil para ayudar a la persona que proporciona el código a saber qué es lo que necesita. Por ejemplo, ¿quieres construir sobre sus cosas? ¿Simplemente reproducir sus resultados? ¿Algo más? Puede haber cosas que necesita saber que son específicas para su propósito.
  • Si tiene la intención de convertir las cosas en un documento, es posible que también desee que se involucren en eso.