과학 컴퓨팅 (및 오늘날 많은 다른 분야)의 학술 논문은 일반적으로 해당 논문을 위해 특별히 작성되었거나 논문의 결과를 얻는 데 사용 된 일부 코드 또는 전체 소프트웨어 패키지를 포함합니다. 논문 독자가 코드에 액세스하도록 돕는 가장 좋은 방법은 무엇입니까? 내 현재 접근 방식은 논문 또는 인용에 Github 저장소 (특정 버전 태그와 함께)에 대한 링크를 넣는 것입니다.
과학 컴퓨팅 (및 오늘날 많은 다른 분야)의 학술 논문은 일반적으로 해당 논문을 위해 특별히 작성되었거나 논문의 결과를 얻는 데 사용 된 일부 코드 또는 전체 소프트웨어 패키지를 포함합니다. 논문 독자가 코드에 액세스하도록 돕는 가장 좋은 방법은 무엇입니까? 내 현재 접근 방식은 논문 또는 인용에 Github 저장소 (특정 버전 태그와 함께)에 대한 링크를 넣는 것입니다.
답변:
글쎄, 몇 가지 옵션이 있다고 생각합니다.
그러나 이러한 경우에 모두 소싱을 명확하게 표시하고 라이센스 종류 (GPL, Creative Commons 등)를 표시하여 IP 관련 문제가 발생하지 않도록해야합니다.
훌륭한 질문과 큰 답변이지만, 목표 자체가 출판 자체에 부여 된 동일한 표준을 달성하는 것이라면 지속성 문제를 적절하게 다루는 사람은 없다고 생각합니다. ( 코드가 여전히 실행될 가능성은 어리석은 일이지만 적어도 발행물만큼이나 유용 할 수는 있습니다).
대학 웹 사이트는 호스팅 된 콘텐츠를 보존하기 위해 안정성이나 중복성을 제공하지 않을 것입니다. 인용하기가 더 어려우며 일반적으로 컴퓨터에서 읽을 수있는 메타 데이터가 없습니다.
불행히도 저널이 보충 자료를 유지 관리하는 데 훨씬 나아지지 않은 것으로 보이며 ( Anderson et al. 2006 참조 ), 필요한 형식을 받아들이지 않거나 보충 자료를 전혀 받아들이지 않을 수도 있습니다 ( 하나의 주목할만한 예 참조 ).
이러한 이유로 데이터의 장기 보관에 관심이있는 사람들 은 만장일치로 웹 사이트 나 보충 자료가 아닌 전용 리포지토리의 사용을 옹호하는 방향으로 향하고 있으며 많은 저널 이이 관행을 의무화하고 있습니다 . 코드가이 표준을 준수한다는 것은 공정한 것 같습니다.
Github 및 관련 사이트는 아직 대학 도서관 및 기존 출판사에 의해 달성 된 100 년 규모의 장수를 증명하지 못했습니다. 광범위한 배포를 촉진함으로써 스택 교환에 대해 언급 할 수없는 한 동료를 포함하여 다른 사람들이 의견에 에코 한 솔루션을 제공 할 수 있습니다.
... 우리가 남은 것을 저장합시다 : 공공의 눈으로부터 그것들을 차단하고 그것들을 시간 낭비에 위탁하는 데 사용하는 금고와 자물쇠가 아니라 사고의 범위를 넘어서게하는 복사의 곱셈에 의해.
— 토머스 제퍼슨, 1791 년 2 월 18 일
내가 아는 유일한 아카이브 표준은 figshare입니다 . 이것은 전체 코드 리포지토리 (현재 "파일 세트"로 수용 할 수 있지만 곧 "코드"유형으로 나열 될 수있는 옵션을 갖게 될 것입니다)입니다. 그림 공유의 핵심은 프로그래밍 방식의 메타 데이터가있는 인용 가능한 DOI뿐만 아니라 CLOCKSS 보관 서비스 의 지원 으로 모든 콘텐츠의 사본을 전 세계적으로 지리적으로 지리적으로 분산 된 12 개의 노드에 유지합니다. figshare가 중단되거나 존재하지 않으면 CLOCKSS에서 모든 컨텐츠를 자유롭게 사용할 수 있습니다.
결과적으로 코드 배포에 Github을 사용하는 것이 좋으며 게시 시점에 figshare에 보관 사본을 제공하는 것이 좋습니다.
멋진 pdf 기술을 사용하여 코드를 pdf에 간단하게 첨부 할 수 있습니다 (즉, 코드 파일은 pdf에 포함되어 있으며 pdf의 일부 단추를 클릭하여 "다운로드"할 수 있습니다). 이것은으로 수행 할 수 있습니다 attachfile의 예를 들어, 패키지. 물론, 이것은 preprints와 함께 작동하지만 (arxiv에서 이미 작동하는지는 모르겠지만) 저널 파일에 문제가있을 수 있습니다 ...
특정 연구 프로젝트에 특화된 작은 스크립트의 경우 논문의 "보충 정보"와 같이 저널의 웹 사이트가 가장 좋습니다. 그곳에서 기사를 읽는 사람이 가장 쉽게 찾을 수 있습니다.
다른 프로젝트에도 관심이있는보다 실질적인 패키지는 별도로 게시하는 것이 좋습니다. 불행히도 현재로서는 좋은 해결책이 없습니다. 이상적으로, 코드 발행물은 종이처럼 DOI를 통해 영구적으로 액세스 할 수 있지만 DOI를 배포하고 그 영속성을 보장하는 호스팅 사이트는 알지 못합니다. Github 또는 Bitbucket과 같은 공개 리포지토리가 아마도 가장 좋은 방법 일 것입니다.
가장 좋은 해결책은 코드와 함께 제공되는 종이와 함께 제공되는 종이를 게시하는 것이지만 아직 기술적으로는 불가능합니다. 이 아이디어를 탐구하는 연구 프로토 타입을 연구 중 입니다. 자세한 내용 은 이 사이트 를 참조하십시오.
대학 변경이 곧 이루어질 것으로 예상되어 대학의 URL이 가장 안정적이지 않기 때문에 두 가지 전술을 택했습니다.
코드가 상대적으로 짧을 때 논문과 코드를 거의 같은 위치에 유지하는 적절한 작업을 수행한다는 가정하에 저널 자체에 보충 부록으로 포함시켜 보았습니다. 이것은 특히 일반적인 관심이없는 코드에 특히 유용합니다. 문맥을 제공하기 위해 문제의 논문이 없으면 다소 쓸모없는 코드입니다.
그러나 소스 코드, 실제 소프트웨어 및보다 복잡한 프로젝트 또는 일반적인 관심사를 위해 GitHub 리포지토리에 연결하는 전술을 따르고 있습니다.
http://www.runmycode.org 를 보십시오 . 그들은 연구 논문과 관련된 코드를위한 동반자 사이트를 호스트합니다. 코드가 R, Matlab 또는 다른 코드 인 경우 실제로 코드가 실행됩니다. 아직 시도하지는 않았지만 그럴 생각입니다. David Donoho와 그의 공동 작업자가이를 사용한다고 생각합니다.
대학 도서관은이 곳이나 대학의 호스팅 센터가 될 수 있습니다.
독자로서, 논문에 저자에게 직접 연락하여 코드를 얻을 수 있다는 효과에 대한 진술이 효과적입니다. 저자는 공동 작업을 촉진하고 사람들이 작업에 코드를 사용하는 경우 내 기사를 인용하도록 상기시킬 수 있습니다.