題:
如果發布的軟件代碼中的缺陷使論文的中心思想無效,論文會被撤回嗎?
Tejas Shetty
2019-08-06 19:40:08 UTC
view on stackexchange narkive permalink

說我編寫了執行物理計算的代碼。之後,我根據代碼的結果發表了一篇論文。為了促進科學的進步,我在GitHub上上傳了用於本文的代碼。我還在我的網站上的GitHub上發布了我的代碼的鏈接。我這樣做是為了便於對我的結果感興趣的人發現和使用代碼。假設有人在復制我的結果(使用上述代碼)的過程中發現了代碼邏輯中的缺陷。糾正此邏輯缺陷會導致本文的中心思想無效。

這會導致收回嗎?
發布代碼會給我帶來積極的收穫嗎?

FWIW計算機科學領域一直在努力發布源代碼,因此可以復制結果。參見https://www.artifact-eval.org/motivation.html
正收益?當然,您將去天堂而不是地獄。認真地講,遵守道德總是一種積極的收穫。
如果紙張有誤,則得知您需要收回紙張是積極的收穫。
所有的答案,評論是如此深刻和深刻,我很難決定要接受哪個答案。
假設您的發現是正確的,那麼有人會建造一台機器,卻發現它是錯誤的,它會故障並殺死許多人嗎?
您不應該在發布之前驗證結果以確保邏輯和程序都正確嗎?
@mast您知道您可以說多少軟件是100%無漏洞的嗎?
@JBentley只有Sith可以處理絕對值。但是這裡有很多錯誤,而且還有一些嚴重的錯誤使本文的中心思想無效。對於該軟件或非常糟糕的軟件,您將需要一個相當大的錯誤。
@Mast不一定。我之前曾進行過一個量子力學模擬,但缺少一個術語,具體取決於您在代數和代碼之間的錯誤之處,很難找到並沒有明顯錯誤的輸出。當然,您應該對每個步驟進行兩次/三重檢查,並請其他人做同樣的事情,這應該可以抓住它,但是有時這種事情會漏掉。
七 答案:
Buffy
2019-08-06 19:59:39 UTC
view on stackexchange narkive permalink

如果代碼中的更正使論文的主要思想無效,那麼您最好嘗試自己撤回論文。這只是職業道德的要點。如果人們沒有徹底檢查所有內容,它還可以在某種程度上保護您免受將來的索賠。

該期刊可能無法實際撤回論文,但可能能夠(以印刷或在線方式)發表有關該論文存在缺陷的註釋(希望作者指出)。

但是,其他人可能會依賴論文的原始論文誤導他們自己的工作。您真的不希望那樣發生。

假定誠實。做到這一點。

基於更正的代碼,您也許還可以發表更好的論文。為此而努力。

真的假設誠實嗎?我遇到或聽說過很多不誠實行為,以至於我難以相信任何事情。
@WGroleau可能非常依賴於字段。毫無疑問,在科學領域中,有產生特定結果的壓力,而沒有必要提出最正確的結果。
這不僅是利益衝突。有時是(或似乎是)“那個人的結論說我錯了,因此我必須與之抗爭”。
我認為在許多領域,人們都採取“信任但要核實”的態度。
誠然,科學與其他任何事物都不誠實。但是,如果不誠實,科學就無法進行。我讀過的每篇論文都包含多年的實驗。每個讀者都不可能重複實驗。我必須假設作者沒有彌補他們的結果。
@IanSudbery,這就是為什麼,如果發現有人這樣做(虛假結果),他的聲譽就消失了,他將很難從中恢復。沒有人願意與無法信任的人合作來做適當的工作,如果發現他們,您可能會與您相處。
誠實的假設必然伴隨著一種非常寬容的方式來證明不誠實。您的同事必須能夠相信您已對他們提供了對真理的最佳理解,如果他們不能做到,他們將(並且應該)將您拒之門外。
@FrankHopkins這是打開代碼和數據的另一個原因:如果將所有內容公開,則更容易辯稱您犯了誠實的錯誤,而不是試圖快速提出錯誤。
Dan Romik
2019-08-06 21:50:30 UTC
view on stackexchange narkive permalink

將代碼發布給我,會有任何積極的收穫嗎?

發布代碼對於使計算可重複且可驗證結果是必要的。如果我是您論文的審稿人,我可能會堅持要求您發布代碼。因此,“積極收穫”將是您的論文不會被直接拒絕。它還將幫助您提高聲譽,並建立其他研究人員對您的認真,細心的科學家的印象,這些科學家了解做好科學的意義。

此外,您要問的本質是“誠實行事的積極收穫”。在這裡,我不會進行有關誠實及其收益的哲學討論,而請您想一想。即使在特定的學術研究環境中,您的問題也可以表述為“我正在考慮隱藏有關我的研究方式的信息,這對於其他研究人員驗證我的結果至關重要。不隱藏這些信息會帶來積極的收穫嗎?”再次考慮您的要求。

從問題中可以很明顯地看出,您實際上是一個渴望發展科學並想做正確的事情的人。太好了,結論是您有責任披露與研究相關的信息,這將使其他研究人員能夠檢查您的結果。如果後來發現結果無效,那麼您和您所發表的期刊將需要以適當和負責任的方式處理該問題,方法是發出指出錯誤的註釋,或者(通常只會在極端,惡劣的情況下)。老實說,我認為這不必擔心太多。只要您以真誠的態度行事並儘最大努力去做好的科學,您就可以增加人類的知識總量,您的工作就會有價值。那才是最重要的,這才是您最終將由社區中的同輩們做出的判斷。發表的條件在評論中引起了一些爭議,但我發現允許作者保留代碼的論點相當薄弱。我建議人們更多地考慮這個問題,尤其要考慮這樣一個事實,即 Nature Research系列的148種期刊完全符合我在其官方政策中提出的要求。 :

報告標準以及數據,材料,代碼和協議的可用性

出版的固有原則是,其他人應該能夠複製並建立在作者已發表的主張之上。在《自然研究》雜誌上發表文章的條件是,必須要求作者及時向讀者提供材料,數據,代碼和相關協議,而又應具有適當的資格。在提供材料或信息時,任何限制都必須在提交時告知編輯。任何限制都必須在提交的手稿中披露。

出版後,遇到作者拒絕遵守這些政策的讀者,請聯繫該雜誌的主編。如果編輯無法解決投訴,期刊可以將該問題提交給作者的資助機構和/或在出版物的在線附件中發布正式的更正聲明,指出讀者無法獲得必要的材料以解決該問題。複製調查結果。

我認為問誠實或共享信息是否會損害科學職業是一個有效的問題。
@J.FabianMeier表示同意。希望您也認為我的答案是有效的答案:-)
@DanRomik堅持發布代碼可能在某些領域中有效,但在所有領域中均不可行。在我的領域(湍流燃燒)中,代碼受到嚴格保護,而且規模龐大-我們的求解器接近1M行(500k核心代碼,500k pre / post / utilities /等)。在超級計算機上重現結果將花費數月的時間,再加上數月的培訓才能完成編譯/運行代碼所需的所有步驟。因此,儘管高尚,但是發布代碼和檢查結果並不是在所有領域都可行。
這也取決於研究是否由公共資助。許多研究是私人資助或自籌資金。要求他們放棄自己的技術以便能夠分享他們的發現並不一定是最好的。
@ASimpleAlgorithm任何人都可以自由進行私人研究,而不會發布結果以保護任何技術或商業秘密。當您*發布*結果時,根據定義,您是將它們輸入科學知識的公共領域。這是兩方面的協議:您的工作功不可沒,其他人則可以使用,驗證和利用您所創建的知識。因此,在合理範圍內,任何自重期刊都應要求您向讀者提供驗證結果所需的任何數據,包括代碼。不喜歡嗎不要發布。
@tpg2114我了解某些子領域的規範並不要求發布代碼是發布的要求。這並不意味著該規範有意義。從哲學的角度來看,扣留代碼與扣留實驗數據或故意混淆您對研究方法的描述具有完全相同的狀態,以防止其他研究人員在您的工作中繼續使用。是的,人們也做這些事情並擺脫它。它做錯了。
@DanRomik是的,我了解您的職位。也許你想念我的。如果代碼本身就是“結果”,那麼它就屬於本文。如果它不屬於論文,則論文必須是結果的完整描述。在這種情況下,您對代碼共享的其他要求不是研究結果的要求,而是超出所需範圍的技術要求。至於數據,數據通常是結果,例如對臨床研究的分析,因此在很多情況下,這種定位更有意義。
-1
而且,即使它需要一台超級計算機,您仍然應該為擁有超級計算機和數月培訓的那個人做。實際上,那個人成為您工作科學合法性的“唯一”保證人,因此您應該竭盡所能對他好,而不是隱藏您的代碼。僅僅因為今天需要一台超級計算機,並不意味著它在20年內不會花費5分鐘在智能手機上。畢竟,論文是永遠的。
儘管我不同意@DanRomik(儘管我很同情)。在期刊開始要求您提供資料之前,我認為可以肯定地說您擁有出版的一切權利,並且您的工作是先驗的科學。但是,如果再現性證明是一個問題,那麼這些事情可能會受到質疑。如果代碼中包含商業機密,則可以通過以下方法解決:例如,Embargos或NDA。
-1
如果您不發布代碼(最好是詳盡記錄),則沒有描述實際方法。拒絕提供代碼,實際上是可以無限複製的,因為您不會提供實驗設備,這很荒謬。“您不會下載風洞。”
@Trusly期刊已經對此進行了規定。看到我的答案編輯。
通常應該要求作者提供代碼來備份他們原本應該編寫的代碼的結果。絕對是是的,這意味著某些軟件公司不應該發布某些結果,並且可能需要限制在工業“揮手求索”的軌道上。
@tpg2114:“在超級計算機上重現結果將花費數月的時間,再加上數月的培訓才能完成編譯/運行代碼所需的所有步驟。”->月比年好。發布代碼:-)
是否要求公開代碼或是否要求根據要求提供代碼,Nature註釋尚不清楚。您碰巧知道它是哪一個嗎?
J Fabian Meier
2019-08-06 20:12:08 UTC
view on stackexchange narkive permalink

@Buffy當然是對的,如果人們發布自己的代碼,《科學》本身會收穫很多。沒有代碼的論文(許多科學領域的規範)很難復製或建立。

但是您要問從中得到什麼,或者這是否會損害您的職業。

首先,不太可能有人在您的程序中發現重大缺陷,期刊也不太可能撤回論文,因為有人(不是您)要求這樣做。大多數錯誤或可疑的結果只是保留在文獻中。

更有可能:有人會實際使用或擴展您的結果,並幫助您改善結果。因此,他/她會引用您或與您一起在將來的論文上合作。這絕對是您想要的東西。

_不太可能有人在您的程序中發現重大缺陷_,但是,OP假設發現了這樣的缺陷。
這更是對_的答案,這要歸功於將代碼發布給我嗎?
einpoklum
2019-08-07 12:28:20 UTC
view on stackexchange narkive permalink

這會導致撤回嗎?

以適當的尊重-這是一個錯誤的問題。您已經說過,在您的情況下:

此邏輯缺陷的糾正導致該論文的中心思想無效。

這是不可能的。中心思想要么是正確的,要么是不正確的(讓我們對邏輯上的“排除中間”或半有效性等問題之以鼻)。發布不會對其進行驗證或使之無效(同樣,我們不要對Schroedinger的貓考慮事項之以鼻)。如果有效,則代碼中的缺陷僅表示該代碼不能證明/確立該想法。如果這是無效的,那麼對人類來說,當務之急是,聲稱其有效性的文章就不應被視為有效。您不同意嗎?

發布代碼會給我帶來積極的收穫嗎?

這個問題的措辭來了有點自私。通常,通過發布代碼可以明顯帶來積極的收益。為什麼一定要為您帶來個人利益?你是科學家,我的朋友-在這裡把你的自我放在一邊。

但是,是的,有幾項收穫(按重要性排序):

  1. 您的結果/發現將得到更好的認可,並得到更廣泛的接受。
  2. 與您未來合作的潛力將有所增加。
  3. 處理代碼並使代碼處於可發布狀態可能會產生其他結果或對相同結果的看法。
  4. 其他科學家將能夠更好地根據您的結果進行研究(是的,這是積極的收穫,儘管其他人有可能“竊取雷聲”)
  5. 作為研究人員,人們會對您的評價更高一些-您可以“將代碼放在嘴裡”。
  6. 有人可能會發現一個缺陷,使您可以撤回論文(是的,這也是肯定的-您當然不想在記錄上留下毫無根據的論文,對嗎?可以這麼說。)
  7. ol>
你能解釋為什麼嗎?我總是給人以這樣的印象,經常聘用的通勤者可能不會注意到或不在乎一張無效的紙(前提是還有很多其他好的紙),而經過編輯的紙確實聞起來很奇怪,因為這種情況很少發生。您還有其他經驗嗎?還是參考?此外,如果有人對自己的職業生涯有利,為什麼不修改他們的無效論文呢?
@user111388:因為對社區無效的紙張誤導以維持其信譽是嚴重的違法行為。縮回無關緊要。如果您說一個人可能只是在招聘委員會中歪曲了這篇論文,我想這可能是可行的,但這對整個學術界都是不道德和有害的。
我同意這是應該的。絕對沒問題。我懷疑這是在實踐中發生的。我希望看到對它的引用變得更加樂觀!
我不知道@user111388: TBH。但是學術界要比僱用委員會要多得多。
我同意。我之所以這樣問,是因為我理解您的回答是“這不僅對學院有好處,而且對您的職業也有好處”。
@user111388我認為einpoklum不願承認有時會付出不誠實。然而,不承認這將是它自己的不誠實形式。是的,你有意思。同時,有理由相信誠實是最好的總體政策(從純粹的自私的角度來看),從某種意義上說,成為一個關心誠實和誠實的人將在生活中取得更大的成功從原則上講,即使在某些特定情況下(例如撤回事情),偏離此政策也可能會使他們受益。也許這就是einpoklum試圖提出的重點。
nabla
2019-08-07 20:15:23 UTC
view on stackexchange narkive permalink

讓我給您一個不符合科學宏偉理想的答案,例如可複制性和先進性。您問的是“對我有什麼好處”,作為我花費大量時間完善和發布模擬代碼的人,我認為這是一個非常公平的問題,因為這將佔用您很多時間。畢竟,在發布代碼時,您將不得不處理以下問題:

  • 使代碼具有可讀性-您不希望其他人看到您的意大利面,所以相當多時間必須投入。

  • 編寫文檔-沒有代碼是沒有好處的。

  • 技術支持-您是否應該幸運的是有人會使用它,他們將需要支持。

  • 更新時間表-您肯定會更新代碼,現在還必須更新公共代碼。不破壞現有功能。並且向後兼容。

如您所見,這需要花費很多時間。值得嗎?是的,我想是這樣。否則我不會這樣做。發布您的代碼允許其他人實際使用您的工作。就我而言,我正在做理論工作。發布代碼允許進行實驗的人們下載我的代碼並將我的理論與他們的數據進行比較,而無需我。這收集了引文和聲譽-年輕科學家需要的東西。這也意味著,由於他們可以自己玩弄代碼,因此不需要我了解他們的特定設置,以便為我提供適合他們的計算。這使計算比我自己能做的更加精確-再次無需我去做。

現在,如果有人發現錯誤會怎樣?這當然很不幸,而且確實發生了。通常它不會導致撤回,因為很少有“代碼錯誤”類型的錯誤會使整篇論文無效-如果確實如此,則您在提交之前沒有充分地按照常識檢查計算結果! 我逐漸喜歡提交錯誤。這意味著其他人做了艱苦的工作來遍歷您的代碼,並且實際上找到了您自己找不到的東西。最終,它可以使您獲得更好的結果,而無需您付出任何努力。

總而言之,發布代碼是一筆巨大的投資-但是回報也可以是巨大的。

>

對於任何非平凡的代碼,您應該為將來的自我做好頭兩個要點。他們不算發布代碼所需的精力。對於同一類別,我至少要編寫一個基本的測試套件。
當然。但是“應該”並不意味著它總是完成的。那裡有很多半廢棄的PhD軟件,它們構成了論文的基礎。
Trusly
2019-08-07 12:40:35 UTC
view on stackexchange narkive permalink

如果他們確實找到了一個使您的結果完全無效的錯誤,那麼該論文實際上是無效的。您最好收回它。在理想的情況下,您可以修復代碼,分析正確的結果並撰寫新論文-但實際上,該期刊可能對與此主題的另一篇論文不感興趣。

如果您測量的塔高為123 m,則放下一些物體並得出結論g = 2.9 m / s ^ 2。如果後來發現您混合了標尺,並且塔實際上是123 ft 高,那麼您認為應該發生高人造附近極端引力異常的實驗證據嗎?結構

在Github上發布代碼似乎是不好的,因為它會帶來發生此類災難的風險,並且沒有相應的上升空間。這是錯誤的。我們可以遵循上面的類比-如果您的實驗論文由於“有人可能意識到我的方法不合適並且不起作用”而省略了“方法”部分,該怎麼辦?如果您只是因為“論文中可能存在錯誤”而根本不發布該怎麼辦?

  • 如果您的代碼確實是錯誤的,則最好盡快收回。您的論文在那裡發表的時間越長,引力異常學家閱讀和辯論論文的時間就越長。它將獲得可見性。即使您試圖隱藏這些缺陷,也至少在有人嘗試複製您的作品時最終會發現它們。如果您稍後撤回,將會有更多的人在乎紙,甚至可能是紙,而現在他們會為此而煩惱。第5天撤退比500天撤退對您的聲譽造成的影響更大。在這裡顯示代碼是您的朋友。
  • 沒有代碼,可以說您的論文是不可複制的,因此甚至不是科學。在這裡顯示代碼也是您的朋友。
  • 如果甚至在發布之前(例如在提交預印本之後)就編寫代碼,則可以儘早檢測到錯誤,從而從一開始就防止收回。再次,顯示代碼是您的朋友。
  • 如果您放了代碼但沒有有致命的缺陷,人們可以非常確信它是正確的,因為他們可以自己閱讀。但是,如果代碼未更新,唯一的邏輯結論是它可能存在缺陷,也可能沒有缺陷。沒有人會完全信任您的論文,因為他們沒有看到代碼。他們甚至可能認為您必須有缺陷,因為您為什麼不顯示代碼呢?顯示代碼可以防止所有這些情況。
  • 如果您使代碼可用,其他人可以根據您的代碼編寫自己的代碼 ,甚至可以使用您的代碼分析自己的數據直接編碼。然後顯示代碼是非常的好事,因為您不僅獲得出版物,還獲得了 citation

此外,有種驗證方式的方法。它們並不完美,但是可以幫助捕獲許多錯誤。通常,您應該在工作中保持謹慎和細緻的態度,以確保其中沒有太大的缺陷。您不應該僅僅等待您的學者發現就發布帶有無數掩埋“驚奇”的東西。因此,實際上,您的代碼完全不可能是錯誤的。因此,通過將其放在Github上,您的風險很小(很好,尾巴很長),但是您可以收穫很多。

我不明白代碼只能證明什麼。可以根據自己的優點陳述和分析算法或數學公式。正確實現該算法的代碼無法揭示該算法不能揭示的任何內容,而錯誤實現該算法的代碼也不能使該算法無效。
@WGroleau就是一個例子:在[最近的一篇論文](https://arxiv.org/abs/1706.06630)中,我和我的合著者證明了某些幾何優化問題的數值邊界。我們使用一種算法開發了計算機輔助證明方案,該算法產生了經過嚴格認證為正確的數值範圍。我們的論文描述了實際上任何人都可以實現的算法,但是實際上,它花了我們幾個月的時間和非凡的編程專業知識來編寫代碼。我們將代碼放在github上,因此任何人都可以檢查它是否存在錯誤,並可以如廣告所示那樣工作。
...如果這是其他人的論文,卻無法訪問代碼,那麼我對作者證明他們所證明的內容的信心幾乎為零。至少在此特定的(純數學)上下文中,代碼確實是必不可少的,而且我非常懷疑,在許多其他上下文中,代碼確實是必不可少的。
@DanRomik並非大多數缺乏論文代碼的物理學論文都見例如http://www.org.ch.tum.de/glaser/94(GRAPE_JMR_05).pdf
也許是@TejasShetty-我不知道您所說的話是否正確(您鏈接的論文中描述的算法看起來可以在幾行Matlab代碼中實現,因此,我幾乎不認為這是一個很好的例子,在這裡談論)。無論如何,假設這是真的,您的意思到底是什麼?
@DanRomik我要說的是,鑑於[GRAPE JMR](http://www.org.ch.tum.de/glaser/94(GRAPE_JMR_05).pdf)不提供對其代碼的訪問權限,您仍然可以零信任嗎?
我不認為@DanRomik可以在幾行(約20條)中實現,例如python的示例,請參見[QuTiP的代碼](https://github.com/qutip/qutip/blob/master/qutip/control/grape.py)。我不認為python代碼與MATLAB代碼的長度會有任何顯著差異。
user295106
2020-02-04 14:01:41 UTC
view on stackexchange narkive permalink

我對您的領域了解不多。在計算機科學(例如機器學習)中,我認為沒有人能確保代碼100%正確。

以我的觀點,我認為研究中最重要的兩件事是(1)想法和(2)陳述。一旦您可以將自己的想法清楚地傳達給聽眾,我認為那是一篇很好的文章,它有自己的價值。因此,該論文不應該撤回。

但是,我們需要在提交之前盡力確保所有報告的結果都是正確的(據您所知)。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...