Was ist der beste Weg, um reproduzierbare Nachforschungen anzustellen, wenn Sie proprietäre Bibliotheken benötigen?


19

Reproduzierbare Berechnungsforschung zielt darauf ab, den Code, der zur Generierung der Ergebnisse in einem Computerpapier erforderlich ist, anderen Forschern zur Verfügung zu stellen, damit sie diesen Code ausführen können, um die Ergebnisse in diesem Papier zu reproduzieren. Ich möchte alle meine Recherchen reproduzierbar machen, stoße aber auf einen Haken: Ein paar Papiere, an denen ich arbeite, verwenden ein internes Paket zur automatischen Differenzierung ( DAEPACK ) in einer proprietären Bibliothek ( CHEMKIN- II ; Lizenzbedingungen unklar).

Es wäre zu zeitaufwändig, diese Softwarekomponenten durch Open-Source-Versionen zu ersetzen. Es gibt einen Open-Source-Ersatz für CHEMKIN-II namens Cantera , aber Cantera ist in C ++, während CHEMKIN-II in Fortran 77 enthalten ist. Es wäre sehr aufwändig, den Cantera-Code so zu ändern, dass er automatisch verarbeitet werden kann Differenzierungswerkzeuge für C ++.

Was ist angesichts der Tatsache, dass ich diese proprietären Pakete benötige, der beste Weg, um meine Forschung so reproduzierbar wie möglich zu gestalten, vorausgesetzt, die Forscher haben möglicherweise keinen Zugang zu CHEMKIN-II? Da DAEPACK ein Source-to-Source-Übersetzer ist, muss ich DAEPACK nicht unbedingt vertreiben. Möglicherweise kann ich die Ausgabe einbeziehen, dh Fortran-Quelldateien, die Ableitungen berechnen.

Wenn Sie in Ihrer Arbeit proprietäre Software benötigen und diese proprietäre Software nicht allgemein verfügbar ist (z. B. nicht MATLAB, Mathematica usw.), wie können Sie Ihre Arbeit reproduzierbar machen?


Ändert DAEPACK den CHEMKIN-II-Quellcode oder verwendet es CHEMKIN-II nur intern?
Dan

DAEPACK analysiert den CHEMKIN-II-Quellcode und generiert Fortran-Quelldateien, die Subroutinen enthalten, mit denen Jacobi-Matrizen, Sparsity-Muster und Intervallverlängerungen berechnet werden. Der Quellcode wird nicht geändert. In diesem Sinne ist es wie ein Compiler.
Geoff Oxberry

Wenn die Ausgabe von DAEPACK eine modifizierte CHEMKIN-II-Quelle ist, warum dürfen Sie diese verbreiten?
Dan

Es ist abgeleitete Arbeit, aber es ist mir nicht klar, ob die Quelle geändert wird. Variablennamen werden kopiert, aber durch dieses Argument sind viele der Programme, die ich geschrieben habe, "modifizierte CHEMKIN-II-Quelle". Ich müsste diesen Punkt überprüfen.
Geoff Oxberry

Können Sie mit der CHEMKIN-II-Lizenz unveränderte Quellen frei verbreiten und die Art und Weise einschränken, in der Sie Änderungen verbreiten? Ich kann keine Kopie der Lizenz online finden.
Dan

Antworten:


13

Ich glaube nicht, dass die Definition von "reproduzierbarer Forschung" erfordert, dass der Autor alle Werkzeuge, die zur Reproduktion der erhaltenen Ergebnisse benötigt werden, kostenlos zur Verfügung stellt. Wenn ein Teil davon proprietär ist, obliegt es dem zukünftigen Benutzer, nicht dem Autor, die Vorkehrungen zum Erwerb der benötigten Software zu treffen. (Sie würden nicht erwarten müssen, dass jemand anderes die Software erstellt, um Ihre Ergebnisse zu reproduzieren, oder?) Sie wären natürlich dafür verantwortlich, genau anzugeben, welches Release der proprietären Software Sie verwendet haben, aber es ist nicht zumutbar, dies zu erwarten Sie möchten einen Forschungscode mit Open-Source-Software kompatibel machen, nur weil es Open-Source ist.

[Abgesehen davon, dass wir nicht nur über die Reproduzierbarkeit von Software sprechen, wenn einige davon proprietär sind, denke ich, dass zunächst eine grundlegendere Frage behandelt werden muss: Gibt die Software reproduzierbare Ergebnisse für verschiedene Installationen (z. B. für verschiedene Architekturen und Compilerversionen? Beispielsweise führen Rundungsfehler und Zuordnungsunterschiede aufgrund der unterschiedlichen Anzahl von Prozessoren dazu, dass viele molekulare Simulationsberechnungen unterschiedliche Ergebnisse liefern, wenn nur die Anzahl der in der Zuordnung enthaltenen Prozessoren geändert wird. (Die statistischen Durchschnittswerte sollten gleich sein Ort, aber die Trajektorien können und werden wahrscheinlich sehr unterschiedlich enden.)]


2
Ich bin mit Sicherheit einverstanden, dass reproduzierbare Nachforschungen den Autor nicht dazu verpflichten, die erforderliche Software kostenlos zur Verfügung zu stellen. Software, die überhaupt nicht öffentlich verfügbar ist, ist jedoch ein Problem. Eines der Ziele der Bewegung für reproduzierbare Forschung ist es, ein Bewusstsein für dieses Problem in der Gemeinschaft zu schaffen und die Menschen dazu zu ermutigen, Forschungscode zu veröffentlichen, auch wenn sie nicht vorhaben, ihn zu unterstützen, nur um die Reproduzierbarkeit zu gewährleisten.
Khinsen

2
Im Handel erhältlicher Code ist weiterhin verfügbar. Wenn es nicht mehr möglich ist, eine Lizenz zu erhalten, ist das natürlich eine andere Sache. Der ursprüngliche Autor eines Codes sollte jedoch keinen Code neu schreiben müssen, um eine andere Bibliothek aufzunehmen, nur um die Reproduzierbarkeit zu gewährleisten. (Es gibt ein Argument für eine bessere Funktionsfähigkeit und Verwendung des Codes, aber das Reproduzierbarkeitsargument ist nicht auf den ersten Blick erforderlich - obwohl es als ausreichend angesehen werden könnte.)
aeismail

4

Ich war nie der Meinung, dass "reproduzierbare Forschung" bedeutet, dass Ihre Mitleser und Wissenschaftler nur auf "Ausführen" klicken (oder kompilieren oder was Sie haben) müssen, um Ihre Ergebnisse vollständig zu reproduzieren. Wenn nichts anderes, würde dies die Forschung eines jeden töten, der ein proprietäres statistisches Analysepaket verwendet, oder die Dinge "nicht reproduzierbar" machen, wenn sie für eine Plattform oder Sprache gemacht wären, die aus der Mode gekommen wären. Oder in diesem Fall möchte jemand Ihren Code reproduzieren, versteht / verwendet jedoch nicht die Sprache, die Sie verwenden.

CrossValidated hatte eine ähnliche Diskussion zum Thema - bedeutet "reproduzierbar", dass Sie meine Analyse auf meine Daten replizieren können oder dass das Experiment selbst von Grund auf neu ausgeführt werden kann und bestätigende Ergebnisse liefert. Der Link ist hier: /stats/14999/how-are-we-defining-reproducible-research

Ich denke, das wichtigste Element ist, zu beschreiben, was Sie auf der Ebene getan haben, auf der es von jemandem, der ausreichend interessiert war, neu codiert werden konnte , und wenn kommerzielle Tools verwendet wurden, werden diese Tools erwähnt. Denn das dient sowohl der Replikation des Experiments als auch der Überprüfung auf Codefehler.


2

In Ihrem Fall, in dem Sie möglicherweise nicht einmal das Recht haben, den von Ihnen verwendeten Code zu verbreiten, ist eine ausführliche Beschreibung des Algorithmus möglicherweise das Beste, was Sie tun können. Je nachdem, wie komplex Ihr Code ist, kann möglicherweise jemand mit den verfügbaren Tools das reproduzieren, was für ihn von Interesse ist.

Fragen Sie andernfalls nach, wie viel von Ihrer Arbeit Sie freigeben dürfen, und geben Sie diese dann frei.


Ein Großteil davon stammt aus dieser Chat-Unterhaltung.
Dan

1

Der beste Weg, reproduzierbare Forschung zu betreiben, besteht darin, sich nicht auf kurzlebige Dinge wie bestimmte Codes auf bestimmten Plattformen zu verlassen. Gestern haben wir Lochkarten berechnet, heute Elektronen in Silizium, morgen vielleicht Laser mit Proteinen oder sogar lebenden Zellen, übermorgen Quantenpunkte und wer weiß, was nächste Woche sein wird.

Reproduzierbare Forschung sollte ihre Konzepte und Ideen klarstellen und die derzeit verfügbaren Tools wie Hardware oder Software nicht zu einer Voraussetzung für die Reproduktion der Forschungsergebnisse machen. Die verwendeten Algorithmen sollten in einer klaren universellen Form detailliert sein. Die aktuelle Version einer bestimmten Hardware, eines Compilers oder eines Softwarepakets kann nur als Hilfsmittel zur Veranschaulichung der Forschungsergebnisse verwendet werden.


Ich denke, wir brauchen beides - die Konzepte und Ideen für das menschliche Verständnis und die langfristige Interpretierbarkeit sowie den Code für die kurzfristige Verifizierung.
Khinsen

1

Das Veröffentlichen des generierten Fortran-Codes scheint in Ihrem Fall eine sehr gute Lösung zu sein.

Generell denke ich, dass die Verwendung unveröffentlichter Software nicht mit den Zielen reproduzierbarer Forschung vereinbar ist. Das ist einer der Gründe, warum ich reproduzierbare Forschung eher als langfristiges Ziel betrachte als als etwas, das man zur sofortigen Anwendung benötigen könnte.


1

Ich arbeite für Elsevier. Mein Unternehmen hat damit begonnen, das Collage-Framework (das als Reaktion auf die "Executable Paper Grand Challenge" entwickelt wurde) in Zeitschriftenausgaben zu verwenden, damit Autoren mit ihrem Artikel ausführbaren Code veröffentlichen können. Diese Funktion erleichtert es den Lesern, die im Artikel gemeldeten Ergebnisse zu reproduzieren und veröffentlichtes Material für ihre eigene Forschung wiederzuverwenden. Collage unterstützt neben Open-Source-Software eine Vielzahl von proprietärer Software. Weitere Informationen finden Sie im Informationsvideo hier und auf der Collage Authoring Environment-Website .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.