Могу ли я запросить код исследовательской работы у автора?

Я в области информатики. Часто бывает так, что, читая статью, я начинаю задаваться вопросом: «Ух ты, потрясающие результаты, однако я хотел бы это доказать». или «Как именно он получил эти потрясающие результаты? Он/она только что написал грубый обзор реальной методологии, использованной в этой статье». . Как видите, во многих случаях мелочи оказывают огромное влияние на общую производительность базовой методологии. Часто они не являются частью статьи или вообще не раскрываются.

Моя идея заключалась бы в том, чтобы связаться с автором статьи и попросить его исследовательские программы воссоздать их и понять. Могу/должен ли я это сделать?

Я лично думаю, что, наверное, не так много исследователей, которые позволили бы кому-то еще «посмотреть в свои карты» . Каков ваш опыт в этом?

Я думаю, что этот вопрос ничем не отличается от вопросов academia.stackexchange.com/questions/1967/… и academia.stackexchange.com/questions/1401/…
@mmh Эти вопросы касаются данных; ответы могут быть или не быть одинаковыми для исходного кода. (Например, авторы могут иначе относиться к выпуску ошибочного или «уродливого» кода, чем к обмену необработанными данными в любой форме, в которой они находятся.)
Я успешно запросил и получил код (двоичный) в то время, когда это не было стандартом. Но это зависит от авторов.
Я бы спросил у авторов. Часто они с удовольствием делятся. Многие журналы требуют, чтобы он был общим. Но я занимаюсь биологией.

Ответы (4)

Спросите код. Однако, пожалуйста, объясните, зачем вам это нужно и для чего вы собираетесь его использовать.

Лично я был бы очень рад, если бы кто-то связался со мной по поводу моего исследования и попытался бы дать все необходимые инструменты для воссоздания моих данных. Особенно, если я сейчас не работаю над продолжением.

Тем не менее, я несколько раз запрашивал параметры, коды, процедуры и т. д. у авторов, когда описание в документе было расплывчатым. У меня было много разных ответов: одни просто игнорировали меня, другие давали мне все, о чем я просил, а третьи соглашались только тогда, когда я предлагал, что, возможно, пожелаю сделать их соавторами, если я построенный на их коде таким образом, что приводит к публикации. Наконец, некоторые отказались от моей просьбы. Это произошло по ряду причин, например, по тем, что обсуждались в этом вопросе .

Если вы запрашиваете код и говорите, что просто хотите проверить некоторые выводы авторов или использовать его в качестве эталона для своей собственной реализации, вы, как правило, можете ожидать отказа или отсутствия ответа. Это, по крайней мере, мой опыт.

Возможно ли, что ваш вывод о мотивах тех, кто отклонил вашу просьбу, ошибочен? Может быть, они действуют добросовестно и дали вам честный ответ? В конце концов, телепатия — это очень сложное дело (у AIUI нет ни одного доказанного случая, когда бы она когда-либо работала), так что, возможно, ваш случай не безошибочен.
@EnergyNumbers Я полагаю, что это вы используете телепатию: конечно, я не пишу подробности личного дела на публичном форуме, что вы, кажется, предполагаете, когда делаете свои довольно смелые суждения. Некоторые из случаев, на которые я ссылаюсь, после дальнейшего общения были довольно явно ситуациями, когда их авторы не доверяли кодам. Естественно, вашим первым предположением всегда должно быть то, что люди действуют добросовестно и имеют в виду то, что говорят, поэтому в своем ответе я почувствовал, что явное описание возможных скрытых мотивов принесет больше пользы моему тексту.
Боюсь, вы ошибаетесь: вместо того, чтобы придавать больше ценности вашему тексту, его грубость умаляет его.
@EnergyNumbers Видя ваше замечание, что мой текст можно понять не так, как предполагалось, я отредактировал его. В конце концов, однако, я полагаю, нам придется согласиться не согласиться: я чувствую, что мой ответ теперь больше ПК, но содержит немного меньше информации.
@amlrg Спасибо за ваш обнадеживающий ответ! Подскажите, как связаться с автором? Был бы признателен, если бы вы могли показать мне одно из ваших писем...

Да нормально спрашивать. По моему опыту, не многие исследователи делятся своим кодом. Иногда причина в том, что авторы боятся, что вы напишете лучший алгоритм или что вы продлите их работу раньше них. Некоторые другие причины могут заключаться в том, что у программного обеспечения нет документации, и у них нет времени для подготовки некоторой документации, оно написано не на английском языке или зависит от коммерческого программного обеспечения или программного обеспечения, принадлежащего другим авторам. Тем не менее, есть много причин для совместного использования кода. Это делает вашу работу более наглядной, помогает другим исследователям избежать повторной реализации вашей работы, позволяет проводить более объективное сравнение при сравнении алгоритмов и т. д.

Лично я несколько раз спрашивал исходный код или наборы данных других авторов. Если они не хотят делиться, они обычно просто не отвечают на электронную почту или могут сказать «нет». Но от просьбы нет никаких последствий. Так что просто спросите. Кроме того, иногда авторы не предоставляют исходный код или наборы данных, но часто они могут предоставить вам двоичные файлы. В этом случае он все еще может быть полезен.

Лично я делюсь исходным кодом и наборами данных всех своих исследовательских работ в качестве первого автора как часть библиотеки интеллектуального анализа данных с открытым исходным кодом ( http://www.philippe-fournier-viger.com/spmf/ ), и я считаю, что все авторы также должны делиться исходным кодом и наборами данных. Вот сообщение в блоге, где я более подробно объясняю, почему это важно: http://data-mining.philippe-fournier-viger.com/why-it-is-important-to-publish-source-code -и-наборы-данных-для-исследователей/

что вы подразумеваете под совместным использованием двоичных файлов? не могли бы вы прояснить этот момент?
Хорошо, я объясню. Чтобы написать программу, программист должен написать некоторый код, используя некоторый язык программирования. Затем, как правило, программист «компилирует» программу, чтобы преобразовать ее в исполняемый файл (программу, которую вы можете запустить на своем компьютере, например, файл .exe в Windows). Этот исполняемый файл мы также называем «двоичным файлом». Таким образом, если исследователь предоставит вам свой исходный код (код), вы сможете модифицировать его программу. Но если исследователь даст вам свои исполняемые файлы (бинарные файлы), то вы сможете только запустить программу, но не сможете ее модифицировать. Надеюсь понятно.

Я думаю, что это совершенно нормально, и я рекомендую запрашивать код. На самом деле я поддерживаю позицию, согласно которой любые опубликованные результаты, основанные на программном обеспечении, почти ничего не стоят, если авторы не желают публиковать исходный код вместе с ними. Если они еще не сделали этого при публикации своей статьи, я считаю их моральным долгом сделать это как можно скорее или, по крайней мере, по запросу. Если причина, по которой авторы не публикуют исходный код, заключается в том, что они не полностью доверяют собственному программному обеспечению, то результаты вообще не должны были публиковаться. Почему кто-то должен доверять вашим результатам, если вы не готовы защищать то, как вы их получили?

Абсолютно приемлемо связаться с автором и попросить его код — и по моему опыту, значительная часть исследователей более чем счастлива поделиться своим кодом. Хотя да, есть некоторые, кто не хочет, чтобы кто-то заглянул в их работу, это не универсальная позиция.

Несколько замечаний:

  • Вы просите об одолжении, пожалуйста, признайте это как таковое. Подготовка кода не требует никаких усилий. Например, если вы разговариваете с исследователями, выполняющими работу с людьми, потенциально есть данные, которые необходимо удалить. Даже если нет, возможно, что код для текущих, пока еще неопубликованных исследований нужно удалить, вычистить комментарии и тому подобное.
  • Когда вы просите чей-то код, четко дайте понять, для чего вы планируете его использовать. Помимо повышения вероятности того, что ваш запрос будет удовлетворен, это будет полезно для того, чтобы помочь человеку, предоставившему код, понять, что вам нужно. Например, вы хотите опираться на их вещи? Просто воспроизвести их результаты? Что-то другое? Возможно, вам нужно знать некоторые вещи, которые зависят от конкретной цели.
  • Если вы собираетесь изложить что-то в газете, возможно, вы захотите привлечь к этому и их.