Повторное использование чужого кода в собственной публикации

Я собираюсь представить статью, в которой один из использованных мной алгоритмов в значительной степени основан на коде, доступном в одном из руководств по TensowFlow. На самом деле, я в основном скопировал код со страницы и внес необходимые изменения для моего конкретного случая. Я процитировал в документе как TensorFlow, так и страницу, и сообщил, что архитектура нейронной сети, которую я использовал, была основана на той, что на странице. В условиях лицензирования кода (Apache 2.0) упоминается, что пользователь может свободно использовать код и распространять его.

Я не занимаюсь информатикой и применяю модель к конкретной проблеме в своей области. Однако, копируя код (который, как я полагаю, не будет разглашен), я боюсь, что могу совершить академический проступок. Однако, с другой стороны, если бы это было так, использование библиотек с открытым исходным кодом также не одобрялось бы, учитывая, что пользователь, по сути, копирует код.

Буду ли я совершать академические проступки или что-то, что этически осуждается в академических кругах, отправляя результаты, часть которых была основана на скопированном коде?

PS: В ответ на комментарий я процитировал TensorFlow и веб-страницу в статье, которая будет опубликована, если будет принята, но сам код (который в значительной степени основан на коде, доступном на веб-странице) нигде не будет опубликован (поскольку насколько я знаю).

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

Ответы (2)

Вы поступаете правильно, если четко указываете источники. Другими словами, пока вы говорите, что ваш код основан на чужом коде, и пока вы четко указываете, что это за «чужой код» и где читатель может его найти, все в порядке.

Тот факт, что в основе вашей работы лежат открытые исходные коды, не требует, чтобы вы также делились своим кодом (хотя это явно соответствовало бы духу программного обеспечения с открытым исходным кодом). Программное обеспечение с открытым исходным кодом обычно просто означает, что если вы даете кому-то еще исполняемый файл вашей реализации с использованием пакета с открытым исходным кодом, вам также необходимо предоставить им исходный код вашей реализации. (Детали различаются в зависимости от рассматриваемой лицензии, но идея такова.) Пока вы пишете код только для себя, нет необходимости или требования делиться им с другими.

Я бы настоятельно рекомендовал сделать ваш собственный код открытым. Это делает ваш «эксперимент» воспроизводимым. ИМНШО каждое программное обеспечение, финансируемое за счет государственных исследовательских денег, должно быть с открытым исходным кодом.
Обратите внимание, что журналы или условия вашего гранта могут потребовать от вас поделиться своим кодом. Кроме того, это хорошая практика. Не может быть слишком ужасно показывать другим людям, если вы все равно скопировали большую часть этого у третьего лица.

Если вы включаете в свою статью работу других людей, вам необходимо сделать на нее ссылку.

«Работы других людей» включают, но не исключают, следующее:

  • слова, которые вы цитируете из лекции, разговора или другого устного контекста
  • слова, которые вы цитируете из газеты, книги или другого издания
  • фотографии, которые вы включаете из бумаги, книги или другого источника
  • графики, которые вы включаете из бумаги, книги или другого источника
  • исходный код, который вы включаете из бумаги, книги, страницы Github или другого источника

Лицензия Apache 2.0 позволяет легально использовать код и распространять его практически в любом контексте. Просто приписывайте любой заимствованный код оригинальному автору (авторам) либо в комментариях к вашему коду, либо в виде обычной ссылки на источник, и все будет в порядке.

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