प्रकाशनों के लिए कोड कैसे लिंक करें


40

वैज्ञानिक कंप्यूटिंग में विद्वानों के कागजात (और कई अन्य क्षेत्रों में, आजकल) आम तौर पर कुछ मात्रा में कोड या पूरे सॉफ्टवेयर पैकेज शामिल होते हैं जो विशेष रूप से उस कागज के लिए लिखे गए थे या कागज में परिणाम प्राप्त करने के लिए उपयोग किए गए थे। कोड तक पहुँचने में पेपर के पाठकों की मदद करने का सबसे अच्छा तरीका क्या है? मेरा वर्तमान तरीका कागज में या एक उद्धरण में एक जीथुब भंडार (एक विशेष संस्करण टैग के साथ) के लिए एक लिंक डालना है।


2
कोड साझा करना एक महान विचार है और इसे और अधिक किया जाना चाहिए। मुझे पता है कि मैं एक पेपर के लिए प्रासंगिक कोड प्रदान करने में बेहतर हो सकता हूं। एक Github रेपो एक अच्छा समाधान की तरह लगता है। निश्चित रूप से एक परिशिष्ट में स्रोत कोड को शामिल करने से बेहतर है, जिसे मैंने छोटे कोडिंग प्रयासों के लिए देखा है।
बैरन

4
यह एक संबंधित एमओ सवाल है।
जेएम

@ जेएम धन्यवाद, एमओ पर जवाब बहुत अच्छे हैं!
डेविड केचेसन

ध्यान दें कि आप
gyub

1
@denfromufa दुर्भाग्य से, जीथूब ने मठजैक्स को निष्क्रिय कर दिया है, इसलिए गणित का प्रतिपादन नहीं किया गया है। यह सबसे प्रासंगिक क्षेत्रों के लिए बहुत बेकार बना देता है। लेकिन हमेशा nbviewer होता है।
डेविड केचेसन 18

जवाबों:


17

खैर, मुझे लगता है कि आपके पास कुछ विकल्प हैं।

  1. यदि आपके पास एक स्थिर पृष्ठ है - जैसे कि एक विश्वविद्यालय या अन्य गैर-लाभकारी संस्थान द्वारा प्रायोजित, जो जल्द ही गायब होने की संभावना नहीं है - तो आप वहां प्रकाशित कर सकते हैं।
  2. आप कोड वितरित करने के लिए जीथब या बिटबकेट या सोर्सफॉर्ज जैसी सेवा का उपयोग कर सकते हैं।
  3. यदि कोड सीमांत सामान्य मूल्य का है (यह शर्तों के एक विशिष्ट सेट के लिए एक विश्लेषण कोड है, आदि), तो आप उस कोड को "पूरक जानकारी" के रूप में उपलब्ध करा सकते हैं जो उस पेपर के साथ डाउनलोड करता है जिसमें आप इसका उपयोग करते हैं।
  4. आप ऊपर के कुछ संयोजन का उपयोग कर सकते हैं।

हालांकि, इन सभी मामलों में, आपको लेख में स्पष्ट रूप से सोर्सिंग का संकेत देना चाहिए, और यह इंगित करना चाहिए कि यह किस प्रकार का लाइसेंस है (जीपीएल, क्रिएटिव कॉमन्स, आदि), ताकि लाइन से नीचे आईपी से संबंधित कोई समस्या न हो।


6
मुझे लगता है कि किसी को जीवित रहने के लिए सबसे अधिक संभावित स्थान पर और यदि संभव हो तो कई स्थानों पर एक कोड डालना चाहिए। उदाहरण के लिए, होस्टिंग सेवाओं की तुलना में विश्वविद्यालय के पृष्ठों के जीवित रहने की संभावना कम है। पत्रिका होने के नाते कुछ स्नैपशॉट उपलब्ध है और साथ ही समझ में आता है। दुर्भाग्य से, कोई भी पत्रिका जिसे मैं रिपॉजिट होस्टिंग के बारे में नहीं जानता हूं।
फहीम मीठा

1
एक छात्र को शायद व्यक्तिगत होम पेज पर सॉफ़्टवेयर नहीं डालना चाहिए; हालाँकि, मैं तर्क दूंगा कि एक विशिष्ट शोध कोड के लिए, संभवतः किसी बाहरी समूह की तुलना में अनुसंधान समूह से जुड़े पृष्ठ पर वितरित करने से अधिक प्राप्त किया जा सकता है, जहाँ पर अटेंशन खो जाने की संभावना है। पत्रिकाओं के लिए, यह सच है कि वे रिपॉजिटरी होस्टिंग नहीं करते हैं। हालांकि, मुझे लगता है कि अनुसंधान कोड के रूप में "पूरक जानकारी" होने की क्षमता जिम्मेदार वैज्ञानिक सॉफ्टवेयर विकास की अधिकांश आवश्यकताओं को संतुष्ट करती है। (अगर जरूरत हो।)
aeismail

मेरी भावना यह है कि विश्वविद्यालय के पृष्ठों को नियमित होस्टिंग साइटों की तुलना में खो जाने की अधिक संभावना है। बेशक, आजकल जो भी होस्टिंग साइटें लोकप्रिय हैं (बिटबकेट, गिथब, गूगल कोड) उस समय के आसपास नहीं थीं। दूसरी ओर, उदाहरण के लिए Sourceforge कुछ समय के लिए आसपास रहा है।
फहीम मीठा

अन्य मुद्दों के बारे में पता होना चाहिए; आईपी ​​चिंताओं और विश्वविद्यालय या सरकारी नियमों के रूप में अच्छी तरह से भंडार का विकल्प नियंत्रित कर सकते हैं। लेकिन प्रतिवाद यह है कि कई कोड ( एनएएमडी एक प्रमुख उदाहरण हैं) जिनके पास विश्वविद्यालय के स्वामित्व वाली साइटों पर सफल वितरण है। सामान्य तौर पर, कोड का "महत्व" यह निर्धारित करेगा कि यह कितना दृश्यमान है। मुझे संदेह है कि एक महत्वपूर्ण उपयोगकर्ता आधार विकसित करने वाला कोड कभी भी पूरी तरह से गायब हो जाएगा।
आइज़्मेल

1
यह सच है, लेकिन अगर कोड अस्पष्ट है, तो इसका मतलब यह नहीं है कि अगर यह गायब हो जाता है तो यह ठीक है। और एक उम्मीद करेगा कि अधिकांश वैज्ञानिक कोड एक मुफ्त लाइसेंस के तहत और अनुचित प्रतिबंध के बिना होंगे। मेरा मानना ​​है कि उदाहरण के लिए NIH अब NIH (करदाता) के धन से विकसित कार्य के लिए इसे अनिवार्य कर रहा है। मुझे लगता है कि सभी करदाताओं द्वारा वित्त पोषित परियोजनाओं के लिए यही होना चाहिए।
फहीम मीठा

8

महान सवाल और महान जवाब, लेकिन मुझे लगता है कि कोई भी दृढ़ता के सवाल को पर्याप्त रूप से संबोधित नहीं करता है, अगर लक्ष्य प्रकाशन के लिए उसी मानक को प्राप्त करना है। (जिसे मूर्खतापूर्ण तरीके से कोड अभी भी चलता है दिया जा सकता है , लेकिन अभी भी कम से कम उपयोगी हो सकता है क्योंकि प्रकाशन सभी समान है)।

विश्वविद्यालय की वेबसाइट जर्नल की खुराक लगातार नहीं हैं

विश्वविद्यालय की वेबसाइट होस्ट की गई सामग्री को संरक्षित करने के लिए स्थिरता या अतिरेक प्रदान करने की संभावना नहीं है। सामग्री को उद्धृत करना अधिक कठिन है और आमतौर पर मशीन पठनीय मेटाडेटा का अभाव है।

दुर्भाग्य से ऐसा प्रतीत होता है कि पत्रिकाएं अपनी पूरक सामग्री ( एंडरसन एट अल। 2006 ) को बनाए रखने में बहुत बेहतर नहीं कर रही हैं , और आवश्यक स्वरूपों को स्वीकार नहीं कर सकती हैं, या पूरक सामग्री को बिल्कुल भी स्वीकार नहीं कर सकती हैं ( एक उल्लेखनीय उदाहरण देखें )।

इन कारणों के लिए, डेटा के दीर्घकालिक संग्रह से संबंधित लोग सर्वसम्मति से वेबसाइटों या पूरक सामग्री के बजाय समर्पित रिपॉजिटरी के उपयोग की वकालत करने की ओर बढ़ गए हैं, और कई पत्रिकाओं ने अब इस अभ्यास को जनादेश दिया है । यह केवल उचित लगता है कि कोड को इस मानक पर रखा जाए।

कई प्रतियों का समाधान?

यूनिवर्सिटी लाइब्रेरी और स्थापित प्रकाशकों द्वारा हासिल किए गए 100 से अधिक वर्षों के पैमाने पर जीथूब और संबंधित साइटों को अभी तक दीर्घायु साबित करना है। व्यापक वितरण की सुविधा से, यह एक ऐसा समाधान प्रदान कर सकता है जो दूसरों ने टिप्पणियों में प्रतिध्वनित किया है, जिसमें एक साथी भी शामिल है, जो स्टैकचेक पर टिप्पणी नहीं कर सकता है,

... आइए हम बचाते हैं कि क्या रहता है: वाल्टों और तालों से नहीं, जो उन्हें जनता की नज़र से निकालते हैं और उन्हें समय की बर्बादी करने के लिए उपयोग करते हैं, लेकिन प्रतियों के ऐसे गुणा से, जैसा कि उन्हें दुर्घटना की पहुंच से परे रखेगा।

- थॉमस जेफरसन, 18 फरवरी, 1791

Figshare और क्लिप मानक

एकमात्र अभिलेखीय मानक जिसके बारे में मुझे पता है, वह है फिग्सरे , जो इस समय के लिए पूर्ण कोड रिपॉजिटरी ("फाइलसेट" के रूप में स्वीकार कर सकता है, लेकिन मेरा मानना ​​है कि जल्द ही टाइप "कोड" के रूप में सूचीबद्ध होने का विकल्प होगा)। फ़िगशेयर का मुख्य टुकड़ा न केवल प्रोग्रामेटिक मेटाडेटा के साथ citable DOI है, बल्कि CLOCKSS अभिलेखीय सेवा का समर्थन है , जो दुनिया भर में 12 भौगोलिक और भौगोलिक-राजनीतिक रूप से वितरित की गई अपनी सभी सामग्री की प्रतियों को रखता है। क्या फ़िगसहेयर को व्यापार से बाहर जाना चाहिए या बंद होना चाहिए, इससे उसकी सारी सामग्री स्वतंत्र रूप से उपलब्ध हो जाएगी।

नतीजतन, मैं Github का उपयोग कोड के वितरण के लिए करना चाहूंगा, लेकिन प्रकाशन के समय अंजीर को एक अभिलेखीय प्रति भी प्रदान करना।


1
figshare एक बेहतरीन कदम है, हालांकि CC-BY लाइसेंस एक सॉफ्टवेयर लाइसेंस नहीं है, और मुझे नहीं पता कि कितने वैज्ञानिक CC0 के तहत अपना कोड जारी करने के लिए तैयार हैं, इसलिए यह पता करने के लिए एक मुद्दा है। मैं सराहना करता हूं कि वे DOI और CLOCKSS का उपयोग करते हैं, हालांकि, यह बहुत अच्छा है।
एरन अहमदिया

हाँ, लाइसेंस के बारे में महान बिंदु अभी भी कुछ समस्याग्रस्त है, विशेष रूप से अधिक पूर्ण विकसित सॉफ़्टवेयर के लिए। एक विश्लेषण को दोहराने के लिए स्क्रिप्ट के लिए मैं देख सकता था CC0 अधिक उपयुक्त है।
cboettig

व्यापक दर्शकों के लिए Google कोड थोड़ा बेहतर हो सकता है क्योंकि आपके पास सारांश, चित्र, DOI लिंक, खोज में उच्च दृश्यता आदि के साथ एक अच्छा वेबपेज हो सकता है। आपको निश्चित रूप से डाउनलोड अनुभाग में एक tgz डालना चाहिए और सामने पृष्ठ पर एक लिंक प्रदान करना चाहिए। याद रखें कि अधिकांश गैर-डेवलपर्स भी संस्करण नियंत्रण से परिचित नहीं हैं, अकेले git / hg दें। तोड़फोड़ के रूप में दूर के रूप में मैं एक व्यापक दर्शकों के लिए जाना जाता है।
stali

1
@stali याद करते हैं कि github gh-pages और डाउनलोड से डाउनलोड करने योग्य टैरोबॉल के माध्यम से रिपॉजिटरी के लिए कस्टम वेबपेजों का भी समर्थन करता है । लेकिन न तो Google और न ही Github कोड के लिए एक अलग DOI प्रदान करते हैं , और न ही कंपनी के जीवन से परे अभिलेखीय दीर्घायु को संबोधित करते हैं।
cboettig

4

आप कोड को पीडीएफ में संलग्न करने के लिए कुछ फैंसी पीडीएफ-तकनीकों का उपयोग कर सकते हैं (यानी, कोड-फाइलें पीडीएफ में एम्बेडेड हैं और पीडीएफ में कुछ बटन पर एक क्लिक के साथ "डाउनलोड" किया जा सकता है)। यह अटैचमेंट पैकेज के साथ पूरा किया जा सकता है , उदाहरण के लिए। बेशक, यह प्रीप्रिंट्स के साथ काम करता है (हालांकि मुझे नहीं पता कि क्या यह पहले से ही arxiv के साथ काम करता है) लेकिन आपको शायद जर्नल-फाइलों के साथ समस्याएं आती हैं ...


बहुत ही शांत! मुझे नहीं पता था कि LaTeX ऐसा कर सकता है।
क्वेटी

4

छोटी लिपियों के लिए जो एक विशिष्ट शोध परियोजना के लिए विशिष्ट हैं, प्रकाशन के लिए सबसे अच्छी जगह पत्रिका की वेब साइट है, कागज के लिए "पूरक जानकारी" के रूप में। यह वह जगह है जहां लेख पढ़ने वाले किसी व्यक्ति के लिए ढूंढना सबसे आसान है।

अधिक पर्याप्त पैकेज जो अन्य परियोजनाओं के लिए रुचि रखते हैं, उन्हें अलग से बेहतर प्रकाशित किया जाना चाहिए। दुर्भाग्य से इस समय कोई अच्छा समाधान नहीं है। आदर्श रूप से, एक कोड प्रकाशन एक कागज की तरह, एक DOI के माध्यम से स्थायी रूप से सुलभ होगा, लेकिन मुझे किसी भी होस्टिंग साइट के बारे में पता नहीं है जो DOI को सौंपता है और उनके स्थायित्व की गारंटी देता है। Github या Bitbucket जैसी सार्वजनिक रिपॉजिटरी शायद अब के लिए सबसे अच्छी शर्त हैं।

सबसे अच्छा समाधान कोड के साथ पैक किए गए पेपर और इसके साथ जाने वाले डेटा को प्रकाशित करना होगा, लेकिन यह अभी तक तकनीकी रूप से संभव नहीं है। मैं इस विचार की खोज करने वाले एक शोध प्रोटोटाइप पर काम कर रहा हूं, विवरण के लिए इस साइट को देखें।


1
ActivePapers के लिए +1। मुझे नहीं लगता कि यह अब मेरी जरूरतों को पूरा करता है, लेकिन मुझे किसी को समाधान पर काम करते हुए देखकर खुशी होती है!
डेविड केचेसन

figshare DOIs प्रदान करता है: figshare.com/blog/…
जेरोमी एंग्लिम

3

मैंने दो रणनीति अपनाई हैं, इस तथ्य से पैदा हुआ कि मैं जल्द ही संस्थानों को बदलने का अनुमान लगा रहा हूं, इसलिए मेरा विश्वविद्यालय URL थोड़ा भी स्थिर नहीं है।

जब कोड अपेक्षाकृत कम होता है, तो मैंने इसे जर्नल में एक पूरक परिशिष्ट के रूप में शामिल करने की कोशिश की है, इस धारणा के तहत कि वे संभवतः कागज और कोड को एक ही स्थान पर रखते हुए एक सभ्य काम करेंगे। यह कोड के लिए विशेष रूप से उपयोगी है जहां सामान्य ब्याज की एक विस्तृत राशि नहीं है - कोड जो कि संदर्भ प्रदान करने के लिए प्रश्न में कागज के बिना कुछ बेकार है।

लेकिन स्रोत-कोड, वास्तविक सॉफ्टवेयर, और अधिक जटिल परियोजनाओं या सामान्य हित वाले लोगों के लिए, मैं एक GitHub रिपॉजिटरी से लिंक करने की आपकी रणनीति का पालन कर रहा हूं, जो कि कम से कम मेरे कागजों के औसत उत्पादक जीवनकाल के लिए स्थिर होना चाहिए।


2

Http://www.runmycode.org पर एक नज़र डालें । वे शोध पत्रों से जुड़े कोड के लिए साथी साइटों की मेजबानी करते हैं। यदि कोड R, Matlab, या कुछ अन्य हैं, तो यह वास्तव में आपके लिए कोड चलाएगा। मैंने अभी तक इसकी कोशिश नहीं की है, लेकिन मेरा इरादा है। मुझे लगता है कि डेविड डोनोहो और उनके सहयोगी इसका इस्तेमाल करते हैं।


आह। आप यह पहले से ही इस्तेमाल किया है। runmycode.org/CompanionSite/site.do?siteId=158
पॉल जी कॉन्सटेंटाइन

@ डेविड केचेसन और मैंने दिसंबर में एक प्रयोग भी किया था जिसमें हमारे पायथन-आधारित कोड्स में से एक के लिए वकरी.आईओ स्टैक और आईपीथॉन नोटबुक का उपयोग किया गया था। आप यहां PyClaw reproducibility नोटबुक देख सकते हैं
एरन अहमदिया

0

विश्वविद्यालय के पुस्तकालय इसके लिए जगह बन सकते हैं या विश्वविद्यालय के होस्टिंग केंद्र हो सकते हैं।


-2

एक पाठक के रूप में, इस आशय के कोड में एक बयान कि लेखक से सीधे संपर्क करके कोड प्राप्त किया जा सकता है। एक लेखक के रूप में, यह सहयोग को बढ़ावा देने में मदद कर सकता है, और मुझे अपने लेख को उद्धृत करने का अवसर देने का अवसर दे सकता है यदि वे अपने काम में कोड का उपयोग करते हैं।


4
यह एक दिलचस्प दृष्टिकोण है, और मैं यह देखने के लिए उत्सुक हूं कि यह कितना आम है। व्यक्तिगत रूप से, यह वही है जो मैं दूर होने की कोशिश कर रहा हूं। मुझे लगता है कि यह एक अधूरा पेपर प्रकाशित करने और पाठकों से पूरी बात पूछने के लिए आवश्यक है। Sciencecodemanifesto.org देखें ।
डेविड केचेसन

2
मेरे सबसे प्रमुख कागजों में से एक पर संपर्क पता होना अनिवार्य रूप से मृत है - और कुछ अन्य लोगों के बारे में अनिश्चित - मैं आमतौर पर एक समाधान के रूप में इसका विरोध कर रहा हूं। "मुझसे संपर्क करना" आवश्यक रूप से दुनिया में सबसे आसान काम नहीं है - विशेष रूप से एक दशक बाद।
फोमाइट

2
"मुझसे संपर्क करें" दृष्टिकोण भी प्रतिलिपि प्रस्तुत करने योग्यता की गारंटी नहीं देता है। जब आप मुझसे कुछ कोड मांगने के लिए संपर्क करते हैं, तो मैं शायद आपको सबसे अद्यतित संस्करण भेज दूंगा, न कि मैं जिसका उपयोग मूल पेपर में करता था। अगर केवल इसलिए कि मेरे पास मूल संस्करण नहीं होगा।
खिनसेन

3
अनुभवजन्य अध्ययन वास्तव में एक लेखक से संपर्क करते हैं और डेटा के लिए पूछते हैं, यहां तक ​​कि जब लेखक ने अनुरोध पर इसे प्रदान करने के लिए एक लाइसेंस समझौते पर हस्ताक्षर किए हैं, तो पता चला है कि आश्चर्यजनक रूप से कुछ लेखक अनुपालन करते हैं। उदाहरण के लिए, dx.doi.org/10.1371/journal.pone.0007078 और उसमें उद्धरण देखें । यदि यह डेटा के लिए अच्छी तरह से काम नहीं करता है, तो मुझे संदेह है कि यह कोड के लिए एक अच्छा समाधान नहीं है।
कबेटिग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.