रीफिकेशन (कंप्यूटर विज्ञान)

From Vigyanwiki
Revision as of 08:28, 5 December 2023 by alpha>Indicwiki (Created page with "{{Short description|Formal methods terminology}} {{Other uses|Reification (disambiguation)}} रिईफिकेशन वह प्रक्रिया है जिस...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

चिंतनशील प्रोग्रामिंग भाषाएँ

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

  • सी (प्रोग्रामिंग भाषा) मेमोरी पतों के निम्न-स्तरीय विवरण को दर्शाता है।
    कई प्रोग्रामिंग भाषा डिज़ाइन कंपाइलर और रन-टाइम सिस्टम में मेमोरी आवंटन के विवरण को समाहित करते हैं। सी प्रोग्रामिंग भाषा के डिज़ाइन में, मेमोरी एड्रेस को संशोधित किया गया है और यह अन्य भाषा निर्माणों द्वारा सीधे हेरफेर के लिए उपलब्ध है। उदाहरण के लिए, मेमोरी-मैप्ड डिवाइस ड्राइवर को कार्यान्वित करते समय निम्नलिखित कोड का उपयोग किया जा सकता है। बफ़र पॉइंटर मेमोरी एड्रेस 0xB8000000 के लिए एक प्रॉक्सी है।
     char* buffer = (char*) 0xB8000000;
     buffer[0] = 10;
    
  • लैम्ब्डा-कैलकुलस पर आधारित कार्यात्मक प्रोग्रामिंग भाषाएं लैम्ब्डा कैलकुलस#लैम्ब्डा कैलकुलस और प्रोग्रामिंग भाषाओं के रूप में एक प्रक्रिया अमूर्त और प्रक्रिया अनुप्रयोग की अवधारणा को पुष्ट करती हैं।
  • योजना (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा निरंतरता (लगभग, कॉल स्टैक) को दर्शाती है।
  • सी शार्प (प्रोग्रामिंग भाषा)|सी# में, भाषा की प्रथम श्रेणी की विशेषता के रूप में जेनेरिक के रूप में पैरामीट्रिक बहुरूपता को कार्यान्वित करने के लिए रीफिकेशन का उपयोग किया जाता है।
  • जावा (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा में, पुन: प्रयोज्य प्रकार मौजूद हैं जो रन टाइम पर पूरी तरह से उपलब्ध हैं (यानी संकलन के दौरान उनकी जानकारी मिटाई नहीं जाती है)।[2]
  • REBOL कोड को डेटा के रूप में और इसके विपरीत को दर्शाता है।
  • कई भाषाएँ, जैसे लिस्प (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, और कर्ल (प्रोग्रामिंग भाषा), एक eval प्रदान करती हैं|eval या evaluate वह प्रक्रिया जो भाषा दुभाषिया को प्रभावी ढंग से पुष्ट करती है।
  • प्रोलॉग के लिए लॉगटॉक फ्रेमवर्क तर्क प्रोग्रामिंग के संदर्भ में संशोधन का पता लगाने का एक साधन प्रदान करता है।
  • स्मॉलटॉक और अभिनेता मॉडल ब्लॉक और संदेश भेजने की अनुमति देते हैं,[3] जो लिस्प में लैम्ब्डा अभिव्यक्ति के समतुल्य हैं, और thisContext स्मॉलटॉक में, जो वर्तमान निष्पादन ब्लॉक का एक संशोधन है।
  • Homoiconicity भाषा के वाक्य-विन्यास को एक अमूर्त वाक्य-विन्यास वृक्ष के रूप में, विशेष रूप से एक साथ मिलकर, परिष्कृत करता है eval.

डेटा संशोधन बनाम डेटा शोधन

डेटा संशोधन (चरणबद्ध शोधन) में औपचारिक विनिर्देश में उपयोग किए गए अमूर्त डेटा प्रकारों का अधिक ठोस प्रतिनिधित्व खोजना शामिल है।

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

वैचारिक मॉडलिंग में

संकल्पनात्मक मॉडल (कंप्यूटर विज्ञान) में रिईफिकेशन का व्यापक रूप से उपयोग किया जाता है।[5] किसी रिश्ते को साकार करने का अर्थ है उसे एक इकाई के रूप में देखना। किसी रिश्ते की पुष्टि करने का उद्देश्य उसे स्पष्ट करना है, जब उसमें अतिरिक्त जानकारी जोड़ने की आवश्यकता होती है। रिश्ते के प्रकार पर विचार करेंIsMemberOf(member:Person, Committee). का एक उदाहरणIsMemberOfएक रिश्ता है जो इस तथ्य का प्रतिनिधित्व करता है कि एक व्यक्ति एक समिति का सदस्य है। नीचे दिया गया चित्र जनसंख्या का एक उदाहरण दिखाता हैIsMemberOf relationship in tabular form. Person P1 is a member of committees C1 and C2. Person P2 is a member of committee C1 only.

उदाहरण जनसंख्या IsMemberOf सारणीबद्ध रूप में संबंध. व्यक्ति P1 समिति C1 और C2 का सदस्य है। व्यक्ति P2 केवल समिति C1 का सदस्य है।

हालाँकि, उसी तथ्य को एक इकाई के रूप में भी देखा जा सकता है। किसी रिश्ते को एक इकाई के रूप में देखते हुए, कोई कह सकता है कि इकाई रिश्ते को प्रतिबिंबित करती है। इसे रिश्ते का पुनर्मूल्यांकन कहा जाता है। किसी भी अन्य इकाई की तरह, यह एक इकाई प्रकार का एक उदाहरण होना चाहिए। वर्तमान उदाहरण में, इकाई प्रकार का नाम दिया गया है Membership. के प्रत्येक उदाहरण के लिएIsMemberOf, इसका एक और केवल एक ही उदाहरण हैMembership, और इसके विपरीत। अब, मूल संबंध में और अधिक जानकारी जोड़ना संभव हो गया है। उदाहरण के तौर पर हम इस तथ्य को व्यक्त कर सकते हैं कि व्यक्ति पी1 को व्यक्ति पी2 द्वारा समिति सी1 का सदस्य नामित किया गया था। रिफाइंड रिश्ताMembershipनए रिश्ते के स्रोत के रूप में इस्तेमाल किया जा सकता हैIsNominatedBy(Membership, Person).

संबंधित उपयोगों के लिए रीफिकेशन (ज्ञान प्रतिनिधित्व) देखें।

एकीकृत मॉडलिंग भाषा (यूएमएल) में

सदस्यता उदाहरण के लिए यूएमएल वर्ग आरेख

एकीकृत मॉडलिंग भाषा संशोधित संबंध प्रकारों को परिभाषित करने के लिए एक एसोसिएशन क्लास निर्माण प्रदान करती है। एसोसिएशन क्लास एक एकल मॉडल तत्व है जो एक प्रकार का एसोसिएशन और एक प्रकार का क्लास दोनों है।[6] एसोसिएशन और इकाई प्रकार जो पुष्टि करता है, दोनों एक ही मॉडल तत्व हैं। ध्यान दें कि विशेषताओं को पुन: प्रमाणित नहीं किया जा सकता है।

सिमेंटिक वेब पर

आरडीएफ और ओडब्लूएल

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

वैचारिक मॉडलिंग अनुभाग का उदाहरण एक विशेष व्यक्ति का वर्णन करता है URIref person:p1, जो इसका सदस्य है committee:c1. उस विवरण से आरडीएफ ट्रिपल है

  person:p1   committee:isMemberOf   committee:c1 .

दो और तथ्यों को संग्रहीत करने पर विचार करें: (i) यह रिकॉर्ड करने के लिए कि इस विशेष व्यक्ति को इस समिति में किसने नामांकित किया (सदस्यता के बारे में एक बयान), और (ii) यह रिकॉर्ड करने के लिए कि डेटाबेस में तथ्य किसने जोड़ा (बयान के बारे में एक बयान)।

पहला मामला यूएमएल में उपरोक्त की तरह शास्त्रीय संशोधन का मामला है: सदस्यता को पुनः स्थापित करें और इसकी विशेषताओं और भूमिकाओं आदि को संग्रहीत करें:

 committee:Membership        rdf:type              owl:Class .
 committee:membership12345   rdf:type              committee:Membership .
 committee:membership12345   committee:ofPerson    person:p1 .
 committee:membership12345   committee:inCommittee committee:c1 .
 person:p2                   committee:nominated   committee:membership12345 .

इसके अतिरिक्त, आरडीएफ आरडीएफ कथनों का वर्णन करने के लिए एक अंतर्निहित शब्दावली प्रदान करता है। इस शब्दावली का उपयोग करते हुए किसी कथन का विवरण कथन का पुनरावलोकन कहलाता है। आरडीएफ पुनर्मूल्यांकन शब्दावली में प्रकार शामिल हैं rdf:Statement, और गुण rdf:subject, rdf:predicate, और rdf:object.[7] संशोधन शब्दावली का उपयोग करते हुए, व्यक्ति की सदस्यता के बारे में कथन का संशोधन कथन को URIref निर्दिष्ट करके दिया जाएगा जैसे कि committee:membership12345 ताकि वर्णनात्मक कथनों को इस प्रकार लिखा जा सके:

 committee:membership12345Stat   rdf:type        rdf:Statement .
 committee:membership12345Stat   rdf:subject     person:p1 .
 committee:membership12345Stat   rdf:predicate   committee:isMemberOf . 
 committee:membership12345Stat   rdf:object      committee:c1 .

ये कथन कहते हैं कि जिस संसाधन की पहचान की गई है URIref committee:membership12345Stat एक आरडीएफ कथन है, कि कथन का विषय पहचाने गए संसाधन को संदर्भित करता है person:p1, कथन का विधेय पहचाने गए संसाधन को संदर्भित करता है committee:isMemberOf, और कथन का उद्देश्य संसाधन को संदर्भित करता है committee:c1. यह मानते हुए कि मूल कथन वास्तव में पहचाना गया है committee:membership12345, मूल कथन की पुनर्रचना के साथ तुलना करने से यह स्पष्ट होना चाहिए कि पुनर्रचना वास्तव में इसका वर्णन करती है। आरडीएफ संशोधन शब्दावली के पारंपरिक उपयोग में हमेशा इस पैटर्न में चार कथनों का उपयोग करके एक कथन का वर्णन करना शामिल होता है। इसलिए, उन्हें कभी-कभी रीफिकेशन क्वाड भी कहा जाता है।[7]

इस परिपाटी के अनुसार पुनरीक्षण का उपयोग करते हुए, हम इस तथ्य को रिकॉर्ड कर सकते हैं person:p3 में कथन जोड़ा गया डेटाबेस द्वारा

  person:p3    committee:addedToDatabase    committee:membership12345Stat .

यह ध्यान रखना महत्वपूर्ण है कि पुनरीक्षण के पारंपरिक उपयोग में, पुनरीक्षण त्रिगुणों के विषय को एक विशेष आरडीएफ दस्तावेज़ में त्रिगुण के एक विशेष उदाहरण की पहचान करने के लिए माना जाता है, न कि कुछ मनमाने ढंग से त्रिगुणों में समान विषय, विधेय और वस्तु होती है। इस विशेष परिपाटी का उपयोग इसलिए किया जाता है क्योंकि पुनर्मूल्यांकन का उद्देश्य रचना की तारीखों और स्रोत की जानकारी जैसे गुणों को व्यक्त करना है, जैसा कि पहले से दिए गए उदाहरणों में है, और इन गुणों को त्रिगुणों के विशिष्ट उदाहरणों पर लागू करने की आवश्यकता है। ध्यान दें कि वर्णित त्रिगुण (subject predicate object) स्वयं इस तरह के संशोधन क्वाड द्वारा निहित नहीं है (और यह आवश्यक नहीं है कि यह वास्तव में डेटाबेस में मौजूद हो)। यह इस तंत्र का उपयोग यह व्यक्त करने के लिए भी करता है कि कौन से त्रिगुण पकड़ में नहीं आते हैं।

आरडीएफ में पुनर्मूल्यांकन शब्दावली की शक्ति बयानों को यूआरआईरेफ्स निर्दिष्ट करने के लिए अंतर्निहित साधनों की कमी से प्रतिबंधित है, इसलिए आरडीएफ में इस प्रकार की उत्पत्ति जानकारी व्यक्त करने के लिए, किसी को कुछ तंत्र (आरडीएफ के बाहर) का उपयोग करना होगा अलग-अलग आरडीएफ बयानों के लिए यूआरआई निर्दिष्ट करें, फिर उन व्यक्तिगत बयानों के बारे में आगे बयान दें, उनकी पहचान करने के लिए उनके यूआरआई का उपयोग करें।[7]


विषय मानचित्र में

विषय मानचित्र (एक्सटीएम) में, केवल एक विषय का नाम हो सकता है या किसी एसोसिएशन में भूमिका निभा सकता है। कोई किसी विषय के बारे में दावा करने के लिए एसोसिएशन का उपयोग कर सकता है, लेकिन कोई उस दावे के बारे में सीधे तौर पर दावा नहीं कर सकता है। हालाँकि, एक ऐसा विषय बनाना संभव है जो मानचित्र में एक गैर-विषय निर्माण को दर्शाता है, इस प्रकार एसोसिएशन को नाम दिया जा सकता है और उसे एक विषय के रूप में माना जा सकता है।[8]


एन-एरी संबंध

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

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

 :p1
      a       :Person ;
      :has_membership _:membership_12345 .
 _:membership_12345
      a       :Membership ;
      :committee :c1;
      :nominated_by :p2 .


बनाम. उद्धरण

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

  committee:membership12345   rdf:subject   person:p1 .

का वर्णन rdf:subject मूल कथन में कहा गया है कि कथन का विषय URIref द्वारा पहचाना गया संसाधन (व्यक्ति) है person:p1. इसमें यह नहीं बताया गया है कि कथन का विषय यूआरआईरेफ ही है (यानी, कुछ वर्णों से शुरू होने वाली एक स्ट्रिंग), जैसा कि उद्धरण होगा।

यह भी देखें

संदर्भ

  1. J. Malenfant, M. Jacques and F.-N. Demers, A Tutorial on Behavioral Reflection and its Implementation Archived 2010-05-28 at the Wayback Machine
  2. The Java Language Specification, section 4.7, Java SE 7 Edition
  3. "स्मॉलटॉक ब्लॉक और क्लोजर". C2.com. 2009-10-15. Retrieved 2010-10-09.
  4. Formal Methods Europe, Frequently Asked Questions, part 13 Archived 2005-03-12 at the Wayback Machine.
  5. Antoni Olivé, Conceptual Modeling of Information Systems, Springer Verlag, 2007.
  6. Unified Modeling Language, UML superstructure, Object Management Group, 2007-11-02.
  7. 7.0 7.1 7.2 "आरडीएफ प्राइमर". W3.org. Retrieved 2010-10-09.
  8. Practical Introduction into Topic Maps Archived 2009-02-03 at the Wayback Machine.
  9. "W3C Defining N-ary relations on Semantic Web". W3.org. Retrieved 2010-10-09.