コードを出版物にリンクする方法


40

学術コンピューティングの学術論文(および今日では他の多くの分野)には、通常、その論文専用に記述された、または論文の結果を得るために使用されたコードまたはソフトウェアパッケージ全体が含まれます。論文の読者がコードにアクセスできるようにする最善の方法は何ですか?私の現在のアプローチは、Githubリポジトリへのリンクを(特定のバージョンタグとともに)論文または引用に入れることです。


2
コードを共有することは素晴らしいアイデアであり、さらに行う必要があります。私は、論文に関連するコードを提供する方が上手くできることを知っています。Githubリポジトリは良い解決策のようです。付録にソースコードを含めるよりも確かにはるかに優れています。
バロン

4
これは、関連するMOの質問です。
JM

@JMありがとう、MOの答えはとても良いです!
デビッドケッチャソン

githubでipythonノートブックを公開でき、インタラクティブパーツを除いてレンダリングされることに注意してください
-denfromufa

1
@denfromufa残念ながら、GithubはMathjaxを無効にしているため、数学もレンダリングされません。そのため、ほとんどの関連フィールドではほとんど役に立ちません。ただし、nbviewerは常に存在します。
デビッドケッチャソン

回答:


17

さて、あなたにはいくつかの選択肢があると思います。

  1. 大学や他の非営利機関が後援するページなど、すぐに消えることのない安定したページがある場合は、そこに公開できます。
  2. Github、Bitbucket、SourceForgeなどのサービスを使用してコードを配布できます。
  3. コードが一般的な限界値(特定の条件セットなどの分析コード)である場合、コードを使用する論文と共に「補足情報」ダウンロードとして利用可能にすることができます。
  4. 上記のいくつかの組み合わせを使用できます。

ただし、これらのケースのいずれかまたはすべてでは、記事でソースを明確に示し、ライセンスの種類(GPL、Creative Commonsなど)を示す必要があります。そうすれば、IP関連の問題は発生しません。


6
生き残るために最も可能性の高い場所に、可能であれば複数の場所に自分のコードを置くべきだと思います。たとえば、大学のページは、ホスティングサービスよりも生き残る可能性が低いようです。ジャーナルでスナップショットを利用できるようにすることも理にかなっています。残念ながら、私が知っているジャーナルはリポジトリのホスティングを行っていません。
ファヒムミタ

1
学生は、おそらく個人のホームページにソフトウェアを置くべきではありません。ただし、一般的な研究コードでは、属性が失われる可能性のある外部ページよりも、研究グループに関連付けられたページに配信することで得られるものがおそらく多いと思います。ジャーナルに関しては、リポジトリのホスティングを行わないのは事実です。しかし、研究コードの形で「補足情報」を持つ能力は、責任ある科学ソフトウェア開発の要件のほとんどを満たすと思います。(必要な場合)
aeismail

大学のページは、通常のホスティングサイトよりも失われる可能性が高いと感じています。もちろん、最近人気のあるホスティングサイトのほとんど(Bitbucket、Github、Google Code)はそれほど長くはありません。一方、例えばSourceforgeはしばらく前から存在しています。
ファヒームミタ

他にも注意すべき問題があります。知的財産に関する懸念や大学や政府の規制により、リポジトリの選択も制御される場合があります。しかし反論は、大学所有のサイトでの配布に成功したコードがいくつかあることです(NAMDは1つの主要な例です)。一般に、コードの「重要性」によって、コードの可視性が決まります。重要なユーザーベースを開発するコードが完全に消えることはないと思います。
aeismail

1
確かに、コードがあいまいな場合、それが消えてもOKという意味ではありません。そして、ほとんどの科学的コードが無料のライセンスの下にあり、不当な制限がないことを望みます。例えばNIHは現在、NIH(納税者)のお金で開発された仕事にこれを義務付けていると思います。これは、納税者が資金提供するすべてのプロジェクトに当てはまると思います。
ファヒムミタ

8

すばらしい質問とすばらしい回答がありますが、目標が出版物自体と同じ基準を達成することである場合、永続性の問題に適切に対処できるものはないと思います。(コードがまだ実行される可能性を考えるとばかげているかもしれませんが、少なくともパブリケーションと同じくらい有用です。)

大学のウェブサイトのジャーナルの補足は永続的ではありません

大学のWebサイトでは、ホストされているコンテンツを保持するための安定性や冗長性は提供されません。コンテンツは引用するのがより難しく、通常、機械で読み取り可能なメタデータが不足しています。

残念ながら、ジャーナルは補足資料を維持する上でそれほどうまくいっていないようであり(Anderson et al。2006を参照)、必要な形式を受け入れないか、補足資料さえまったく受け入れない場合があります(1つの顕著な例を参照)。

これらの理由により、データの長期アーカイブに関心のある人々は、ウェブサイトや補足資料ではなく専用リポジトリの使用を支持することに全会一致で向きを変えており、現在多くのジャーナルがこの慣行を義務付けています。コードがこの標準に準拠していることは公平に思えます。

多くのコピーの解決策?

Githubと関連サイトは、大学図書館と定評のある出版社によって達成された数百年規模の寿命をまだ証明していません。広範な配布を促進することにより、stackexchangeにコメントできなかった1人のフェローを含む、他の人がコメントに反映したソリューションを提供する可能性があります。

...残っているものを保存しましょう:世間の目から彼らを保護し、時間の無駄に任せるために使用するボールトやロックではなく、コピーの多重化によって、それらを事故の手の届かないところに置きます。

—トーマス・ジェファーソン、1791年2月18日

FigshareとCLOCKSS標準

私が知っている唯一のアーカイブ標準はfigshareです。これは完全なコードリポジトリを受け入れることができます(現時点では「ファイルセット」としてですが、まもなく「コード」タイプとしてリストされるオプションがあると思います)。figshareの重要な部分は、プログラム可能なメタデータを含む引用可能なDOIだけでなく、世界中の12の地理的および地理的政治的に分散したノードですべてのコンテンツのコピーを保持するCLOCKSSアーカイブサービスの支援です。figshareが廃業または消滅した場合、CLOCKSSからすべてのコンテンツが自由に利用できるようになります。

したがって、コードの配布にGithubを使用することをお勧めしますが、公開時にfigshareにアーカイブコピーを提供することもお勧めします。


1
CC-BYライセンスはソフトウェアライセンスではありませんが、figshareは大きな前進です。CC0でコードをリリースする科学者の数がわからないので、これは対処すべき問題です。彼らがDOIとCLOCKSSを使用していることに感謝していますが、それは素晴らしいことです。
アロンアーマディア

ええ、特に完全に開発されたソフトウェアの場合、ライセンスがまだ多少問題があるという点で素晴らしい点です。分析を複製するスクリプトについては、CC0がより適切であることがわかりました。
cboettig

Googleコードは、概要、画像、DOIリンク、検索の視認性などを備えたより良いWebページを作成できるため、より多くのユーザーにとってわずかに優れている可能性があります。非開発者の大部分は、バージョン管理、さらにはgit / hgに精通していません。Subversionは、より幅広い読者を対象にしています。
stali

1
@staliは、git-hubがリポジトリからghページを介してカスタムWebページをサポートし、ダウンロードからtarballをダウンロードできることを思い出します。ただし、GoogleもGithubも、コードに個別のDOIを提供したり、会社の存続期間を超えたアーカイブの寿命に対処したりすることはありません。
cboettig

4

いくつかの派手なpdfテクニックを使用して、コードをpdfに添付するだけです(つまり、コードファイルはpdfに埋め込まれ、pdfのボタンをクリックするだけで「ダウンロード」できます)。これは、たとえばattachfileパッケージで実現できます。もちろん、これはプレプリントでも動作しますが(arxivですでに動作しているかどうかはわかりませんが)、おそらくジャーナルファイルで問題が発生します...


とてもかっこいい!LaTeXでこれができるとは知りませんでした。
キューバイト

4

特定の研究プロジェクトに固有の小さなスクリプトの場合、出版に最適な場所は、論文の「補足情報」としてのジャーナルのWebサイトです。記事を読む人にとって最も見つけやすい場所です。

他のプロジェクトにも関心のあるより実質的なパッケージは、個別に公開する必要があります。残念ながら、現時点では本当に良い解決策はありません。理想的には、コード発行物は、紙のようにDOIを介して永続的にアクセスできますが、DOIを配布し、その永続性を保証するホスティングサイトは知りません。現時点では、GithubやBitbucketなどの公開リポジトリがおそらく最善の策です。

最善の解決策は、コードと一緒にパッケージ化されたペーパーとそれに付随するデータを公開することですが、それはまだ技術的に実行可能ではありません。私はこのアイデアを探る研究プロトタイプに取り組んでいます。詳細はこのサイトをご覧ください。


1
ActivePapersの場合は+1。今では私のニーズを満たしているとは思いませんが、誰かが解決策に取り組んでいるのを見てうれしいです!
デビッドケッチャソン

figshareはDOIのを提供します:参照figshare.com/blog/...
Jeromy Anglim

3

私は、すぐに機関の変更を予想しているという事実から生まれた2つの戦術をとったので、私の大学のURLは少しでも安定していません。

コードが比較的短いとき、私は彼らがおそらく論文とコードをほぼ同じ場所に保つまともな仕事をすると仮定して、それをジャーナル自体に補足的な付録として含めようとしました。これは、一般的な関心があまりないコードに特に役立ちます-コンテキストを提供するための問題のペーパーがなければ、役に立たないコードです。

しかし、ソースコード、実際のソフトウェア、およびより複雑なプロジェクトや一般的な関心のあるプロジェクトについては、少なくとも論文の平均的な生産的寿命の間は安定しているはずのGitHubリポジトリにリンクするという戦術に従っています。


2

見てくださいhttp://www.runmycode.orgを。彼らは、研究論文に関連するコードのコンパニオンサイトをホストしています。コードがR、Matlab、または他のいくつかの場合、実際にコードが実行されます。私はまだ試していませんが、そうするつもりです。デビッド・ドノホと彼の協力者はそれを使っていると思います。



@David Ketchesonと私も12月に、Pythonベースのコードの1つにwakari.ioスタックとIPythonノートブックを使用して実験を行いました。PyClawの再現性に関するノートはこちらで確認できます
アロンアフマディア

0

大学図書館は、この場所または大学のホスティングセンターになる可能性があります。


-2

読者として、著者に直接連絡することでコードを取得できるという効果についての論文の声明は効果的です。著者として、これはコラボレーションを促進するのに役立ち、仕事でコードを使用する場合、私の記事を引用するよう人々に思い出させる機会を与えてくれます。


4
それは興味深い視点であり、私はそれがどれほど一般的であるかを知りたいです。個人的に、それは私が逃げようとしているものです。それはまるで不完全な論文を発表し、読者に完全なものを要求するように要求しているような気がします。sciencecodemanifesto.orgを参照してください。
デビッドケッチャソン

2
私の最も著名な論文の1つに連絡先アドレスが記載されていて、本質的に死んでいる-そして、他のいくつかについては確信がない-私は一般的にこれを解決策として反対している。「私に連絡する」は、必ずしも世界で最も簡単なことではありません-特に10年後。
フォマイト

2
「私に連絡する」アプローチも再現性を保証しません。いくつかのコードを求めて私に連絡したら、おそらく私は元の論文で使用したものではなく、最新のバージョンを送信するでしょう。元のバージョンがもうないという理由だけで。
khinsen

3
著者が要求に応じて提供するライセンス契約に署名した場合でも、実際に著者に連絡してデータを要求する経験的研究は、驚くほど少数の著者が従うことを示しています。たとえば、dx.doi.org / 10.1371 / journal.pone.0007078およびその中の引用を参照してください。これがデータに対してうまく機能しない場合、それはコードにとっても良い解決策ではないと思われます。
cboettig
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.