Prace naukowe w informatyce naukowej (i obecnie wiele innych dziedzin) zazwyczaj zawierają pewną ilość kodu lub nawet całe pakiety oprogramowania, które zostały napisane specjalnie dla tego artykułu lub zostały użyte do uzyskania wyników w pracy. Jaki jest najlepszy sposób, aby pomóc czytelnikom tego dokumentu uzyskać dostęp do kodu? Moje obecne podejście polega na umieszczeniu linku do repozytorium Github (wraz z konkretnym znacznikiem wersji) w gazecie lub w cytacie.
publications
David Ketcheson
źródło
źródło
Odpowiedzi:
Myślę, że masz kilka opcji.
W każdym lub we wszystkich tych przypadkach należy jednak wyraźnie wskazać źródło w artykule i wskazać, jaki to rodzaj licencjonowania (GPL, Creative Commons itp.), Aby uniknąć problemów związanych z IP.
źródło
Świetne pytanie i świetne odpowiedzi, ale myślę, że nikt nie odnosi się odpowiednio do kwestii wytrwałości, jeśli celem jest osiągnięcie tego samego standardu, który przyznano samej publikacji. (Co może być głupie, biorąc pod uwagę szanse, że kod nadal działa , ale może być co najmniej tak samo przydatne, jak publikacja mimo wszystko).
Dodatki do czasopism na uniwersytetach nie są trwałe
Witryny uniwersyteckie raczej nie zapewnią stabilności ani nadmiarowości w celu zachowania hostowanych treści. Treść jest trudniejsza do cytowania i zazwyczaj brakuje metadanych do odczytu maszynowego.
Niestety wydaje się, że czasopisma nie radzą sobie znacznie lepiej w utrzymywaniu swoich materiałów uzupełniających (patrz Anderson i in. 2006 ) i mogą nie przyjmować niezbędnych formatów, a nawet w ogóle przyjmować materiały uzupełniające (patrz jeden znaczący przykład ).
Z tych powodów ludzie zajmujący się długoterminową archiwizacją danych jednogłośnie zwrócili się w kierunku korzystania z dedykowanych repozytoriów zamiast stron internetowych lub materiałów uzupełniających, a wiele czasopism nakazuje obecnie tę praktykę . Wydaje się słuszne, aby kod był zgodny z tym standardem.
Rozwiązanie wielu kopii?
Github i powiązane strony muszą jeszcze udowodnić długowieczność na przestrzeni setek lat, osiągniętą przez biblioteki uniwersyteckie i uznanych wydawców. Ułatwiając szeroką dystrybucję, może zapewnić rozwiązanie, które inni wyrazili w komentarzach, w tym jeden, który nie mógł komentować stackexchange,
Figshare i standard CLOCKSS
Jedynym znanym mi standardem archiwizacji jest figshare , który może akceptować pełne repozytoria kodu (na razie jako „zestawy plików”, ale wierzę, że wkrótce będzie można je wymienić jako „kod”). Kluczowym elementem figshare jest nie tylko cytowany DOI z programowymi metadanymi, ale także wsparcie usługi archiwalnej CLOCKSS , która utrzymuje kopie całej swojej zawartości w 12 geograficznie i geopolitycznie rozmieszczonych węzłach na całym świecie. Jeśli figshare przestanie działać lub przestanie istnieć, spowoduje to, że cała jego zawartość będzie swobodnie dostępna w CLOCKSS.
W związku z tym sugerowałbym użycie Github do dystrybucji kodu, ale także zapewnienie kopii archiwalnej dla figshare w momencie publikacji.
źródło
Możesz użyć fantazyjnych technik pdf, aby po prostu dołączyć kod do pliku pdf (to znaczy, że pliki kodu są osadzone w pliku pdf i można je „pobrać” za pomocą kliknięcia przycisku w pliku pdf). Można to osiągnąć na przykład za pomocą pakietu attachfile . Oczywiście działa to z wydrukami wstępnymi (chociaż nie wiem, czy już działa z arxivem), ale prawdopodobnie masz problemy z plikami dziennika ...
źródło
W przypadku małych skryptów specyficznych dla konkretnego projektu badawczego najlepszym miejscem do publikacji jest strona internetowa czasopisma jako „informacja uzupełniająca” do artykułu. Tam najłatwiej jest znaleźć kogoś, kto czyta artykuł.
Bardziej znaczące pakiety, które mogą zainteresować również inne projekty, powinny być lepiej publikowane osobno. Niestety w tej chwili nie ma naprawdę dobrego rozwiązania. Idealnie byłoby, gdyby publikacja kodu była stale dostępna za pośrednictwem DOI, tak jak papier, ale nie znam żadnej strony hostingowej, która rozdawałaby DOI i gwarantowała ich trwałość. Publiczne repozytoria, takie jak Github lub Bitbucket, są na razie najlepszym wyborem.
Najlepszym rozwiązaniem byłoby opublikowanie papieru z kodem i danych z nim związanych, ale nie jest to jeszcze technicznie wykonalne. Pracuję nad prototypem badawczym badającym ten pomysł, zobacz tę stronę, aby uzyskać szczegółowe informacje.
źródło
Podjąłem dwie taktyki, które wynikają z tego, że wkrótce spodziewam się zmiany instytucji, więc mój uniwersytecki adres URL nie jest stabilny.
Kiedy kod jest stosunkowo krótki, próbowałem dołączyć go jako dodatek do samego czasopisma, zakładając, że prawdopodobnie wykonają przyzwoitą robotę, trzymając papier i kod mniej więcej w tym samym miejscu. Jest to szczególnie przydatne w przypadku kodu, w którym nie ma dużej liczby ogólnych zainteresowań - kodu, który jest nieco bezużyteczny bez omawianego papieru zapewniającego kontekst.
Ale w przypadku kodu źródłowego, faktycznego oprogramowania i bardziej skomplikowanych projektów lub projektów będących przedmiotem ogólnego zainteresowania podążałem za twoją taktyką łączenia się z repozytorium GitHub, które powinno być przynajmniej stabilne przez średni okres produktywności moich artykułów.
źródło
Spójrz na http://www.runmycode.org . Są gospodarzem stron towarzyszących dla kodu związanego z artykułami badawczymi. Jeśli kod to R, Matlab lub kilka innych, faktycznie uruchomi kod dla Ciebie. Jeszcze tego nie próbowałem, ale zamierzam. Myślę, że David Donoho i jego współpracownicy go używają.
źródło
Biblioteki uniwersyteckie mogą być miejscem dla tego lub ośrodkiem uniwersyteckim.
źródło
Jako czytelnik skuteczne byłoby stwierdzenie w artykule, że kod można uzyskać, kontaktując się bezpośrednio z autorem. Jako autor może to pomóc w promowaniu współpracy i dać mi możliwość przypomnienia ludziom, aby zacytowali mój artykuł, jeśli używają kodu w swojej pracy.
źródło