डेटा रूपांतरण: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 2: Line 2:


{{Data transformation}}
{{Data transformation}}
डेटा रूपांतरण [[कंप्यूटर डेटा]] का एक फ़ाइल स्वरूप से दूसरे फ़ाइल स्वरूप में रूपांतरण है। एक कंप्यूटर वातावरण में, डेटा को विभिन्न तरीकों से [[अक्षरों को सांकेतिक अक्षरों में बदलना]] या एन्कोड किया जाता है। उदाहरण के लिए, [[कंप्यूटर हार्डवेयर]] कुछ मानकों के आधार पर बनाया गया है, जिसके लिए आवश्यक है कि डेटा में, उदाहरण के लिए, पैरिटी [[अंश]] चेक सम्मिलित होती है। इसी तरह, [[ऑपरेटिंग सिस्टम]] डेटा और फाइल हैंडलिंग के लिए कुछ मानकों पर आधारित किया जाता है। इसके अतिरिक्त, प्रत्येक कंप्यूटर प्रोग्राम डेटा को एक अलग तरीके से संभाला जाता है। जब भी इनमें से किसी एक वेरिएबल को बदला जाता है, डेटा को किसी भिन्न कंप्यूटर, ऑपरेटिंग सिस्टम या प्रोग्राम द्वारा उपयोग किए जाने से पहले किसी तरह से परिवर्तित किया जाना चाहिए। यहां तक ​​कि इन तत्वों के विभिन्न संस्करणों में सामान्य रूप से अलग-अलग डेटा संरचनाएं सम्मिलित होती हैं। उदाहरण के लिए, बिट्स को एक प्रारूप से दूसरे प्रारूप में बदलना,सामान्यतः एप्लिकेशन इंटरऑपरेबिलिटी या नई सुविधाओं का उपयोग करने की क्षमता के उद्देश्य से, केवल एक डेटा रूपांतरण होता है। डेटा रूपांतरण उतना ही सरल हो सकता है जितना एक [[पाठ फ़ाइल]] का एक वर्ण एन्कोडिंग सिस्टम से दूसरे में रूपांतरण; या अधिक जटिल, जैसे कार्यालय फ़ाइल स्वरूपों का रूपांतरण, या [[छवि रूपांतरण]] और [[ऑडियो फ़ाइल स्वरूप|ऑडियो फ़ाइल स्वरूपों]] का रूपांतरण होता है।
डेटा रूपांतरण [[कंप्यूटर डेटा]] का फ़ाइल स्वरूप से दूसरे फ़ाइल स्वरूप में रूपांतरण है। कंप्यूटर वातावरण में, डेटा को विभिन्न तरीकों से [[अक्षरों को सांकेतिक अक्षरों में बदलना]] या एन्कोड किया जाता है। उदाहरण के लिए, [[कंप्यूटर हार्डवेयर]] कुछ मानकों के आधार पर बनाया गया है, जिसके लिए आवश्यक है कि डेटा में, उदाहरण के लिए, पैरिटी [[अंश]] चेक सम्मिलित होती है। इसी तरह, [[ऑपरेटिंग सिस्टम]] डेटा और फाइल हैंडलिंग के लिए कुछ मानकों पर आधारित किया जाता है। इसके अतिरिक्त, प्रत्येक कंप्यूटर प्रोग्राम डेटा को अलग तरीके से संभाला जाता है। जब भी इनमें से किसी वेरिएबल को बदला जाता है, डेटा को किसी भिन्न कंप्यूटर, ऑपरेटिंग सिस्टम या प्रोग्राम द्वारा उपयोग किए जाने से पहले किसी तरह से परिवर्तित किया जाना चाहिए। यहां तक ​​कि इन तत्वों के विभिन्न संस्करणों में सामान्य रूप से अलग-अलग डेटा संरचनाएं सम्मिलित होती हैं। उदाहरण के लिए, बिट्स को प्रारूप से दूसरे प्रारूप में बदलना,सामान्यतः एप्लिकेशन इंटरऑपरेबिलिटी या नई सुविधाओं का उपयोग करने की क्षमता के उद्देश्य से, केवल डेटा रूपांतरण होता है। डेटा रूपांतरण उतना ही सरल हो सकता है जितना [[पाठ फ़ाइल]] का वर्ण एन्कोडिंग सिस्टम से दूसरे में रूपांतरण; या अधिक जटिल, जैसे कार्यालय फ़ाइल स्वरूपों का रूपांतरण, या [[छवि रूपांतरण]] और [[ऑडियो फ़ाइल स्वरूप|ऑडियो फ़ाइल स्वरूपों]] का रूपांतरण होता है।


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


== सूचना मूल बातें ==
== सूचना मूल बातें ==
Line 10: Line 10:


* सूचना को कंप्यूटर द्वारा आसानी से खारिज किया जा सकता है, किन्तु जानकारी जोड़ने में मेहनत लगती है।
* सूचना को कंप्यूटर द्वारा आसानी से खारिज किया जा सकता है, किन्तु जानकारी जोड़ने में मेहनत लगती है।
* कंप्यूटर केवल नियम-आधारित फैशन में जानकारी जोड़ सकता है। {{Citation needed|date=December 2009}}
* कंप्यूटर केवल नियम-आधारित फैशन में जानकारी जोड़ सकता है।  
* डेटा को अपसैंपलिंग करने या अधिक सुविधा-संपन्न प्रारूप में बदलने से जानकारी नहीं जुड़ती है; यह केवल उस जोड़ के लिए जगह बनाता है, जो सामान्यतः एक इंसान को करना चाहिए।
* डेटा को अपसैंपलिंग करने या अधिक सुविधा-संपन्न प्रारूप में बदलने से जानकारी नहीं जुड़ती है; यह केवल उस जोड़ के लिए जगह बनाता है, जो सामान्यतः इंसान को करना चाहिए।
* इलेक्ट्रॉनिक प्रारूप में संग्रहीत डेटा को जल्दी से संशोधित और विश्लेषित किया जा सकता है।
* इलेक्ट्रॉनिक प्रारूप में संग्रहीत डेटा को जल्दी से संशोधित और विश्लेषित किया जा सकता है।


उदाहरण के लिए, [[24-बिट रंग]] की छवि को आसानी से ग्रेस्केल में बदला जा सकता है, जबकि विपरीत रूपांतरण एक श्रमसाध्य प्रक्रिया है। [[यूनिक्स]] टेक्स्ट फ़ाइल को [[Microsoft]] (DOS/Windows) टेक्स्ट फ़ाइल में परिवर्तित करने में वर्ण जोड़ना सम्मिलित है, किन्तु यह [[एन्ट्रापी (सूचना सिद्धांत)]] को नहीं बढ़ाता है क्योंकि यह नियम-आधारित है; जबकि एक ग्रेस्केल छवि में रंग जानकारी को जोड़ना प्रोग्रामेटिक रूप से मज़बूती से नहीं किया जा सकता है, क्योंकि इसमें नई जानकारी जोड़ने की आवश्यकता होती है, इसलिए रंग जोड़ने के किसी भी प्रयास के लिए कंप्यूटर द्वारा पिछले ज्ञान के आधार पर [[कंप्यूटर दृष्टि]] की आवश्यकता होगी। 24-बिट [[पोर्टेबल नेटवर्क ग्राफ़िक्स]] को 48-बिट में कनवर्ट करने से इसमें जानकारी नहीं जुड़ती है, यह केवल वर्तमान समय का [[आरजीबी]] पिक्सेल मानों को शून्य से पैड करता है{{Citation needed|date=December 2009}}, जिससे कि FF C3 56 के मान वाला पिक्सेल, उदाहरण के लिए, FF00 C300 5600 बन जाए। रूपांतरण पिक्सेल को मान के लिए बदलना संभव बनाता है, उदाहरण के लिए, FF80 C340 56A0, किन्तु रूपांतरण स्वयं ऐसा नहीं करता वह, केवल छवि का और हेरफेर कर सकता है। [[हानिपूर्ण संपीड़न]] प्रारूप (जैसे [[JPEG]] या [[Vorbis]]) में एक छवि या ऑडियो फ़ाइल को [[दोषरहित डेटा संपीड़न]] (जैसे पोर्टेबल नेटवर्क ग्राफ़िक्स या [[FLAC]]) या असम्पीडित (जैसे Windows बिटमैप या [[WAV]]) प्रारूप में परिवर्तित करने से केवल स्थान बर्बाद होता है, क्योंकि उसी छवि के साथ मूल जानकारी का नुकसान (हानिपूर्ण संपीड़न की कलाकृतियाँ) लक्ष्य बन जाता है। एक JPEG छवि को कभी भी उस मूल छवि की गुणवत्ता में पुनर्स्थापित नहीं किया जा सकता है जिससे इसे बनाया गया था, चाहे उपयोगकर्ता अपने छवि हेरफेर कार्यक्रम की [[संपीड़न विरूपण साक्ष्य]] हटाने की सुविधा का कितना भी प्रयास करे।
उदाहरण के लिए, [[24-बिट रंग]] की छवि को आसानी से ग्रेस्केल में बदला जा सकता है, जबकि विपरीत रूपांतरण श्रमसाध्य प्रक्रिया है। [[यूनिक्स]] टेक्स्ट फ़ाइल को [[Microsoft]] (DOS/Windows) टेक्स्ट फ़ाइल में परिवर्तित करने में वर्ण जोड़ना सम्मिलित है, किन्तु यह [[एन्ट्रापी (सूचना सिद्धांत)]] को नहीं बढ़ाता है क्योंकि यह नियम-आधारित है; जबकि ग्रेस्केल छवि में रंग जानकारी को जोड़ना प्रोग्रामेटिक रूप से मज़बूती से नहीं किया जा सकता है, क्योंकि इसमें नई जानकारी जोड़ने की आवश्यकता होती है, इसलिए रंग जोड़ने के किसी भी प्रयास के लिए कंप्यूटर द्वारा पिछले ज्ञान के आधार पर [[कंप्यूटर दृष्टि]] की आवश्यकता होगी। 24-बिट [[पोर्टेबल नेटवर्क ग्राफ़िक्स]] को 48-बिट में कनवर्ट करने से इसमें जानकारी नहीं जुड़ती है, यह केवल वर्तमान समय का [[आरजीबी]] पिक्सेल मानों को शून्य से पैड करता है, जिससे कि FF C3 56 के मान वाला पिक्सेल, उदाहरण के लिए, FF00 C300 5600 बन जाए। रूपांतरण पिक्सेल को मान के लिए बदलना संभव बनाता है, उदाहरण के लिए, FF80 C340 56A0, किन्तु रूपांतरण स्वयं ऐसा नहीं करता वह, केवल छवि का और हेरफेर कर सकता है। [[हानिपूर्ण संपीड़न]] प्रारूप (जैसे [[JPEG]] या [[Vorbis]]) में छवि या ऑडियो फ़ाइल को [[दोषरहित डेटा संपीड़न]] (जैसे पोर्टेबल नेटवर्क ग्राफ़िक्स या [[FLAC]]) या असम्पीडित (जैसे Windows बिटमैप या [[WAV]]) प्रारूप में परिवर्तित करने से केवल स्थान बर्बाद होता है, क्योंकि उसी छवि के साथ मूल जानकारी का नुकसान (हानिपूर्ण संपीड़न की कलाकृतियाँ) लक्ष्य बन जाता है। JPEG छवि को कभी भी उस मूल छवि की गुणवत्ता में पुनर्स्थापित नहीं किया जा सकता है जिससे इसे बनाया गया था, चाहे उपयोगकर्ता अपने छवि हेरफेर कार्यक्रम की [[संपीड़न विरूपण साक्ष्य]] हटाने की सुविधा का कितना भी प्रयास करे।


हानिपूर्ण संपीड़न प्रक्रिया के माध्यम से खो गई जानकारी की स्वत: बहाली के लिए संभवतः कृत्रिम बुद्धि में महत्वपूर्ण प्रगति की आवश्यकता होगी।
हानिपूर्ण संपीड़न प्रक्रिया के माध्यम से खो गई जानकारी की स्वत: बहाली के लिए संभवतः कृत्रिम बुद्धि में महत्वपूर्ण प्रगति की आवश्यकता होगी।
Line 21: Line 21:


== निर्णायक रूपांतरण ==
== निर्णायक रूपांतरण ==
डेटा रूपांतरण सीधे एक प्रारूप से दूसरे प्रारूप में हो सकता है, किन्तु कई अनुप्रयोग जो कई प्रारूपों के बीच परिवर्तित होते हैं, एक [[मध्यवर्ती प्रतिनिधित्व]] का उपयोग करते हैं जिसके माध्यम से कोई भी स्रोत प्रारूप अपने लक्ष्य में परिवर्तित हो जाता है।<ref name="ManolescuVoelter2006">{{cite book|author1=Dragos-Anton Manolescu|author2=Markus Voelter|author3=James Noble|title=Pattern Languages of Program Design 5|url=https://books.google.com/books?id=9ywUYmxstnAC&q=%22data+conversion%22+%22intermediate+representation%22&pg=PA271|year=2006|publisher=Addison-Wesley Professional|isbn=978-0-321-32194-7|pages=271–}}</ref> उदाहरण के लिए, दो एनकोडिंग के बीच एक लुकअप टेबल का उपयोग करके [[सिरिलिक लिपि]] टेक्स्ट को [[KOI8-R]] से [[Windows-1251]] में बदलना संभव है, किन्तु आधुनिक दृष्टिकोण KOI8-R फ़ाइल को पहले [[यूनिकोड]] में और उसके बाद Windows-1251 में बदलना है। . यह एक अधिक प्रबंधनीय दृष्टिकोण है; चरित्र एन्कोडिंग के सभी संभावित जोड़े के लिए लुकअप टेबल की आवश्यकता के अतिरिक्त, एक एप्लिकेशन को प्रत्येक वर्ण सेट के लिए केवल एक लुकअप टेबल की आवश्यकता होती है, जिसका उपयोग वह यूनिकोड से और में कनवर्ट करने के लिए करता है, जिससे तालिकाओं की संख्या सैकड़ों से कुछ दसियों तक कम हो जाती है।{{citation needed|date=September 2018}}
डेटा रूपांतरण सीधे प्रारूप से दूसरे प्रारूप में हो सकता है, किन्तु कई अनुप्रयोग जो कई प्रारूपों के बीच परिवर्तित होते हैं, [[मध्यवर्ती प्रतिनिधित्व]] का उपयोग करते हैं जिसके माध्यम से कोई भी स्रोत प्रारूप अपने लक्ष्य में परिवर्तित हो जाता है।<ref name="ManolescuVoelter2006">{{cite book|author1=Dragos-Anton Manolescu|author2=Markus Voelter|author3=James Noble|title=Pattern Languages of Program Design 5|url=https://books.google.com/books?id=9ywUYmxstnAC&q=%22data+conversion%22+%22intermediate+representation%22&pg=PA271|year=2006|publisher=Addison-Wesley Professional|isbn=978-0-321-32194-7|pages=271–}}</ref> उदाहरण के लिए, दो एनकोडिंग के बीच लुकअप टेबल का उपयोग करके [[सिरिलिक लिपि]] टेक्स्ट को [[KOI8-R]] से [[Windows-1251]] में बदलना संभव है, किन्तु आधुनिक दृष्टिकोण KOI8-R फ़ाइल को पहले [[यूनिकोड]] में और उसके बाद Windows-1251 में बदलना है। . यह अधिक प्रबंधनीय दृष्टिकोण है; चरित्र एन्कोडिंग के सभी संभावित जोड़े के लिए लुकअप टेबल की आवश्यकता के अतिरिक्त, एप्लिकेशन को प्रत्येक वर्ण सेट के लिए केवल लुकअप टेबल की आवश्यकता होती है, जिसका उपयोग वह यूनिकोड से और में कनवर्ट करने के लिए करता है, जिससे तालिकाओं की संख्या सैकड़ों से कुछ दसियों तक कम हो जाती है।{{citation needed|date=September 2018}}
निर्णायक रूपांतरण इसी तरह अन्य क्षेत्रों में उपयोग किया जाता है। कार्यालय अनुप्रयोग, जब कार्यालय फ़ाइल स्वरूपों के बीच कनवर्ट करने के लिए नियोजित होते हैं, तो उनके आंतरिक, डिफ़ॉल्ट फ़ाइल स्वरूप को धुरी के रूप में उपयोग करते हैं। उदाहरण के लिए, एक [[शब्द संसाधक]] RTF को [[OpenDocument]] में और फिर उसे [[WordPerfect]] फॉर्मेट में कनवर्ट करके एक [[रिच टेक्स्ट फ़ॉर्मैट]] फ़ाइल को WordPerfect फ़ाइल में बदल सकता है। एक छवि रूपांतरण कार्यक्रम [[पीसीएक्स]] छवि को सीधे पोर्टेबल नेटवर्क ग्राफिक्स में परिवर्तित नहीं करता है; इसके अतिरिक्त, पीसीएक्स छवि को लोड करते समय, यह स्मृति में आंतरिक उपयोग के लिए इसे एक साधारण बिटमैप प्रारूप में डीकोड करता है, और जब पीएनजी में कनवर्ट करने का आदेश दिया जाता है, तो उस मेमोरी छवि को लक्षित प्रारूप में परिवर्तित कर दिया जाता है। एक ऑडियो कनवर्टर जो FLAC से [[उन्नत ऑडियो कोडिंग]] में परिवर्तित होता है, स्रोत फ़ाइल को पहले मेमोरी में अपरिष्कृत [[पल्स कोड मॉडुलेशन]] डेटा में डिकोड करता है, और फिर लक्ष्य फ़ाइल बनाने के लिए उस मेमोरी छवि पर हानिपूर्ण AAC संपीड़न करता है।
निर्णायक रूपांतरण इसी तरह अन्य क्षेत्रों में उपयोग किया जाता है। कार्यालय अनुप्रयोग, जब कार्यालय फ़ाइल स्वरूपों के बीच कनवर्ट करने के लिए नियोजित होते हैं, तो उनके आंतरिक, डिफ़ॉल्ट फ़ाइल स्वरूप को धुरी के रूप में उपयोग करते हैं। उदाहरण के लिए, [[शब्द संसाधक]] RTF को [[OpenDocument]] में और फिर उसे [[WordPerfect]] फॉर्मेट में कनवर्ट करके [[रिच टेक्स्ट फ़ॉर्मैट]] फ़ाइल को WordPerfect फ़ाइल में बदल सकता है। छवि रूपांतरण कार्यक्रम [[पीसीएक्स]] छवि को सीधे पोर्टेबल नेटवर्क ग्राफिक्स में परिवर्तित नहीं करता है; इसके अतिरिक्त, पीसीएक्स छवि को लोड करते समय, यह स्मृति में आंतरिक उपयोग के लिए इसे साधारण बिटमैप प्रारूप में डीकोड करता है, और जब पीएनजी में कनवर्ट करने का आदेश दिया जाता है, तो उस मेमोरी छवि को लक्षित प्रारूप में परिवर्तित कर दिया जाता है। ऑडियो कनवर्टर जो FLAC से [[उन्नत ऑडियो कोडिंग]] में परिवर्तित होता है, स्रोत फ़ाइल को पहले मेमोरी में अपरिष्कृत [[पल्स कोड मॉडुलेशन]] डेटा में डिकोड करता है, और फिर लक्ष्य फ़ाइल बनाने के लिए उस मेमोरी छवि पर हानिपूर्ण AAC संपीड़न करता है।


== खोया हुआ और अचूक डेटा रूपांतरण ==
== खोया हुआ और अचूक डेटा रूपांतरण ==
डेटा रूपांतरण का उद्देश्य सभी डेटा को बनाए रखना है, और जितना संभव हो उतना एम्बेड की गई जानकारी को बनाए रखना है। यह केवल तभी किया जा सकता है जब लक्ष्य प्रारूप स्रोत फ़ाइल में उपस्तिथ समान सुविधाओं और डेटा संरचनाओं का समर्थन करता हो। एक वर्ड प्रोसेसिंग दस्तावेज़ को एक सादे पाठ फ़ाइल में बदलने में आवश्यक रूप से स्वरूपण जानकारी का नुकसान सम्मिलित है, क्योंकि सादा पाठ प्रारूप वर्ड प्रोसेसिंग निर्माणों का समर्थन नहीं करता है जैसे किसी शब्द को बोल्डफेस के रूप में चिह्नित करना। इस कारण से, एक प्रारूप से दूसरे प्रारूप में रूपांतरण जो उपयोगकर्ता के लिए महत्वपूर्ण विशेषता का समर्थन नहीं करता है, संभवतः ही कभी किया जाता है, चूंकि यह इंटरऑपरेबिलिटी के लिए आवश्यक हो सकता है, उदा। किसी फ़ाइल को [[Microsoft Word]] के एक संस्करण से पुराने संस्करण में कनवर्ट करना जिससे कि अन्य उपयोगकर्ताओं द्वारा स्थानांतरण और उपयोग को सक्षम किया जा सके जिनके पास अपने कंप्यूटर पर Word का वही बाद का संस्करण स्थापित नहीं है।
डेटा रूपांतरण का उद्देश्य सभी डेटा को बनाए रखना है, और जितना संभव हो उतना एम्बेड की गई जानकारी को बनाए रखना है। यह केवल तभी किया जा सकता है जब लक्ष्य प्रारूप स्रोत फ़ाइल में उपस्तिथ समान सुविधाओं और डेटा संरचनाओं का समर्थन करता हो। वर्ड प्रोसेसिंग दस्तावेज़ को सादे पाठ फ़ाइल में बदलने में आवश्यक रूप से स्वरूपण जानकारी का नुकसान सम्मिलित है, क्योंकि सादा पाठ प्रारूप वर्ड प्रोसेसिंग निर्माणों का समर्थन नहीं करता है जैसे किसी शब्द को बोल्डफेस के रूप में चिह्नित करना। इस कारण से, प्रारूप से दूसरे प्रारूप में रूपांतरण जो उपयोगकर्ता के लिए महत्वपूर्ण विशेषता का समर्थन नहीं करता है, संभवतः ही कभी किया जाता है, चूंकि यह इंटरऑपरेबिलिटी के लिए आवश्यक हो सकता है, उदा। किसी फ़ाइल को [[Microsoft Word]] के संस्करण से पुराने संस्करण में कनवर्ट करना जिससे कि अन्य उपयोगकर्ताओं द्वारा स्थानांतरण और उपयोग को सक्षम किया जा सके जिनके पास अपने कंप्यूटर पर Word का वही बाद का संस्करण स्थापित नहीं है।


लक्ष्य प्रारूप में सन्निकटन द्वारा सूचना के नुकसान को कम किया जा सकता है। ä जैसे वर्ण को [[ASCII]] में परिवर्तित करने का कोई विधि नहीं है, क्योंकि ASCII मानक में इसका अभाव है, किन्तु वर्ण को ae के रूप में अनुमानित करके जानकारी को बनाए रखा जा सकता है। बेशक, यह एक इष्टतम समाधान नहीं है, और खोज और प्रतिलिपि बनाने जैसे कार्यों को प्रभावित कर सकता है; और यदि कोई भाषा ä और ae के बीच अंतर करती है, तो उस सन्निकटन में जानकारी का नुकसान सम्मिलित है।
लक्ष्य प्रारूप में सन्निकटन द्वारा सूचना के नुकसान को कम किया जा सकता है। ä जैसे वर्ण को [[ASCII]] में परिवर्तित करने का कोई विधि नहीं है, क्योंकि ASCII मानक में इसका अभाव है, किन्तु वर्ण को ae के रूप में अनुमानित करके जानकारी को बनाए रखा जा सकता है। बेशक, यह इष्टतम समाधान नहीं है, और खोज और प्रतिलिपि बनाने जैसे कार्यों को प्रभावित कर सकता है; और यदि कोई भाषा ä और ae के बीच अंतर करती है, तो उस सन्निकटन में जानकारी का नुकसान सम्मिलित है।


डेटा रूपांतरण भी अशुद्धि से पीड़ित हो सकता है, जो वैचारिक रूप से भिन्न स्वरूपों के बीच रूपांतरण का परिणाम है। [[WYSIWYG]] प्रतिमान, वर्ड प्रोसेसर और [[डेस्कटॉप प्रकाशन]] अनुप्रयोगों में उपस्तिथ है, बनाम संरचनात्मक-वर्णनात्मक प्रतिमान, जो [[SGML]], [[XML]] और उनसे प्राप्त कई अनुप्रयोगों में पाया जाता है, जैसे [[HTML]] और [[MathML]], एक उदाहरण है। WYSIWYG HTML संपादक का उपयोग करने से दो प्रतिमानों का मेल होता है, और परिणाम HTML फ़ाइलों के साथ होता है, यदि अमानक नहीं है, तो कोड। WYSIWYG प्रतिमान में एक डबल लाइनब्रेक एक नए पैराग्राफ को दर्शाता है, क्योंकि यह इस तरह के निर्माण के लिए दृश्य संकेत है, किन्तु एक WYSIWYG HTML संपादक सामान्यतः ऐसे अनुक्रम को <nowiki><BR><BR></nowiki> में बदल देगा, जो संरचनात्मक रूप से कोई नया पैराग्राफ नहीं है। एक अन्य उदाहरण के रूप में, पोर्टेबल दस्तावेज़ प्रारूप से एक संपादन योग्य वर्ड प्रोसेसर प्रारूप में परिवर्तित करना एक कठिन कार्य है, क्योंकि पीडीएफ पत्थर पर उत्कीर्णन जैसी पाठ्य सूचना को रिकॉर्ड करता है, जिसमें प्रत्येक वर्ण को एक निश्चित स्थिति दी जाती है और हार्ड-कोडेड लाइनब्रेक करता है, जबकि वर्ड प्रोसेसर प्रारूप पाठ को समायोजित करता है। फिर से प्रवाहित करें। पीडीएफ शब्द स्थान वर्ण के बारे में नहीं जानता है - दो अक्षरों के बीच का स्थान और दो शब्दों के बीच का स्थान केवल मात्रा में भिन्न होता है। इसलिए, प्रभाव के लिए पर्याप्त अक्षर-रिक्ति वाला एक शीर्षक सामान्यतः वर्ड प्रोसेसर फ़ाइल में रिक्त स्थान के साथ समाप्त होगा, उदाहरण के लिए वर्ड प्रोसेसर पर I N T R O D U C T I O N के रूप में 1 Em (टाइपोग्राफी) की रिक्ति के साथ परिचय।
डेटा रूपांतरण भी अशुद्धि से पीड़ित हो सकता है, जो वैचारिक रूप से भिन्न स्वरूपों के बीच रूपांतरण का परिणाम है। [[WYSIWYG]] प्रतिमान, वर्ड प्रोसेसर और [[डेस्कटॉप प्रकाशन]] अनुप्रयोगों में उपस्तिथ है, बनाम संरचनात्मक-वर्णनात्मक प्रतिमान, जो [[SGML]], [[XML]] और उनसे प्राप्त कई अनुप्रयोगों में पाया जाता है, जैसे [[HTML]] और [[MathML]], उदाहरण है। WYSIWYG HTML संपादक का उपयोग करने से दो प्रतिमानों का मेल होता है, और परिणाम HTML फ़ाइलों के साथ होता है, यदि अमानक नहीं है, तो कोड। WYSIWYG प्रतिमान में डबल लाइनब्रेक नए पैराग्राफ को दर्शाता है, क्योंकि यह इस तरह के निर्माण के लिए दृश्य संकेत है, किन्तु WYSIWYG HTML संपादक सामान्यतः ऐसे अनुक्रम को <nowiki><BR><BR></nowiki> में बदल देगा, जो संरचनात्मक रूप से कोई नया पैराग्राफ नहीं है। अन्य उदाहरण के रूप में, पोर्टेबल दस्तावेज़ प्रारूप से संपादन योग्य वर्ड प्रोसेसर प्रारूप में परिवर्तित करना कठिन कार्य है, क्योंकि पीडीएफ पत्थर पर उत्कीर्णन जैसी पाठ्य सूचना को रिकॉर्ड करता है, जिसमें प्रत्येक वर्ण को निश्चित स्थिति दी जाती है और हार्ड-कोडेड लाइनब्रेक करता है, जबकि वर्ड प्रोसेसर प्रारूप पाठ को समायोजित करता है। फिर से प्रवाहित करें। पीडीएफ शब्द स्थान वर्ण के बारे में नहीं जानता है - दो अक्षरों के बीच का स्थान और दो शब्दों के बीच का स्थान केवल मात्रा में भिन्न होता है। इसलिए, प्रभाव के लिए पर्याप्त अक्षर-रिक्ति वाला शीर्षक सामान्यतः वर्ड प्रोसेसर फ़ाइल में रिक्त स्थान के साथ समाप्त होगा, उदाहरण के लिए वर्ड प्रोसेसर पर I N T R O D U C T I O N के रूप में 1 Em (टाइपोग्राफी) की रिक्ति के साथ परिचय।


== खुला बनाम गुप्त विनिर्देश ==
== खुला बनाम गुप्त विनिर्देश ==
Line 53: Line 53:
{{cite book | last = Manolescu | first = FirstName | title = Pattern Languages of Program Design 5 | publisher = Addison-Wesley | location = Upper Saddle River, NJ | year = 2006 | isbn = 0321321944 }}
{{cite book | last = Manolescu | first = FirstName | title = Pattern Languages of Program Design 5 | publisher = Addison-Wesley | location = Upper Saddle River, NJ | year = 2006 | isbn = 0321321944 }}


{{Authority control}}[[Category: कंप्यूटर डेटा]]
[[Category: कंप्यूटर डेटा]]
 
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 17/02/2023]]

Revision as of 23:18, 2 March 2023

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

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

सूचना मूल बातें

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

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

उदाहरण के लिए, 24-बिट रंग की छवि को आसानी से ग्रेस्केल में बदला जा सकता है, जबकि विपरीत रूपांतरण श्रमसाध्य प्रक्रिया है। यूनिक्स टेक्स्ट फ़ाइल को Microsoft (DOS/Windows) टेक्स्ट फ़ाइल में परिवर्तित करने में वर्ण जोड़ना सम्मिलित है, किन्तु यह एन्ट्रापी (सूचना सिद्धांत) को नहीं बढ़ाता है क्योंकि यह नियम-आधारित है; जबकि ग्रेस्केल छवि में रंग जानकारी को जोड़ना प्रोग्रामेटिक रूप से मज़बूती से नहीं किया जा सकता है, क्योंकि इसमें नई जानकारी जोड़ने की आवश्यकता होती है, इसलिए रंग जोड़ने के किसी भी प्रयास के लिए कंप्यूटर द्वारा पिछले ज्ञान के आधार पर कंप्यूटर दृष्टि की आवश्यकता होगी। 24-बिट पोर्टेबल नेटवर्क ग्राफ़िक्स को 48-बिट में कनवर्ट करने से इसमें जानकारी नहीं जुड़ती है, यह केवल वर्तमान समय का आरजीबी पिक्सेल मानों को शून्य से पैड करता है, जिससे कि FF C3 56 के मान वाला पिक्सेल, उदाहरण के लिए, FF00 C300 5600 बन जाए। रूपांतरण पिक्सेल को मान के लिए बदलना संभव बनाता है, उदाहरण के लिए, FF80 C340 56A0, किन्तु रूपांतरण स्वयं ऐसा नहीं करता वह, केवल छवि का और हेरफेर कर सकता है। हानिपूर्ण संपीड़न प्रारूप (जैसे JPEG या Vorbis) में छवि या ऑडियो फ़ाइल को दोषरहित डेटा संपीड़न (जैसे पोर्टेबल नेटवर्क ग्राफ़िक्स या FLAC) या असम्पीडित (जैसे Windows बिटमैप या WAV) प्रारूप में परिवर्तित करने से केवल स्थान बर्बाद होता है, क्योंकि उसी छवि के साथ मूल जानकारी का नुकसान (हानिपूर्ण संपीड़न की कलाकृतियाँ) लक्ष्य बन जाता है। JPEG छवि को कभी भी उस मूल छवि की गुणवत्ता में पुनर्स्थापित नहीं किया जा सकता है जिससे इसे बनाया गया था, चाहे उपयोगकर्ता अपने छवि हेरफेर कार्यक्रम की संपीड़न विरूपण साक्ष्य हटाने की सुविधा का कितना भी प्रयास करे।

हानिपूर्ण संपीड़न प्रक्रिया के माध्यम से खो गई जानकारी की स्वत: बहाली के लिए संभवतः कृत्रिम बुद्धि में महत्वपूर्ण प्रगति की आवश्यकता होगी।

कंप्यूटिंग और सूचना सिद्धांत की इन वास्तविकताओं के कारण, डेटा रूपांतरण प्रायःएक जटिल और त्रुटि-प्रवण प्रक्रिया होती है जिसके लिए विशेषज्ञों की सहायता की आवश्यकता होती है।

निर्णायक रूपांतरण

डेटा रूपांतरण सीधे प्रारूप से दूसरे प्रारूप में हो सकता है, किन्तु कई अनुप्रयोग जो कई प्रारूपों के बीच परिवर्तित होते हैं, मध्यवर्ती प्रतिनिधित्व का उपयोग करते हैं जिसके माध्यम से कोई भी स्रोत प्रारूप अपने लक्ष्य में परिवर्तित हो जाता है।[1] उदाहरण के लिए, दो एनकोडिंग के बीच लुकअप टेबल का उपयोग करके सिरिलिक लिपि टेक्स्ट को KOI8-R से Windows-1251 में बदलना संभव है, किन्तु आधुनिक दृष्टिकोण KOI8-R फ़ाइल को पहले यूनिकोड में और उसके बाद Windows-1251 में बदलना है। . यह अधिक प्रबंधनीय दृष्टिकोण है; चरित्र एन्कोडिंग के सभी संभावित जोड़े के लिए लुकअप टेबल की आवश्यकता के अतिरिक्त, एप्लिकेशन को प्रत्येक वर्ण सेट के लिए केवल लुकअप टेबल की आवश्यकता होती है, जिसका उपयोग वह यूनिकोड से और में कनवर्ट करने के लिए करता है, जिससे तालिकाओं की संख्या सैकड़ों से कुछ दसियों तक कम हो जाती है।[citation needed] निर्णायक रूपांतरण इसी तरह अन्य क्षेत्रों में उपयोग किया जाता है। कार्यालय अनुप्रयोग, जब कार्यालय फ़ाइल स्वरूपों के बीच कनवर्ट करने के लिए नियोजित होते हैं, तो उनके आंतरिक, डिफ़ॉल्ट फ़ाइल स्वरूप को धुरी के रूप में उपयोग करते हैं। उदाहरण के लिए, शब्द संसाधक RTF को OpenDocument में और फिर उसे WordPerfect फॉर्मेट में कनवर्ट करके रिच टेक्स्ट फ़ॉर्मैट फ़ाइल को WordPerfect फ़ाइल में बदल सकता है। छवि रूपांतरण कार्यक्रम पीसीएक्स छवि को सीधे पोर्टेबल नेटवर्क ग्राफिक्स में परिवर्तित नहीं करता है; इसके अतिरिक्त, पीसीएक्स छवि को लोड करते समय, यह स्मृति में आंतरिक उपयोग के लिए इसे साधारण बिटमैप प्रारूप में डीकोड करता है, और जब पीएनजी में कनवर्ट करने का आदेश दिया जाता है, तो उस मेमोरी छवि को लक्षित प्रारूप में परिवर्तित कर दिया जाता है। ऑडियो कनवर्टर जो FLAC से उन्नत ऑडियो कोडिंग में परिवर्तित होता है, स्रोत फ़ाइल को पहले मेमोरी में अपरिष्कृत पल्स कोड मॉडुलेशन डेटा में डिकोड करता है, और फिर लक्ष्य फ़ाइल बनाने के लिए उस मेमोरी छवि पर हानिपूर्ण AAC संपीड़न करता है।

खोया हुआ और अचूक डेटा रूपांतरण

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

लक्ष्य प्रारूप में सन्निकटन द्वारा सूचना के नुकसान को कम किया जा सकता है। ä जैसे वर्ण को ASCII में परिवर्तित करने का कोई विधि नहीं है, क्योंकि ASCII मानक में इसका अभाव है, किन्तु वर्ण को ae के रूप में अनुमानित करके जानकारी को बनाए रखा जा सकता है। बेशक, यह इष्टतम समाधान नहीं है, और खोज और प्रतिलिपि बनाने जैसे कार्यों को प्रभावित कर सकता है; और यदि कोई भाषा ä और ae के बीच अंतर करती है, तो उस सन्निकटन में जानकारी का नुकसान सम्मिलित है।

डेटा रूपांतरण भी अशुद्धि से पीड़ित हो सकता है, जो वैचारिक रूप से भिन्न स्वरूपों के बीच रूपांतरण का परिणाम है। WYSIWYG प्रतिमान, वर्ड प्रोसेसर और डेस्कटॉप प्रकाशन अनुप्रयोगों में उपस्तिथ है, बनाम संरचनात्मक-वर्णनात्मक प्रतिमान, जो SGML, XML और उनसे प्राप्त कई अनुप्रयोगों में पाया जाता है, जैसे HTML और MathML, उदाहरण है। WYSIWYG HTML संपादक का उपयोग करने से दो प्रतिमानों का मेल होता है, और परिणाम HTML फ़ाइलों के साथ होता है, यदि अमानक नहीं है, तो कोड। WYSIWYG प्रतिमान में डबल लाइनब्रेक नए पैराग्राफ को दर्शाता है, क्योंकि यह इस तरह के निर्माण के लिए दृश्य संकेत है, किन्तु WYSIWYG HTML संपादक सामान्यतः ऐसे अनुक्रम को <BR><BR> में बदल देगा, जो संरचनात्मक रूप से कोई नया पैराग्राफ नहीं है। अन्य उदाहरण के रूप में, पोर्टेबल दस्तावेज़ प्रारूप से संपादन योग्य वर्ड प्रोसेसर प्रारूप में परिवर्तित करना कठिन कार्य है, क्योंकि पीडीएफ पत्थर पर उत्कीर्णन जैसी पाठ्य सूचना को रिकॉर्ड करता है, जिसमें प्रत्येक वर्ण को निश्चित स्थिति दी जाती है और हार्ड-कोडेड लाइनब्रेक करता है, जबकि वर्ड प्रोसेसर प्रारूप पाठ को समायोजित करता है। फिर से प्रवाहित करें। पीडीएफ शब्द स्थान वर्ण के बारे में नहीं जानता है - दो अक्षरों के बीच का स्थान और दो शब्दों के बीच का स्थान केवल मात्रा में भिन्न होता है। इसलिए, प्रभाव के लिए पर्याप्त अक्षर-रिक्ति वाला शीर्षक सामान्यतः वर्ड प्रोसेसर फ़ाइल में रिक्त स्थान के साथ समाप्त होगा, उदाहरण के लिए वर्ड प्रोसेसर पर I N T R O D U C T I O N के रूप में 1 Em (टाइपोग्राफी) की रिक्ति के साथ परिचय।

खुला बनाम गुप्त विनिर्देश

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

इलेक्ट्रॉनिक्स

इलेक्ट्रॉनिक संचार प्रणाली की भौतिक परत पर डेटा प्रारूप रूपांतरण भी हो सकता है। गैर-गैर वापसी करने वाली शून्य और वापसी-टू-जीरो जैसे लाइन कोड के बीच रूपांतरण आवश्यक होने पर पूरा किया जा सकता है।

यह भी देखें

संदर्भ

  1. Dragos-Anton Manolescu; Markus Voelter; James Noble (2006). Pattern Languages of Program Design 5. Addison-Wesley Professional. pp. 271–. ISBN 978-0-321-32194-7.

Manolescu, FirstName (2006). Pattern Languages of Program Design 5. Upper Saddle River, NJ: Addison-Wesley. ISBN 0321321944.