Makalah ilmiah dalam komputasi ilmiah (dan banyak bidang lain, saat ini) biasanya melibatkan sejumlah kode atau bahkan seluruh paket perangkat lunak yang ditulis khusus untuk makalah itu atau digunakan untuk mendapatkan hasil dalam makalah tersebut. Apa cara terbaik untuk membantu pembaca makalah mengakses kode? Pendekatan saya saat ini adalah meletakkan tautan ke repositori Github (bersama dengan tag versi tertentu) di kertas atau dalam kutipan.
publications
David Ketcheson
sumber
sumber
Jawaban:
Saya pikir Anda punya beberapa pilihan.
Namun, dalam salah satu atau semua kasus ini, Anda harus menunjukkan sumber dengan jelas dalam artikel, dan menunjukkan jenis lisensi seperti apa (GPL, Creative Commons, dll.), Sehingga tidak ada masalah terkait IP di telepon.
sumber
Pertanyaan yang bagus dan balasan yang bagus, tetapi saya rasa tidak ada yang menjawab pertanyaan tentang kegigihan secara memadai, jika tujuannya adalah untuk mencapai standar yang sama dengan publikasi itu sendiri. (Yang mungkin konyol mengingat peluang kode masih berjalan , tetapi mungkin masih setidaknya sama bermanfaatnya dengan publikasi semua sama).
Suplemen jurnal situs web universitas tidak persisten
Situs web Universitas tidak mungkin memberikan stabilitas atau redundansi untuk mempertahankan konten yang dihosting. Konten lebih sulit dikutip dan biasanya tidak memiliki metadata yang dapat dibaca mesin.
Sayangnya nampak bahwa jurnal tidak melakukan jauh lebih baik dalam mempertahankan bahan tambahan mereka (lihat Anderson et al. 2006 ), dan mungkin tidak menerima format yang diperlukan, atau bahkan menerima materi tambahan sama sekali (lihat satu contoh penting ).
Karena alasan ini, orang-orang yang peduli dengan pengarsipan data jangka panjang telah dengan suara bulat beralih ke advokasi untuk penggunaan repositori khusus daripada situs web atau bahan tambahan, dan banyak jurnal sekarang mengamanatkan praktik ini . Tampaknya adil jika kode dipegang oleh standar ini.
Solusi banyak salinan?
Github dan situs terkait belum membuktikan umur panjang selama skala 100 tahun yang dicapai oleh perpustakaan universitas dan penerbit yang sudah mapan. Dengan memfasilitasi distribusi yang luas, ini mungkin memberikan solusi yang orang lain gema di komentar, termasuk satu orang yang tidak bisa mengomentari stackexchange,
Figshare & standar CLOCKSS
Satu-satunya standar kearsipan yang saya ketahui adalah figshare , yang dapat menerima repositori kode lengkap (sebagai "filesets" untuk saat ini, tetapi saya yakin akan segera memiliki opsi untuk dicantumkan sebagai tipe "kode"). Bagian penting dari figshare bukan hanya DOI yang dapat dicita-citakan dengan metadata terprogram, tetapi juga didukung oleh layanan arsip CLOCKSS , yang menyimpan salinan semua kontennya di 12 simpul geografis dan geografis yang didistribusikan secara geografis di seluruh dunia. Jika figshare keluar dari bisnis atau tidak ada lagi, ini akan memicu semua kontennya tersedia secara bebas dari CLOCKSS.
Karenanya, saya sarankan menggunakan Github untuk distribusi kode, tetapi juga menyediakan salinan arsip ke figshare pada saat publikasi.
sumber
Anda dapat menggunakan beberapa teknik pdf mewah untuk cukup melampirkan kode ke pdf (yaitu, file kode disematkan ke pdf dan dapat "diunduh" dengan klik pada beberapa tombol di pdf). Ini dapat dilakukan dengan paket attachfile , misalnya. Tentu saja, ini bekerja dengan preprints (walaupun saya tidak tahu apakah itu sudah bekerja dengan arxiv) tetapi Anda mungkin mendapatkan masalah dengan file jurnal ...
sumber
Untuk skrip kecil yang khusus untuk proyek penelitian tertentu, tempat terbaik untuk publikasi adalah situs Web jurnal, sebagai "informasi tambahan" untuk kertas. Di situlah cara termudah untuk menemukan seseorang yang membaca artikel.
Paket yang lebih substansial yang menarik bagi proyek lain juga sebaiknya diterbitkan secara terpisah. Sayangnya tidak ada solusi yang benar-benar bagus saat ini. Idealnya, publikasi kode dapat diakses secara permanen melalui DOI, seperti kertas, tetapi saya tidak mengetahui adanya situs hosting yang membagikan DOI dan menjamin keabadiannya. Repositori publik seperti Github atau Bitbucket mungkin merupakan taruhan terbaik untuk saat ini.
Solusi terbaik adalah dengan menerbitkan kertas yang dikemas dengan kode dan data yang menyertainya, tetapi itu belum layak secara teknis. Saya sedang mengerjakan prototipe penelitian yang mengeksplorasi ide ini, lihat situs ini untuk detailnya.
sumber
Saya telah mengambil dua taktik, lahir dari kenyataan bahwa saya mengantisipasi perubahan institusi segera, jadi URL universitas saya tidak stabil sedikit pun.
Ketika kode ini relatif pendek, saya sudah mencoba memasukkannya sebagai lampiran tambahan dalam jurnal itu sendiri, dengan asumsi bahwa mereka mungkin akan melakukan pekerjaan yang layak menjaga kertas dan kode di tempat yang kira-kira sama. Ini sangat berguna untuk kode di mana tidak ada banyak minat umum - kode yang agak tidak berguna tanpa kertas yang bersangkutan untuk memberikan konteks.
Tetapi untuk kode sumber, perangkat lunak aktual, dan proyek yang lebih rumit atau yang menjadi perhatian umum, saya telah mengikuti taktik Anda untuk menautkan ke repositori GitHub, yang setidaknya harus stabil untuk umur produktif rata-rata kertas saya.
sumber
Lihatlah http://www.runmycode.org . Mereka meng-host situs pendamping untuk kode yang terkait dengan makalah penelitian. Jika kodenya adalah R, Matlab, atau beberapa lainnya, kode itu benar-benar akan menjalankannya untuk Anda. Saya belum mencobanya, tetapi saya bermaksud. Saya pikir David Donoho dan rekan-rekannya menggunakannya.
sumber
Perpustakaan universitas dapat menjadi tempat untuk ini atau pusat hosting universitas.
sumber
Sebagai pembaca, pernyataan dalam makalah yang menyatakan bahwa kode dapat diperoleh dengan menghubungi penulis secara langsung akan efektif. Sebagai seorang penulis, ini dapat membantu mendorong kolaborasi, dan memberi saya kesempatan untuk mengingatkan orang lain untuk mengutip artikel saya jika mereka menggunakan kode dalam pekerjaan mereka.
sumber