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

From Vigyanwiki
(Created page with "{{Short description|Formal methods terminology}} {{Other uses|Reification (disambiguation)}} रिईफिकेशन वह प्रक्रिया है जिस...")
 
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Short description|Formal methods terminology}}
{{Short description|Formal methods terminology}}
{{Other uses|Reification (disambiguation)}}
{{Other uses|रेफिकेशन  (अस्पष्टीकरण)}}


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


== चिंतनशील प्रोग्रामिंग भाषाएँ ==
== रिफ्लेक्टिव प्रोग्रामिंग लैंग्वेज ==
प्रोग्रामिंग भाषाओं के संदर्भ में, रीफिकेशन वह प्रक्रिया है जिसके द्वारा एक उपयोगकर्ता प्रोग्राम या प्रोग्रामिंग भाषा का कोई भी पहलू जो अनुवादित प्रोग्राम और रन-टाइम सिस्टम में निहित था, भाषा में ही व्यक्त किया जाता है। यह प्रक्रिया इसे प्रोग्राम को उपलब्ध कराती है, जो सामान्य [[डेटा]] के रूप में इन सभी पहलुओं का निरीक्षण कर सकता है। रिफ्लेक्शन (कंप्यूटर विज्ञान) में, रीफ़िकेशन डेटा संबंधित रीइफ़ाइड पहलू से कारणात्मक रूप से जुड़ा होता है, जैसे कि उनमें से एक में संशोधन दूसरे को प्रभावित करता है। इसलिए, पुनरीक्षण डेटा हमेशा संबंधित पुनरीक्षित पहलू का एक विश्वसनीय प्रतिनिधित्व होता है {{clarification needed|date=April 2017}}. अक्सर कहा जाता है कि रीफ़िकेशन डेटा को प्रथम श्रेणी की वस्तु बना दिया जाता है{{citation needed|date=April 2017}}. संशोधन, कम से कम आंशिक रूप से, आज तक कई भाषाओं में अनुभव किया गया है: प्रारंभिक [[लिस्प (प्रोग्रामिंग भाषा)]] और वर्तमान [[प्रोलॉग]] में, प्रोग्राम को डेटा के रूप में माना गया है, हालांकि कारण संबंध को अक्सर प्रोग्रामर की जिम्मेदारी पर छोड़ दिया गया है। स्मॉलटॉक-80 में, स्रोत पाठ से बाइटकोड तक कंपाइलर भाषा के पहले कार्यान्वयन के बाद से रन-टाइम सिस्टम का हिस्सा रहा है।<ref>J. Malenfant, M. Jacques and F.-N. Demers, [http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/ref96/ref96.html A Tutorial on Behavioral Reflection and its Implementation] {{webarchive|url=https://web.archive.org/web/20100528214857/http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/ref96/ref96.html |date=2010-05-28 }}</ref>
प्रोग्रामिंग लैंग्वेजो के संदर्भ में, रीफिकेशन वह प्रक्रिया है जिसके द्वारा एक उपयोगकर्ता प्रोग्राम या प्रोग्रामिंग लैंग्वेज का कोई भी भाग जो अनुवादित प्रोग्राम और रन-टाइम सिस्टम में निहित था, लैंग्वेज में ही व्यक्त किया जाता है। यह प्रक्रिया इसे प्रोग्राम को उपलब्ध कराती है, जो सामान्य [[डेटा]] के रूप में इन सभी भागो का निरीक्षण कर सकता है। रिफ्लेक्शन (कंप्यूटर विज्ञान) में, रीफ़िकेशन डेटा संबंधित रीइफ़ाइड भाग से कारणात्मक रूप से जुड़ा होता है, जैसे कि उनमें से एक में रीफिकेशन दूसरे को प्रभावित करता है। इसलिए, रीफिकेशन डेटा सदैव संबंधित पुनरीक्षित भाग का एक विश्वसनीय प्रतिनिधित्व होता है . अधिकांशतः कहा जाता है कि रीफ़िकेशन डेटा को प्रथम श्रेणी की वस्तु बना दिया जाता है. रीफिकेशन, कम से कम आंशिक रूप से, वर्तमान में कई लैंग्वेजो से अनुभव किया गया है: प्रारंभिक [[लिस्प (प्रोग्रामिंग भाषा)|लिस्प (प्रोग्रामिंग लैंग्वेज)]] और वर्तमान [[प्रोलॉग]] में, प्रोग्राम को डेटा के रूप में माना गया है, चूंकि कारण संबंध को अधिकांशतः प्रोग्रामर की उत्तरदाई पर छोड़ दिया गया है। स्मॉलटॉक-80 में, स्रोत पाठ से बाइटकोड तक कंपाइलर लैंग्वेज के पहले कार्यान्वयन के बाद से रन-टाइम सिस्टम का भाग रहा है।<ref>J. Malenfant, M. Jacques and F.-N. Demers, [http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/ref96/ref96.html A Tutorial on Behavioral Reflection and its Implementation] {{webarchive|url=https://web.archive.org/web/20100528214857/http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/malenfant/ref96/ref96.html |date=2010-05-28 }}</ref>
* [[सी (प्रोग्रामिंग भाषा)]] मेमोरी पतों के निम्न-स्तरीय विवरण को दर्शाता है।{{paragraph break}}कई प्रोग्रामिंग भाषा डिज़ाइन कंपाइलर और रन-टाइम सिस्टम में मेमोरी आवंटन के विवरण को समाहित करते हैं। सी प्रोग्रामिंग भाषा के डिज़ाइन में, मेमोरी एड्रेस को संशोधित किया गया है और यह अन्य भाषा निर्माणों द्वारा सीधे हेरफेर के लिए उपलब्ध है। उदाहरण के लिए, मेमोरी-मैप्ड डिवाइस ड्राइवर को कार्यान्वित करते समय निम्नलिखित कोड का उपयोग किया जा सकता है। बफ़र पॉइंटर मेमोरी एड्रेस 0xB8000000 के लिए एक प्रॉक्सी है।{{paragraph break}}<syntaxhighlight lang="c">
* [[सी (प्रोग्रामिंग भाषा)|सी (प्रोग्रामिंग लैंग्वेज)]] मेमोरी एड्रेस के निम्न-स्तरीय विवरण को दर्शाता है। कई प्रोग्रामिंग लैंग्वेज डिज़ाइन कंपाइलर और रन-टाइम सिस्टम में मेमोरी आवंटन के विवरण को समाहित करते हैं। सी प्रोग्रामिंग लैंग्वेज के डिज़ाइन में, मेमोरी एड्रेस को संशोधित किया गया है और यह अन्य लैंग्वेज निर्माणों द्वारा सीधे परिवर्तन के लिए उपलब्ध है। उदाहरण के लिए, मेमोरी-मैप्ड डिवाइस ड्राइवर को कार्यान्वित करते समय निम्नलिखित कोड का उपयोग किया जा सकता है। बफ़र पॉइंटर मेमोरी एड्रेस 0xB8000000 के लिए एक प्रॉक्सी है।<syntaxhighlight lang="c">
  char* buffer = (char*) 0xB8000000;
  char* buffer = (char*) 0xB8000000;
  buffer[0] = 10;  
  buffer[0] = 10;  
</syntaxhighlight>
</syntaxhighlight>
* [[लैम्ब्डा-कैलकुलस]] पर आधारित कार्यात्मक प्रोग्रामिंग भाषाएं लैम्ब्डा कैलकुलस#लैम्ब्डा कैलकुलस और प्रोग्रामिंग भाषाओं के रूप में एक प्रक्रिया अमूर्त और प्रक्रिया अनुप्रयोग की अवधारणा को पुष्ट करती हैं।
* [[लैम्ब्डा-कैलकुलस]] पर आधारित कार्यात्मक प्रोग्रामिंग लैंग्वेजं लैम्ब्डा कैलकुलस लैम्ब्डा कैलकुलस और प्रोग्रामिंग लैंग्वेजो के रूप में एक प्रक्रिया एब्स्ट्रेक्ट और प्रक्रिया अनुप्रयोग की अवधारणा को पुष्ट करती हैं।
* [[योजना (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा [[निरंतरता]] (लगभग, कॉल स्टैक) को दर्शाती है।
* [[योजना (प्रोग्रामिंग भाषा)|स्कीम (प्रोग्रामिंग लैंग्वेज)]] प्रोग्रामिंग लैंग्वेज [[निरंतरता]] (लगभग, कॉल स्टैक) को दर्शाती है।
* सी शार्प (प्रोग्रामिंग भाषा)|सी# में, भाषा की प्रथम श्रेणी की विशेषता के रूप में जेनेरिक के रूप में [[पैरामीट्रिक बहुरूपता]] को कार्यान्वित करने के लिए रीफिकेशन का उपयोग किया जाता है।
* |सी# में (प्रोग्रामिंग लैंग्वेज), लैंग्वेज की प्रथम श्रेणी की विशेषता के रूप में जेनेरिक के रूप में [[पैरामीट्रिक बहुरूपता]] को कार्यान्वित करने के लिए रीफिकेशन का उपयोग किया जाता है।
* [[जावा (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग भाषा में, पुन: प्रयोज्य प्रकार मौजूद हैं जो रन टाइम पर पूरी तरह से उपलब्ध हैं (यानी संकलन के दौरान उनकी जानकारी मिटाई नहीं जाती है)।<ref>[http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.7 The Java Language Specification, section 4.7], Java SE 7 Edition</ref>
* [[जावा (प्रोग्रामिंग भाषा)|जावा (प्रोग्रामिंग लैंग्वेज)]] प्रोग्रामिंग लैंग्वेज में, पुन: प्रयोज्य प्रकार उपस्तिथ हैं जो रन टाइम पर पूरी तरह से उपलब्ध हैं (अर्थात संकलन के समय उनकी जानकारी मिटाई नहीं जाती है)।<ref>[http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.7 The Java Language Specification, section 4.7], Java SE 7 Edition</ref>
* [[REBOL]] कोड को डेटा के रूप में और इसके विपरीत को दर्शाता है।
* [[REBOL|आरईबीओएल]] कोड को डेटा के रूप में और इसके विपरीत को दर्शाता है।
* कई भाषाएँ, जैसे लिस्प (प्रोग्रामिंग भाषा), [[जावास्क्रिप्ट]], और [[कर्ल (प्रोग्रामिंग भाषा)]], एक eval प्रदान करती हैं|<code>eval</code> या <code>evaluate</code> वह प्रक्रिया जो भाषा दुभाषिया को प्रभावी ढंग से पुष्ट करती है।
* कई लैंग्वेज, जैसे लिस्प (प्रोग्रामिंग लैंग्वेज), [[जावास्क्रिप्ट]], और [[कर्ल (प्रोग्रामिंग भाषा)|कर्ल (प्रोग्रामिंग लैंग्वेज)]], एक <code>eval</code> या <code>evaluate</code> प्रक्रिया प्रदान करती हैं, वह जो लैंग्वेज इंटरप्रेटर को प्रभावी रूप से पुष्ट करती है।
* प्रोलॉग के लिए [[लॉगटॉक]] फ्रेमवर्क [[तर्क प्रोग्रामिंग]] के संदर्भ में संशोधन का पता लगाने का एक साधन प्रदान करता है।
* प्रोलॉग के लिए [[लॉगटॉक]] फ्रेमवर्क [[तर्क प्रोग्रामिंग|लॉजिक प्रोग्रामिंग]] के संदर्भ में रीफिकेशन का पता लगाने का एक साधन प्रदान करता है।
* स्मॉलटॉक और [[ अभिनेता मॉडल ]] ब्लॉक और संदेश भेजने की अनुमति देते हैं,<ref>{{cite web|url=http://c2.com/cgi/wiki?SmalltalkBlocksAndClosures |title=स्मॉलटॉक ब्लॉक और क्लोजर|publisher=C2.com |date=2009-10-15 |accessdate=2010-10-09}}</ref> जो लिस्प में लैम्ब्डा अभिव्यक्ति के समतुल्य हैं, और <code>thisContext</code> स्मॉलटॉक में, जो वर्तमान निष्पादन ब्लॉक का एक संशोधन है।
* स्मॉलटॉक और [[ अभिनेता मॉडल |अभिनेता मॉडल]] ब्लॉक और संदेश भेजने की अनुमति देते हैं,<ref>{{cite web|url=http://c2.com/cgi/wiki?SmalltalkBlocksAndClosures |title=स्मॉलटॉक ब्लॉक और क्लोजर|publisher=C2.com |date=2009-10-15 |accessdate=2010-10-09}}</ref> जो लिस्प में लैम्ब्डा अभिव्यक्ति के समतुल्य हैं, और <code>thisContext</code> स्मॉलटॉक में, जो वर्तमान निष्पादन ब्लॉक का एक रीफिकेशन है।
* [[Homoiconicity]] भाषा के वाक्य-विन्यास को एक अमूर्त वाक्य-विन्यास वृक्ष के रूप में, विशेष रूप से एक साथ मिलकर, परिष्कृत करता है <code>eval</code>.
* [[Homoiconicity|होमोइकोनिक]] के वाक्य-विन्यास को एक एब्स्ट्रेक्ट सिंटेक्स ट्री के रूप में दर्शाती हैं, जो सामान्यतः <code>eval</code> के साथ मिलकर होता है।


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


डेटा रीफ़िकेशन [[वियना विकास विधि]] (वीडीएम) की शब्दावली है जिसे अधिकांश अन्य लोग डेटा शोधन कहते हैं। एक उदाहरण इच्छित कार्यान्वयन भाषा में किसी समकक्ष के बिना डेटा प्रतिनिधित्व को प्रतिस्थापित करके कार्यान्वयन की दिशा में एक कदम उठाना है, जैसे कि सेट, जिसमें एक समकक्ष होता है (जैसे कि निश्चित डोमेन वाले मानचित्र जिन्हें सरणियों द्वारा कार्यान्वित किया जा सकता है), या कम से कम एक ऐसा जो समकक्ष के करीब हो, जैसे अनुक्रम। वीडीएम समुदाय परिशोधन के स्थान पर पुनरीक्षण शब्द को प्राथमिकता देता है, क्योंकि इस प्रक्रिया का संबंध किसी विचार को परिष्कृत करने से अधिक उसे मूर्त रूप देने से है।<ref>[https://www.cs.tcd.ie/FME/original/FAQ/vdm/part13.html Formal Methods Europe, Frequently Asked Questions, part 13] {{webarchive|url=https://web.archive.org/web/20050312031255/http://www.cs.tcd.ie/FME/original/FAQ/vdm/part13.html |date=2005-03-12 }}.</ref>
डेटा रीफ़िकेशन वियना [[वियना विकास विधि|डेवलपमेंट मेथड]] (वीडीएम) की शब्दावली है जिसे अधिकांश अन्य लोग डेटा रेफिनमेन्ट कहते हैं। उदाहरण इच्छित कार्यान्वयन लैंग्वेज में किसी समकक्ष के बिना डेटा प्रतिनिधित्व को प्रतिस्थापित करके कार्यान्वयन की दिशा में एक पथ उठाना है, जैसे कि सेट, जिसमें एक समकक्ष होता है (जैसे कि निश्चित डोमेन वाले मैप जिन्हें सरणियों द्वारा कार्यान्वित किया जा सकता है), या कम से कम ऐसा जो समकक्ष के समीप, जैसे अनुक्रम हो। वीडीएम समुदाय परिशोधन के स्थान पर रीफिकेशन शब्द को प्राथमिकता देता है, क्योंकि इस प्रक्रिया का संबंध किसी विचार को परिष्कृत करने से अधिक उसे मूर्त रूप देने से है।<ref>[https://www.cs.tcd.ie/FME/original/FAQ/vdm/part13.html Formal Methods Europe, Frequently Asked Questions, part 13] {{webarchive|url=https://web.archive.org/web/20050312031255/http://www.cs.tcd.ie/FME/original/FAQ/vdm/part13.html |date=2005-03-12 }}.</ref>
समान उपयोगों के लिए, रीफिकेशन (भाषाविज्ञान) देखें।


== वैचारिक मॉडलिंग में ==
समान उपयोगों के लिए, रीफिकेशन (लैंग्वेजविज्ञान) देखें।
संकल्पनात्मक मॉडल (कंप्यूटर विज्ञान) में रिईफिकेशन का व्यापक रूप से उपयोग किया जाता है।<ref>Antoni Olivé, [http://www-pagines.fib.upc.es/~modeling/Preface.pdf Conceptual Modeling of Information Systems], Springer Verlag, 2007.</ref> किसी रिश्ते को साकार करने का अर्थ है उसे एक इकाई के रूप में देखना। किसी रिश्ते की पुष्टि करने का उद्देश्य उसे स्पष्ट करना है, जब उसमें अतिरिक्त जानकारी जोड़ने की आवश्यकता होती है। रिश्ते के प्रकार पर विचार करें<code>IsMemberOf(member:Person, Committee)</code>. का एक उदाहरण<code>IsMemberOf</code>एक रिश्ता है जो इस तथ्य का प्रतिनिधित्व करता है कि एक व्यक्ति एक समिति का सदस्य है। नीचे दिया गया चित्र जनसंख्या का एक उदाहरण दिखाता है<code>IsMemberOf</code>'' relationship in tabular form. Person ''P1'' is a member of committees ''C1'' and ''C2''. Person ''P2'' is a member of committee ''C1'' only. [[File:reification example1.png|500px|thumb|उदाहरण जनसंख्या <code>IsMemberOf</code> सारणीबद्ध रूप में संबंध. व्यक्ति P1 समिति C1 और C2 का सदस्य है। व्यक्ति P2 केवल समिति C1 का सदस्य है।]]हालाँकि, उसी तथ्य को एक इकाई के रूप में भी देखा जा सकता है। किसी रिश्ते को एक इकाई के रूप में देखते हुए, कोई कह सकता है कि इकाई रिश्ते को प्रतिबिंबित करती है। इसे रिश्ते का पुनर्मूल्यांकन कहा जाता है। किसी भी अन्य इकाई की तरह, यह एक इकाई प्रकार का एक उदाहरण होना चाहिए। वर्तमान उदाहरण में, इकाई प्रकार का नाम दिया गया है <code>Membership</code>. के प्रत्येक उदाहरण के लिए<code>IsMemberOf</code>, इसका एक और केवल एक ही उदाहरण है<code>Membership</code>, और इसके विपरीत। अब, मूल संबंध में और अधिक जानकारी जोड़ना संभव हो गया है। उदाहरण के तौर पर हम इस तथ्य को व्यक्त कर सकते हैं कि व्यक्ति पी1 को व्यक्ति पी2 द्वारा समिति सी1 का सदस्य नामित किया गया था। रिफाइंड रिश्ता<code>Membership</code>नए रिश्ते के स्रोत के रूप में इस्तेमाल किया जा सकता है<code>IsNominatedBy(Membership, Person)</code>.
 
== कॉन्सेप्टुअल मॉडलिंग में ==
कॉन्सेप्टुअल मॉडल (कंप्यूटर विज्ञान) में रीफिकेशन का व्यापक रूप से उपयोग किया जाता है।<ref>Antoni Olivé, [http://www-pagines.fib.upc.es/~modeling/Preface.pdf Conceptual Modeling of Information Systems], Springer Verlag, 2007.</ref> किसी संबंध को साकार करने का अर्थ है उसे एक इकाई के रूप में देखना है। किसी संबंध की पुष्टि करने का उद्देश्य उसे स्पष्ट करना है, जब उसमें अतिरिक्त जानकारी जोड़ने की आवश्यकता होती है। संबंध के प्रकार <code>IsMemberOf(member:Person, Committee) पर विचार करें.</code> <code>IsMemberOf</code>का एक उदाहरण एक संबंध है जो इस तथ्य का प्रतिनिधित्व करता है कि व्यक्ति एक समिति का सदस्य है। नीचे दिया गया चित्र जनसंख्या का एक उदाहरण दिखाता है<code>IsMemberOf</code>'' relationship in tabular form. Person ''P1'' is a member of committees ''C1'' and ''C2''. Person ''P2'' is a member of committee ''C1'' only का सदस्य है.''[[File:reification example1.png|500px|thumb|उदाहरण जनसंख्या <code>IsMemberOf</code> सारणीबद्ध रूप में संबंध. व्यक्ति P1 समिति C1 और C2 का सदस्य है। व्यक्ति P2 केवल समिति C1 का सदस्य है।]]
 
 
चूंकि, उसी तथ्य को एक इकाई के रूप में भी देखा जा सकता है। किसी संबंध को एक इकाई के रूप में देखते हुए, कोई कह सकता है कि इकाई संबंध को प्रतिबिंबित करती है। इसे संबंध का रीफिकेशन कहा जाता है। किसी भी अन्य इकाई की तरह, यह एक इकाई प्रकार का उदाहरण होना चाहिए। वर्तमान उदाहरण में, इकाई प्रकार का नाम <code>Membership</code>दिया गया है. के प्रत्येक उदाहरण के लिए<code>IsMemberOf</code>, और इसके विपरीत इसका और केवल एक ही उदाहरण <code>Membership</code>है। अब, मूल संबंध में और अधिक जानकारी जोड़ना संभव हो गया है। उदाहरण के रूप से हम इस तथ्य को व्यक्त कर सकते हैं कि व्यक्ति p1 को व्यक्ति p2 द्वारा समिति c1 का सदस्य नामित किया गया था। रिफाइंड संबंध<code>Membership</code>नए संबंध <code>IsNominatedBy(Membership, Person)</code>के स्रोत के रूप में उपयोग किया जा सकता है.


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


== एकीकृत मॉडलिंग भाषा (यूएमएल) में ==
== यूनिफ़ाइड मॉडलिंग लैंग्वेज (यूएमएल) में ==
[[File:reification example2.png|400px|thumb|सदस्यता उदाहरण के लिए यूएमएल [[वर्ग आरेख]]]][[एकीकृत मॉडलिंग भाषा]] संशोधित संबंध प्रकारों को परिभाषित करने के लिए एक एसोसिएशन क्लास निर्माण प्रदान करती है। एसोसिएशन क्लास एक एकल मॉडल तत्व है जो एक प्रकार का एसोसिएशन और एक प्रकार का क्लास दोनों है।<ref>''Unified Modeling Language, UML superstructure'', Object Management Group, 2007-11-02.</ref> एसोसिएशन और इकाई प्रकार जो पुष्टि करता है, दोनों एक ही मॉडल तत्व हैं। ध्यान दें कि विशेषताओं को पुन: प्रमाणित नहीं किया जा सकता है।
[[File:reification example2.png|400px|thumb|सदस्यता उदाहरण के लिए यूएमएल [[वर्ग आरेख]] है।]][[एकीकृत मॉडलिंग भाषा|यूनिफ़ाइड मॉडलिंग लैंग्वेज]] संशोधित संबंध प्रकारों को परिभाषित करने के लिए एक एसोसिएशन क्लास निर्माण प्रदान करती है। एसोसिएशन क्लास एक एकल मॉडल तत्व है जो एक प्रकार का एसोसिएशन और एक प्रकार का क्लास दोनों है।<ref>''Unified Modeling Language, UML superstructure'', Object Management Group, 2007-11-02.</ref> एसोसिएशन और इकाई प्रकार जो पुष्टि करता है, दोनों एक ही मॉडल तत्व हैं। ध्यान दें कि विशेषताओं को पुन: प्रमाणित नहीं किया जा सकता है।


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


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


वैचारिक मॉडलिंग अनुभाग का उदाहरण एक विशेष व्यक्ति का वर्णन करता है <code>URIref person:p1</code>, जो इसका सदस्य है <code>committee:c1</code>. उस विवरण से आरडीएफ ट्रिपल है
कॉन्सेप्टुअल मॉडलिंग अनुभाग का उदाहरण <code>URIref person:p1</code>एक विशेष व्यक्ति का वर्णन करता है , जो इसका सदस्य है और<code>committee:c1</code>. उस विवरण से आरडीएफ ट्रिपल है
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
   person:p1  committee:isMemberOf  committee:c1 .
   person:p1  committee:isMemberOf  committee:c1 .
</syntaxhighlight>
</syntaxhighlight>
दो और तथ्यों को संग्रहीत करने पर विचार करें: (i) यह रिकॉर्ड करने के लिए कि इस विशेष व्यक्ति को इस समिति में किसने नामांकित किया (सदस्यता के बारे में एक बयान), और (ii) यह रिकॉर्ड करने के लिए कि डेटाबेस में तथ्य किसने जोड़ा (बयान के बारे में एक बयान)।
दो और तथ्यों को संग्रहीत करने पर विचार करें: (i) यह रिकॉर्ड करने के लिए कि इस विशेष व्यक्ति को इस समिति में किसने नामांकित किया (सदस्यता के बारे में एक स्टेटमेंट), और (ii) यह रिकॉर्ड करने के लिए कि डेटाबेस में तथ्य किसने जोड़ा (स्टेटमेंट के बारे में एक स्टेटमेंट)।


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


<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
Line 54: Line 58:
  person:p2                  committee:nominated  committee:membership12345 .   
  person:p2                  committee:nominated  committee:membership12345 .   
</syntaxhighlight>
</syntaxhighlight>
इसके अतिरिक्त, आरडीएफ आरडीएफ कथनों का वर्णन करने के लिए एक अंतर्निहित शब्दावली प्रदान करता है। इस शब्दावली का उपयोग करते हुए किसी कथन का विवरण कथन का पुनरावलोकन कहलाता है। आरडीएफ पुनर्मूल्यांकन शब्दावली में प्रकार शामिल हैं <code>rdf:Statement</code>, और गुण <code>rdf:subject</code>, <code>rdf:predicate</code>, और <code>rdf:object</code>.<ref name="rdf">{{cite web|url=http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#reification |title=आरडीएफ प्राइमर|publisher=W3.org |date= |accessdate=2010-10-09}}</ref>
इसके अतिरिक्त, आरडीएफ आरडीएफ कथनों का वर्णन करने के लिए अंतर्निहित शब्दावली प्रदान करता है। इस शब्दावली का उपयोग करते हुए किसी कथन का विवरण कथन का पुनरावलोकन कहलाता है। आरडीएफ रीफिकेशन शब्दावली <code>rdf:Statement</code>, और गुण <code>rdf:subject</code>, <code>rdf:predicate</code>, और <code>rdf:object में प्रकार सम्मिलित हैं</code><ref name="rdf">{{cite web|url=http://www.w3.org/TR/2004/REC-rdf-primer-20040210/#reification |title=आरडीएफ प्राइमर|publisher=W3.org |date= |accessdate=2010-10-09}}</ref>
संशोधन शब्दावली का उपयोग करते हुए, व्यक्ति की सदस्यता के बारे में कथन का संशोधन कथन को URIref निर्दिष्ट करके दिया जाएगा जैसे कि <code>committee:membership12345</code> ताकि वर्णनात्मक कथनों को इस प्रकार लिखा जा सके:
 
रीफिकेशन शब्दावली का उपयोग करते हुए, व्यक्ति की सदस्यता के बारे में कथन का रीफिकेशन कथन को URIref निर्दिष्ट करके दिया जाएगा जैसे कि <code>committee:membership12345</code> जिससे वर्णनात्मक कथनों को इस प्रकार लिखा जा सके:
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
  committee:membership12345Stat  rdf:type        rdf:Statement .
  committee:membership12345Stat  rdf:type        rdf:Statement .
Line 62: Line 67:
  committee:membership12345Stat  rdf:object      committee:c1 .
  committee:membership12345Stat  rdf:object      committee:c1 .
</syntaxhighlight>
</syntaxhighlight>
ये कथन कहते हैं कि जिस संसाधन की पहचान की गई है <code>URIref committee:membership12345Stat</code> एक आरडीएफ कथन है, कि कथन का विषय पहचाने गए संसाधन को संदर्भित करता है <code>person:p1</code>, कथन का विधेय पहचाने गए संसाधन को संदर्भित करता है <code>committee:isMemberOf</code>, और कथन का उद्देश्य संसाधन को संदर्भित करता है <code>committee:c1</code>. यह मानते हुए कि मूल कथन वास्तव में पहचाना गया है <code>committee:membership12345</code>, मूल कथन की पुनर्रचना के साथ तुलना करने से यह स्पष्ट होना चाहिए कि पुनर्रचना वास्तव में इसका वर्णन करती है। आरडीएफ संशोधन शब्दावली के पारंपरिक उपयोग में हमेशा इस पैटर्न में चार कथनों का उपयोग करके एक कथन का वर्णन करना शामिल होता है। इसलिए, उन्हें कभी-कभी रीफिकेशन क्वाड भी कहा जाता है।<ref name="rdf"/>
ये कथन कहते हैं कि जिस संसाधन की पहचान की गई <code>URIref committee:membership12345Stat</code> आरडीएफ कथन है, कि कथन का विषय पहचाने गए संसाधन को संदर्भित करता है की<code>person:p1</code>, कथन का विधेय पहचाने गए संसाधन को संदर्भित करता है <code>committee:isMemberOf</code>, और कथन का उद्देश्य संसाधन को संदर्भित करता है <code>committee:c1</code>. यह मानते हुए कि मूल कथन वास्तव में <code>committee:membership12345 पहचाना गया है</code> मूल कथन की पुनर्रचना के साथ तुलना करने से यह स्पष्ट होना चाहिए कि पुनर्रचना वास्तव में इसका वर्णन करती है। आरडीएफ रीफिकेशन शब्दावली के पारंपरिक उपयोग में सदैव इस पैटर्न में चार कथनों का उपयोग करके कथन का वर्णन करना सम्मिलित होता है। इसलिए, उन्हें कभी-कभी रीफिकेशन क्वाड भी कहा जाता है।<ref name="rdf"/>


इस परिपाटी के अनुसार पुनरीक्षण का उपयोग करते हुए, हम इस तथ्य को रिकॉर्ड कर सकते हैं <code>person:p3</code> में कथन जोड़ा गया
इस परिपाटी के अनुसार रीफिकेशन का उपयोग करते हुए, हम इस तथ्य को रिकॉर्ड कर सकते हैं कि<code>person:p3</code> में कथन को डेटाबेस में जोड़ा है
डेटाबेस द्वारा
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
   person:p3    committee:addedToDatabase    committee:membership12345Stat .
   person:p3    committee:addedToDatabase    committee:membership12345Stat .
</syntaxhighlight>
</syntaxhighlight>
यह ध्यान रखना महत्वपूर्ण है कि पुनरीक्षण के पारंपरिक उपयोग में, पुनरीक्षण त्रिगुणों के विषय को एक विशेष आरडीएफ दस्तावेज़ में त्रिगुण के एक विशेष उदाहरण की पहचान करने के लिए माना जाता है, न कि कुछ मनमाने ढंग से त्रिगुणों में समान विषय, विधेय और वस्तु होती है। इस विशेष परिपाटी का उपयोग इसलिए किया जाता है क्योंकि पुनर्मूल्यांकन का उद्देश्य रचना की तारीखों और स्रोत की जानकारी जैसे गुणों को व्यक्त करना है, जैसा कि पहले से दिए गए उदाहरणों में है, और इन गुणों को त्रिगुणों के विशिष्ट उदाहरणों पर लागू करने की आवश्यकता है।
यह ध्यान रखना महत्वपूर्ण है कि रीफिकेशन के पारंपरिक उपयोग में, रीफिकेशन ट्रिपलों के विषय को विशेष आरडीएफ डॉक्यूमेंट में ट्रिपल के विशेष उदाहरण की पहचान करने के लिए माना जाता है, न कि कुछ इच्छनुसार रूप से ट्रिपलों में समान विषय, विधेय और वस्तु होती है। इस विशेष परिपाटी का उपयोग इसलिए किया जाता है क्योंकि रीफिकेशन का उद्देश्य रचना की डेट और स्रोत की जानकारी जैसे गुणों को व्यक्त करना है, जैसा कि पहले से दिए गए उदाहरणों में है, और इन गुणों को ट्रिपलों के विशिष्ट उदाहरणों पर प्रयुक्त करने की आवश्यकता है।
ध्यान दें कि वर्णित त्रिगुण <code>(subject predicate object)</code> स्वयं इस तरह के संशोधन क्वाड द्वारा निहित नहीं है (और यह आवश्यक नहीं है कि यह वास्तव में डेटाबेस में मौजूद हो)। यह इस तंत्र का उपयोग यह व्यक्त करने के लिए भी करता है कि कौन से त्रिगुण पकड़ में नहीं आते हैं।
 
आरडीएफ में पुनर्मूल्यांकन शब्दावली की शक्ति बयानों को यूआरआईरेफ्स निर्दिष्ट करने के लिए अंतर्निहित साधनों की कमी से प्रतिबंधित है, इसलिए आरडीएफ में इस प्रकार की उत्पत्ति जानकारी व्यक्त करने के लिए, किसी को कुछ तंत्र (आरडीएफ के बाहर) का उपयोग करना होगा अलग-अलग आरडीएफ बयानों के लिए यूआरआई निर्दिष्ट करें, फिर उन व्यक्तिगत बयानों के बारे में आगे बयान दें, उनकी पहचान करने के लिए उनके यूआरआई का उपयोग करें।<ref name="rdf"/>
 
 
=== [[विषय मानचित्र]] में ===
विषय मानचित्र (एक्सटीएम) में, केवल एक विषय का नाम हो सकता है या किसी एसोसिएशन में भूमिका निभा सकता है। कोई किसी विषय के बारे में दावा करने के लिए एसोसिएशन का उपयोग कर सकता है, लेकिन कोई उस दावे के बारे में सीधे तौर पर दावा नहीं कर सकता है। हालाँकि, एक ऐसा विषय बनाना संभव है जो मानचित्र में एक गैर-विषय निर्माण को दर्शाता है, इस प्रकार एसोसिएशन को नाम दिया जा सकता है और उसे एक विषय के रूप में माना जा सकता है।<ref>[http://www.techquila.com/practical_intro.html Practical Introduction into Topic Maps] {{webarchive|url=https://web.archive.org/web/20090203202441/http://techquila.com/practical_intro.html |date=2009-02-03 }}.</ref>


ध्यान दें कि वर्णित ट्रिपल <code>(subject predicate object)</code> स्वयं इस तरह के रीफिकेशन क्वाड द्वारा निहित नहीं है (और यह आवश्यक नहीं है कि यह वास्तव में डेटाबेस में उपस्तिथ हो)। यह इस मैकेनिज्म का उपयोग यह व्यक्त करने के लिए भी करता है कि कौन से ट्रिपल पकड़ में नहीं आते हैं।


आरडीएफ में रीफिकेशन शब्दावली की शक्ति स्टेटमेंट को यूआरआईरेफ्स निर्दिष्ट करने के लिए अंतर्निहित साधनों की कमी से प्रतिबंधित है, इसलिए आरडीएफ में इस प्रकार की उत्पत्ति जानकारी व्यक्त करने के लिए, किसी को कुछ मैकेनिज्म (आरडीएफ के बाहर) का उपयोग करना होगा अलग-अलग आरडीएफ स्टेटमेंट के लिए यूआरआई निर्दिष्ट करें, फिर उन व्यक्तिगत स्टेटमेंट के बारे में आगे स्टेटमेंट दें, उनकी पहचान करने के लिए उनके यूआरआई का उपयोग करें।<ref name="rdf" />
=== इन टॉपिक मैप्स ===
एक्सटीएम टॉपिक मैप (एक्सटीएम) में, केवल एक विषय का नाम हो सकता है या किसी एसोसिएशन में भूमिका निभा सकता है। कोई किसी विषय के बारे में प्रभुत्व करने के लिए एसोसिएशन का उपयोग कर सकता है, किन्तु कोई उस दावे के बारे में सीधे रूप से प्रभुत्व नहीं कर सकता है। चूंकि, एक ऐसा विषय बनाना संभव है जो मैप में गैर-विषय निर्माण को दर्शाता है, इस प्रकार एसोसिएशन को नाम दिया जा सकता है और उसे एक विषय के रूप में माना जा सकता है।<ref>[http://www.techquila.com/practical_intro.html Practical Introduction into Topic Maps] {{webarchive|url=https://web.archive.org/web/20090203202441/http://techquila.com/practical_intro.html |date=2009-02-03 }}.</ref>
=== [[एन-एरी संबंध]] ===
=== [[एन-एरी संबंध]] ===
आरडीएफ और ओडब्लूएल जैसी सिमेंटिक वेब भाषाओं में, एक संपत्ति एक द्विआधारी संबंध है जिसका उपयोग दो व्यक्तियों या एक व्यक्ति और एक मूल्य को जोड़ने के लिए किया जाता है। हालाँकि, कुछ मामलों में, कुछ अवधारणाओं को प्रस्तुत करने का प्राकृतिक और सुविधाजनक तरीका किसी व्यक्ति को केवल एक व्यक्ति या मूल्य से अधिक से जोड़ने के लिए संबंधों का उपयोग करना है। इन संबंधों को एन-एरी संबंध कहा जाता है। उदाहरण कई व्यक्तियों के बीच संबंधों का प्रतिनिधित्व कर रहे हैं, जैसे कि एक समिति, एक व्यक्ति जो समिति का सदस्य है और एक अन्य व्यक्ति जिसने समिति का सदस्य बनने के लिए पहले व्यक्ति को नामांकित किया है, या एक खरीदार, एक विक्रेता, और एक वस्तु जिसे वर्णन करते समय खरीदा गया था। एक किताब की खरीद.
आरडीएफ और ओडब्लूएल जैसी सिमेंटिक वेब लैंग्वेजो में, एक संपत्ति एक द्विआधारी संबंध है जिसका उपयोग दो व्यक्तियों या एक व्यक्ति और एक मूल्य को जोड़ने के लिए किया जाता है। चूंकि, कुछ स्तिथियों में, कुछ अवधारणाओं को प्रस्तुत करने का प्राकृतिक और सुविधाजनक विधि किसी व्यक्ति को केवल एक व्यक्ति या मूल्य से अधिक से जोड़ने के लिए संबंधों का उपयोग करना है। इन संबंधों को एन-एरी संबंध कहा जाता है। उदाहरण कई व्यक्तियों के बीच संबंधों का प्रतिनिधित्व कर रहे हैं, जैसे कि एक समिति, एक व्यक्ति जो समिति का सदस्य है और अन्य व्यक्ति जिसने समिति का सदस्य बनने के लिए पहले व्यक्ति को नामांकित किया है, या एक खरीदार, एक विक्रेता, और एक वस्तु जो किसी पुस्तक की खरीद का वर्णन करते समय खरीदी गई थी।


पुनर्मूल्यांकन के लिए एक अधिक सामान्य दृष्टिकोण एन-एरी संबंध का प्रतिनिधित्व करने के लिए एक स्पष्ट नए वर्ग और एन नए गुणों का निर्माण करना है, जिससे संबंध को जोड़ने का एक उदाहरण बनाया जा सके। {{var|n}} व्यक्ति इस वर्ग का एक उदाहरण हैं। इस दृष्टिकोण का उपयोग व्यक्तिगत संबंध उदाहरण के लिए उद्गम जानकारी और अन्य गुणों का प्रतिनिधित्व करने के लिए भी किया जा सकता है।<ref>{{cite web|url=http://www.w3.org/TR/swbp-n-aryRelations/ |title=W3C Defining N-ary relations on Semantic Web |publisher=W3.org |date= |accessdate=2010-10-09}}</ref>
रीफिकेशन के लिए अधिक सामान्य दृष्टिकोण n-एरी संबंध का प्रतिनिधित्व करने के लिए स्पष्ट नए वर्ग और एन नए गुणों का निर्माण करना है, जिससे {{var|n}} व्यक्ति को इस वर्ग के उदाहरण से जोड़ने वाले संबंध का एक उदाहरण बनाया जा सकता है। इस दृष्टिकोण का उपयोग व्यक्तिगत संबंध उदाहरण के लिए उद्गम जानकारी और अन्य गुणों का प्रतिनिधित्व करने के लिए भी किया जा सकता है।<ref>{{cite web|url=http://www.w3.org/TR/swbp-n-aryRelations/ |title=W3C Defining N-ary relations on Semantic Web |publisher=W3.org |date= |accessdate=2010-10-09}}</ref>
<syntaxhighlight lang="turtle">
<syntaxhighlight lang="turtle">
  :p1
  :p1
Line 92: Line 93:
       :nominated_by :p2 .
       :nominated_by :p2 .
</syntaxhighlight>
</syntaxhighlight>


=== बनाम. उद्धरण ===
=== बनाम. उद्धरण ===
यह भी ध्यान रखना महत्वपूर्ण है कि यहां वर्णित संशोधन अन्य भाषाओं में पाए जाने वाले उद्धरण के समान नहीं है। इसके बजाय, पुनर्मूल्यांकन ट्रिपल के एक विशेष उदाहरण और ट्रिपल द्वारा संदर्भित संसाधनों के बीच संबंध का वर्णन करता है। संशोधन को सहज रूप से पढ़ा जा सकता है जैसे कि यह आरडीएफ ट्रिपल इन चीजों के बारे में बात करता है, न कि (जैसा कि उद्धरण में है) इस आरडीएफ ट्रिपल का यह रूप है। उदाहरण के लिए, इस खंड में प्रयुक्त पुनर्मूल्यांकन उदाहरण में, त्रिगुण:
यह भी ध्यान रखना महत्वपूर्ण है कि यहां वर्णित रीफिकेशन अन्य लैंग्वेजो में पाए जाने वाले उद्धरण के समान नहीं है। इसके अतिरिक्त, रीफिकेशन ट्रिपल के विशेष उदाहरण और ट्रिपल द्वारा संदर्भित संसाधनों के बीच संबंध का वर्णन करता है। रीफिकेशन को सहज रूप से पढ़ा जा सकता है जैसे कि यह आरडीएफ ट्रिपल इन वस्तुओ के बारे में संवाद करता है, न कि (जैसा कि उद्धरण में है) इस आरडीएफ ट्रिपल का यह रूप है। उदाहरण के लिए, इस खंड में प्रयुक्त रीफिकेशन उदाहरण में, ट्रिपल है:
<syntaxhighlight lang="sparql">
<syntaxhighlight lang="sparql">
   committee:membership12345  rdf:subject  person:p1 .
   committee:membership12345  rdf:subject  person:p1 .
</syntaxhighlight>
</syntaxhighlight>
का वर्णन <code>rdf:subject</code> मूल कथन में कहा गया है कि कथन का विषय URIref द्वारा पहचाना गया संसाधन (व्यक्ति) है <code>person:p1</code>. इसमें यह नहीं बताया गया है कि कथन का विषय यूआरआईरेफ ही है (यानी, कुछ वर्णों से शुरू होने वाली एक स्ट्रिंग), जैसा कि उद्धरण होगा।
मूल कथन के <code>rdf:subject</code> का वर्णन करते हुए कहा गया है कि कथन का विषय URIref <code>person:p1</code> द्वारा पहचाना गया संसाधन (व्यक्ति) है। इसमें यह नहीं बताया गया है कि कथन का विषय यूआरआईरेफ ही है (अर्थात, कुछ वर्णों से प्रारंभ होने वाली एक स्ट्रिंग), जैसा कि उद्धरण होगा।


==यह भी देखें==
==यह भी देखें==
{{Wiktionary|reification}}
{{Wiktionary|reification}}
* [[सांकेतिक शब्दार्थ]]
* [[सांकेतिक शब्दार्थ|डेनोटेस्नल सेमेन्टिक्स]]
* [[प्रोग्रामिंग भाषाओं का औपचारिक शब्दार्थ]]
* [[प्रोग्रामिंग भाषाओं का औपचारिक शब्दार्थ|प्रोग्रामिंग लैंग्वेजो का फॉर्मल सेमेन्टिक्स]]  
* मेटा-सर्कुलर मूल्यांकनकर्ता
* मेटा-सर्कुलर एवलुएटर
* [[मेटामॉडलिंग]]
* [[मेटामॉडलिंग]]
* [[मेटाऑब्जेक्ट]]
* [[मेटाऑब्जेक्ट]]
* [[मेटाप्रोग्रामिंग]]
* [[मेटाप्रोग्रामिंग]]
* [[मूल्यांकन द्वारा सामान्यीकरण]]
* [[मूल्यांकन द्वारा सामान्यीकरण|नोर्मलिज़शन बाई इवैल्यूएशन]]
* परिचालन शब्दार्थ
* ऑपरेशनल सेमेन्टिक्स
*प्रतिबिंब (कंप्यूटर विज्ञान)
*रिफ्लेक्शन (कंप्यूटर विज्ञान)
* संसाधन विवरण रूपरेखा
* रिसोर्स डिस्क्रिप्शन फ्रेमवर्क
*स्वयं दुभाषिया
*सेल्फ-इंटरप्रेटर
* विषय मानचित्र
* टॉपिक मैप


==संदर्भ==
==संदर्भ==
{{reflist}}
{{reflist}}
{{DEFAULTSORT:Reification (Computer Science)}}


<!--Interwikies-->
[[Category: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] [[Category: औपचारिक तरीकों की शब्दावली]] [[Category: ज्ञान निरूपण]]  
 
{{DEFAULTSORT:Reification (Computer Science)}}
<!--Categories-->[[Category: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] [[Category: औपचारिक तरीकों की शब्दावली]] [[Category: ज्ञान निरूपण]]  


[[de:Reifikation#Informatik]]
[[de:Reifikation#Informatik]]
Line 131: Line 129:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 05/12/2023]]
[[Category:Created On 05/12/2023]]
[[Category:Vigyan Ready]]

Latest revision as of 09:03, 13 December 2023

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

रिफ्लेक्टिव प्रोग्रामिंग लैंग्वेज

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

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