In meiner akademischen Laufbahn habe ich einige wissenschaftliche Artikel zu verschiedenen Themen der Informatik gelesen. Viele davon beinhalten eine Implementierung und eine Bewertung dieser Implementierung, aber ich habe festgestellt, dass nur sehr wenige von ihnen den von ihnen verwendeten Code tatsächlich veröffentlichen.
Für mich wäre die Einbeziehung der tatsächlichen Implementierung von erheblichem Nutzen, nämlich:
- Vertrauenserweiterung oder Reproduzierbarkeit (einfach selber testen!)
- Klärung von Unklarheiten (insbesondere bei Beiträgen von Nicht-Muttersprachlern)
- Wiederverwendung von Code für Anwendungen
Warum enthalten so wenige Artikel tatsächlich Code?
Ich nehme an, dass es die Absicht der Organisation hinter dem Papier sein könnte, die Implementierung in ihren eigenen Anwendungen zu verwenden und sie daher nicht freigeben zu wollen, aber wenn dies der Fall ist, warum sollte sie dann überhaupt das Papier schreiben?
soft-question
research-practice
paper-review
Kevin Dolan
quelle
quelle
Antworten:
Hier ist ein gut argumentierter Artikel von David Donoho und Jonathan Buckheit, den ich in der Graduiertenschule gelesen habe und der genau dieses Thema aus der Sicht von Wavelet-Forschern berührt:
"WaveLab und reproduzierbare Forschung"
Noch ehrgeiziger war ihre Idee, Code für die Reproduktion aller Zahlen in ihren Papieren in einem praktischen Matlab-Paket bereitzustellen.
Ich mag ihre Idee wirklich, aber ich denke, dass die Probleme offensichtlich sind.
(1) Es ist zusätzliche Arbeit (Bereinigen des Codes, Erstellen einer zumindest rudimentären Benutzeroberfläche, Verfassen von Dokumentationen und Unterstützen, wenn Menschen unvermeidlich auf Probleme stoßen).
(2) Es wird von den meisten Konferenzen / Gutachtern nicht wirklich verlangt / erwartet
Ich bin jedoch der Meinung, dass die CS-Forschungsgemeinschaft davon profitieren würde, wenn erwartet würde, dass der Code und die Daten, die in einer Veröffentlichung verwendet werden, in einem verwendbaren Format veröffentlicht werden. Ich gebe zu, dass ich das selbst nicht getan habe, obwohl der Arbeitsaufwand überschaubar gewesen wäre. Ich denke, es ist nur schwer, sich die Mühe zu machen, wenn es keinen externen Schub gibt.
quelle
Wenn Sie für ein industrielles Labor arbeiten, kann es sehr viel einfacher sein, ein Papier zur Freigabe zuzulassen, als einen Code zur Freigabe zuzulassen (selbst wenn das Papier alle Informationen enthält, die zum Umschreiben des Codes erforderlich sind). Schuld Bürokratie.
quelle
Aus einem Kommentar migriert und erweitert:
Ich denke, das muss je nach Unterfeld variieren. Fast alles, was ich mit Theorie B kenne (und insbesondere mit Haskell, Agda und manchmal mit Coq in Zusammenhang stehendem), enthält veröffentlichten Code, manchmal sogar als Anhang oder besser noch in der Zeitung. Eine ganze Reihe von Veröffentlichungen, z. B. von ICFP, werden zunächst als Lese- und Schreibprogramme verfasst, und ihre Quelle wird in ihrer Gesamtheit von den Autoren veröffentlicht. Eine ganze Menge davon hat wiederum zu extrahierten Bibliotheken für den Vertrieb geführt.
Von den verbleibenden Papieren hatte eine ganze Menge von Anfang an keinen Code. Von diesen gibt es wahrscheinlich zwei Hauptgründe. Erstens sind es die Papiere, deren Hauptinhalt Beweisbäume, Schreibregeln mit zugehörigen Stichhaltigkeitsbeweisen und dergleichen sind. Davon haben Fortschritte in der mechanisierten Metatheorie zumindest einige Autoren dazu ermutigt, Code in ihren Theorembeweisern anzugeben (siehe Weirichs Folien zu POPLmark: http://www.seas.upenn.edu/~sweirich/talks/cambridge-09). pdf). Zweitens sind diejenigen, die aus dem Bird-Merteens-Zeug (Bananen & Co.) abstammen. Diese sind in der Regel ohne großen Arbeitsaufwand in eine funktionale Sprache übersetzbar. Ich vermute jedoch, dass es in der Regel sowohl zu einem Verlust der Allgemeinheit als auch zu einer unnötigen Kompliziertheit und Schwierigkeit bei der Behandlung konkreter Syntax- und Tippprobleme kommt.
Ich wollte meine Beobachtungen ein wenig untermauern, ebenso wie eine grobe Zählung der ersten beiden Tage der ICFP 2010. Von den Standardpapieren (dh keine Erfahrungsberichte oder eingeladenen Vorträge) lieferten 12 von 21 irgendeine Art von Code. Drei stellten Coq zur Verfügung (ein vierter forderte einen Teilnachweis, veröffentlichte ihn jedoch nicht). Drei versorgte Haskell. Drei stellten Agda zur Verfügung. Einer lieferte Schema, einer lieferte Caml und einer lieferte Twelf. (Beachten Sie, dass einige Code für mehr als einen Proof-Assistenten oder für eine Formalisierung und eine Implementierung bereitgestellt haben.) Von den verbleibenden Papieren arbeiteten einige auf einer ausreichend hohen Abstraktionsebene, so dass die Implementierung in einem Proof-Assistenten ein neues Papier für sich wäre, und eine ganze Reihe von Arbeiten, von denen ich vermute, dass sie in einem Proof-Assistenten mit implementiert worden sein könnten Standardtechniken, die aber sicherlich einiges an Arbeit gekostet hätten.
quelle
Sie glauben, dass Code veröffentlicht werden sollte, aber Sie fragen, warum Artikel keinen Code enthalten. Das sind zwei verschiedene Dinge.
In den meisten Fällen ist einfach nicht genügend Platz vorhanden, um eine erhebliche Menge an Code zu veröffentlichen. In meinem Forschungsbereich (Bildverarbeitung) sind Pseudocode- oder Architekturinformationen oft weitaus wertvoller und ich habe mich aufgrund des fehlenden Codes in einer Arbeit nie festgefahren. Es ist oft eine Übung für den Leser, der den Artikel verstanden hat.
Dennoch ist eine Menge Code verfügbar, um Papiere zu illustrieren. Autoren haben normalerweise eine Webseite, und auch wenn der Prüfer keine Gelegenheit hat, den Code selbst zu überprüfen, scheint die natürliche Auswahl ziemlich gut zu funktionieren, und Autoren, die keinen Code veröffentlichen, werden viel weniger zitiert.
quelle
Dies könnte schon vor einiger Zeit gefragt worden sein, aber ich habe immer stark darüber nachgedacht, also werde ich meine zwei Cent geben. Ich arbeite seit Jahren (nicht mehr) in der SAT-Community. Die meisten Forscher veröffentlichen selten ihren Code. Das Papier wird zusammen mit dem Algorithmus veröffentlicht, aber es ist sehr selten, den tatsächlichen Code des SAT-Lösers (MAXSAT-Löser) usw. zu sehen, der zusammen mit dem Papier veröffentlicht wird.
Und die Realität ist, dass Sie mit dem im Artikel veröffentlichten Code niemals die Möglichkeit haben werden, die Experimente des Autors zu reproduzieren. Nicht nur, weil der veröffentlichte Code (natürlich) nicht vollständig ist, sondern auch, weil selbst der veröffentlichte Pseudocode nur selten halbdirekt in das übersetzt wird, was tatsächlich implementiert ist.
Der Grund dafür ist schwer zu erkennen und kann von Forscher zu Forscher unterschiedlich sein, aber meistens sind es zwei.
Erstens neigt der Forscher dazu, kontinuierlich in einem einzelnen Solver zu arbeiten, indem er Papiere nach Papieren auf demselben Solver veröffentlicht und inkrementell neue Funktionen hinzufügt, die sich in neuen Versionen des Solvers niederschlagen. Es gibt eine ungesunde Besessenheit, dass der Wettbewerb Ihren Löser dazu nutzt , seine Karriere voranzutreiben, indem er ihn erweitert und Artikel veröffentlicht, ohne dass Ihnen dies gebührend angerechnet wird (dh Mitautorschaft).
Zweitens ist wirklich ein Teil des Codes (wie bei jeder Software) in Eile geschrieben. Halbgebackene Skripte. Ungetestete Funktionen usw. Durch die Veröffentlichung dieses Codes würde der Forscher das Gefühl haben, sich selbst in Verlegenheit zu bringen und seinen Ruf zu schädigen.
Ich überlasse Ihnen einen aktuellen Verweis von ACM: http://cacm.acm.org/magazines/2011/5/107698-the-importance-of-reviewing-the-code/fulltext
quelle
In der Vergangenheit mussten wissenschaftliche Artikel auf Papier gedruckt und Zeitschriften ins Ausland verschickt werden. Jede zusätzliche Seite, die verwendet wurde, um erhebliche Kosten zu verursachen, unterlag Artikel Längenbeschränkungen, und selbst einfacher Arbeitscode nimmt normalerweise viel Platz ein als eine informelle Beschreibung.
Heutzutage gibt es keinen guten Grund, keinen Code in Artikel aufzunehmen, die auf einen Algorithmus verweisen.
Es kann auch nützlich sein, auf druckorientierte Formate wie PDF und Postscript zu verzichten, um semantischere Formate zu erhalten (HTML mit MathML oder möglicherweise eine OpenSource-Variante von Mathematica).
quelle