我剛收到一份提交給Elsevier期刊的手稿的決定信。這是一次修訂,然後重新提交。但是,其中一位審閱者要求提供可執行文件以檢查我的結果。 (我對他的評論感到不信任。)
這是一篇有關計算機科學論文的文章,該論文針對文獻中的一組實例測試算法的效率。我將算法的結果與其他作者的結果進行了比較。
我剛收到一份提交給Elsevier期刊的手稿的決定信。這是一次修訂,然後重新提交。但是,其中一位審閱者要求提供可執行文件以檢查我的結果。 (我對他的評論感到不信任。)
這是一篇有關計算機科學論文的文章,該論文針對文獻中的一組實例測試算法的效率。我將算法的結果與其他作者的結果進行了比較。
我不知道這是否正常,但對於所有審稿人來說,做出合理的努力以驗證作者的主張正確無誤是正常的,因此,在一定程度上,這是不正常的,我只能稱讚審稿人願意付出其他審稿人沒有做出的努力。您認為“不信任”是審稿人的工作,或多或少(而且說審稿人的工作是不信任作者的主張,這可能有些準確,所以我看不到被作者信任的想法。評論者,以免感到羞恥或冒犯。
順便說一句,對於作者來說,提供複製和驗證結果所需的任何軟件(只要有可能,包括源代碼)也是正常的。因此,如果您不滿意審稿人提出的令人討厭的請求,這些請求會延遲您在紙上做出的決定,那麼下次您可以通過釋放源代碼(或至少將其提交給期刊)來避免此類問題。我相信審稿人會更加快樂,最終所有人都將從中受益,包括您在內。
我來自另一個領域,在這個領域中,我們使用的代碼不是主要輸出。但是,如果裁判要求提供代碼,我們將很樂意提供。我們的大部分工作都是在python中完成的,因此可執行文件將不再常見,而源文件也會(對於matlab也是如此)。 > executable ,而不是 source 。
請不要因為某些原因而被請求冒犯:信任您不是審稿人的工作;檢查您的論文是他們的工作。如果審閱者對您的工作有足夠的興趣要運行您的代碼,那麼他們並不會立即將您的論文解僱。
用數據總結情況:-
1)您在紙上/ Matlab /其他方面想出了一種算法。
2)您在某些編程中實現了該算法
3),您構建了一組測試數據以執行算法,並從理論上得出了一些結果。
4)您進行了測試通過代碼進行數據處理,並得出一些實際的結果。
在此過程中,您的方法可能會出現問題。您的代碼可能無法正確反映您的算法。您的測試數據可能是從代碼向後處理的,而不是從算法開始處理的。您的算法測試數據和代碼測試數據可能不相同。
除非審閱者俱有算法和源代碼和 和的所有測試數據,它們都無法驗證您的工作是否正確以及您的結論是否有效。這沒有爭議-如果他們想適當地審查您的工作,從邏輯上講是不可能的。
我個人受到這種情況的影響,當時我的公司從研究人員那裡購買了一些控制理論IP。他撰寫了有關該方法的工作原理以及其背後的理論的論文,然後他構建了一些電子器件來實現他的理論。他的論文涵蓋了這一理論,還包括電子原理圖。當我閱讀本文以弄清楚如何在軟件中實現他的理論時,我發現原理圖中有一個額外的過濾器。事實證明,此過濾器的作用對於系統的穩定甚至有效至關重要,但是在他的工作中的任何地方都沒有記錄。直到我們和他打個電話,我們才知道濾波器的目的是什麼,以及我們應該如何調整濾波器。
這是一篇論文,從理論上講,它在出版時已經受到同行的審查。顯然,它尚未得到同行的充分審查!他的結果表明,在相同數據的情況下,實現輸出與理論預期輸出非常接近,並且濾波器的效果在響應中的位置不同。儘管如此,如果沒有這個過濾器,實現將永遠無法正常工作,並且在理論模型中包含這個過濾器也不是很難。他甚至可能說過“由於這些原因而需要此過濾器,但由於這些原因,在我們正在尋找的響應區域中,可以忽略該過濾器”,而他將被涵蓋。不能接受的是他所做的事情,這根本就不提了,因為最終結果是試圖實現他的工作的人將無法做到。
就像我說的那樣,他仍然發表他的論文,當時沒有人抱怨。不過,他的原始審稿人應該已經發現了它。在您的情況下,您的審稿人應該尋找這樣的差異-這是同行評審的全部要點。因此,如果人們要您提供您尚未提供的功能,則(a)這是他們正在徹底檢查的好兆頭,並且(b)您應該首先將其提供為最佳做法。
工件提交是CS中的一件事情。我所看到的是,您將準備一個虛擬機,其中已經安裝了軟件並可以進行實驗。因此,審稿人可能是指該期刊有一些官方的人工製品提交程序。另外,有些作者只是通過github之類的服務來提供其工具和基準的源代碼,而審閱者可能建議您也這樣做。關於不信任,計算人員自然會對基準和工具比較保持警惕,因為最終數字可能很大程度上取決於實驗的設置方式(例如,如果將自己與現有算法的實現進行比較,是否正確實現了它? )。也可能是您在論文中給出的數字看起來有些奇怪,但隨後審閱者會指出對他們而言到底是什麼不合適。
提交可執行文件與提交源代碼不同。可執行文件實際上並沒有給收件人任何訪問您原始代碼的權限(當然,計算機科學專業的學生應該已經知道)。我認為此請求沒有問題。
考慮到我在開放源代碼社區的個人經驗,並假設本文包含了整個算法,然後發送源代碼或所述軟件的相關編譯不會產生很多負面影響。
這將使審稿人可以驗證論文作者的結果和主張。審閱者可能要尋找的關鍵問題是您在源代碼中正確實現了算法,並且沒有錯誤地依賴於編程語言,OS或硬件的功能來聲明其運行時間或其他功能。
我想說的是,在I / O受限的情況下,它易於出錯的高效算法,例如Javascript能夠使幾乎每個函數調用異步的能力。當然,這主要是在I / O綁定操作中看到的,而不是擴散性的計算循環。那麼測得的效率不是作為形式證明的算法,而是;相反,它依賴於特定於語言的功能。
重點是,在很多情況下,形式算法和實現可以忠實地表示彼此,因此,如果基於經驗指標(例如運行時間),結論可以運行在許多問題上,不正確的實施可以證明錯誤的結論。
源代碼可能會有錯誤,並且要真正有效地審查算法,僅對方法進行散文描述可能就不夠了。分享文本之外的內容是有益的;帶有實際源代碼(+示例輸入)的優質論文是可重複性的黃金標準。
一個有趣的皺紋:根據您的審閱者所在的位置,可能不允許您這麼做給他們一個二進製文件。例如,某些代碼使用在學術界免費許可的專有庫,但是工業界人士可能需要單獨的許可才能使用現有的二進製文件,而編譯起來要少得多。 (這一次發生在我身上,儘管不是同行評審的一部分)
這是他的愚蠢請求。
他應該索要源代碼,這就是您應該同意的全部給他。