Есть ли причина, по которой исходный код программного обеспечения, упомянутый в научных статьях, не выпущен? Я понимаю, что исследовательские работы больше касаются общей идеи достижения чего-либо, чем деталей реализации, но я не понимаю, почему они не выпускают код.
Например, этот документ заканчивается:
Результаты
Система рисования человеческих линий реализована через платформу Qt в C ++ с использованием OpenGL и работает на двухъядерной рабочей станции Intel с тактовой частотой 2,00 ГГц без какой-либо дополнительной аппаратной помощи. Мы можем интерактивно рисовать линии, пока система синтезирует новый путь и текстуру.
Держат ли они исходный код намеренно закрытым из-за монетизации, которую они намерены сделать с его помощью, или из-за авторских прав?
Ответы:
На ум приходит несколько причин.
Также традиционные взгляды на разумный уровень воспроизводимости варьируются в зависимости от области. Ожидается, что химик, публикующий статью о новом методе синтеза, запишет достаточно подробностей, чтобы другой химик мог выполнить синтез. От нее не ожидают, что она отправит документы и материалы в журнал. Предполагается, что читатели, которые хотят использовать / воспроизводить документ, приобретут свои собственные учебные материалы и сами сделают синтез в своей лаборатории (хотя они могут попросить прийти и посетить лабораторию, чтобы посмотреть, как это делается на практике). Не следует ожидать, что биолог прикрепит своих новых трансгенных мышей к бумаге. Это представление о воспроизводимости соответствует, например, предоставлению (псевдокодового) описания алгоритма, а не фактической реализации.
источник
Прочитайте презентацию Рэндалла ЛеВека «10 основных причин, по которым не следует делиться вашим кодом (и почему вы все равно должны это делать)» http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf
Он убедительно утверждает, что код аналогичен доказательствам в математике, и предлагает нам рассмотреть мир, в котором доказательства не публикуются, потому что они слишком длинные, или слишком некрасивые, или не работают в крайних случаях, или могут стоить деньги, или кто-то может украсть их ...
По сути, если вы занимаетесь наукой, вы должны опубликовать свой код. В противном случае вы занимаетесь алхимией, и вы можете улететь прямо в темные века и умереть от чумы, насколько мне известно.
источник
Как правило, программы, используемые для получения результатов работ, являются только инструментами, и только результаты имеют значение. Таким образом, они не размещены на бумаге, которая представляет контекст, методологию, результаты и обсуждение о них.
Но результаты должны быть воспроизводимыми. И затем, когда источники данных, на которых основывается статья, являются общедоступными, программы, преобразовывающие их в результаты, как правило, также требуются. Они часто размещаются «где-то» в Интернете, если это не вызывает проблем с патентами и авторскими правами. Или, по крайней мере, авторы должны отправить вам программы, если вы их попросите.
источник
Это не закрытый источник. Программное обеспечение просто не было опубликовано вообще.
Краткий ответ:
Длинный ответ:
Закрытый источник означает, что программное обеспечение было опубликовано, а исходный код - нет. Но распространенным случаем является то, что ни программное обеспечение, ни исходный код не были опубликованы .
По моему опыту (я работаю в области атмосферных наук), авторы очень рады, если вы связываетесь с ними и спрашиваете, можете ли вы получить их программное обеспечение (включая, конечно, исходный код) для проведения исследований. Если я собираюсь написать статью с проектом, основанным на их проекте, они, по крайней мере, получат цитату из этого (хорошо!), Но, вероятно, получат статью в соавторстве (потому что, конечно, они не не документировать свое программное обеспечение, чтобы кто-то мог использовать его без их помощи). Относительно дешевая статья соавтора, так что это даже лучше .
Настоящий вопрос:
На это есть несколько причин:
Список можно сделать длиннее. Это заслуживает отдельного вопроса, в Academia.SE, а не здесь.
(Обратите внимание, что в моей группе мы публикуем наше программное обеспечение - под лицензией GPL )
источник
Это может показаться циничным, но по моему опыту исследовательские работы написаны не так, чтобы их было легко понять или просто воспроизвести. Вместо этого в исследовательском сообществе более важно иметь статью, которая звучит и выглядит очень научной. По этой причине большинство авторов преобразуют свой код в математические формулы и пытаются доказать, что их алгоритм математически корректен. Обычно количество страниц для такой статьи ограничено, поэтому нет места для публикации кода. Тем не менее, конечно, это не будет ограничивать любого автора ссылаться на полный код с URL ...
Можно предположить, что если код не публикуется, либо авторы хотят измерить свои выводы, либо (что я лично считаю более частым случаем), они боятся, что люди увидят, что их исследование не так круто, как они утверждают. Часто результаты относятся только к очень ограниченному числу случаев.
Кроме того, я видел, что из одной простой программы / алгоритма выделяются несколько научных работ. Если код будет опубликован, было бы сложно написать какие-либо дополнительные статьи на ту же тему. Таким образом, знание сдерживается, чтобы со временем публиковать его небольшими кусочками.
Всегда имейте в виду, что в университетах важны не столько результаты или применимость исследований, сколько количество публикаций, которые вы публикуете. Это грустно, но это правда.
источник
Помимо намерения монетизации, я не вижу веских оснований для того, чтобы оставить исходный код из исследовательских работ. Начинается небольшое движение, которое предлагает предоставить исходный код, как правило, для публикации любых исследований, которые каким-либо образом, в той или иной форме зависят от программного обеспечения. Вы можете прочитать об этом больше, он называется « Манифест научного кода» .
источник
Приведенные выше ответы не учитывают несколько практических причин, которые часто возникают в компьютерной графике (область, в которой упомянутая автором статья была опубликована). Выпуск кода сильно варьируется между полями в CS - например, в машинном обучении код обычно публикуется. В Human Computer Interaction код почти никогда не публикуется.
Я выпустил довольно много кода в компьютерной графике, и хотя я думаю, что авторы должны выпускать свой код, есть много простых причин, не основанных на теории заговора, почему они этого не делают . Например
1) Большинство исследовательских проектов в области компьютерной графики предполагают сотрудничество между несколькими исследователями, часто в разных учреждениях, каждый из которых обеспечивает определенную часть головоломки (например, алгоритмы, библиотеки и т. Д.). Чтобы выпустить рабочий код, все исследователи должны согласиться. Это редко простая дискуссия, и обычно легче избежать проблемы.
2) Часто код для одного документа встраивается в большую кодовую базу, разрабатываемую в лаборатории. Эта кодовая база будет содержать другую неопубликованную работу. Выделение кода для отдельного проекта - большая работа, часто без немедленной выгоды для людей, которые должны выполнять эту работу (см. Стимул ниже).
3) Университеты часто имеют права ИС на код. Следовательно, необходимо связаться с «офисом инноваций», который сделает вашу жизнь бесконечно сложной, попросив вас документировать «изобретение», чтобы они могли запатентовать его и т. Д., Прежде чем вы откроете его. В некоторых случаях университет может даже отказать в разрешении на публикацию источника (это варьируется в зависимости от учреждения и сильно осложняется (1))
4) Многие исследования компьютерной графики проводятся корпорациями. В этом случае авторы также не владеют кодом и должны получить разрешение от юристов, чтобы опубликовать код. Адвокаты практически не имеют стимула сказать «да».
5) Нет стимула публиковать код. Большая часть кода исследований компьютерной графики никогда не используется кем-либо еще. Даже если это так, для кода общего назначения вы обычно просто получаете подтверждение (бесполезное с точки зрения вашего резюме). Если вам повезет, вы получите цитату. Комитеты по найму и агентства грантов, как правило, не заботятся о том, выпустили ли вы свой код. Таким образом, время, потраченное на подготовку кода к выпуску, - это потраченное время, которое можно было бы потратить на другой документ. (Есть люди, которые активно пытаются изменить это в компьютерной графике).
6) Есть стимулы не публиковать код. Код может иногда превращаться в стартап-компании, получать лицензии для существующих компаний и т. Д. Это финансирует будущие исследования. Мы все должны есть.
источник
По-разному. Человек, пишущий статью, или его руководитель решает, что делать с исходным кодом. Иногда люди делают проект открытым исходным кодом.
Иногда проекты обычно финансируются компаниями, то есть это их собственность. В этих случаях автору статьи не разрешается показывать код.
источник
Обычно это вопрос ограничений страницы. Если алгоритм чрезвычайно короткий, он часто представляется, по крайней мере, в виде псевдокода, в статье. С другой стороны, если печатная версия базового кода занимает всего несколько страниц, печать кода не оставит места для сути статьи. Журнальная статья длиной в десять страниц - это длинная статья.
Недоступность источника создает потенциал для мошенничества. Из-за этого потенциала многие журналы в настоящее время требуют, чтобы авторы представили свой исходный код в качестве дополнительной информации (которую можно получить из журнала, если у вас есть доступ; может потребоваться внушительная плата за подписку). Некоторые другие журналы требуют, чтобы авторы передавали свой исходный код любому, кто просит об этом. Все же другие журналы все еще находятся в темных веках; исходный код не требуется для отправки, и авторы не обязаны выпускать его.
Проще всего спросить авторов, могут ли они предоставить вам исходный код. Адреса электронной почты авторов обычно указываются в большинстве журнальных статей в настоящее время.
источник
Мой опыт как ученого (опубликовано 5 работ) заключается в том, что зачастую журнал не требует публикации кода, который использовался для создания результатов. Это не значит, что журналы не принимают сценарии. Многие журналы позволяют размещать онлайн дополнительные материалы. Некоторые журналы, ориентированные на алгоритмы и тому подобное (например, Компьютеры и Науки о Земле), требуют, чтобы вы добавили источник алгоритма, но это скорее исключение, чем правило.
В дополнение к культуре в журналах, для ученых код является лишь средством для достижения цели. Многие не являются профессиональными разработчиками программного обеспечения. Поскольку многие рассматривают код как инструмент для выражения науки, они не чувствуют необходимости издавать код. Кроме того, полировка вашего кода до такой степени, что он может быть опубликован, требует много работы. Ученому платят за то, что он занимается наукой, а не пишет программное обеспечение.
источник
Чаще всего настоящая программа - это всего лишь инструмент для достижения цели, а не сам по себе продукт. Предоставление полной информации об исходном коде было бы сродни предоставлению полного рисунка пера, используемого для подписания отчета, и / или схемы ПК.
Сказав, что, особенно там, где предлагается экспертная оценка, исходный код будет доступен - хотя и в соответствии с какой-либо формой Соглашения о неразглашении (NDA) - так как в программе заложена интеллектуальная собственность.
Если вы действительно заинтересованы в коде, я предлагаю комментарий @Buttons - лучший совет: спросите их :)
источник
Многое зависит от цели, для которой был написан код. Если это должно было продемонстрировать точку зрения, вполне может быть, что она не оптимизирована и, следовательно, не идеальна, чтобы ее выпустить. Если базовые концепции и методология верны, тогда должна быть возможность воссоздать результат кода с нуля. Также могут быть проблемы с авторским правом и правами собственности.
В принципе, технически невозможно выпустить код, но причины, по которым он не может быть выпущен, различны. По этой причине, вероятно, нет простого ответа на этот вопрос. В конкретных случаях, возможно, вы могли бы спросить заинтересованных исследователей.
источник
Цитируемая вами статья уже содержит 28 страниц, и большая часть контента посвящена проектным решениям, связанным с решением проблемы (указано в заголовке).
Код является последним шагом для проверки дизайна. Это не тривиально, но это не та часть, которая повышает ценность результатов статьи, особенно если вы рассматриваете пространство, которое она займет.
Не все случаи одинаковы. Некоторые документы дают исходный код или, по крайней мере, псевдокод. Некоторые редакторы не позволяют это. Некоторые позволяют это, но из-за нехватки места авторы не включают это. Один журнал, в котором я опубликовал исходный код, отформатировал его как «цифры», а в электронной версии он был представлен в виде данных изображения, хотя я и представил его в виде текста.
источник
Стимулы имеют значение, и стимулы исследователей, как правило, заключаются в том, чтобы гарантировать, что они могут производить постоянный поток документов, постепенно наращивая друг друга. Аспирантам обычно требуется 3-5 опубликованных работ, которые они могут превратить в отдельные главы своей диссертации, чтобы получить высшее образование. Младший преподавательский состав должен подготовить как можно больше публикаций, прежде чем они будут проверены. По этой причине большинство академических работ действительно
n
являются серией. Например, документ, на который вы ссылаетесь, основан на документе той же группы, опубликованной годом ранее, и обсуждает основание, которое, вероятно, будет рассмотрен в следующем документе.Публикация исходного кода потенциально позволяет другому исследователю из другой группы производить бумагу
n+1
до того, как первоначальный автор сделал или, по крайней мере, подготовил статью, охватывающую значительную часть той основы, которую автор ожидал охватить в рамках этого исследовательского потока. Если это произойдет, аспирант может легко найти себя, проводящего еще 6-12 месяцев в аспирантуре, чтобы получить достаточно результатов исследований, чтобы получить высшее образование. У преподавателя может оказаться меньше опубликованных работ, когда придет время пересмотра. Оба эти, очевидно, большие удары по карьере исследователя. Добавьте к этому тот факт, что академические приложения часто являются частью исследовательских усилий множества людей в исследовательской группе (либо напрямую, либо потому, что они совместно используют определенные компоненты), и исследовательская группа испытывает давление, чтобы не выпускать код, который может повредить кому-то, кто Вы работаете с каждым днем.Вы часто получаете подобные обсуждения в тех областях, где сбор необработанных данных занимает много времени и сильно распределен. Например, в астрономии исследовательская группа может потратить годы на сбор данных, прежде чем у них будет достаточно информации для публикации одной статьи. Но затем они будут использовать эти данные для подготовки серии статей. Исследовательские группы очень неохотно делятся большим количеством своих наборов данных, чем это абсолютно необходимо, потому что другим группам становится слишком легко свободно тратить время, потраченное на сбор данных, чтобы пожинать плоды фактического анализа данных.
В конце концов, большая часть этого кода будет выпущена так же, как астрономические данные в конечном итоге будут выпущены. Это часто происходит, когда автор подходит к концу этой серии статей или когда большинство исследовательских групп, работающих над схожими темами, имеют схожие движки, поэтому выпуск кода больше не дает новому исследователю конкурентное преимущество.
Для науки было бы идеально, если бы данные и код были выпущены быстрее. Но это часто наносит вред научному исследователю, и именно в этом случае стимулы имеют значение.
источник
Как кто-то, кто делал это (на стороне студента) несколько раз в прошлом: часто профессора, пишущие статью, даже сами не видят исходный код. Они попросят своих аспирантов написать код, а затем попросят окончательный исполняемый файл (или даже просто подтверждение результата), когда он будет завершен.
Кроме того, часто написанный код не всегда читается, потому что студенты просто взломали его вместе, чтобы выполнить, и потому что (хотя они очень умные) аспиранты, не имеющие реального опыта, обычно не являются лучшими программистами в мире. ...
источник
Большинство причин, о которых я могу подумать, уже упоминалось здесь, но я подумал, что добавлю еще две, которые действительно произошли со мной:
Журнал не знает, что делать .
Для одной из работ, над которыми я работал, я решил, что абсолютно без сомнений собираюсь включить исходный код (весь смысл статьи был в визуализации данных) и примеры данных, которые будут сопровождать его. Поэтому вместе с представлением я приложил электронные дополнения 1 и 2 - сценарий R с моим кодом и файл CSV с данными, необходимыми для указанного сценария R.
Журнал, как выясняется, может принимать электронные приложения только в том случае, если они включены в файлы Word. Пытаясь большую часть дня получить R-скрипт в этой форме, я сдался и решил не включать код в качестве дополнения. Я мог бы разместить его в своем университете, но, будучи аспирантом, я знал, что потеряю там свою учетную запись через ~ 1 год - открытый исходный код бесполезен, если его немедленно обгонят с помощью linkrot.
Я закончил тем, что разместил его на GitHub и поместил ссылку на это в газете, но это было потому, что я действительно хотел, чтобы код вошел. Я вижу, тем более, что большинство людей в моей области не используют что-то вроде GitHub, просто решив, что усилия не будут стоить горстке людей, которые загрузят их, и которые в любом случае могут написать мне по электронной почте, если они действительно захотят.
Журнал просто не интересует
Я вставил некоторые мелкие детали о самом коде в документ по запросу от рецензента, но это клинический журнал (читай: никто не кодирует), он не допускает электронных дополнений, и опять же, добавление исходного кода, вероятно, было бы больше проблем, чем оно того стоило.
По иронии судьбы, если кто-то и пошел искать код, то он (или скоро будет) с открытым исходным кодом, но я уже работал на грани «Это становится все более отвлекающим», и я решил, что краткое изложение «порадует рецензента» «упоминание было все, что я собирался сделать.
источник
Много раз реализация (то есть программное обеспечение не имеет значения), но все чаще реализация оказывает влияние на результаты.
Каждый раз, когда реализация имеет значение ... исходный код обязательно должен быть доступен! Чем больше результаты зависят от реализации или вычислительных методов, тем важнее становится размещение исходного кода.
источник
Я хотел бы добавить несколько моментов о типе кода, с которым я имею дело как химик (химик, занимающийся анализом данных):
Людей, которые пишут код для анализа данных (как и я), сравнительно немного по сравнению с людьми, которые используют этот код. «Пользовательский код, написанный на дому», не означает, что авторы его написали - это может быть код коллеги, поэтому авторы не могут его опубликовать.
Может быть запланирована отдельная публикация кода, и автор кода (или руководитель) может быть обеспокоен тем, что новизна будет потеряна, если код (частично) был обнародован ранее.
Даже если журнал, для которого предназначена публикация кода, не возражает против того, чтобы код был общедоступным ранее, одной лишь заботы надзорного органа (или кого-либо из ведомства ИС) может быть достаточно для прекращения публикации кода.
Код анализа данных часто адаптируется к данным. Это не имеет большого смысла без данных. (Вы можете утверждать, что данные должны быть опубликованы в любом случае, но это другой вопрос и не по теме здесь.)
В любом случае, в моем институте мы архивируем необработанные данные и код анализа данных вместе с бумагой. Политика по умолчанию не (пока?), Чтобы сделать их общедоступными , но они, безусловно, будут доступны по запросу.
(Традиционный взгляд на то, что является воспроизводимостью в химии, скорее соответствует описанию (возможно, псевдокоду) алгоритма, чем отправке фактического исходного кода)
Многие из моих коллег используют интерактивные инструменты для анализа данных, которые не регистрируют этапы анализа данных. Так что нет исходного кода, который можно было бы опубликовать. Анализ данных в большей степени соответствует программированию, чем лабораторному подходу: вы делаете вещи и записываете то, что делаете, и наблюдаете в своей лабораторной книге.
источник