Wissenschaftliche Arbeiten im Bereich des wissenschaftlichen Rechnens (und in vielen anderen Bereichen heutzutage) beinhalten typischerweise eine gewisse Menge an Code oder sogar ganze Softwarepakete, die speziell für dieses Papier geschrieben wurden oder verwendet wurden, um Ergebnisse in dem Papier zu erhalten. Wie kann man den Lesern des Papiers am besten helfen, auf den Code zuzugreifen? Mein aktueller Ansatz ist es, einen Link zu einem Github-Repository (zusammen mit einem bestimmten Versions-Tag) in das Papier oder in ein Zitat zu setzen.
publications
David Ketcheson
quelle
quelle
Antworten:
Nun, ich denke, Sie haben ein paar Möglichkeiten.
In einigen oder allen diesen Fällen sollten Sie jedoch im Artikel die Bezugsquellen klar angeben und angeben, um welche Art von Lizenz es sich handelt (GPL, Creative Commons usw.), damit es auf der ganzen Linie keine IP-bezogenen Probleme gibt.
quelle
Gute Frage und gute Antworten, aber meines Erachtens geht keine ausreichend auf die Frage der Beharrlichkeit ein, wenn das Ziel darin besteht, denselben Standard zu erreichen, der der Veröffentlichung selbst zuerkannt wurde. (Was vielleicht albern ist, wenn man bedenkt, dass der Code immer noch ausgeführt wird , aber trotzdem mindestens so nützlich ist wie die Veröffentlichung).
Beilagen zu Zeitschriften auf Universitätswebsites sind nicht dauerhaft
Es ist unwahrscheinlich, dass Universitätswebsites die Stabilität oder Redundanz bieten, um gehostete Inhalte zu erhalten. Der Inhalt ist schwieriger zu zitieren und es fehlen normalerweise maschinenlesbare Metadaten.
Leider scheint es, dass Zeitschriften bei der Pflege ihrer Zusatzmaterialien nicht viel besser abschneiden (siehe Anderson et al. 2006 ) und möglicherweise nicht die erforderlichen Formate oder überhaupt kein Zusatzmaterial akzeptieren (siehe ein bemerkenswertes Beispiel ).
Aus diesen Gründen haben sich die Leute, die sich mit der Langzeitarchivierung von Daten befassen, einstimmig für die Verwendung dedizierter Repositories anstelle von Websites oder ergänzenden Materialien ausgesprochen, und viele Zeitschriften schreiben diese Praxis inzwischen vor . Es scheint nur fair zu sein, dass der Code diesen Standard einhält.
Die Lösung vieler Kopien?
Github und verwandte Websites müssen erst noch die Langlebigkeit von Universitätsbibliotheken und etablierten Verlagen nachweisen. Durch die Erleichterung einer breiten Verbreitung kann es eine Lösung bieten, die andere in den Kommentaren wiederholt haben, einschließlich eines Kollegen, der sich nicht zu stackexchange äußern konnte.
Figshare & der CLOCKSS Standard
Der einzige mir bekannte Archivierungsstandard ist figshare , der vollständige Code-Repositorys akzeptieren kann (derzeit als "Dateigruppen", ich glaube jedoch, dass bald die Option besteht, als Typ "Code" aufgeführt zu werden). Das Schlüsselstück von figshare ist nicht nur die zitierfähige DOI mit programmatischen Metadaten, sondern auch die Unterstützung des CLOCKSS- Archivdienstes, der Kopien sämtlicher Inhalte an 12 geografisch und geopolitisch verteilten Knotenpunkten auf der ganzen Welt aufbewahrt. Sollte figshare aus dem Geschäft kommen oder aufhören zu existieren, wird dies dazu führen, dass der gesamte Inhalt von CLOCKSS frei verfügbar ist.
Folglich würde ich vorschlagen, Github für die Verteilung von Code zu verwenden, aber auch eine Archivierungskopie für figshare zum Zeitpunkt der Veröffentlichung bereitzustellen.
quelle
Sie können einige ausgefallene PDF-Techniken verwenden, um den Code einfach an das PDF anzuhängen (dh die Code-Dateien werden in das PDF eingebettet und können mit einem Klick auf eine Schaltfläche im PDF "heruntergeladen" werden). Dies kann zum Beispiel mit dem attachfile- Paket erreicht werden. Natürlich funktioniert dies mit Preprints (obwohl ich nicht weiß, ob es bereits mit dem arxiv funktioniert), aber Sie bekommen wahrscheinlich Probleme mit Journal-Dateien ...
quelle
Für kleine Skripte, die spezifisch für ein bestimmtes Forschungsprojekt sind, ist der beste Ort für die Veröffentlichung die Website der Zeitschrift als "ergänzende Information" zum Artikel. Dort ist es am einfachsten, jemanden zu finden, der den Artikel liest.
Umfangreichere Pakete, die auch für andere Projekte von Interesse sind, sollten besser separat veröffentlicht werden. Leider gibt es derzeit keine wirklich gute Lösung. Im Idealfall wäre eine Codeveröffentlichung über eine DOI dauerhaft zugänglich, genau wie ein Papier, aber mir ist keine Hosting-Site bekannt, die DOIs austeilt und deren Beständigkeit garantiert. Öffentliche Repositories wie Github oder Bitbucket sind momentan vielleicht die beste Wahl.
Die beste Lösung wäre, das mit dem Code und den dazugehörigen Daten verpackte Papier zu veröffentlichen, aber das ist technisch noch nicht machbar. Ich arbeite an einem Forschungsprototyp, der diese Idee untersucht. Weitere Informationen finden Sie auf dieser Website .
quelle
Ich habe zwei Taktiken gewählt, die sich aus der Tatsache ergeben, dass ich einen baldigen Wechsel der Institutionen erwarte, sodass meine Universitäts-URL nicht im geringsten stabil ist.
Wenn der Code relativ kurz ist, habe ich versucht, ihn als zusätzlichen Anhang in die Zeitschrift aufzunehmen, unter der Annahme, dass sie wahrscheinlich gute Arbeit leisten werden, indem sie das Papier und den Code ungefähr an der gleichen Stelle aufbewahren. Dies ist besonders nützlich für Code, bei dem nicht viel allgemeines Interesse besteht - Code, der ohne das betreffende Papier für die Bereitstellung des Kontexts etwas nutzlos ist.
Aber für Quellcode, aktuelle Software und kompliziertere Projekte oder Projekte von allgemeinem Interesse habe ich Ihre Taktik befolgt, eine Verknüpfung zu einem GitHub-Repository herzustellen, das zumindest für die durchschnittliche Lebensdauer meiner Papiere stabil sein sollte.
quelle
Schauen Sie sich http://www.runmycode.org an . Sie hosten Companion-Sites für Code, der mit Forschungsarbeiten verknüpft ist. Wenn der Code R, Matlab oder ein paar andere ist, wird er tatsächlich für Sie ausgeführt. Ich habe es noch nicht ausprobiert, aber ich beabsichtige es. Ich denke, David Donoho und seine Mitarbeiter nutzen es.
quelle
Universitätsbibliotheken könnten ein Ort dafür oder das Hosting-Center der Universität sein.
quelle
Als Leser wäre eine Aussage in der Veröffentlichung dahingehend wirksam, dass Code durch direkte Kontaktaufnahme mit dem Autor erhalten werden kann. Als Autor könnte dies die Zusammenarbeit fördern und mir die Möglichkeit geben, die Leute daran zu erinnern, meinen Artikel zu zitieren, wenn sie den Code in ihrer Arbeit verwenden.
quelle