学術コンピューティングの学術論文(および今日では他の多くの分野)には、通常、その論文専用に記述された、または論文の結果を得るために使用されたコードまたはソフトウェアパッケージ全体が含まれます。論文の読者がコードにアクセスできるようにする最善の方法は何ですか?私の現在のアプローチは、Githubリポジトリへのリンクを(特定のバージョンタグとともに)論文または引用に入れることです。
学術コンピューティングの学術論文(および今日では他の多くの分野)には、通常、その論文専用に記述された、または論文の結果を得るために使用されたコードまたはソフトウェアパッケージ全体が含まれます。論文の読者がコードにアクセスできるようにする最善の方法は何ですか?私の現在のアプローチは、Githubリポジトリへのリンクを(特定のバージョンタグとともに)論文または引用に入れることです。
回答:
さて、あなたにはいくつかの選択肢があると思います。
ただし、これらのケースのいずれかまたはすべてでは、記事でソースを明確に示し、ライセンスの種類(GPL、Creative Commonsなど)を示す必要があります。そうすれば、IP関連の問題は発生しません。
すばらしい質問とすばらしい回答がありますが、目標が出版物自体と同じ基準を達成することである場合、永続性の問題に適切に対処できるものはないと思います。(コードがまだ実行される可能性を考えるとばかげているかもしれませんが、少なくともパブリケーションと同じくらい有用です。)
大学のWebサイトでは、ホストされているコンテンツを保持するための安定性や冗長性は提供されません。コンテンツは引用するのがより難しく、通常、機械で読み取り可能なメタデータが不足しています。
残念ながら、ジャーナルは補足資料を維持する上でそれほどうまくいっていないようであり(Anderson et al。2006を参照)、必要な形式を受け入れないか、補足資料さえまったく受け入れない場合があります(1つの顕著な例を参照)。
これらの理由により、データの長期アーカイブに関心のある人々は、ウェブサイトや補足資料ではなく専用リポジトリの使用を支持することに全会一致で向きを変えており、現在多くのジャーナルがこの慣行を義務付けています。コードがこの標準に準拠していることは公平に思えます。
Githubと関連サイトは、大学図書館と定評のある出版社によって達成された数百年規模の寿命をまだ証明していません。広範な配布を促進することにより、stackexchangeにコメントできなかった1人のフェローを含む、他の人がコメントに反映したソリューションを提供する可能性があります。
...残っているものを保存しましょう:世間の目から彼らを保護し、時間の無駄に任せるために使用するボールトやロックではなく、コピーの多重化によって、それらを事故の手の届かないところに置きます。
—トーマス・ジェファーソン、1791年2月18日
私が知っている唯一のアーカイブ標準はfigshareです。これは完全なコードリポジトリを受け入れることができます(現時点では「ファイルセット」としてですが、まもなく「コード」タイプとしてリストされるオプションがあると思います)。figshareの重要な部分は、プログラム可能なメタデータを含む引用可能なDOIだけでなく、世界中の12の地理的および地理的政治的に分散したノードですべてのコンテンツのコピーを保持するCLOCKSSアーカイブサービスの支援です。figshareが廃業または消滅した場合、CLOCKSSからすべてのコンテンツが自由に利用できるようになります。
したがって、コードの配布にGithubを使用することをお勧めしますが、公開時にfigshareにアーカイブコピーを提供することもお勧めします。
いくつかの派手なpdfテクニックを使用して、コードをpdfに添付するだけです(つまり、コードファイルはpdfに埋め込まれ、pdfのボタンをクリックするだけで「ダウンロード」できます)。これは、たとえばattachfileパッケージで実現できます。もちろん、これはプレプリントでも動作しますが(arxivですでに動作しているかどうかはわかりませんが)、おそらくジャーナルファイルで問題が発生します...
特定の研究プロジェクトに固有の小さなスクリプトの場合、出版に最適な場所は、論文の「補足情報」としてのジャーナルのWebサイトです。記事を読む人にとって最も見つけやすい場所です。
他のプロジェクトにも関心のあるより実質的なパッケージは、個別に公開する必要があります。残念ながら、現時点では本当に良い解決策はありません。理想的には、コード発行物は、紙のようにDOIを介して永続的にアクセスできますが、DOIを配布し、その永続性を保証するホスティングサイトは知りません。現時点では、GithubやBitbucketなどの公開リポジトリがおそらく最善の策です。
最善の解決策は、コードと一緒にパッケージ化されたペーパーとそれに付随するデータを公開することですが、それはまだ技術的に実行可能ではありません。私はこのアイデアを探る研究プロトタイプに取り組んでいます。詳細はこのサイトをご覧ください。
私は、すぐに機関の変更を予想しているという事実から生まれた2つの戦術をとったので、私の大学のURLは少しでも安定していません。
コードが比較的短いとき、私は彼らがおそらく論文とコードをほぼ同じ場所に保つまともな仕事をすると仮定して、それをジャーナル自体に補足的な付録として含めようとしました。これは、一般的な関心があまりないコードに特に役立ちます-コンテキストを提供するための問題のペーパーがなければ、役に立たないコードです。
しかし、ソースコード、実際のソフトウェア、およびより複雑なプロジェクトや一般的な関心のあるプロジェクトについては、少なくとも論文の平均的な生産的寿命の間は安定しているはずのGitHubリポジトリにリンクするという戦術に従っています。
見てくださいhttp://www.runmycode.orgを。彼らは、研究論文に関連するコードのコンパニオンサイトをホストしています。コードがR、Matlab、または他のいくつかの場合、実際にコードが実行されます。私はまだ試していませんが、そうするつもりです。デビッド・ドノホと彼の協力者はそれを使っていると思います。
大学図書館は、この場所または大学のホスティングセンターになる可能性があります。
読者として、著者に直接連絡することでコードを取得できるという効果についての論文の声明は効果的です。著者として、これはコラボレーションを促進するのに役立ち、仕事でコードを使用する場合、私の記事を引用するよう人々に思い出させる機会を与えてくれます。