說我編寫了執行物理計算的代碼。之後,我根據代碼的結果發表了一篇論文。為了促進科學的進步,我在GitHub上上傳了用於本文的代碼。我還在我的網站上的GitHub上發布了我的代碼的鏈接。我這樣做是為了便於對我的結果感興趣的人發現和使用代碼。假設有人在復制我的結果(使用上述代碼)的過程中發現了代碼邏輯中的缺陷。糾正此邏輯缺陷會導致本文的中心思想無效。
這會導致收回嗎?
發布代碼會給我帶來積極的收穫嗎?
說我編寫了執行物理計算的代碼。之後,我根據代碼的結果發表了一篇論文。為了促進科學的進步,我在GitHub上上傳了用於本文的代碼。我還在我的網站上的GitHub上發布了我的代碼的鏈接。我這樣做是為了便於對我的結果感興趣的人發現和使用代碼。假設有人在復制我的結果(使用上述代碼)的過程中發現了代碼邏輯中的缺陷。糾正此邏輯缺陷會導致本文的中心思想無效。
這會導致收回嗎?
發布代碼會給我帶來積極的收穫嗎?
如果代碼中的更正使論文的主要思想無效,那麼您最好嘗試自己撤回論文。這只是職業道德的要點。如果人們沒有徹底檢查所有內容,它還可以在某種程度上保護您免受將來的索賠。
該期刊可能無法實際撤回論文,但可能能夠(以印刷或在線方式)發表有關該論文存在缺陷的註釋(希望作者指出)。
但是,其他人可能會依賴論文的原始論文誤導他們自己的工作。您真的不希望那樣發生。
假定誠實。做到這一點。
基於更正的代碼,您也許還可以發表更好的論文。為此而努力。
將代碼發布給我,會有任何積極的收穫嗎?
發布代碼對於使計算可重複且可驗證結果是必要的。如果我是您論文的審稿人,我可能會堅持要求您發布代碼。因此,“積極收穫”將是您的論文不會被直接拒絕。它還將幫助您提高聲譽,並建立其他研究人員對您的認真,細心的科學家的印象,這些科學家了解做好科學的意義。
此外,您要問的本質是“誠實行事的積極收穫”。在這裡,我不會進行有關誠實及其收益的哲學討論,而請您想一想。即使在特定的學術研究環境中,您的問題也可以表述為“我正在考慮隱藏有關我的研究方式的信息,這對於其他研究人員驗證我的結果至關重要。不隱藏這些信息會帶來積極的收穫嗎?”再次考慮您的要求。
從問題中可以很明顯地看出,您實際上是一個渴望發展科學並想做正確的事情的人。太好了,結論是您有責任披露與研究相關的信息,這將使其他研究人員能夠檢查您的結果。如果後來發現結果無效,那麼您和您所發表的期刊將需要以適當和負責任的方式處理該問題,方法是發出指出錯誤的註釋,或者(通常只會在極端,惡劣的情況下)。老實說,我認為這不必擔心太多。只要您以真誠的態度行事並儘最大努力去做好的科學,您就可以增加人類的知識總量,您的工作就會有價值。那才是最重要的,這才是您最終將由社區中的同輩們做出的判斷。發表的條件在評論中引起了一些爭議,但我發現允許作者保留代碼的論點相當薄弱。我建議人們更多地考慮這個問題,尤其要考慮這樣一個事實,即 Nature Research系列的148種期刊完全符合我在其官方政策中提出的要求。 :
報告標準以及數據,材料,代碼和協議的可用性
出版的固有原則是,其他人應該能夠複製並建立在作者已發表的主張之上。在《自然研究》雜誌上發表文章的條件是,必須要求作者及時向讀者提供材料,數據,代碼和相關協議,而又應具有適當的資格。在提供材料或信息時,任何限制都必須在提交時告知編輯。任何限制都必須在提交的手稿中披露。
出版後,遇到作者拒絕遵守這些政策的讀者,請聯繫該雜誌的主編。如果編輯無法解決投訴,期刊可以將該問題提交給作者的資助機構和/或在出版物的在線附件中發布正式的更正聲明,指出讀者無法獲得必要的材料以解決該問題。複製調查結果。
@Buffy當然是對的,如果人們發布自己的代碼,《科學》本身會收穫很多。沒有代碼的論文(許多科學領域的規範)很難復製或建立。
但是您要問從中得到什麼,或者這是否會損害您的職業。
首先,不太可能有人在您的程序中發現重大缺陷,期刊也不太可能撤回論文,因為有人(不是您)要求這樣做。大多數錯誤或可疑的結果只是保留在文獻中。
更有可能:有人會實際使用或擴展您的結果,並幫助您改善結果。因此,他/她會引用您或與您一起在將來的論文上合作。這絕對是您想要的東西。
這會導致撤回嗎?
以適當的尊重-這是一個錯誤的問題。您已經說過,在您的情況下:
此邏輯缺陷的糾正導致該論文的中心思想無效。
這是不可能的。中心思想要么是正確的,要么是不正確的(讓我們對邏輯上的“排除中間”或半有效性等問題之以鼻)。發布不會對其進行驗證或使之無效(同樣,我們不要對Schroedinger的貓考慮事項之以鼻)。如果有效,則代碼中的缺陷僅表示該代碼不能證明/確立該想法。如果這是無效的,那麼對人類來說,當務之急是,聲稱其有效性的文章就不應被視為有效。您不同意嗎?
發布代碼會給我帶來積極的收穫嗎?
這個問題的措辭來了有點自私。通常,通過發布代碼可以明顯帶來積極的收益。為什麼一定要為您帶來個人利益?你是科學家,我的朋友-在這裡把你的自我放在一邊。
但是,是的,有幾項收穫(按重要性排序):
讓我給您一個不符合科學宏偉理想的答案,例如可複制性和先進性。您問的是“對我有什麼好處”,作為我花費大量時間完善和發布模擬代碼的人,我認為這是一個非常公平的問題,因為這將佔用您很多時間。畢竟,在發布代碼時,您將不得不處理以下問題:
使代碼具有可讀性-您不希望其他人看到您的意大利面,所以相當多時間必須投入。
編寫文檔-沒有代碼是沒有好處的。
技術支持-您是否應該幸運的是有人會使用它,他們將需要支持。
更新時間表-您肯定會更新代碼,現在還必須更新公共代碼。不破壞現有功能。並且向後兼容。
如您所見,這需要花費很多時間。值得嗎?是的,我想是這樣。否則我不會這樣做。發布您的代碼允許其他人實際使用您的工作。就我而言,我正在做理論工作。發布代碼允許進行實驗的人們下載我的代碼並將我的理論與他們的數據進行比較,而無需我。這收集了引文和聲譽-年輕科學家需要的東西。這也意味著,由於他們可以自己玩弄代碼,因此不需要我了解他們的特定設置,以便為我提供適合他們的計算。這使計算比我自己能做的更加精確-再次無需我去做。
現在,如果有人發現錯誤會怎樣?這當然很不幸,而且確實發生了。通常它不會導致撤回,因為很少有“代碼錯誤”類型的錯誤會使整篇論文無效-如果確實如此,則您在提交之前沒有充分地按照常識檢查計算結果! 我逐漸喜歡提交錯誤。這意味著其他人做了艱苦的工作來遍歷您的代碼,並且實際上找到了您自己找不到的東西。最終,它可以使您獲得更好的結果,而無需您付出任何努力。
總而言之,發布代碼是一筆巨大的投資-但是回報也可以是巨大的。
>
如果他們確實找到了一個使您的結果完全無效的錯誤,那麼該論文實際上是無效的。您最好收回它。在理想的情況下,您可以修復代碼,分析正確的結果並撰寫新論文-但實際上,該期刊可能對與此主題的另一篇論文不感興趣。
如果您測量的塔高為123 m,則放下一些物體並得出結論g = 2.9 m / s ^ 2。如果後來發現您混合了標尺,並且塔實際上是123 ft 高,那麼您認為應該發生高人造附近極端引力異常的實驗證據嗎?結構?
在Github上發布代碼似乎是不好的,因為它會帶來發生此類災難的風險,並且沒有相應的上升空間。這是錯誤的。我們可以遵循上面的類比-如果您的實驗論文由於“有人可能意識到我的方法不合適並且不起作用”而省略了“方法”部分,該怎麼辦?如果您只是因為“論文中可能存在錯誤”而根本不發布該怎麼辦?
此外,有種驗證方式的方法。它們並不完美,但是可以幫助捕獲許多錯誤。通常,您應該在工作中保持謹慎和細緻的態度,以確保其中沒有太大的缺陷。您不應該僅僅等待您的學者發現就發布帶有無數掩埋“驚奇”的東西。因此,實際上,您的代碼完全不可能是錯誤的。因此,通過將其放在Github上,您的風險很小(很好,尾巴很長),但是您可以收穫很多。
我對您的領域了解不多。在計算機科學(例如機器學習)中,我認為沒有人能確保代碼100%正確。
以我的觀點,我認為研究中最重要的兩件事是(1)想法和(2)陳述。一旦您可以將自己的想法清楚地傳達給聽眾,我認為那是一篇很好的文章,它有自己的價值。因此,該論文不應該撤回。
但是,我們需要在提交之前盡力確保所有報告的結果都是正確的(據您所知)。