맞춤형 소프트웨어를 언급 한 논문이 소스 코드를 공개하지 않는 이유는 무엇입니까? [닫은]


69

연구 논문에 언급 된 소프트웨어의 소스 코드가 공개되지 않은 이유가 있습니까? 연구 논문은 구현 세부 사항보다 무언가를 달성하려는 일반적인 아이디어에 관한 것이지만 코드를 발표하지 않는 이유는 알 수 없습니다.

예를 들어이 백서 는 다음과 같이 끝납니다.

결과

휴먼 라인 드로잉 시스템은 OpenGL을 사용하는 C ++의 Qt 프레임 워크를 통해 구현되며 추가 하드웨어 지원없이 2.00GHz Intel 듀얼 코어 프로세서 워크 스테이션에서 실행됩니다. 시스템이 새로운 경로와 텍스처를 합성하는 동안 대화식으로 선을 그릴 수 있습니다.

소스 코드로 수익을 창출하려고하거나 저작권 때문에 소스 코드를 의도적으로 닫은 상태로 유지합니까?


42
같은 이유로 대부분의 논문에는 원시 데이터가 없습니다 (통계적으로 왜곡 된 "결과"만 게시).
SK-logic

2
질문을 편집했습니다. 아마도 "멘션"이 가장 좋은 단어는 아닙니다. 어떤 경우에는 논문에서 지적한 사항 중 일부가 소프트웨어에 결정적으로 의존하지만 소프트웨어는 기발한 것입니다. 마찬가지로, 용지의 유효성을 올바르게 평가하려면 누군가 소프트웨어를 실행할 수 있어야합니다.
Kaz

7
@JohnL 나는 종이는 매우하지 않고 소프트웨어에 따라 달라질 수 있습니다 말하고 싶지만 대해 소프트웨어. 소프트웨어 툴을 사용하여 시연 / 발견 된 세계의 흥미로운 속성처럼. 도구를 검토 할 수없는 경우 결론이 올바른지 어떻게 알 수 있습니까? (또는 도구를 볼 수 있다면 검증하기가 훨씬 쉬워집니다!)
Andres F.

4
@Andres F-한 가지 가능성은 종이에 설명 된 아이디어를 사용하여 자신의 소프트웨어 버전을 구현하는 것입니다. 이것은 더 많은 작업이지만, 더 많은 가치를 지니고 있습니다. 동일한 구현을 다시 실행하면 하나의 구현 만 다시 보여줍니다. 새로운 구현은 아이디어 자체가 유효하고 일부 구현 세부 사항의 우연이 아니라는 것을 보여줍니다. 다시 구현하는 동안 이전에 알지 못했거나 설명되지 않은 중요한 문제가 발견 될 수 있습니다.
Steve314

3
@KonradRudolph는 물론 항상 사용 가능한 것은 아닙니다 . 출판 이후 2 년 동안 이용이 불가 할 수도 있습니다 (테이프 삭제 및 재사용, 전체 그룹 해체, 종이 파쇄 등)
SK-logic

답변:


71

몇 가지 이유가 떠 오릅니다.

  • 코드가 기사에 비해 너무 큽니다. 짧은 기간 동안 흥미로운 프로젝트는 프로젝트를 설명하는 논문과 함께 출판 될 정도로 짧았습니다. 이것은 여전히 ​​일어날 수 있지만, 충분히 큰 규모의 흥미로운 프로젝트는이를 설명하는 논문과 함께 출판하기에는 너무 커졌습니다.
  • 공개 호스트는 무료이거나 내구성이 없습니다. 최근까지는 저렴하고 내구성이 뛰어나고 액세스하기 쉬운 공개 호스트를 사용할 수 없었습니다.
  • 논문을 출판하는 것이 프로젝트를 출판하는 것보다 쉽습니다. 어떤 사람들은 종이나 프로젝트를 출판 할 시간이 있지만 둘다는 아닙니다.
  • 인센티브는 역할과 관련이 있습니다. 몇 년 전에 나는 동료에게 제품 개발 및 특허에 대해 물었고 거기에있는 대부분의 사람들이 서로 거의 비슷한 일을했다고 말했다. 논문 작성자 (학계 생각) 및 오픈 소스 개발자와 마찬가지로 보상은 하나의 작업 제품 또는 다른 제품에 맞춰 조정됩니다.
  • 자기 동기 부여. 아이디어를 설명하거나 코드를 구현하려는 욕구가 항상 같은 사람에게 동일한 부분으로 존재하는 것은 아닙니다. 많은 교수님들은 그들이 코드를 많이 작성하지 않았거나 유창하게 코드를 작성하는 데 몇 년이 걸리지 않았다는 것을 공개적으로 인정했습니다. 마찬가지로 많은 개발자는 코드에 주석을 작성하거나 소스 제어에 전념 할 때가 거의 없습니다.
  • 프로젝트 호스팅 및 작업 제품의 내구성 도 문제입니다. 몇 년 후에 사라질 수있는 어딘가에 연결을 원하는 사람은 종이의 가치를 떨어 뜨립니다.
  • 전통. 출판사는 논문을 검토하고 출판하는 데 중점을두고 있지만 프로젝트에 대해 동일한 평가를 수행 할 준비가되어 있지 않을 수도 있습니다.
    또한 재현 가능한 수준에 대한 전통적인 견해는 분야마다 다릅니다. 새로운 합성 방법에 관한 논문을 발표 한 화학자는 다른 화학자가 합성을 수행 할 수있을 정도로 상세하게 기록 할 것으로 예상됩니다. 그녀는 educts와 제품을 저널로 배송하지 않을 것으로 예상됩니다. 논문을 사용 / 재생하고자하는 독자는 자신의 educt를 구입하고 자신의 실험실에서 직접 합성을 수행해야합니다 (실제로 수행되는 방법을 알아보기 위해 실험실을 방문하도록 요청할 수도 있음). 생물학자는 그의 새로운 형질 전환 생쥐를 종이에 부착시킬 것으로 기대하지 않았다. 재현성에 대한 이러한 관점은 예를 들어 실제 구현을 제공하는 것과 반대로 알고리즘에 대한 (의사 코드) 설명을 제공하는 것에 해당한다.
  • 알몸의 코드는 충격적 일 수 있습니다 . 코드 검사, 코드 검토 및 품질을 보장하는 프로젝트보다 용지 길이 문서를 교정하는 데 훨씬 덜 연마됩니다. 나는 당신에게 보여주는 것보다 더 편안하게 말할 수있는 많은 코드를 가지고 있습니다. 다행스럽게도 우리 모두가 아름다운 코드를 작성하는 시점으로 나아가고 있지만 코드가 거의 돌진하거나 거의 작동하지 않으면 실행 파일이나 소스를 공유하지 않는 것이 더 편할 것입니다.
  • 비공개 소스. 모든 사람이 오픈 소스를 받아 들인 것은 아닙니다. 많은 사람들이 프로젝트를 대중에게 노출함으로써 이익을 얻을 수있는 DoD, 상업용 프로젝트 또는 민간 자금 지원 프로젝트에 대한 논문을 많이 쓰고 있지만 여전히 영업 비밀이 있거나 코드를 공개적으로 소싱하여 시장에서 우위를 점할 수있는 이점이 있습니다. 다른 작업 제품.
  • 이 코드를 기반으로 추가 작업을 게시하십시오. 코드가 게시되지 않으면 작성자에게 후속 작업을 게시하는 데 유리할 수 있습니다. 다른 경쟁 연구자들은 귀중한 시간이 걸리는 작업을 다시 구현해야 할 수도 있습니다.

27
논문이 소스 코드에 의존하는 경우 출판해서는 안됩니다. 코드를 게시 할 수 없으면 논문을 게시 할 수 없습니다. "우리의 프로그램은 이러한 훌륭한 일을한다"는 논문은 해당 프로그램을 실행하지 않으면 논문을 평가할 수 없으며, 그 논문은 일부 소프트웨어에 대한 광고 브로슈어가됩니다.
Kaz

3
Kaz와의 완전한 동의-연구를 동료 검토하려면 사용할 수없는 데이터 (코드, 코드 등)가 필요하면 동료 검토 저널에서 수락해서는 안됩니다. DeveloperDon이 언급 한 거의 모든 주장은 데이터 릴리스에서도 마찬가지입니다. 그러나 최근 몇 년 동안 데이터에 대한 움직임이 상당히 커졌습니다.
Joe

3
좋은 소식. 또한 때때로 별도의 과학자들이 스스로 소프트웨어를 재생성하는 것이 실험의 반복성의 일부라고 덧붙입니다. 한 사람이 코딩 한 방식으로 만 작동하지만 다른 사람이 코딩하는 방식으로 작동하지 않으면 결과를 의심 할 수 있으며 오류를 식별 할 수 있습니다.
Jimbo Jonny

4
마지막으로 두 번째로 강하다
l --''''''--------- '' '' '' '' '' '' ''20:07의

4
@AndresF. 코드는 종이에서 가장 중요한 것입니다. 논문은 "내가 한 일이다; 여기 내 방법이있다; 여기 내 결과가있다". 이 코드는이 방법의 체계화이며 정확히 동일한 결과를 생성해야합니다. 종이의 결과를 재현하지만 종이의 코드를 사용하려면 아무 것도 재생하지 않은 것입니다. 당신이 해야 할 일은 메소드 섹션을 읽고 자신의 구현을 찾은 다음 결과를 재현 할 수 없을 때 그것에 대한 논문을 작성하는 것입니다.
Tacroy

40

Randall LeVeque의 "코드를 공유하지 않는 10 가지 이유 (그리고 어쨌든해야하는 이유)"에 대한 프레젠테이션을 읽으십시오. http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

그는 코드가 수학의 증명과 유사하다고 강력하게 주장하며, 너무 길거나, 못 생겼거나, 엣지 케이스에서 작동하지 않거나 가치가있을 수 있기 때문에 증명이 게시되지 않은 세계를 고려하도록 우리를 초대합니다 돈, 또는 누군가가 그것을 훔칠 수 있습니다 ...

기본적으로 과학을 수행하는 경우 코드를 게시해야합니다. 그렇지 않으면, 당신은 연금술을하고 있으며, 내가 걱정하는 한 어둠의 시대로 돌아가고 역병으로 죽을 수 있습니다.


7
+1 훌륭한 프리젠 테이션. 나는 :) 변화를 추진 사람들이 기뻐가있어
안드레스 F.

+1 링크 주셔서 감사합니다. 코드의 일부를 공개 소스로 공개하는 것과 관련하여 상사와 진행중인 협상에서 도움이 될 수 있습니다.
Frank

단어까지! 좋은 비유는 나에게서 투표를받을 자격이 있습니다.
nullpotent

이 비교가 여기의 목적에 실제로 좋은지 잘 모르겠습니다. 나는 화학자 (더 많은 코드가 출판 된 것을 보았 음), 수학자는 아니지만 일반적으로 본 증거는 모든 작은 발걸음을 내딛지는 않습니다. 따라서 IMHO는 실제 소스 코드보다 알고리즘의 요약 된 의사 코드 설명에 해당합니다.
cbeleites

27

일반적으로 논문 결과를 작성하는 데 사용되는 프로그램은 도구 일 뿐이며 결과 만 중요합니다. 따라서 그것들은 맥락, 방법론, 결과 및 그들에 대한 토론을 제시하는 논문에 배치되지 않습니다.

그러나 결과는 재현 할 수 있어야합니다. 그리고, 논문의 기반이되는 데이터 소스가 공개적으로 이용 가능할 때, 그것들을 결과로 변환하는 프로그램도 일반적으로 요구됩니다. 특허 / 저작권 문제가 발생하지 않는 경우 웹의 "어딘가에"배치되는 경우가 많습니다. 또는 최소한 요청하면 저자가 프로그램을 보내야합니다.


2
귀중한 코드를 요구하는 사람을 보내야한다고 생각하지 않습니다 ... IMHO이 답변은 잘못되었습니다. 그러나 나는 정보가 자유로운 연구 세계를보고 싶다 ...
Dirk

3
@Dirk 내가 아는 한, 이것은 소프트웨어 경험적 연구에서 비교적 일반적입니다. 이 도메인에서 내 팀을 마지막으로 제출하지 않은 채 제출 한 검토 자 중 한 명이 명시 적으로 우리의 데이터 및 일부 코드에 대한 공개 액세스를 요청했습니다. 코드가 왜 그렇게 귀중한 지 이해가되지 않습니다. 그것은 일반적으로 논문에 기술 된 아이디어의 실현입니다. 프로그램을 게시하면 독자가 아이디어를 행동으로 올바르게 번역했는지 확인할 수 있습니다.
mgoeminne

1
흠, 그래서 (a) 검토자가 누구인지, (b) 귀하와 직접 경쟁 할 수있는 사람에게 귀하의 코드와 데이터를 제공합니까?
Dirk

1
실제로는 (a) 검토자가 익명으로 액세스 할 수있는 장소에 코드를 게시하도록 요청합니다 (또는 저널이 인증을 수행함). (b) 귀하의 논문이 출판되므로 다른 연구원은 동일한 방법론 / 도구를 프랜차이즈하여 사용할 수 있습니다 다른 데이터 세트 또는 동일한 데이터 세트에서 연구를 복제합니다. 복제는 원본보다 권위가 낮으며 작업을 인용하며 논문에 대한 강력한 검증을 제공합니다. 따라서 원작자들은 다른 사람들이이 모든 일을 할 수있게되어 기쁘다.
mgoeminne

@Paul 소스 코드 게시와의 연결이 보이지 않습니다. 어쨌든 훌륭한 편집자는 검토자가 자신의 결정을 정당화하기 위해 작성한 메모에주의를 기울입니다. 따라서 "It 's bullshit"과 같은 언급은 고려되지 않습니다. 편집자가 검토 자의 명령이 적절하지 않다고 판단하면 다른 전문가의 의견을 묻습니다. 대학원생은 검토 과정에 참여하지 않습니다. 그리고 몇 년 동안 제출 한 후에도 논문을 수락 할 수없는 경우이 논문 (또는 그 내용)이 좋지 않다는 것을 상상해야합니다.
mgoeminne

14

비공개 소스가 아닙니다. 소프트웨어는 전혀 공개되지 않았습니다.

짧은 답변:

소프트웨어를 게시하지 않는 데는 몇 가지 이유가 있지만 폐쇄 소스 방식으로 소프트웨어를 게시하는 경우는 드 common니다.

긴 대답 :

닫힌 소스는 소프트웨어 가 게시되었지만 소스 코드 가 게시 되지 않았 음을 의미합니다. 그러나 일반적인 경우는 소프트웨어 나 소스 코드가 공개되지 않은 것 입니다.

저의 경험 (저는 대기 과학 분야에서 일하고 있습니다)에서 저자는 연락을 취하고 연구를 위해 소프트웨어 (소스 코드 포함)를 구할 수 있는지 묻습니다. 내가 근거한 프로젝트로 논문을 쓰려고한다면 적어도 논문에서 인용을 얻을 것이지만 (좋아요!) 아마도 공동 저자 논문을 얻을 것입니다. 다른 사람의 도움없이 소프트웨어를 사용할 수 있도록 소프트웨어를 문서화하십시오. 상대적으로 저렴한 공동 저자 논문이므로 더 좋습니다 .

진짜 질문은 :

소프트웨어를 공개하지 않는 이유는 무엇입니까?

이에 대한 몇 가지 이유가 있습니다.

  • 게시 된 소프트웨어에는 설명서가 필요합니다. 일반적으로 사람들은 문서 작성을 좋아하지 않습니다.
  • 게시 된 소프트웨어는 사용자를 끌어들일 수 있습니다. 사용자에게 질문이있을 수 있습니다. 시간이 걸립니다 (위 참조).
  • 게시 된 소프트웨어는 사소한 유지 관리가 필요할 수 있습니다.
  • 게시 소프트웨어는 호스팅이 필요합니다.

목록이 더 길어질 수 있습니다. 여기가 아닌 Academia.SE에서 별도의 질문이 필요합니다.

(내 그룹에서는 GPL에 따라 라이센스가 부여 된 소프트웨어를 게시합니다. )


코드를 게시 할 수도 있지만 수정이 허용되지 않는 라이센스에 따라 코드를 게시 할 수도 있습니다.
asmeurer

필자는 소프트웨어가 실제로 존재 함을 증명하기 위해 컴파일 된 버전 만 게시하는 상황에 대해서는 생각조차하지 않았다. 소프트웨어가 어떻게 구현되었는지를 이해하는 데 도움이되지 않기 때문이다. 암호!
alecail

8

냉소적으로 들릴지 모르지만 제 경험에 따르면 연구 논문은 이해하기 쉽고 재현하기 쉬운 것으로 작성되지 않았습니다. 대신에, 연구 커뮤니티에서 소리가 나고 과학적으로 보이는 기사를 갖는 것이 더 중요합니다. 이런 이유로 대부분의 저자는 코드를 수학 공식으로 변환하고 알고리즘이 수학적으로 올바른지 증명하려고합니다. 일반적으로 이러한 기사의 페이지 수는 제한되어 있으므로 코드를 게시 할 공간이 없습니다. 그러나 물론 이것은 작성자가 URL을 사용하여 전체 코드에 연결하는 것을 제한하지 않습니다 ...

코드가 공개되지 않으면 저자는 자신이 찾은 결과를 모방하거나 (개인적으로 생각하는 경우가 더 흔함) 사람들이 자신의 연구가 주장하는 것만 큼 훌륭하지 않다는 것을 알기를 두려워합니다. 종종 결과는 매우 제한된 수의 경우에만 적용됩니다.

또한 하나의 간단한 프로그램 / 알고리즘에서 여러 연구 논문이 분리 된 것으로 나타났습니다. 만약 코드가 출판된다면, 같은 주제에 대해 더 이상의 논문을 작성하는 것은 어려울 것입니다. 따라서 시간이 지남에 따라 작은 조각으로 게시하기 위해 지식이 유지됩니다.

대학에서는 중요한 결과 나 연구의 적용 가능성이 아니라 출판 한 논문의 수가 중요하다는 점을 항상 명심하십시오. 슬프지만 사실입니다.


13
이 말은 연구원들에게 물어보십시오! 때때로 그들은 당신에게 소스 코드를 제공 할 것입니다.
Lucina

3
나는 당신이 여기서 공평하다고 생각하지 않습니다. "연구 커뮤니티에서, 소리가 나고 과학적으로 보이는 기사를 갖는 것이 더 중요합니다." 이것은 기본 콘텐츠에 가치가 없다는 것을 암시합니다. 거의 과학적으로 보이기 때문에 이해할 수 없기 때문입니다. 당신이 출판 한 논문의 수는 아무도 그 내용에 관심이 없다면 거의 관련이 없습니다. 제 생각에는이 반응은 현실보다는 편견에 대해 말합니다.
temptar

2
@temptar 글쎄, 나는 약간 부정적으로 편향되어 있습니다. 실제로 저에게 가장 큰 충격은 대부분의 연구자들이 자신의 연구를 이해하기 쉬운 방식으로 기꺼이 설명하고자하지 않는다는 것입니다. 알고리즘을 설명해 준 후 교수가 생겼는데, "이 논문에서는 좀 더 과학적으로 들리게하기 위해 이것을 더 복잡하게 작성할 것"이라고 덧붙였다.
codingFriend1

6
@ codingFriend1-단일 경험을 기반으로 일반화 할 수 없으며 일반화해서는 안됩니다. 그것은 매우 비과학적인 접근법입니다. 연구 전문가의 대상 고객이 누구인지 고려해야하며, 대부분의 경우 필요하다고 생각하는 설명이 필요한 사람이 아닙니다. 이것은 우리가 비전문가에게 연결하기 위해 과학적인 커뮤니케이션을하는 것입니다.
temptar

3
codingFriend1의 답변을 지원합니다. 이것은 내가 살고있는 과학계, 특히 우리 대학 (미국에서 가장 좋은 대학)을 목표로하는 일반적인 비판이었다. "게시 또는 멸망". 내가 익숙하지 않은 지역의 과학자들도 이것을보고합니다. 미안하지만 많은 곳에서 슬프고 널리 퍼진 진실입니다.
Andres F.

7

수익 창출 의도와는 별도로 소스 코드를 연구 논문에서 제외시킬만한 이유는 없습니다. 어떤 방식으로, 형태 또는 형태로 소프트웨어에 의존하는 연구를 게시하기위한 규칙으로 소스 코드를 제공 할 것을 제안하는 작은 움직임이 시작됩니다. 자세한 내용은 과학 코드 선언문 이라고합니다 .


1
링크 +1! 그것은 과학과 연구가 무엇인지에 대한 나의 믿음을 완전히 구현합니다.
Andres F.

6

위의 답변은 컴퓨터 그래픽스 (저자에 의해 언급 된 논문이 출판 된 영역)에서 자주 발생하는 몇 가지 실질적인 이유를 놓치고 있습니다. 코드 릴리스는 CS의 필드마다 크게 다릅니다. 예를 들어 머신 러닝에서 코드는 일반적으로 게시됩니다. 휴먼 컴퓨터 상호 작용에서 코드는 거의 게시되지 않습니다.

나는 컴퓨터 그래픽 코드의 꽤 발표했다, 나는 저자가 생각 하는가 동안 해야 자신의 코드를 공개, 그들은 왜 많은 간단한, 비 음모 이론의 이유가 안가 . 예를 들어

1) 대부분의 컴퓨터 그래픽 연구 프로젝트는 종종 서로 다른 기관에있는 여러 연구원들 간의 협력을 포함하며, 각 연구자들은 각각 퍼즐, 조각, 알고리즘 등을 제공합니다. 작업 코드를 공개하려면 모든 연구원이 동의해야합니다. 이것은 간단한 토론이 아니며 일반적으로 문제를 피하는 것이 더 쉽습니다.

2) 단일 논문의 코드는 종종 실험실 내에서 개발중인 더 큰 코드베이스에 포함됩니다. 해당 코드베이스에는 게시되지 않은 다른 작업이 포함됩니다. 단일 프로젝트의 코드를 분리하는 것은 많은 작업이며, 종종이 작업을 수행해야하는 사람들에게 즉각적인 혜택이 없습니다 (아래의 인센티브 참조).

3) 대학은 종종 코드에 대한 IP 권한을 보유합니다. 그러므로, 당신의 인생을 끝없이 어렵게 만드는 "혁신 사무소"에 연락 할 필요가 있습니다. "발명"을 문서화하여 오픈 소스 전에 특허를받을 수 있도록해야합니다. 경우에 따라 대학은 출처 공개 허가를 거부 할 수도 있습니다 (기관에 따라 다르며 (1)에 의해 크게 복잡함)

4) 많은 컴퓨터 그래픽 연구는 회사에서 수행합니다. 이 경우 작성자는 코드를 소유하지 않으며 코드를 해제하려면 변호사의 허가를 받아야합니다. 변호사들은 예라고 말할 유인이 거의 없습니다.

5) 코드를 게시 할 인센티브가 없습니다. 대부분의 컴퓨터 그래픽 연구 코드는 다른 사람이 사용하지 않습니다. 그것이더라도, 범용 코드의 경우 일반적으로 CV 측면에서 무의미한 승인을 얻습니다. 운이 좋으면 인용을 얻을 수 있습니다. 고용위원회와 보조금 기관은 일반적으로 코드를 공개하더라도 1 비트를 신경 쓰지 않습니다. 따라서 릴리스를 위해 코드를 준비하는 데 소비 된 시간은 다른 용지에 소비 될 수있는 시간 낭비입니다. (컴퓨터 그래픽에서 이것을 변경하려는 사람들이 있습니다).

6) 코드를 게시 하지 않을 유인이 있습니다. 코드는 때때로 신생 기업으로 전환하거나 기존 기업에 라이센스를 부여 할 수 있습니다. 이는 미래의 연구에 자금을 제공합니다. 우리 모두 먹어야 해


# 2는 매우 중요합니다. 논문과 관련된 코드를 분리하는 것은 엄청난 양의 작업 일뿐만 아니라 일단 그렇게하면 문맥에서 벗어난 것을 발견 할 수 있습니다 (즉, 100 개의 다른 도구, 라이브러리 및 사용자 정의 설정에서 제외). 실험실), 본질적으로 무가치하고 이해하거나 사용하는 것은 불가능합니다. 또한 "연구 코드"는 종종 매우 취약하여 한 논문의 요점을 입증하고 강력한 소프트웨어 시스템을 만들지 않을 정도로 충분히 설계되었으며, 연구원은 다른 것 이외의 것으로 수정하기 위해 시간이나 성향이 없습니다. 다른 사람에게 심한 두통.
Larry Gritz

5

따라 다릅니다. 논문을 작성하는 사람 또는 감독관이 소스 코드로 수행 할 작업을 결정합니다. 때때로 사람들은 프로젝트를 오픈 소스로 만듭니다.

때때로 프로젝트는 대개 회사에서 자금을 조달하는데, 이는 자산이라는 의미입니다. 이 경우 논문의 저자는 코드를 보여줄 수 없습니다.


3

일반적으로 페이지 제한 문제입니다. 알고리즘이 너무 짧으면 논문에서 종종 의사 코드 (pseudocode)로 표현되는 경우가 많습니다. 다른 한편으로, 기본 코드의 인쇄 버전이 심지어 몇 페이지 길이 인 경우, 코드를 인쇄하면 기사의 고기를위한 공간이 남지 않습니다. 10 페이지 길이의 저널 기사는 긴 기사입니다.

출처를 밝히지 않으면 사기의 가능성이 있습니다. 이러한 잠재력으로 인해 많은 저널은 이제 작성자가 소스 코드를 보충 정보로 제출할 것을 요구합니다 (이는 액세스 권한이있는 경우 저널에서 얻을 수 있으며 많은 구독료가 부과 될 수 있음). 일부 다른 저널은 저자가 소스 코드를 요구하는 사람에게 소스 코드를 공개하도록 요구합니다. 그러나 다른 저널은 여전히 ​​어두운 시대에 있습니다. 소스 코드는 제출할 필요가 없으며 저자는이를 공개 할 필요가 없습니다.

가장 쉬운 방법은 저자에게 소스 코드를 제공 할 수 있는지 물어 보는 것입니다. 저자의 이메일 주소는 일반적으로 오늘날 대부분의 저널에 실려 있습니다.


1
소스 코드를 검토 할 수 있다고해서 실제 논문에 전체 내용을 포함시킬 필요는 없다고 생각합니다. 진짜 실수를 저 지르다 특히 코더가 프로그래머가 아닌 과학자라면!
Andres F.

3

과학자로서의 저의 경험 (5 권의 논문이 출판 됨)은 종종 저널이 결과를 생성하는 데 사용 된 코드를 공개 할 필요가 없다는 것입니다. 그것은 저널이 스크립트를 받아들이지 않을 것이라고 말하는 것은 아닙니다. 많은 저널이 온라인 보충 자료를 허용합니다. 알고리즘과 같은 일부 저널 (예 : 컴퓨터 및 지구 과학)에서는 알고리즘 소스를 추가해야하지만 규칙보다 예외입니다.

저널의 문화 외에도 과학자들에게있어 코드는 끝의 수단 일뿐입니다. 많은 사람들이 전문 소프트웨어 개발자가 아닙니다. 많은 사람들이이 코드를 과학을 표현하는 도구로만 생각하기 때문에 코드를 게시해야하는 긴급함을 느끼지 않습니다. 또한 코드를 게시 할 수있는 수준으로 연마하려면 많은 작업이 필요합니다. 과학자는 소프트웨어를 쓰지 않고 과학을하도록 돈을 받는다.


그러나 소프트웨어는 어떤면에서 증거입니다. 그것이 컴퓨터 과학의 핵심입니다 : 프로그램은 증거입니다. 나는 이것이 결과에 대한 확신이 충분하지 않거나 실제로 연구의 실제 증거를 생성하는 것의 중요성에 대한 문화적 오해라고 생각합니다.
Andres F.

1
나는 컴퓨터 과학의 욕설에 대해 이야기하는 것이 아니라 일반적으로 더 많은 과학에 대해 이야기했습니다. 이론적 인 CS에서 많은 사람들이 수학 분야에서 알고리즘과 증명 작업을합니다. 소프트웨어는 단지 구현 일뿐입니다.
Paul Hiemstra

귀하의 코드가 논문의 각주라면 동의합니다. 어떤 종류의 검증이고 자체 섹션이 있지만 작은 경우에는 증명의 일부이거나 최소한 검증입니다. 코드를 게시하지 않으면 관련성이 없으며 논문에서 모든 언급을 제거 할 수도 있습니다.
Andres F.

2

실제 프로그램은 종종 제품 자체가 아니라 목적을 달성하기위한 도구 일뿐입니다. 소스 코드에 대한 자세한 정보를 제공하는 것은 보고서에 서명하는 데 사용 된 펜의 전체 그림 및 / 또는 PC의 회로도를 제공하는 것과 유사합니다.

특히 동료 검토가 초청되는 경우, 일부 형태의 비공개 계약 (NDA)에 따라 소스 코드는 프로그램 내에 구현 된 지적 재산권이 있기 때문에 사용할 수 있습니다.

코드에 정말로 관심이 있다면 @Buttons의 주석 이 최선의 조언 이라고 제안 합니다.


1

코드 작성 목적에 따라 다릅니다. 그것이 요점을 보여 주려고한다면, 그것이 최적화되지 않았기 때문에 그것이 해제되는 것이 이상적이지 않을 수도 있습니다. 기본 개념과 방법이 유효한 경우 코드 결과를 처음부터 다시 만들 수 있어야합니다. 저작권 및 소유권 문제도있을 수 있습니다.

원칙적으로 코드를 릴리스하는 것은 기술적으로 불가능하지 않지만 릴리스되지 않은 이유는 다양합니다. 이런 이유로이 질문에 대한 간단한 대답은 없을 것입니다. 특정한 경우에는 해당 연구원에게 물어볼 수 있습니다.


1

인용 한 논문은 이미 28 페이지이며, 대부분의 내용은 문제 해결과 관련된 디자인 결정에 관한 것입니다 (제목에 명시되어 있음).

코드는 디자인을 확인하는 마지막 단계입니다. 사소한 것은 아니지만, 특히 종이를 차지하는 공간을 고려해야하는 경우에는 용지 결과에 가치를 더하는 부분이 아닙니다.

모든 경우가 같은 것은 아닙니다. 일부 논문은 소스 코드 또는 의사 코드를 제공합니다. 일부 편집자들은 그것을 허용하지 않습니다. 어떤 사람들은 그것을 허용하지만, 공간 때문에 저자는 그것을 포함하지 않습니다. 소스 코드를 게시 한 한 저널 은 "figures"로 형식이 지정되고 전자 버전은 텍스트로 제출했지만 이미지 데이터로 사용합니다.


1

인센티브 문제와 연구자들의 인센티브는 일반적으로 그들이 점차적으로 쌓이는 꾸준한 종이를 생산할 수 있도록 보장하는 것입니다. 대학원생은 일반적으로 졸업하기 위해 논문의 개별 장으로 바꿀 수있는 3-5 개의 논문이 필요합니다. 주니어 교수진은 임기 검토 전에 가능한 많은 출판물을 생성해야합니다. 이런 이유로 대부분의 학술 논문은 실제로 n일련의 논문 입니다. 예를 들어, 참조하는 논문은 1 년 전에 출판 된 같은 그룹의 논문을 바탕으로 다음 논문이 다루는 근거를 논의합니다.

소스 코드를 게시하면 다른 그룹의 다른 연구원이 논문을 만들 수 있습니다. n+1최초의 저자가 저자가이 연구 흐름의 일부로 다룰 것으로 예상되는 근거의 상당 부분을 다루는 논문을 만들기 전에 또는 적어도 그 전에. 이런 일이 발생하면 대학원생은 대학원에 충분한 연구 결과를 산출하기 위해 대학원에서 6-12 개월을 더 지출 할 수 있습니다. 교직원은 임기 재검토 시간이 다가 오면 출판 된 논문이 하나 줄어 듭니다. 이 두 가지 모두 연구원의 경력에 ​​큰 타격을주었습니다. 학문적 응용 프로그램은 종종 연구 그룹 내 여러 사람들의 연구 노력의 일부 (직접 또는 특정 구성 요소를 공유하기 때문에)이며 연구 그룹 내에서 누군가를 해칠 수있는 코드를 공개하지 말아야한다는 압력이 있다는 사실을 추가 당신은 매일 같이 일합니다.

원시 데이터 수집에 많은 시간과 비용이 소요되는 분야에서 비슷한 종류의 토론을하는 경우가 많습니다. 예를 들어, 천문학에서 한 연구 그룹은 한 논문을 출판하기에 충분한 정보를 갖기 전에 몇 년 동안 데이터를 수집 할 수 있습니다. 그런 다음 해당 데이터를 사용하여 일련의 논문을 작성합니다. 연구 그룹은 실제로 데이터를 분석하는 데 따른 보상을 얻기 위해 다른 그룹이 데이터 수집에 투자 한 시간에 너무 쉽게 타기 때문에 절대적으로 필요한 것보다 더 많은 데이터 세트를 공유하는 것을 꺼려합니다.

결국,이 코드의 많은 부분은 천문학적 데이터가 결국 릴리스되는 것처럼 릴리스 될 것입니다. 저자가 해당 논문 시리즈의 끝에 도달하거나 유사한 주제를 다루는 대부분의 연구 그룹이 비슷한 엔진을 가지고있어 코드를 공개하지 않아도 새로운 연구원에게 경쟁 우위를 제공하지 못하는 경우가 종종 있습니다.

데이터와 코드가 더 빨리 출시되면 과학에 이상적입니다. 그러나 그것은 종종 과학 연구원에게 해를 끼칠 것이며,이 경우 인센티브가 중요한 사람입니다.


"소스 코드를 게시하면 다른 그룹의 다른 연구원이 원저자보다 먼저 종이 n + 1을 생산할 수 있거나 최소한이 부분의 일부로 저자가 다룰 것으로 예상되는 근거의 상당 부분을 포함하는 논문을 생산할 수 있습니다. 연구 흐름. " 이것은 나에게 너무 쉽게 들리지 않습니다. 대부분의 사람들 (나 자신을 포함하여)은 저자의 도움 없이는 코드를 확장하지 않고 연구원들이 작성한 코드의 종류를 이해하는 데 어려움을 겪을 것입니다. 이것이 실제로 일어난 사례를 알고 있습니까?
Faheem Mitha

1

과거에 여러 번 ( 학생 쪽에서) 이 작업을 수행 한 사람으로서 종종 논문을 쓰는 교수들은 소스 코드 자체를 보지 못합니다. 학생들은 대학원생들에게 코드를 작성하고 완료된 경우 에만 최종 실행 파일 (또는 결과 확인) 만 요구합니다 .

또한 학생들이 코드를 해킹하기 위해 함께 해킹 했으므로 실제 경험이없는 대학원생들은 세계 최고의 코더가 아닌 경향이 있기 때문에 종종 작성된 코드는 읽기 가 쉽지 않습니다. ...


1

내가 생각할 수있는 대부분의 이유는 이미 여기에서 제기되었지만 실제로 나에게 일어난 두 가지를 더 추가 할 것이라고 생각했습니다.

저널은 무엇을 해야할지 전혀 모른다 .

내가 작업하고있는 논문 중 하나에 대해, 나는 소스 코드 (문서의 전체 요점은 데이터 시각화였습니다)와 함께 갈 예제 데이터를 포함시킬 의문의 여지없이 절대적으로 결정했습니다. 제출과 함께 Electronic Supplements 1 및 2-내 코드가 포함 된 R 스크립트와 해당 R 스크립트에 필요한 데이터가 포함 된 CSV 파일을 첨부했습니다.

이 저널은 밝혀진 바와 같이 전자 파일을 Word 파일로 분류 한 경우에만 전자 보충제를 사용할 수 있습니다. 하루 중 더 나은 시간을 보내서 R 스크립트를 그 형태로 얻으려고 노력한 후에, 나는 포기하고 코드를 보충제로 포함시키지 않기로 결정했습니다. 나는 대학에서 그것을 주최 할 수 있었지만 대학원생으로서 나는 ~ 1 년 안에 계정을 잃어 버릴 것이라는 것을 알았습니다. 오픈 소스가 링크 로트를 즉시 넘어 서면 오픈 소스는 아무 소용이 없습니다.

나는 GitHub의에 호스팅 용지에 그에 대한 참조를 넣어 결국,하지만 난 때문이었다 정말 에 갈 수있는 코드를 원했다. 내 분야에서 대부분의 사람들이 GitHub의 같은 것을 사용하지 않습니다 특히 이후 내가 볼 수 있습니다, 단지 그 노력이 그 다운로드를 다운로드하고 정말로 원한다면 어쨌든 저에게 이메일을 보낼 수있는 소수의 사람들에게는 가치가 없을 것이라고 결정했습니다.

저널은 관심이 없습니다.

리뷰어의 요청에 따라 코드 자체에 대한 작은 세부 정보를 종이에 삽입했지만 임상 저널 (읽기 : 하나의 코드 없음), 전자 보충 자료를 허용하지 않으며 다시 소스 코드를 추가했을 수 있습니다. 가치보다 더 많은 문제.

아이러니하게도, 누군가 코드를 찾으려면 오픈 소스이거나 곧 될 것입니다.하지만 이미 '이것은 혼란스럽게 기술적으로 발전하고 있습니다.' '언급은 내가 할 모든 것이었다.


0

여러 번 구현 (즉, 소프트웨어는 중요하지 않지만) 구현이 점점 결과에 영향을 미칩니다.

구현이 중요 할 때마다 ... 소스 코드를 확실히 사용할 수 있어야합니다! 결과가 구현 또는 계산 방법에 의존할수록 소스 코드를 게시하는 것이 더 중요해집니다.


누가 / 어디에서 소스 코드를 저장할 것인지에 관해. 이상적으로 기사가 게시 된 저널에는 전체 소스 코드가 저장됩니다. 그러나 가장 중요한 저널 중 다수는 기사와 소스 코드를 모두 저장하지 않습니다. IMO 저널에 전체 소스 코드를 저장할 수있는 기능이 없으면 저자는 소스 코드를위한 웹 주소 지정 가능 저장 공간을 찾아야합니다.
Trevor Boyd Smith

0

화학자 (데이터 분석을 수행하는 화학자)로 다루는 코드 유형에 몇 가지 점을 추가하고 싶습니다.

  • 데이터 분석 코드를 작성하는 사람 (나처럼)은 해당 코드 를 사용 하는 사람에 비해 상대적으로 적습니다 . "집에서 작성된 사용자 정의 코드"는 저자가 작성한 것임을 의미하지 않습니다. 동료의 코드 일 수 있으므로 저자 는이를 게시 할 수 없습니다 .

  • 코드의 별도 게시가 계획 될 수 있으며 코드의 작성자 (또는 감독자)는 코드가 이전에 (부분적으로) 공개 된 경우 참신함이 손실 될 것을 우려 할 수 있습니다.
    코드 공개가 의도 된 저널이 이전에 공개 된 코드에 반대하지 않더라도 , 관리자 (또는 IP 사무실의 누군가) 의 순수한 우려 는 코드 공개를 중지하기에 충분할 수 있습니다.

  • 데이터 분석 코드는 종종 데이터에 맞게 조정됩니다. 데이터가 없으면 너무 의미가 없습니다. (어쨌든 데이터를 게시해야한다고 주장 할 수도 있지만 여기서는 다른 질문이 있습니다.)
    어쨌든 우리 연구소에서는 원시 데이터 및 데이터 분석 코드를 종이와 함께 보관합니다. 기본 정책은 (아직?) 공개적으로 제공하는 것이 아니지만 요청시 확실히 제공 될 것입니다.

  • (화학에서 재현성에 대한 전통적인 견해는 실제 소스 코드를 전달하는 것보다 알고리즘의 설명 (의사 코드)에 해당합니다)

  • 많은 동료들이 데이터 분석 단계를 기록하지 않는 데이터 분석에 대화식 도구를 사용합니다. 따라서 공개 할 수있는 소스 코드가 없습니다 . 데이터 분석은 실습 방식보다 프로그래밍에 덜 적합합니다. 실습을 수행하고 실습에서 관찰 한 내용을 기록하십시오.


이 답변은 데이터 분석 관점에서 비롯된 것이므로 특정 틈새 시장입니다. 그러나이 질문은 학계와 관련이 있습니다 .SX이므로 비 컴퓨터 과학자는이를 읽을 수 있습니다.
cbeleites
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.