カスタムソフトウェアについて言及している論文がソースコードを公開しないのはなぜですか?[閉まっている]


69

研究論文に記載されているソフトウェアのソースコードがリリースされない理由はありますか?研究論文は、実装の詳細よりも何かを達成するという一般的なアイデアに関するものであることを理解していますが、コードをリリースしない理由はわかりません。

たとえば、このペーパーの最後は次のとおりです。

結果

人間の線画システムは、OpenGLを使用してC ++のQtフレームワークを通じて実装され、追加のハードウェア支援なしで2.00 GHz Intelデュアルコアプロセッサワークステーションで実行されます。システムが新しいパスとテクスチャを合成しながら、インタラクティブに線を描画できます。

彼らはソースコードを意図的に閉じたままにしますか?


42
同じ理由で、ほとんどの論文には生データがありません(統計的に歪んだ「結果」のみを公開しています)。
SKロジック

2
質問を編集しました。おそらく、「言及」は最良の言葉ではありません。場合によっては、論文で指摘された点のいくつかはソフトウェアに大きく依存しますが、ソフトウェアはベーパーウェアです。同様に、論文の妥当性を適切に評価するには、誰かがソフトウェアを実行できなければなりません。
カズ

7
@JohnL論文は、ソフトウェアについてではなく、ソフトウェアに大きく依存することができると思います。ソフトウェアツールを使用して実証/発見された世界の興味深い特性のように。ツールをレビューできない場合、結論が正しいことをどのように知ることができますか?(というか、ツールを見ることができれば、それを検証する方がはるかに簡単です!)
Andres F.

4
@Andres F-1つの可能性は、論文で説明されているアイデアを使用して、ソフトウェアの独自のバージョンを実装することです。これはより多くの作業ですが、おそらくより多くの価値があります。同じ実装を再度実行すると、1つの実装のみが再度示されます。新しい実装は、アイデア自体が有効であることを実証するのに役立ちますが、実装の詳細の一部ではありません。再実装中に、以前は気づかなかったか、説明されていなかった重要な問題が発見される場合があります。
Steve314

3
@KonradRudolph、もちろん常に利用できるとは限りません。それも、出版物(テープが消去および再使用、千切り解散グループ全体、紙、など)以来数年で利用できなくなる可能性があり
SK-ロジック

回答:


71

いくつかの理由が思い浮かびます。

  • コードは記事には大きすぎます。 短期間、興味深いプロジェクトは、それらを説明した論文で発表できるほど短かった。これはまだ発生する可能性がありますが、興味深いほど十分に大きなサイズの多くのプロジェクトは、それらを説明する論文で公開するには大きすぎます。
  • パブリックホストが無料または永続的ではありません。 最近まで、安価で耐久性があり、アクセスしやすいパブリックホストは利用できませんでした。
  • 論文の公開は、プロジェクトの公開よりも簡単です。 一部の人々は論文またはプロジェクトを公開する時間がありますが、両方はありません。
  • 役割に関連付けられたインセンティブ。 何年も前、私は同僚に製品開発と特許について尋ね、ほとんどの人がどちらか一方をやったという言葉を聞きました。ペーパーライター(アカデミアを考えてください)やオープンソースの開発者と同様に、報酬はいずれかの作業成果物に向けられています。
  • セルフモチベーション。 アイデアを記述したい、またはコードを実装したいという願望は、同じ人の同じ部分に常に存在するとは限りません。私の教授の多くは、彼らはあまりコーディングしなかったか、流codedにコーディングしていたことから何年も離れていたことを公然と認めました。同様に、多くの開発者は、コードにコメントを記述したり、ソース管理にコミットしたりすることをほとんど望んでいません。
  • プロジェクトのホスティングと作業成果物の耐久性も問題です。今から数年後にはなくなるかもしれないどこかにリンクしたい人は、その結果、論文の価値を減らします。
  • 伝統。 出版社は論文のレビューと出版を志向していますが、プロジェクトに対して同じ評価を行う準備ができていない場合があります。
    また、合理的な再現性レベルに関する従来の見解は、分野によって異なります。新しい合成方法に関する論文を発表している化学者は、別の化学者が合成を実行するのに十分な詳細を書き留めることが期待されています。彼女は雑誌に製品と製品を出荷することを期待されていませんでした。論文を使用/複製したい読者は、自分の論文を購入し、研究室で自分で合成を行うことが期待されます(実際にどのように行われるかを確認するために研究室を訪れてください)。生物学者が新しいトランスジェニックマウスを論文に添付することも期待されません。再現性に関するこの見解は、実際の実装を出荷するのではなく、たとえばアルゴリズムの(擬似コード)記述を与えることに対応しています。
  • 裸のコードは衝撃的です。コードの検査、コードのレビュー、プロジェクトの品質保証よりも、紙の長さのドキュメントを校正する方がはるかに少ない研磨で済みます。私はあなたを示すよりもあなたに話すことを快適にするコードがたくさんあります。うまくいけば、私たち全員が美しいコードを書くことができるようになると思いますが、コードが急ぎすぎたり、ほとんど機能しない、または完全に機能しない場合は、実行可能ファイルまたはソースを共有しない方が快適かもしれません。
  • クローズドソース。 誰もがオープンソースを受け入れているわけではありません。多くの論文は、DoD、商業プロジェクト、またはプロジェクトを一般に公開することによる利益はあるが、コードをオープンソース化することによって侵食される可能性のある企業秘密または最初の市場優位性がある民間資金プロジェクトの仕事について書かれています他の作業成果物。
  • このコードに基づいてさらに作業を公開します。コードが公開されていない場合、フォローアップ作業を公開する際に著者に利点を与える可能性があります。他の競合する研究者は、貴重な時間を要するかもしれない作業を再実装する必要があるかもしれません。

27
論文がソースコードに依存している場合、公開するべきではありません。コードを公開できない場合は、論文を公開できません。「私たちのプログラムはこれらの素晴らしいことをします」と書かれた論文で、そのプログラムを実行しないと論文を評価することはできません。
カズ

3
Kazとの完全な合意により、研究を査読するために利用できないもの(データ、コードなど)が必要な場合、査読済みの雑誌に受け入れられるべきではありません。DeveloperDonが指摘しているほぼすべての議論は、データのリリースにも当てはまります...しかし、近年ではかなり大きな動きがあります。
ジョー

3
素晴らしい投稿。また、ソフトウェアを独自に再作成する別の科学者が、実験の再現性の一部である場合もあると付け加えます。1人がコーディングした方法で機能し、他の人がコーディングした方法では機能しない場合...結果に疑問を投げかけ、エラーを特定できます。
ジンボジョニー

4
最後から2番目のポイントが最強です
l --''''''------------ '' '' '' '' '' ''

4
@AndresF。コードは絶対に論文の中で最も重要ではありません。論文は、「ここに私がしたこと、ここに私の方法、ここに私の結果があります」です。コードはメソッドを体系化したものであり、まったく同じ結果を生成するはずです。論文の結果を再現したいが、論文のコードを使用したい場合は、何も再現していません。何をしているはず行うには、あなたが彼らの結果を再現することができないとき、それについての論文を書き、その後独自の実装を思い付く、および、その方法の節を読んでています。
タクロイ

40

Randall LeVequeのプレゼンテーション「コードを共有しないトップ10の理由(とにかくあなたがとにかくするべき理由)」を読むhttp://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

彼は、コードが数学の証明に類似していることを説得力をもって主張し、証明が長すぎたり、すぎたり、エッジケースで機能しない、または価値があるかもしれないため、証明が公開されていない世界を検討するように私たちを招待しますお金、または誰かがそれを盗むかもしれません...

基本的に、科学を行っている場合は、コードを公開する必要があります。さもなければ、あなたは錬金術をしていて、暗い時代に戻って飛んで、私が心配する限りペストで死ぬことができます。


7
+1すばらしいプレゼンテーション。変化を求めている人がいることを嬉しく思います:)
アンドレスF.

+1リンクをありがとう。それは、私たちのコードの一部をオープンソースとしてリリースすることに関して、上司との継続的な交渉に役立つかもしれません。
フランク

単語アップ!良い類推は私からの投票に値する。
nullpotent

この比較がここでの目的にとって本当に良いかどうかはわかりません。私は化学者(より多くのコードが公開されることを望んでいます)であり、数学者ではありませんが、私が見た証明は通常、小さな一歩をすべて与えているわけではありません。だから私見ではなく、実際のソースコードよりもむしろアルゴリズムの圧縮された擬似コード記述に対応しています。
cbeleites

27

一般的に、論文の結果を生成するために使用されるプログラムはツールにすぎず、結果のみが重要です。したがって、それらはコンテキスト、方法論、結果、およびそれらに関する議論を提示する論文には掲載されません。

しかし、結果は再現可能でなければなりません。そして、論文の基になっているデータソースが公開されている場合、それらを結果に変換するプログラムも一般に必要です。特許や著作権の問題が発生しない場合、Web上の「どこかに」配置されることがよくあります。または、少なくとも、あなたが彼らに尋ねるならば、著者はあなたにプログラムを送らなければなりません。


2
私はあなたにあなたの貴重なコードを尋ねる誰かを送る必要があるとは思わない...私見この答えは間違っています。しかし、情報が無料の研究の世界を見たいと思っています
Dirk

3
@Dirk私の知る限り、これはソフトウェアの実証研究では比較的一般的です。このドメインでの私のチームの最後の(まだ受け入れられていない)提出で、レビュアーの1人が、データといくつかのコードへのパブリックアクセスを明示的に要求しました。コードがそれほど貴重である理由を理解していません。それは(一般的に)論文に記載されているアイデアの実現にすぎません。プログラムを公開すると、読者はアイデアをアクションに正しく変換できるかどうかを確認できます。
mgoeminne

1
うーん、あなたは(a)あなたのレビュアーが誰であり、(b)あなたと直接競争しているかもしれない誰かにあなたのコードとデータを与えるのを知っていますか?
ダーク

1
それは、(a)レビュー担当者が匿名でアクセスできる場所でコードを公開するように要求する(またはジャーナルによって認証が行われる)(b)論文が公開されているため、他の研究者も同じ方法論/ツールを使用できるからです他のデータセット、または同じデータセットでさえも研究を再現します。複製は元の論文より名声が低く、あなたの仕事を引用し、論文に強力な検証を提供します。したがって、元の著者は、他の人にこの作業をすべて行わせることができてうれしいです。
mgoeminne

@Paulソースコードの公開との接続が表示されません。とにかく、優れた編集者は、レビュアーが決定を正当化するために書くメモに注意を払います。したがって、「それはでたらめだ」などの言及は考慮されません。編集者が査読者の推奨事項が十分に関連していないと推定した場合、他の専門家の意見を求めます。大学院生はレビュープロセスに参加しません。そして、あなたが数年の提出の後にあなたの論文を受け入れさせることができないならば、あなたはこの論文(またはその内容)がそれほど良くないと想像するべきです。
mgoeminne

14

クローズドソースではありません。ソフトウェアはまったく公開されていません。

簡潔な答え:

ソフトウェアを公開しないのにはいくつかの理由がありますが、ソフトウェアをクローズドソースの方法で公開することはまれです。

長い答え:

クローズドソースとは、ソフトウェアが公開されており、ソースコードが公開されていないことを意味します。しかし、一般的なケースは、ソフトウェアもソースコードも公開されていないことです

私の経験では(大気科学で働いています)、著者に連絡して、研究を行うためのソフトウェア(もちろんソースコードを含む)を入手できるかどうか尋ねると、著者は非常に満足しています。私は彼らのプロジェクトに基づいてプロジェクトで論文を書くつもりなら、彼らは少なくともそれから引用を取得します(良い!)が、おそらくそれから共著者論文を取得します(もちろん、彼らはそうしなかったのでt誰かの助けを借りずに使用できるようにソフトウェアを文書化します)。比較的安価な共著者論文なので、さらに良いです。

本当の質問は:

なぜ彼らはソフトウェアを公開しないのですか?

これにはいくつかの理由があります。

  • 公開されたソフトウェアにはドキュメントが必要です。通常、人々はドキュメントを書くことを好まない。
  • 公開されたソフトウェアはユーザーを引き付ける可能性があります。ユーザーには質問があります。これには時間がかかります(ただし上記を参照)。
  • 公開されたソフトウェアには、簡単なメンテナンスが必要な場合があります。
  • ソフトウェアの公開にはホスティングが必要です。

リストを長くすることができます。ここではなく、Academia.SEでの別の質問に値します。

(私のグループでGPLの下でライセンスされているソフトウェアを公開しています


コードを公開することもできますが、変更が許可されていないライセンスの下です。
asmeurer

作者がソフトウェアが実際に存在することを証明するためにコンパイルされたバージョンのみを公開するような状況を考えたことがありませんでした。コード!
アレシール

8

それは皮肉に聞こえるかもしれませんが、私の経験では、研究論文は理解しやすい、または簡単に再現できるように書かれていません。代わりに、研究コミュニティでは、非常に科学的で見栄えの良い記事を持つことがより重要です。そのため、ほとんどの著者はコードを数式に変換し、アルゴリズムが数学的に正しいことを証明しようとします。通常、そのような記事のページ数は制限されているため、コードを公開するスペースは残っていません。しかし、もちろん、これはURLで完全なコードにリンクする著者を制限しません...

コードが公開されていない場合、著者は調査結果をまとめたいと思うか、(私が個人的に考えるともっと頻繁に)自分の研究が主張するほど素晴らしいものではないことを人々が見るのではないかと考えているかもしれません。多くの場合、結果は非常に限られたケースにのみ適用されます。

また、1つの簡単なプログラム/アルゴリズムから、いくつかの研究論文がスピンオフされていることを確認しました。コードが公開される場合、同じトピックに関するさらなる論文を書くことは困難です。そのため、知識は小さな断片で時間をかけて公開するために抑制されます。

大学では、重要なのは研究の結果や適用性ではなく、出版する論文の数であることに留意してください。悲しいですが、本当です。


13
これを言って、研究者に尋ねてみてください!時には彼らはあなたにソースコードを提供します。
ルシーナ

3
ここであなたが完全に公平であるとは思いません。「その代わりに、研究コミュニティでは、非常に科学的で見栄えの良い記事を持つことがより重要です。」これは、基本的なコンテンツに価値がないことを意味します。ほとんど科学的に見えるため理解できないためです。誰もコンテンツに関心がない場合、公開する論文の数はほとんど無関係です。私の考えでは、この反応は現実よりもあなたの偏見について語っています。
-temptar

2
@temptarまあ、私は少しマイナスに偏っているかもしれません。実際に私を最も驚かせるのは、ほとんどの研究者が明らかに、彼らの研究を理解しやすい方法で説明したがらないことです。私にアルゴリズムを説明した後、教授がいれば、「しかし、論文では、より科学的に聞こえるように、これをより複雑に書く」と付け加えた。
-codingFriend1

6
@ codingFriend1-1つの経験に基づいて一般化することはできません。それは非常に非科学的なアプローチです。研究スペシャリストの対象読者は誰であるかを考慮する必要があり、多くの場合、必要と考える種類の説明を必要とするのは人ではありません。これは、非専門家との橋渡しをするための科学的なコミュニケーションです。
temptar

3
codingFriend1の答えを支持します。これは、私が住んでいる科学コミュニティ、特に私の大学(それでも国内で最高の大学です)を対象とした一般的な批判です。「公開または消滅」。私があまり詳しくない分野の科学者も報告しています。申し訳ありませんが、多くの場所でそれは悲しくて広まっている真実です。
アンドレスF。

7

収益化の意図は別として、ソースコードを研究論文から除外する正当な理由は見当たりません。何らかの方法、形、または形式でソフトウェアに依存する研究を公開するために、原則としてソースコードを提供することを提案する小さな動きがあります。それについての詳細を読むことができます、それは科学コード宣言と呼ばれます。


1
リンクの+1!それは科学と研究がどうあるべきかという私の信念を完全に体現しています。
アンドレスF。

6

上記の回答は、コンピューターグラフィックス(著者によって言及された論文が発行された領域)で頻繁に発生するいくつかの実用的な理由を見逃しています。コードリリースは、CSのフィールドによって大きく異なります。たとえば、機械学習では、コードは通常公開されます。Human Computer Interactionでは、コードはほとんど公開されません。

私はコンピューターグラフィックスでかなりの量のコードリリースしましたが、著者コードリリースすべきだと思いますが、そうしない理由は単純で、非共謀理論の理由がたくさんあります。例えば

1)ほとんどのコンピューターグラフィックス研究プロジェクトでは、多くの場合、異なる機関の複数の研究者が共同作業を行い、それぞれがパズルの一部(アルゴリズム、ライブラリなど)を提供します。作業コードをリリースするには、すべての研究者が同意する必要があります。これはめったに単純な議論ではなく、通常は問題を回避するのが簡単です。

2)多くの場合、単一の論文のコードは、ラボ内で開発されているより大きなコードベースに埋め込まれています。そのコードベースには、他の未公開の作品が含まれます。1つのプロジェクトのコードを分離するのは多くの作業であり、多くの場合、この作業を行う必要のある人々に直接的な利益はありません(以下のインセンティブを参照)。

3)多くの場合、大学はコードに対する知的財産権を持っています。したがって、オープンソース化する前に「発明」の特許を取得できるように「発明」を文書化してほしいと、あなたの人生を際限なく困難にする「イノベーションオフィス」に連絡する必要があります。場合によっては、大学はソースを公開する許可を拒否することもできます(これは機関によって異なり、(1)によって非常に複雑になります)

4)多くのコンピューターグラフィックス研究は企業によって行われています。その場合、著者もコードを所有せず、弁護士からコードをリリースする許可を得る必要があります。弁護士には、「はい」と言う動機がほとんどありません。

5)コードを公開するインセンティブはありません。ほとんどのコンピューターグラフィックス研究コードは、他の誰にも使用されません。たとえそうであったとしても、汎用コードの場合、通常は承認を得るだけです(CVに関しては価値がありません)。運がよければ、引用が得られます。コードをリリースした場合、雇用委員会と助成機関は通常、少しも気にしません。したがって、リリースのためにコードを準備するのに費やす時間は、別の論文に費やすことができた時間の無駄です。(コンピューターグラフィックスでこれを積極的に変更しようとしている人々がいます)。

6)コードを公開しないインセンティブがあります。コードは、時にはスタートアップ企業になり、既存の企業にライセンス供与されるなどすることがあります。これは、将来の研究に資金を提供します。みんな食べなきゃ。


#2は非常に重要です。論文に関連するコードを分離するのは膨大な作業であるだけでなく、一度行うと、コンテキストから外れた(つまり、他の100個のツール、ライブラリ、およびラボ)、それは本質的に価値がなく、理解または使用することは不可能です。さらに、「研究コード」は非常に脆弱であることが多く、堅牢なソフトウェアシステムを作成するのではなく、1つの論文のポイントを証明するのに十分なだけ設計されており、研究者は誰にとってもひどい頭痛。
ラリーグリッツ

5

場合によります。論文を書く人、またはその上司が、ソースコードで何をすべきかを決定します。時々、人々はプロジェクトをオープンソースにします。

時には、プロジェクトは通常、会社によって資金提供されます。つまり、それは彼らの財産です。そのような場合、論文の著者はコードを表示することはできません。


3

通常、ページの制限の問題です。アルゴリズムが非常に短い場合は、少なくとも擬似コードとして論文で表されることがよくあります。一方、基礎となるコードの印刷されたバージョンがほんの数ページの長さである場合、コードを印刷することは記事の内容の余地を残さないでしょう。10ページのジャーナル記事は長い記事です。

ソースを利用可能にしないと、詐欺の可能性が生じます。この可能性があるため、多くのジャーナルでは、著者がソースコードを補足情報として送信する必要があります(アクセスできる場合はジャーナルから取得できます。多額の購読料がかかる場合があります)。他のジャーナルの中には、著者にソースコードを要求する人にソースコードを公開することを要求するものがあります。しかし、他のジャーナルはまだ暗い時代です。ソースコードは提出に必要ではなく、著者はそれをリリースする必要はありません。

最も簡単なことは、作成者にソースコードを提供できるかどうかを尋ねることです。著者のメールアドレスは、最近のほとんどのジャーナル論文に一般的にリストされています。


1
ソースコードをレビューに利用できるようにするためには、実際の論文にその全文を含める必要はありません:)本物の間違いを犯します。特に、コーダーが科学者であり、プログラマーではない場合!
アンドレスF。

3

科学者としての私の経験(5論文の発表)では、結果を作成するために使用されたコードをリリースすることは、ジャーナルによってしばしば要求されません。ジャーナルがスクリプトを受け入れないと言っているわけではありません。多くのジャーナルは、オンラインの補足資料を許可しています。アルゴリズムなどを対象とする一部のジャーナル(コンピューターや地球科学など)では、アルゴリズムのソースを追加する必要がありますが、これはルールよりも例外です。

科学者にとっては、雑誌の文化に加えて、コードは目的を達成するための手段にすぎません。多くはプロのソフトウェア開発者ではありません。多くの人はコードを科学を表現するための単なるツールと見なしているため、コードを公開する緊急性も感じていません。さらに、コードを公開できるレベルまで磨くには多くの作業が必要です。科学者は、ソフトウェアを書くのではなく、科学をするために支払われます。


しかし、ある意味では、ソフトウェアは証明です。それがコンピューターサイエンスのすべてです。プログラムは証拠です。これは、結果に対する十分な自信がない場合、または実際に研究の実用的な証拠を作成することの重要性についての文化的な誤解のいずれかであると思います。
アンドレスF.

1
私はコンピュータサイエンス自体について話しているのではなく、一般的な科学について話していました。理論的なCSでは、多くの人が数学の意味でアルゴリズムと証明に取り組んでいます。ソフトウェアは単なる実装であり、後付けです。
ポールヒエムストラ

コードが論文の脚注である場合、私は同意します。それが何らかの検証であり、それ自体のセクションがある場合でも、それが小さくても、それは証明の一部または少なくとも検証です。コードを公開しない場合、明らかに関連性がないため、論文からすべての言及を削除することもできます。
アンドレスF。

2

多くの場合、実際のプログラムは製品そのものではなく、目的を達成するための単なるツールです。ソースコードの完全な詳細を提供することは、レポートの署名に使用されるペンの完全な描画やPCの回路図を提供することに似ています。

とはいえ、特にピアレビューが招待されている場合は、プログラム内に本質的に知的財産が組み込まれているため、何らかの形式の非開示契約(NDA)の下でソースコードが利用可能になります。

コードに本当に興味がある場合は、@ Buttonsのコメントが最良のアドバイスであることをお勧めします。


1

多くは、コードが書かれた目的に依存します。ポイントを実証することであった場合、それは最適化されていない可能性が高いため、リリースされることは理想的ではありません。基礎となる概念と方法論が有効であれば、コードの結果をゼロから再作成できるはずです。著作権と所有権の問題もあるかもしれません。

原則として、コードをリリースすることは技術的に不可能ではありませんが、リリースされない理由はさまざまです。そのため、おそらくこの質問に対する簡単な答えはありません。特定の場合には、関係する研究者に尋ねることができます。


1

引用した論文は既に28ページあり、ほとんどのコンテンツは、問題の解決に関連する設計上の決定に関するものです(タイトルに記載)。

コードは、設計を検証する最終ステップです。些細なことではありませんが、特にそれが占めるスペースを考慮する場合、それは論文の結果に価値を加える部分ではありません。

すべてのケースが同じというわけではありません。一部の論文では、ソースコード、または少なくとも擬似コードが提供されています。一部の編集者はそれを許可していません。それを許可する人もいますが、スペースのために、著者はそれを含めません。ソースコードを発行したあるジャーナルで、「数字」としてフォーマットし、電子版ではテキストとして送信したものの、画像データとして使用しています。


1

インセンティブは重要であり、研究者のインセンティブは一般的に、彼らが互いに漸進的に構築する論文の安定した流れを作り出すことができることを保証することです。大学院生は通常、卒業するために論文の個々の章に変えることができる3〜5の公開論文が必要です。ジュニア教員は、テニュアレビューの前にできるだけ多くの出版物を作成する必要があります。そのため、ほとんどの学術論文はn一連の論文です。たとえば、あなたが参照する論文は、同じグループが1年前に発表した論文に基づいており、次の論文がカバーする可能性が高い根拠について議論しています。

ソースコードを公開すると、別のグループの別の研究者が論文を作成できる可能性があります n+1著者がこの研究の流れの一部としてカバーすることを期待していた地面のかなりの部分をカバーする論文を作成する前に、または少なくとも作成する前に。それが起こった場合、大学院生は、卒業するのに十分な研究成果を生み出すために、大学院生でさらに6〜12か月を費やしているのを簡単に見つけることができます。教授陣のメンバーは、テニュアレビューの時間が来たときに、発表論文が1つ少なくなる可能性があります。これらはどちらも明らかに、研究者のキャリアにとって大きな打撃です。学術アプリケーションは、多くの場合、研究グループ内の複数の人々の研究活動の一部であり(直接または特定のコンポーネントを共有しているため)、研究グループ内でコードをリリースしないように圧力をかけます。毎日一緒に仕事をしています。

生データの収集に時間がかかり、高度に分散している分野では、よく似たような議論が行われます。たとえば、天文学では、研究グループが1つの論文を発表するのに十分な情報を得るまでにデータを収集するのに何年も費やすことがあります。しかし、そのデータを使用して一連の論文を作成します。研究グループは、他のグループが実際にデータを分析することの見返りを得るためにデータを収集するために費やされた時間に自由に乗ることが容易になりすぎるため、絶対に必要なものよりも多くのデータセットを共有することに非常に消極的です。

最終的に、このコードの多くは、天文データが最終的にリリースされるようにリリースされます。著者が一連の論文の最後に到達したとき、または同様のトピックに取り組んでいるほとんどの研究グループが同様のエンジンを使用しているため、コードをリリースしても新しい研究者に競争上の優位性がなくなります。

データとコードがより迅速にリリースされれば、科学にとって理想的です。しかし、それは多くの場合、科学研究者に害を及ぼし、その場合、そのインセンティブが重要になります。


「ソースコードを公開すると、別のグループの別の研究者が元の著者よりも前にn + 1の論文を作成できるようになるか、少なくとも著者がこの一部としてカバーする予定のかなりの部分をカバーする論文を作成できるようになる可能性があります研究ストリーム。」これは私にはそれほど簡単に聞こえません。ほとんどの人(私を含む)は、著者の助けがなければ、研究者が書いたコードの種類を理解するのは難しいでしょう。これが実際に起こったケースを知っていますか?
ファヒームミタ

1

これを(学生側で)過去に数回行った人として:論文を書いている教授は、ソースコード自体を見ることもありません。彼らは彼らの大学院生にコードを書いてもらい、それが完了したときにのみ最終的な実行可能ファイル(または結果の確認さえ)を要求します。

学生はちょうどそれを一緒にハッキング、それを成し遂げるために、そしてので。また、頻繁に書かれたコードは、とにかく非常に読みやすいではありませんので、(彼らは非常に明るいですが)いない現実世界の経験を持つ大学院生は、世界最高のプログラマーではない傾向があります...


1

私が考えることができるほとんどの理由はすでにここで提起されましたが、実際に私に起こったことをさらに2つ追加すると思いました:

ジャーナルは何をすればいいのか分からない

私が取り組んでいた論文の1つについて、私は間違いなく、ソースコード(論文の全体がデータの視覚化でした)とそれに伴うサンプルデータを含めることにしました。そのため、提出物とともに、電子サプリメント1と2を添付しました。これは、コードを含むRスクリプトと、Rスクリプトに必要なデータを含むCSVファイルです。

結局のところ、ジャーナルは電子ファイルをWordファイルに挿入した場合にのみ電子サプリメントを取ることができます。その日のRスクリプトを取得するために1日の大部分を試みた後、私はあきらめ、補足としてコードを含めないことに決めました。私は大学でそれをホストすることができましたが、大学院生として、私は〜1年でそこでアカウントを失うことを知っていました-リンクソースですぐに追い越された場合、オープンソースは役に立ちません。

最終的にはGitHubでホストし、論文への参照を入れましたが、それは本当にコードを挿入したかったからです。特に、私の分野のほとんどの人はGitHubのようなものを使用していないため、その努力は、それをダウンロードする少数の人々にとって価値がなく、彼らが本当に望むならとにかく私に電子メールを送ることができるだろうと決定しました。

ジャーナルは興味がありません

レビュアーからのリクエストに応じて、コード自体に関するいくつかの小さな詳細を論文に挿入しましたが、その臨床ジャーナル(読み取り:誰のコードもありません)では、電子的な補足は許可されず、ソースコードの追加はおそらくそれは価値があったよりも多くのトラブル。

皮肉なことに、誰かコードを探しに行った場合、それはオープンソースです(またはまもなくオープンになるでしょう)が、私はすでに「これは気が散って技術的に成長しています」の端で走っていたので、「レビュアーを幸せにする'私がやろうとしていたのは言及だけでした。


0

多くの場合、実装(つまり、ソフトウェアは重要ではありません)が、ますます実装が結果に影響を与えます。

実装が重要な場合はいつでも、ソースコードを確実に利用可能にする必要があります!結果が実装または計算方法に依存するほど、ソースコードを投稿することが重要になります。


ソースコードを誰/どこに保存するかについて。理想的には、記事が公開されているジャーナルには、ソースコード全体が保存されます。ただし、最も重要なジャーナルの多くは、記事とソースコードの両方を保存していません。IMOでは、ジャーナルにソースコード全体を保存する機能がない場合、作成者はソースコードのWebアドレス可能なストレージ場所を見つける責任があります。
トレバーボイドスミス

0

ケモメトリックス(データ分析を行う化学者)として扱うコードのタイプについて、いくつかのポイントを追加したいと思います。

  • データ分析コードを書く人(私もそうです)は、そのコードを使用する人に比べて比較的少数です。「社内で作成されたカスタムコード」は、作成者が作成したことを意味するものではありません。同僚のコードである可能性があるため、作成者公開できません

  • コードの別の公開が計画されている可能性があり、コードの作成者(または監督者)は、コードが(部分的に)以前に公開された場合、新規性が失われることを懸念する場合があります。
    コードの公開が予定されているジャーナルが、以前に公開されていたコードに反対していなくても、監督者(またはIPオフィスの誰か)の純粋な懸念だけで、コードの公開を停止できます。

  • 多くの場合、データ分析コードはデータに合わせて調整されます。データがなければ意味がありません。(データはとにかく公開されるべきだと主張するかもしれませんが、それは別の質問であり、ここでは話題ではあり
    ません。)いずれにしても、私の研究所では、生データとデータ分析コードを論文と一緒にアーカイブします。デフォルトのポリシーでは(まだ?)それらを公開することできませんが、リクエストに応じて確実に利用できます。

  • (化学の再現性に関する従来の見解は、実際のソースコードを出荷するというよりも、むしろアルゴリズムの説明(おそらく擬似コード)に対応しています)

  • 私の同僚の多くは、データ分析の手順を記録しないインタラクティブなツールをデータ分析に使用しています。そのため、公開できるソースコードはありません。データ分析は、ラボアプローチよりもプログラミングに対応します。あなたは物事を行い、自分が行ったことをラボブックに書き留めます。


この答えは、データ分析の観点からであり、特定のニッチです。ただし、この質問はacademia.SXからリンクされているため、コンピューター科学者ではない人がこれを読んでいる可能性があります。
-cbeleites
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.