Warum veröffentlichen Forschungsarbeiten, in denen kundenspezifische Software erwähnt wird, den Quellcode nicht? [geschlossen]


69

Gibt es einen Grund, warum der in Forschungsberichten erwähnte Quellcode von Software nicht freigegeben wird? Ich verstehe, dass es in Forschungsarbeiten mehr um die allgemeine Idee geht, etwas zu erreichen, als um Details der Implementierung, aber ich verstehe nicht, warum sie den Code nicht veröffentlichen.

Zum Beispiel endet dieses Papier mit:

Ergebnisse

Das menschliche Strichzeichnungssystem wird über das Qt-Framework in C ++ unter Verwendung von OpenGL implementiert und ohne zusätzliche Hardwareunterstützung auf einer Intel Dual-Core-Prozessor-Workstation mit 2,00 GHz ausgeführt. Wir können interaktiv Linien zeichnen, während das System den neuen Pfad und die neue Textur synthetisiert.

Halten sie den Quellcode absichtlich wegen einer damit beabsichtigten Monetarisierung oder wegen des Urheberrechts geschlossen?


42
Aus dem gleichen Grund fehlen den meisten Papieren die Rohdaten (Veröffentlichung nur statistisch verzerrter "Ergebnisse").
SK-logic

2
Ich habe die Frage bearbeitet. Vielleicht ist "Erwähnung" nicht das beste Wort. In einigen Fällen hängen einige der in den Veröffentlichungen genannten Punkte entscheidend von der Software ab, die Software ist jedoch Vaporware. Um die Gültigkeit des Papiers richtig beurteilen zu können, muss jemand in der Lage sein, die Software auszuführen.
Kaz

7
@JohnL Ich würde sagen, ein Artikel kann von der Software entscheidend abhängen, ohne dass es um die Software geht. Wie eine interessante Eigenschaft der Welt, die mit einem Software-Tool demonstriert / gefunden wird. Wenn wir das Tool nicht überprüfen können, wie können wir dann feststellen, dass die Schlussfolgerung richtig ist? (Oder besser gesagt: es ist viel einfacher, es zu validieren, wenn wir das Tool sehen können!)
Andres F.

4
@Andres F - Eine Möglichkeit besteht darin, Ihre eigene Version der Software unter Verwendung der in diesem Dokument beschriebenen Ideen zu implementieren. Obwohl dies mehr Arbeit ist, hat es wahrscheinlich auch mehr Wert: Wenn dieselbe Implementierung erneut ausgeführt wird, wird nur die eine Implementierung erneut veranschaulicht. Eine neue Implementierung hilft zu demonstrieren, dass die Ideen selbst gültig sind und nicht ein Zufall von Implementierungsdetails. Während der Neuimplementierung können wichtige Probleme entdeckt werden, die zuvor möglicherweise nicht bemerkt oder beschrieben wurden.
Steve314

3
@KonradRudolph, natürlich wird es nicht immer verfügbar sein. Es könnte sogar in ein paar Jahren seit Veröffentlichung nicht mehr verfügbar sein (Bänder gelöscht und wiederverwendet, die gesamte Gruppe aufgelöst, Papierschnitzel usw.)
SK-logic

Antworten:


71

Mehrere Gründe kommen in den Sinn.

  • Code ist zu groß für Artikel. Für kurze Zeit waren interessante Projekte kurz genug, um mit dem Artikel, der sie beschrieb, veröffentlicht zu werden. Dies kann immer noch passieren, aber viele Projekte, die groß genug sind, um interessant zu sein, sind zu groß geworden, um mit den Papieren, die sie beschreiben, veröffentlicht zu werden.
  • Öffentliche Hosts nicht kostenlos oder dauerhaft. Bis vor kurzem waren billige, langlebige und leicht zugängliche öffentliche Hosts nicht verfügbar.
  • Das Veröffentlichen einer Arbeit ist einfacher als das Veröffentlichen eines Projekts. Einige Leute haben Zeit, eine Arbeit oder ein Projekt zu veröffentlichen, aber nicht beide.
  • Anreize sind an die Rolle gebunden. Vor vielen Jahren habe ich einen Kollegen nach Produktentwicklung und Patenten gefragt und die Nachricht erhalten, dass die meisten Leute dort so ziemlich das eine oder andere getan haben. Wie bei Papierautoren (think academia) und Open Source-Entwicklern richtet sich die Belohnung nach dem einen oder anderen Arbeitsprodukt.
  • Selbstmotivation. Der Wunsch, Ideen zu beschreiben oder Code zu implementieren, ist nicht immer zu gleichen Teilen in derselben Person vorhanden. Viele meiner Professoren gaben offen zu, dass sie entweder nie sehr viel codiert haben oder viele Jahre davon entfernt waren, fließend codiert zu haben. In ähnlicher Weise möchten viele Entwickler kaum Kommentare in ihren Code schreiben oder wenn sie sich zur Quellcodeverwaltung verpflichten.
  • Die Dauerhaftigkeit von Projekt-Hosting und Arbeitsprodukt ist ebenfalls ein Problem. Wer irgendwo verlinken will, wo es in ein paar Jahren nicht mehr sein könnte und der damit den Wert des Papiers schmälert.
  • Tradition. Verlage sind auf das Überprüfen und Veröffentlichen von Beiträgen ausgerichtet, sind jedoch möglicherweise nicht bereit, dieselbe Bewertung für Projekte vorzunehmen.
    Auch die traditionellen Ansichten darüber, was ein vernünftiges Maß an Reproduzierbarkeit ist, variieren zwischen den Bereichen. Von einem Chemiker, der eine Arbeit über eine neue Synthesemethode veröffentlicht, wird erwartet, dass er genügend Details aufzeichnet, damit ein anderer Chemiker die Synthese durchführen kann. Von ihr würde nicht erwartet, dass sie die Edukte und das Produkt an das Tagebuch schickt. Von Lesern, die das Papier verwenden / reproduzieren möchten, wird erwartet, dass sie ihre eigenen Edukte kaufen und die Synthese selbst in ihrem Labor durchführen (obwohl sie möglicherweise darum bitten, das Labor zu besuchen, um zu sehen, wie es in der Praxis durchgeführt wird). Man würde auch nicht erwarten, dass ein Biologe seine neuen transgenen Mäuse an das Papier bindet. Diese Sicht auf die Reproduzierbarkeit entspricht z. B. einer (Pseudo-Code-) Beschreibung des Algorithmus im Gegensatz zum Versand der tatsächlichen Implementierung.
  • Nackter Code kann schockierend sein . Das Korrekturlesen eines Dokuments in Papierlänge erfordert viel weniger Polieraufwand als das Überprüfen des Codes, Überprüfen des Codes und Sicherstellen der Qualität eines Projekts. Ich habe eine Menge Code, von dem ich dir lieber erzählen würde, als es dir zu zeigen. Wir hoffen, dass die Dinge sich zu einem Punkt entwickeln, an dem wir alle schönen Code schreiben werden. Wenn Ihr Code jedoch überstürzt war, kaum oder nicht vollständig funktioniert, ist es möglicherweise bequemer, die ausführbaren Dateien oder den Quellcode nicht weiterzugeben.
  • Geschlossene Quelle. Nicht jeder hat Open Source angenommen. Viele Veröffentlichungen beziehen sich auf DoD-Arbeiten, kommerzielle Projekte oder privat finanzierte Projekte, bei denen es von Vorteil ist, das Projekt der Öffentlichkeit zugänglich zu machen, aber es gibt immer noch Geschäftsgeheimnisse oder Marktvorteile, die durch Open Sourcing des Codes oder untergraben werden könnten andere Arbeitsprodukte.
  • Veröffentlichen Sie weitere Arbeiten basierend auf diesem Code. Wenn der Code nicht veröffentlicht wird, kann dies dem Autor einen Vorteil bei der Veröffentlichung von Folgearbeiten verschaffen. Andere konkurrierende Forscher müssen möglicherweise die Arbeit erneut ausführen, was wertvolle Zeit in Anspruch nehmen kann.

27
Wenn das Papier vom Quellcode abhängt, sollte es nicht veröffentlicht werden. Wenn Sie den Code nicht veröffentlichen können, können Sie das Papier nicht veröffentlichen. Ein Artikel mit der Aufschrift "Unser Programm macht diese wunderbaren Dinge", und Sie können den Artikel nicht bewerten, ohne dieses Programm auszuführen. Dann ist der Artikel eine Werbebroschüre für eine Software.
Kaz

3
In völliger Übereinstimmung mit Kaz - wenn Sie zur Begutachtung der Forschung etwas benötigen, das nicht verfügbar ist (Daten, Code usw.), sollte es nicht von einer begutachteten Zeitschrift akzeptiert werden. Fast alle Argumente, auf die DeveloperDon hingewiesen hat, gelten auch für die Datenfreigabe. In den letzten Jahren gab es jedoch eine ziemlich große Tendenz dazu.
Joe

3
Guter Eintrag. Ich möchte auch hinzufügen, dass manchmal separate Wissenschaftler, die die Software selbst neu erstellen, TEIL der Wiederholbarkeit des Experiments sind. Wenn es nur so funktioniert, wie 1 Person es codiert hat, aber nicht so, wie andere es codiert haben ... dann können die Ergebnisse in Frage gestellt und Fehler identifiziert werden.
Jimbo Jonny

4
Ihre zweite bis zum letzten Punkt ist die stärkste
l --''''''--------- ‚‘ ‚‘ ‚‘ ‚‘ ‚‘ ‚‘

4
@AndresF. Code ist absolut die unwichtigste Sache in einer Zeitung. Ein Artikel lautet: "Hier ist, was ich getan habe; hier sind meine Methoden; hier sind meine Ergebnisse." Der Code ist eine Kodifizierung der Methode und sollte genau die gleichen Ergebnisse liefern. Wenn Sie die Ergebnisse des Papiers reproduzieren möchten, aber den Papiercode verwenden, haben Sie nichts reproduziert. Was Sie tun sollen , ist, den Methodenabschnitt zu lesen, eine eigene Implementierung zu erstellen und dann eine Arbeit darüber zu schreiben, wenn Sie die Ergebnisse nicht reproduzieren können.
Tacroy

40

Lesen Sie Randall LeVeques Präsentation zu den zehn wichtigsten Gründen, warum Sie Ihren Code nicht weitergeben sollten (und warum Sie es trotzdem tun sollten): http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

Er argumentiert mit Nachdruck, dass Code mit Beweisen in der Mathematik vergleichbar ist, und fordert uns auf, eine Welt zu betrachten, in der Beweise nicht veröffentlicht werden, weil sie zu lang oder zu hässlich sind oder in Randfällen nicht funktionieren oder sich lohnen könnten Geld, oder jemand könnte es stehlen ...

Grundsätzlich sollten Sie, wenn Sie Wissenschaft betreiben, Ihren Code veröffentlichen. Ansonsten machst du Alchemie und kannst zurück in die dunklen Zeiten fliegen und für mich an der Pest sterben.


7
+1 Tolle Präsentation. Ich bin froh, dass es Leute gibt, die auf Veränderung drängen :)
Andres F.

+1 Danke für den Link; Das kann mir bei meinen laufenden Verhandlungen mit meinem Chef über die Veröffentlichung eines Teils unseres Codes als Open Source helfen.
Frank

Wort hoch! Gute Analogie verdient eine Abstimmung von mir.
nullpotent

Ich bin mir nicht sicher, ob dieser Vergleich wirklich gut für diesen Zweck ist. Ich bin Chemiker (der lieber viel mehr Code veröffentlichen möchte), kein Mathematiker, aber die Beweise, die ich normalerweise gesehen habe, geben nicht jeden kleinen Schritt. Sie entsprechen also meiner Meinung nach eher einer komprimierten Pseudocode-Beschreibung des Algorithmus als dem tatsächlichen Quellcode.
Glaube

27

Im Allgemeinen sind die zur Erstellung der Papierergebnisse verwendeten Programme nur Werkzeuge, und nur die Ergebnisse sind von Bedeutung. Sie stehen also nicht auf dem Papier, das den Kontext, die Methodik, die Ergebnisse und eine Diskussion darüber präsentiert.

Die Ergebnisse müssen jedoch reproduzierbar sein. Und wenn die Datenquellen, auf denen das Papier basiert, öffentlich verfügbar sind, sind in der Regel auch die Programme erforderlich, die sie in Ergebnisse umwandeln. Sie werden oft "irgendwo" im Web platziert, wenn keine Patent- / Urheberrechtsprobleme auftreten. Oder zumindest müssen die Autoren Ihnen die Programme zusenden, wenn Sie sie fragen.


2
Ich glaube nicht, dass Sie jemanden schicken müssen, der Sie nach Ihrem wertvollen Code fragt ... IMHO Diese Antwort ist falsch. Aber ich würde gerne eine Forschungswelt sehen, in der Informationen kostenlos sind ...
Dirk

3
@Dirk Soweit ich weiß, ist dies in empirischen Softwarestudien relativ häufig. In der letzten (noch nicht akzeptierten) Einreichung meines Teams in dieser Domäne hat einer der Gutachter ausdrücklich um einen öffentlichen Zugang zu unseren Daten sowie einigen Code-Teilen gebeten. Ich verstehe nicht, warum der Code so wertvoll sein sollte. Es ist (im Allgemeinen) nur die Verwirklichung der im Papier beschriebenen Ideen. Durch das Veröffentlichen der Programme kann der Leser überprüfen, ob wir unsere Ideen richtig in Aktionen umsetzen.
mgoeminne

1
Hmm, Sie wissen also, (a) wer Ihr Prüfer ist und (b) geben Sie Ihren Code und Ihre Daten an jemanden weiter, der möglicherweise in direktem Wettbewerb mit Ihnen steht?
Dirk

1
Nicht wirklich, weil (a) die Prüfer den Code an einem Ort veröffentlichen möchten, auf den sie anonym zugreifen können (oder die Authentifizierung durch die Zeitschrift erfolgt) um Ihre Studie auf einen anderen Datensatz oder sogar auf denselben Datensatz zu replizieren. Die Replikationen sind weniger prestigeträchtig als das Originalpapier, sie zitieren Ihre Arbeit und bieten eine starke Bestätigung für Ihr Papier. Deshalb sind die ursprünglichen Autoren froh, die anderen diese ganze Arbeit für sie erledigen zu lassen.
Mgoeminne

@Paul Ich sehe keinen Zusammenhang mit der Veröffentlichung des Quellcodes. Auf jeden Fall achten gute Redakteure auf die Notizen, die die Redakteure verfassen, um ihre Entscheidungen zu rechtfertigen. Daher werden Erwähnungen wie "It's Bullshit" nicht berücksichtigt. Wenn der Herausgeber einschätzt, dass die Empfehlungen der Rezensenten nicht relevant genug sind, bittet er um die Meinung eines anderen Experten. Die Absolventen nehmen nicht am Überprüfungsprozess teil. Und wenn Sie Ihre Arbeit nach einigen Jahren nicht annehmen lassen können, sollten Sie sich vorstellen, dass diese Arbeit (oder ihr Inhalt) nicht so gut ist.
mgoeminne

14

Es ist keine geschlossene Quelle. Die Software wurde einfach überhaupt nicht veröffentlicht.

Kurze Antwort:

Es gibt mehrere Gründe, die Software nicht zu veröffentlichen, aber es ist ungewöhnlich, die Software in einer Closed-Source-Weise zu veröffentlichen.

Lange Antwort:

Geschlossene Quelle bedeutet, dass die Software veröffentlicht wurde und der Quellcode nicht. Es kommt jedoch häufig vor, dass weder die Software noch der Quellcode veröffentlicht wurden .

Nach meiner Erfahrung (ich arbeite in der Atmosphärenforschung) freuen sich Autoren sehr, wenn Sie sich mit ihnen in Verbindung setzen und fragen, ob Sie ihre Software (einschließlich Quellcode natürlich) für Forschungszwecke erhalten können. Wenn ich eine Arbeit mit einem Projekt schreibe, das auf ihrem Projekt basiert, bekommen sie zumindest ein Zitat (gut!), Aber wahrscheinlich eine mitverfasste Arbeit (weil sie es natürlich nicht getan haben). t Dokumentieren Sie ihre Software, damit sie von jemandem ohne ihre Hilfe verwendet werden kann. Eine relativ billige Mitautorenzeitung, das ist sogar noch besser .

Die eigentliche Frage ist:

Warum veröffentlichen sie die Software nicht?

Dafür gibt es mehrere Gründe:

  • Veröffentlichte Software benötigt Dokumentation. Normalerweise schreiben die Leute keine Dokumentation.
  • Veröffentlichte Software kann Benutzer anziehen. Benutzer haben möglicherweise Fragen. Dies braucht Zeit (siehe oben).
  • Veröffentlichte Software erfordert möglicherweise eine nicht einfache Wartung.
  • Veröffentlichungssoftware erfordert Hosting.

Die Liste könnte länger gemacht werden. Es ist eine separate Frage, die an der Academia.SE gestellt wird, nicht hier.

(Beachten Sie, dass wir in meiner Gruppe unsere Software veröffentlichen - lizenziert unter der GPL )


Möglicherweise kann der Code auch veröffentlicht werden, jedoch unter einer Lizenz, die keine Änderungen zulässt.
Asmeurer

Ich hatte nicht einmal an diese Situation gedacht, in der die Autoren nur eine kompilierte Version veröffentlichen würden, um zu beweisen, dass die Software tatsächlich vorhanden ist, da es nicht hilfreich ist, zu verstehen, wie sie es taten - mit Implementierungsdetails. Ich lese gern Quellen Code!
Alecail

8

Das mag zynisch klingen, aber meiner Erfahrung nach sind Forschungsarbeiten nicht einfach zu verstehen oder einfach zu reproduzieren. Stattdessen ist es in der Forschungsgemeinschaft wichtiger, einen Artikel zu haben, der sehr wissenschaftlich klingt und aussieht. Aus diesem Grund wandeln die meisten Autoren ihren Code in mathematische Formeln um und versuchen zu beweisen, dass ihr Algorithmus mathematisch korrekt ist. In der Regel ist die Anzahl der Seiten für einen solchen Artikel begrenzt, sodass kein Platz mehr zum Veröffentlichen des Codes vorhanden ist. Dies würde natürlich keinen Autor einschränken, auf den vollständigen Code mit einer URL zu verlinken ...

Man könnte annehmen, dass die Autoren, wenn der Code nicht veröffentlicht wird, entweder ihre Ergebnisse auswerten möchten oder (was ich persönlich eher für richtig halte) befürchten, dass die Leute sehen, dass ihre Forschung nicht so großartig ist, wie sie behaupten. Häufig gelten die Ergebnisse nur für eine sehr begrenzte Anzahl von Fällen.

Ich habe auch gesehen, dass aus einem einfachen Programm / Algorithmus mehrere Forschungsarbeiten hervorgegangen sind. Wenn Code veröffentlicht würde, wäre es schwierig, weitere Artikel zum selben Thema zu schreiben. So wird Wissen zurückgehalten, um es im Laufe der Zeit in kleinen Scheiben zu veröffentlichen.

Denken Sie immer daran, dass an Universitäten nicht so sehr die Ergebnisse oder die Anwendbarkeit der Forschung von Bedeutung sind, sondern die Anzahl der von Ihnen veröffentlichten Artikel. Es ist traurig, aber wahr.


13
Versuchen Sie diesbezüglich, die Forscher zu befragen! Manchmal werden Sie mit Quellcode versorgt.
Lucina

3
Ich denke nicht, dass Sie hier völlig fair sind: "Stattdessen ist es in der Forschungsgemeinschaft wichtiger, einen Artikel zu haben, der sehr wissenschaftlich klingt und aussieht." Dies impliziert, dass der zugrunde liegende Inhalt keinen Wert hat, fast weil Sie ihn nicht verstehen können, weil er wissenschaftlich aussieht. Die Anzahl der von Ihnen veröffentlichten Artikel ist nahezu irrelevant, wenn sich niemand für den Inhalt interessiert. Diese Antwort spricht meines Erachtens eher von Ihren Vorurteilen als von der Realität.
Versuch

2
@temptar Naja vielleicht bin ich ein bisschen negativ voreingenommen. Was mir am meisten auffällt, ist, dass die meisten Forscher offensichtlich nicht gewillt sind, ihre Forschung auf eine leicht verständliche Weise zu beschreiben. Einmal hatte ich einen Professor, der mir nach einer Erklärung eines Algorithmus hinzufügte: "Aber in der Arbeit werden wir dies komplizierter schreiben, damit es wissenschaftlicher klingt."
CodingFriend1

6
@ codingFriend1 - Sie können und sollten nicht auf der Grundlage einer einzigen Erfahrung verallgemeinern. Das ist ein zutiefst unwissenschaftlicher Ansatz. Sie müssen überlegen, wer das Zielpublikum für einen Forschungsspezialisten ist, und in vielen Fällen sind es nicht die Menschen, die die Art von Erklärung benötigen, die Sie für notwendig halten. Dafür haben wir wissenschaftliche Kommunikation - um eine Brücke zu den Laien zu schlagen.
Versuch

3
Ich unterstütze die Antwort von codingFriend1. Dies war eine verbreitete Kritik an der wissenschaftlichen Gemeinschaft, in der ich lebe, und insbesondere an meiner Universität (die dennoch die beste im Land ist): Je exotischer die Wissenschaftler, desto besser. "Veröffentlichen oder zugrunde gehen". Wissenschaftler aus Bereichen, mit denen ich weniger vertraut bin, berichten ebenfalls davon. Tut mir leid, aber an vielen Orten ist es die traurige und weit verbreitete Wahrheit.
Andres F.

7

Abgesehen von der Absicht, Geld zu verdienen, sehe ich keinen guten Grund, den Quellcode aus Forschungsarbeiten herauszulassen. Es beginnt eine kleine Bewegung, die vorschlägt, den Quellcode in der Regel zur Veröffentlichung von Forschungsergebnissen bereitzustellen, die in irgendeiner Weise, in irgendeiner Form oder in irgendeiner Form von Software abhängen. Sie können mehr darüber lesen, es heißt Science Code Manifesto .


1
+1 für den Link! Es verkörpert voll und ganz meinen Glauben an das, was Wissenschaft und Forschung sein sollten.
Andres F.

6

Die obigen Antworten lassen einige praktische Gründe aus, die in der Computergrafik häufig vorkommen (der Bereich, in dem die vom Autor erwähnte Arbeit veröffentlicht wurde). Die Codefreigabe variiert stark zwischen den Feldern in CS. Beispielsweise wird beim maschinellen Lernen in der Regel Code veröffentlicht. In Human Computer Interaction wird Code fast nie veröffentlicht.

Ich habe ziemlich viel Code in Computergrafik, veröffentlicht und während ich Autoren denken sollten ihren Code freigeben, gibt es viele einfache, nicht-Komplott-Theorie Gründe , warum sie dies nicht tun . Zum Beispiel

1) Die meisten Computergrafik-Forschungsprojekte beinhalten die Zusammenarbeit mehrerer Forscher, oftmals an verschiedenen Institutionen, die jeweils einen Teil des Puzzles (dh Algorithmen, Bibliotheken usw.) liefern. Um Arbeitscode freizugeben, müssen alle Forscher zustimmen. Dies ist selten eine einfache Diskussion und normalerweise ist es einfacher, das Problem zu vermeiden.

2) Oft ist der Code für ein einzelnes Papier in eine größere Codebasis eingebettet, die in einem Labor entwickelt wird. Diese Codebasis wird andere unveröffentlichte Werke enthalten. Das Herausfiltern des Codes für ein einzelnes Projekt ist eine Menge Arbeit, oft ohne unmittelbaren Nutzen für die Leute, die diese Arbeit erledigen müssen (siehe Anreiz unten).

3) Universitäten haben häufig IP-Rechte an dem Code. Daher ist es notwendig, sich an ein "Innovationsbüro" zu wenden, das Ihnen das Leben unendlich schwer machen wird. Sie sollen die "Erfindung" dokumentieren, damit sie patentieren kann, usw., bevor Sie sie als Open-Source-Software verwenden. In einigen Fällen kann die Universität sogar die Erlaubnis zur Quellenfreigabe verweigern (dies variiert zwischen den Institutionen und wird durch (1) erheblich erschwert).

4) Viele Computergrafik-Forschungen werden von Unternehmen durchgeführt. In diesem Fall besitzen die Autoren den Code ebenfalls nicht und müssen die Erlaubnis der Anwälte einholen, um den Code freizugeben. Anwälte haben kaum einen Anreiz, Ja zu sagen.

5) Es besteht kein Anreiz, Code zu veröffentlichen. Der meiste Computergrafik-Forschungscode wird nie von jemand anderem verwendet. Selbst wenn dies der Fall ist, erhalten Sie für den allgemeinen Code in der Regel nur eine Bestätigung (im Hinblick auf Ihren Lebenslauf wertlos). Wenn Sie Glück haben, erhalten Sie ein Zitat. Einstellungskomitees und Grant-Agenturen kümmern sich im Allgemeinen nicht darum, ob Sie Ihren Code veröffentlicht haben. Zeit, die für das Vorbereiten des Codes für die Veröffentlichung aufgewendet wird, ist Zeitverschwendung, die für ein anderes Papier hätte aufgewendet werden können. (Es gibt Leute, die aktiv versuchen, dies in der Computergrafik zu ändern).

6) Es gibt Anreize , Code nicht zu veröffentlichen. Code kann sich manchmal in Startup-Unternehmen verwandeln, an bestehende Unternehmen lizenziert werden usw. Dies finanziert die zukünftige Forschung. Wir müssen alle essen.


# 2 ist sehr bedeutend. Es kann nicht nur sehr aufwändig sein, den für ein Dokument relevanten Code zu trennen, sondern wenn Sie dies einmal tun, werden Sie möglicherweise feststellen, dass dieser nicht mehr im Zusammenhang steht (dh nicht mehr mit den 100 anderen Tools, Bibliotheken und benutzerdefinierten Setups von das Labor), es ist im Wesentlichen wertlos und unmöglich zu verstehen oder zu verwenden. Darüber hinaus ist "Forschungscode" oft sehr spröde, er wurde nur so entwickelt, dass er den Sinn eines einzigen Papiers beweist, kein robustes Softwaresystem ergibt, und der Forscher hat weder Zeit noch Lust, ihn so zu reparieren, dass er etwas anderes als das ist ein schwerer Kopfschmerz für alle anderen.
Larry Gritz

5

Es hängt davon ab, ob. Eine Person, die eine Arbeit schreibt, oder ihr Vorgesetzter entscheiden, was mit dem Quellcode geschehen soll. Manchmal machen die Leute das Projekt zu einem Open Source-Projekt.

Manchmal werden Projekte in der Regel von Unternehmen finanziert, was bedeutet, dass sie Eigentum sind. In diesen Fällen darf der Autor des Papiers den Code nicht anzeigen.


3

Es ist normalerweise eine Frage der Seitenbeschränkungen. Wenn der Algorithmus übermäßig kurz ist, wird er im Papier häufig zumindest als Pseudocode dargestellt. Wenn andererseits die gedruckte Version des zugrunde liegenden Codes sogar eine Handvoll Seiten lang ist, würde das Drucken des Codes keinen Platz für das Fleisch des Artikels lassen. Ein zehnseitiger Zeitschriftenartikel ist ein langer Artikel.

Wenn die Quelle nicht zur Verfügung gestellt wird, kann dies zu Betrug führen. Aufgrund dieses Potenzials verlangen viele Zeitschriften jetzt, dass Autoren ihren Quellcode als zusätzliche Informationen einreichen (die Sie aus der Zeitschrift erhalten, wenn Sie Zugriff haben; möglicherweise fällt eine hohe Abonnementgebühr an). Einige andere Tagebücher verlangen von den Autoren, dass sie ihren Quellcode an jeden weitergeben, der danach fragt. Wieder andere Zeitschriften befinden sich noch im dunklen Zeitalter; Der Quellcode ist für die Einreichung nicht erforderlich, und die Autoren müssen ihn nicht freigeben.

Am einfachsten ist es, die Autoren zu fragen, ob sie Ihnen den Quellcode zur Verfügung stellen können. Die E-Mail-Adressen der Autoren werden heutzutage in der Regel in den meisten Fachzeitschriften aufgeführt.


1
Ich denke, der Quellcode, der zur Überprüfung zur Verfügung steht, erfordert nicht, dass der vollständige Text in der aktuellen Veröffentlichung enthalten ist einen echten Fehler begehen. Vor allem, wenn die Programmierer Wissenschaftler und keine Programmierer wären!
Andres F.

3

Meine Erfahrung als Wissenschaftler (5 Veröffentlichungen) zeigt, dass das Journal den Code, der zur Erstellung der Ergebnisse verwendet wurde, oftmals nicht veröffentlichen muss. Das heißt nicht, dass Zeitschriften die Skripte nicht akzeptieren würden. Viele Zeitschriften erlauben Online-Zusatzmaterial. Bei einigen auf Algorithmen und dergleichen ausgerichteten Zeitschriften (z. B. Computer und Geowissenschaften) müssen Sie die Quelle eines Algorithmus hinzufügen. Dies ist jedoch eher eine Ausnahme als eine Regel.

Neben der Kultur in den Zeitschriften ist Code für Wissenschaftler nur ein Mittel zum Zweck. Viele sind keine professionellen Softwareentwickler. Da viele den Code nur als Werkzeug zum Ausdrücken von Wissenschaft betrachten, empfinden sie nicht die Dringlichkeit, den Code auch zu veröffentlichen. Darüber hinaus ist es sehr aufwändig, Ihren Code so zu optimieren, dass er veröffentlicht werden kann. Ein Wissenschaftler wird dafür bezahlt, Wissenschaft zu betreiben und keine Software zu schreiben.


Aber Software ist in gewisser Weise der Beweis. Darum geht es in der Informatik: Programme sind Beweise. Ich denke, dies ist entweder ein Fall von zu geringem Vertrauen in die Ergebnisse oder ein kulturelles Missverständnis darüber, wie wichtig es ist, einen funktionierenden Beweis für Ihre Forschung zu erbringen.
Andres F.

1
Ich habe nicht über Informatik gesprochen, sondern über mehr Wissenschaft im Allgemeinen. In der theoretischen CS arbeiten viele Menschen in einem mathematischen Sinne an Algorithmen und Beweisen. Software ist nur eine Implementierung, ein nachträglicher Gedanke.
Paul Hiemstra

Wenn Ihr Code eine Fußnote im Papier ist, stimme ich zu. Wenn es sich um eine Art Verifikation handelt und einen eigenen Abschnitt hat, wie klein er auch sein mag, dann IST es Teil des Beweises oder zumindest der Validierung. Wenn Sie den Code nicht veröffentlichen, ist er eindeutig nicht relevant und Sie können auch jede Erwähnung aus Ihrem Beitrag entfernen!
Andres F.

2

Meistens ist das eigentliche Programm nur ein Werkzeug, um zum Ende zu gelangen, und nicht das eigentliche Produkt. Umfassende Informationen zum Quellcode zu erhalten, ist vergleichbar mit einer vollständigen Zeichnung des Stifts, der zum Signieren des Berichts verwendet wird, und / oder den Schaltplänen des PCs.

Vor allem, wenn Peer Reviewing eingeladen wird, wird der Quellcode verfügbar sein - obwohl dies in irgendeiner Form durch eine Geheimhaltungsvereinbarung (Non Disclosure Agreement, NDA) geregelt ist -, da das Programm inhärent geistiges Eigentum enthält.

Wenn Sie wirklich an dem Code interessiert sind, schlage ich vor, dass @Buttons Kommentar der beste Rat ist: Fragen Sie sie :)


1

Viel hängt von dem Zweck ab, für den der Code geschrieben wurde. Wenn es darum ging, einen Punkt zu demonstrieren, könnte es gut sein, dass er nicht optimiert ist und daher nicht ideal, dass er veröffentlicht wird. Wenn die zugrunde liegenden Konzepte und Methoden gültig sind, sollte es möglich sein, das Ergebnis des Codes von Grund auf neu zu erstellen. Es kann auch Probleme mit dem Urheberrecht und dem Eigentum geben.

Grundsätzlich ist es technisch nicht unmöglich, den Code freizugeben, die Gründe, aus denen er möglicherweise nicht freigegeben wird, sind jedoch unterschiedlich. Aus diesem Grund gibt es wahrscheinlich keine einfache Antwort auf diese Frage. In bestimmten Fällen können Sie die betreffenden Forscher fragen.


1

Das von Ihnen zitierte Papier umfasst bereits 28 Seiten, und der größte Teil des Inhalts befasst sich mit den Entwurfsentscheidungen, die mit der Lösung des Problems zusammenhängen (siehe Titel).

Der Code ist der letzte Schritt zur Validierung des Designs. Es ist nicht trivial, aber es ist nicht der Teil, der einen Mehrwert für die Ergebnisse des Papiers darstellt, insbesondere wenn Sie den Platz in Betracht ziehen, den es in Anspruch nehmen würde.

Nicht jeder Fall ist der gleiche. Einige Veröffentlichungen geben Quellcode oder zumindest Pseudocode an. Einige Redakteure erlauben es nicht. Einige erlauben es, aber aus Platzgründen schließen die Autoren es nicht ein. Eine Zeitschrift, in der ich den Quellcode veröffentlichte, formatierte ihn als "Zahlen" und die elektronische Version enthält ihn als Bilddaten, obwohl ich ihn als Text eingereicht habe.


1

Anreize sind wichtig, und die Anreize für Forscher bestehen im Allgemeinen darin, sicherzustellen, dass sie einen stetigen Strom von Papieren produzieren können, die schrittweise aufeinander aufbauen. Graduierten benötigen in der Regel 3-5 veröffentlichte Arbeiten, die sie in einzelne Kapitel ihrer Abschlussarbeit umwandeln können, um ihren Abschluss zu machen. Die Juniorfakultät muss so viele Publikationen wie möglich erstellen, bevor sie ihre Amtszeit überprüft. Aus diesem Grund handelt es sich bei den meisten akademischen Arbeiten tatsächlich um Papier neiner Reihe. Der Artikel, auf den Sie verweisen, baut beispielsweise auf einem Artikel derselben Gruppe auf, der ein Jahr zuvor veröffentlicht wurde, und erläutert den Grund, den der nächste Artikel wahrscheinlich abdecken wird.

Durch die Veröffentlichung des Quellcodes kann möglicherweise ein anderer Forscher in einer anderen Gruppe Papier produzieren n+1bevor der ursprüngliche Autor einen Artikel verfasst oder zumindest erstellt, der einen erheblichen Teil des Bodens abdeckt, den der Autor als Teil dieses Forschungsstroms erwartet hatte. In diesem Fall könnte der Doktorand leicht feststellen, dass er weitere 6 bis 12 Monate in der Graduiertenschule verbringt, um genügend Forschungsergebnisse für den Abschluss zu erzielen. Das Fakultätsmitglied hat möglicherweise eine Veröffentlichung weniger, wenn es Zeit für eine Amtszeitüberprüfung gibt. Beides ist offensichtlich ein schwerer Schlag für die Karriere des Forschers. Hinzu kommt, dass akademische Anwendungen häufig Teil der Forschungsbemühungen mehrerer Personen in einer Forschungsgruppe sind (entweder direkt oder weil sie bestimmte Komponenten gemeinsam nutzen), und dass innerhalb der Forschungsgruppe der Druck besteht, keinen Code zu veröffentlichen, der letztendlich jemanden verletzt, der dies tut Sie arbeiten jeden Tag mit.

In Bereichen, in denen das Sammeln von Rohdaten zeitaufwändig und stark verteilt ist, kommt es häufig zu ähnlichen Diskussionen. In der Astronomie beispielsweise kann eine Forschungsgruppe Jahre damit verbringen, Daten zu sammeln, bevor sie über genügend Informationen verfügt, um eine Arbeit zu veröffentlichen. Aber sie werden diese Daten dann verwenden, um eine Reihe von Papieren zu produzieren. Forschergruppen geben nur sehr ungern mehr Daten als unbedingt erforderlich weiter, da es für andere Gruppen zu einfach wird, die Zeit, die für die Datenerfassung aufgewendet wurde, freizugeben, um die Vorteile einer tatsächlichen Datenanalyse zu nutzen.

Irgendwann wird ein Großteil dieses Codes veröffentlicht, genau wie die astronomischen Daten schließlich veröffentlicht werden. Das kommt oft vor, wenn der Autor das Ende dieser Reihe von Artikeln erreicht oder wenn die meisten Forschungsgruppen, die an ähnlichen Themen arbeiten, ähnliche Engines haben, so dass die Veröffentlichung des Codes einem neuen Forscher keinen Wettbewerbsvorteil mehr verschafft.

Für die Wissenschaft wäre es ideal, wenn die Daten und der Code schneller freigegeben würden. Aber das schadet dem wissenschaftlichen Forscher oft, und genau darum geht es in diesem Fall.


"Durch die Veröffentlichung des Quellcodes kann möglicherweise ein anderer Forscher in einer anderen Gruppe Papier n + 1 erstellen, bevor der ursprüngliche Autor dies tut, oder zumindest ein Papier erstellen, das einen erheblichen Teil des Grundes abdeckt, den der Autor als Teil davon erwartet hatte Forschungsstrom. " Das hört sich für mich nicht so einfach an. Die meisten Leute (auch ich) hätten Schwierigkeiten, die Art von Code zu verstehen, die Forscher schreiben, ohne die Hilfe der Autoren, geschweige denn, sie zu erweitern. Kennen Sie Fälle, in denen dies tatsächlich passiert ist?
Faheem Mitha

1

Als jemand, der dies (auf der Seite der Studenten) in der Vergangenheit mehrmals getan hat : Oft sehen die Professoren, die die Arbeit schreiben, den Quellcode selbst nicht einmal. Sie lassen den Code von ihren Studenten schreiben und fragen erst dann nach der endgültigen ausführbaren Datei (oder auch nur nach einer Bestätigung des Ergebnisses), wenn diese vollständig ist.

Außerdem ist der geschriebene Code oft sowieso nicht gut lesbar, weil die Studenten ihn nur zusammen gehackt haben, um ihn zu erledigen, und weil (obwohl sie sehr intelligent sind) Studenten ohne echte Erfahrung in der Regel nicht die besten Programmierer der Welt sind ...


1

Die meisten Gründe, die mir einfallen, wurden hier bereits angesprochen, aber ich dachte, ich würde zwei weitere hinzufügen, die mir tatsächlich passiert sind:

Das Tagebuch hat keine Ahnung, was zu tun ist .

Für eines der Papiere, an denen ich arbeitete, entschied ich, dass ich ohne Frage den Quellcode (der Hauptzweck des Papiers war die Datenvisualisierung) und die dazugehörigen Beispieldaten enthalten würde. Also habe ich zusammen mit der Einreichung die elektronischen Ergänzungen 1 und 2 angehängt - ein R-Skript mit meinem Code und eine CSV-Datei mit den Daten, die für das R-Skript benötigt werden.

Wie sich herausstellt, kann das Tagebuch nur elektronische Beilagen aufnehmen, wenn diese in Word-Dateien gespeichert wurden. Nachdem ich fast einen Tag lang versucht hatte, das R-Skript in dieser Form zu erhalten, gab ich es auf und entschloss mich, den Code nicht als Ergänzung aufzunehmen. Ich hätte es an meiner Universität ausrichten können, aber als Doktorand wusste ich, dass ich dort in ~ 1 Jahr meinen Account verlieren würde - Open Source ist nicht von Nutzen, wenn es sofort mit Linkrot überholt wird.

Ich habe es letztendlich auf GitHub gehostet und einen Verweis darauf in die Zeitung gesetzt, aber das lag daran, dass ich wirklich wollte, dass der Code reinkommt zu entscheiden, dass die Mühe nicht die Handvoll Leute wert sein würde, die sie herunterladen und mir trotzdem eine E-Mail schicken könnten, wenn sie es wirklich wollen.

Das Tagebuch ist einfach nicht interessiert

Ich habe einige kleine Details über den Code selbst auf Anfrage eines Rezensenten in ein Papier eingefügt, aber es ist ein klinisches Journal (gelesen: kein Code), es erlaubt keine elektronischen Ergänzungen, und das Hinzufügen des Quellcodes wäre wahrscheinlich gewesen mehr Mühe als es wert war.

Wenn jemand Ironischerweise haben gehen auf der Suche nach dem Code, ist es (oder werden es bald sein) Open Source, aber ich war schon läuft am Rande des ‚Diese wächst distractingly technischen‘ und ich beschlossen , dass die kurze, ‚der Rezensent machen glücklich Erwähnung war alles, was ich tun würde.


0

Oft ist die Implementierung (dh die Software spielt keine Rolle), aber zunehmend wirkt sich die Implementierung auf die Ergebnisse aus.

Immer wenn es auf die Implementierung ankommt ... sollte der Quellcode auf jeden Fall zur Verfügung gestellt werden! Je mehr die Ergebnisse von der Implementierung oder den Berechnungsmethoden abhängen, desto wichtiger wird es, den Quellcode zu veröffentlichen.


Über wen / wo wird der Quellcode gespeichert. Idealerweise speichert die Zeitschrift, in der der Artikel veröffentlicht wird, den gesamten Quellcode. Viele der wichtigsten Zeitschriften speichern jedoch nicht sowohl den Artikel als auch den Quellcode. IMO: Wenn das Journal nicht in der Lage ist, den gesamten Quellcode zu speichern, ist der Autor dafür verantwortlich, einen webadressierbaren Speicherort für den Quellcode zu finden.
Trevor Boyd Smith

0

Ich möchte ein paar Punkte zur Art des Codes hinzufügen, mit dem ich als Chemiker (Chemiker, der Datenanalysen durchführt) zu tun habe:

  • Menschen, die Datenanalysecode schreiben (wie ich), sind vergleichsweise wenige im Vergleich zu den Menschen, die diesen Code verwenden. "Eigener Code" bedeutet nicht, dass die Autoren ihn geschrieben haben - es könnte sich um den Code von Kollegen handeln, sodass die Autoren ihn nicht veröffentlichen können.

  • Möglicherweise ist eine separate Veröffentlichung des Codes geplant, und der Autor des Codes (oder der Vorgesetzte) kann besorgt sein, dass die Neuheit verloren geht, wenn der Code (teilweise) zuvor veröffentlicht wurde.
    Auch wenn die Zeitschrift, für die die Veröffentlichung von Code bestimmt ist, keine Einwände gegen die Veröffentlichung von Code erhebt, kann die bloße Sorge des Vorgesetzten (oder einer Person im IP Office) ausreichen, um die Veröffentlichung des Codes zu stoppen.

  • Datenanalysecode wird häufig auf die Daten zugeschnitten. Ohne die Daten macht es nicht allzu viel Sinn. (Sie können argumentieren, dass die Daten sowieso veröffentlicht werden sollten, aber das ist hier eine andere Frage und ein anderes Thema.)
    Auf irgendeine Weise archivieren wir an meinem Institut Rohdaten und Datenanalysecode zusammen mit dem Papier. In der Standardrichtlinie ist (noch?) Nicht festgelegt, dass sie öffentlich verfügbar sein sollen, sie sind jedoch auf Anfrage erhältlich.

  • (Die traditionelle Sicht auf die Reproduzierbarkeit in der Chemie entspricht eher einer Beschreibung (möglicherweise Pseudocode) des Algorithmus als dem Versand des eigentlichen Quellcodes.)

  • Viele meiner Kollegen verwenden interaktive Tools für ihre Datenanalyse, die die Schritte der Datenanalyse nicht protokollieren. Es gibt also keinen Quellcode , der veröffentlicht werden könnte. Die Datenanalyse entspricht weniger einer Programmierung als einem Laboransatz: Sie tun Dinge und schreiben auf, was Sie tun und was Sie in Ihrem Laborbuch beobachten.


Diese Antwort ist aus Sicht der Datenanalyse eher eine bestimmte Nische. Da diese Frage jedoch von academia.SX gestellt wird, können auch Nicht-Informatiker mitlesen.
Glaube
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.