यदि आपको मालिकाना पुस्तकालयों की आवश्यकता है, तो प्रजनन योग्य अनुसंधान करने का सबसे अच्छा तरीका क्या है?


19

अभिकलन में पुनरुत्पादक अनुसंधान का उद्देश्य अन्य शोधकर्ताओं के लिए उपलब्ध कम्प्यूटेशनल पेपर में परिणाम उत्पन्न करने के लिए आवश्यक कोड बनाना है ताकि वे उस कोड को उस पेपर में परिणाम पुन: प्रस्तुत करने के लिए चला सकें। मैं अपने सभी अनुसंधानों को प्रतिलिपि प्रस्तुत करने योग्य बनाना चाहता हूं, लेकिन मैं कुछ हद तक रोड़ा बन रहा हूं: एक दंपति पत्र जो मैं एक मालिकाना पुस्तकालय ( CHEMKIN- ) में एक इन-हाउस स्वचालित भेदभाव पैकेज ( DAEPACK ) का उपयोग करने पर काम कर रहा हूं। II ; लाइसेंस शर्तें अस्पष्ट)।

इन सॉफ्टवेयर घटकों को ओपन-सोर्स संस्करणों के साथ बदलने में अत्यधिक समय लगेगा। CHEMKIN-II के लिए एक ओपन-सोर्स रिप्लेसमेंट Cantera कहा जाता है , लेकिन Cantera C ++ में है, जबकि CHEMKIN-II फोरट्रान 77 में है। कैंटरेना कोड को पर्याप्त रूप से संशोधित करने के लिए बहुत प्रयास की आवश्यकता होगी कि इसे स्वचालित द्वारा संसाधित किया जा सके। C ++ के लिए विभेदन उपकरण।

यह देखते हुए कि मुझे इन मालिकाना पैकेजों की आवश्यकता है, मेरे शोध को यथासंभव प्रजनन योग्य बनाने के लिए सबसे अच्छा तरीका क्या है, यह मानते हुए कि शोधकर्ताओं को CHEMKIN-II तक पहुंच नहीं हो सकती है? चूंकि DAEPACK एक स्रोत से स्रोत अनुवादक है, इसलिए मुझे जरूरी नहीं है कि DAEPACK वितरित किया जाए; मैं इसका आउटपुट शामिल करने में सक्षम हो सकता हूं, जो कि फोरट्रान स्रोत फाइलें होंगी जो डेरिवेटिव की गणना करती हैं।

अधिक आम तौर पर, यदि आपको अपने काम में मालिकाना सॉफ्टवेयर की आवश्यकता होती है, और वह मालिकाना सॉफ्टवेयर व्यापक रूप से उपलब्ध नहीं है (यानी, MATLAB, गणितज्ञ आदि नहीं है), तो आप अपने काम को कैसे प्रतिलिपि प्रस्तुत करने योग्य बनाते हैं?


क्या DAEPACK CHEMKIN-II स्रोत कोड को संशोधित करता है, या यह सिर्फ CHEMKIN-II का आंतरिक रूप से उपयोग करता है?
दान

DAEPACK CHEMKIN-II स्रोत कोड को पार्स करता है और फोरट्रान स्रोत फ़ाइलों को उत्पन्न करता है जिसमें सबरूटीन्स होते हैं जो याकूबियन मैट्रिस, स्पार्सिटी पैटर्न और अंतराल एक्सटेंशन की गणना करते हैं। यह स्रोत कोड को संशोधित नहीं करता है; यह उस अर्थ में एक संकलक की तरह है।
ज्योफ ऑक्सबेरी

यदि DAEPACK का आउटपुट CHEMKIN-II स्रोत संशोधित है, तो आपको इसे वितरित करने की अनुमति क्यों है?
डैन

यह व्युत्पन्न कार्य है, लेकिन स्रोत संशोधित होने पर यह मेरे लिए स्पष्ट नहीं है। परिवर्तनीय नामों की नकल की जाती है, लेकिन उस तर्क से, मेरे द्वारा लिखे गए कई कार्यक्रम "संशोधित CHEMKIN-II स्रोत" हैं। मुझे उस बिंदु को जांचना होगा।
ज्यॉफ ऑक्सबेरी

क्या CHEMKIN-II लाइसेंस आपको बिना स्रोत के वितरण को स्वतंत्र रूप से वितरित करने की अनुमति देता है, और आप कैसे परिवर्तन वितरित करते हैं? मुझे इसकी ऑनलाइन लाइसेंस की प्रति नहीं मिल रही है।
दान

जवाबों:


13

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

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


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

2
व्यावसायिक रूप से बेचा गया कोड अभी भी उपलब्ध कोड है। यदि लाइसेंस प्राप्त करना संभव नहीं है, तो यह निश्चित रूप से एक अलग मामला है। लेकिन एक कोड के मूल लेखक को किसी अन्य लाइब्रेरी को केवल प्रतिलिपि प्रस्तुत करने के उद्देश्यों के लिए समायोजित करने के लिए कोड को फिर से लिखना नहीं चाहिए । (अधिक से अधिक कोड व्यवहार्यता और उपयोग के लिए एक तर्क दिया जाना चाहिए, लेकिन प्रतिलिपि प्रस्तुत करने योग्य तर्क प्राइमा फेशियल आवश्यक नहीं है - हालांकि यह पर्याप्त रूप से तर्क दिया जा सकता है।)
ऐस्मिसैल

4

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

CrossValidated में इस विषय पर एक समान चर्चा हुई थी - "प्रतिलिपि प्रस्तुत करने योग्य" का अर्थ है कि आप मेरे डेटा पर मेरे विश्लेषण को दोहरा सकते हैं, या यह कि प्रयोग स्वयं खरोंच से फिर से हो सकता है और पुष्ट परिणाम प्रदान कर सकता है। लिंक यहाँ है: /stats/14999/how-are-we-defining-reproducible-research

मुझे लगता है कि अधिक महत्वपूर्ण तत्व यह वर्णन करने के लिए है कि आपने उस स्तर पर क्या किया था जहां इसे किसी ऐसे व्यक्ति द्वारा फिर से तैयार किया जा सकता है जो पर्याप्त रुचि रखते थे, और यदि वाणिज्यिक उपकरण का उपयोग किया जाता था, तो उन उपकरणों का उल्लेख किया जाता है। क्योंकि यह कोड की त्रुटियों के लिए प्रयोग की प्रतिकृति और दोहरे-जाँच दोनों हितों की सेवा करता है।


2

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

अन्यथा, चारों ओर से पूछें और देखें कि आपका कितना काम जारी करने की अनुमति है, और फिर उसे जारी करें।


इस चैट वार्तालाप से बहुत कुछ आता है ।
दान

1

प्रतिलिपि प्रस्तुत करने योग्य अनुसंधान करने का सबसे अच्छा तरीका विशिष्ट प्लेटफ़ॉर्म पर विशिष्ट कोड की तरह कम समय तक जीवित रहना नहीं है। कल हम छिद्रित कार्डों पर गणना कर रहे थे, आज सिलिकॉन में इलेक्ट्रॉनों पर, कल यह प्रोटीन या यहां तक ​​कि जीवित कोशिकाओं के साथ पराबैंगनीकिरण डॉट्स पर कल के बाद का दिन हो सकता है, और कौन जानता है कि अगले सप्ताह क्या होगा।

Reproducible अनुसंधान को अपनी अवधारणाओं और विचारों को स्पष्ट करना चाहिए और शोध परिणामों को पुन: पेश करने के लिए हार्डवेयर या सॉफ़्टवेयर जैसे वर्तमान में उपलब्ध उपकरणों को बढ़ावा नहीं देना चाहिए। उपयोग किए गए एल्गोरिदम को एक स्पष्ट सार्वभौमिक रूप में विस्तृत होना चाहिए; एक विशिष्ट हार्डवेयर, संकलक या सॉफ्टवेयर पैकेज का वर्तमान संस्करण केवल शोध परिणामों को प्रदर्शित करने के लिए एक उपकरण के रूप में उपयोग किया जा सकता है।


मुझे लगता है कि हम दोनों की जरूरत है - मानव समझ और दीर्घकालिक व्याख्या के लिए अवधारणाएं और विचार, और अल्पकालिक सत्यापन के लिए कोड।
खिनसेन

1

जनित फोरट्रान कोड प्रकाशित करना आपके मामले में एक बहुत अच्छे समाधान की तरह लगता है।

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


1

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.