नेचुरल-लैंग्वेज प्रोग्रामिंग

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

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

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

अंग्रेजी लैंग्वेज के नेचुरल-लैंग्वेज प्रोग्राम का एक उदाहरण पाठ इस प्रकार है:

यदि U_ 'smc01-नियंत्रण' है, तो निम्न कार्य करें। सतह भार अल्फा को [0.5, 0.5] के रूप में परिभाषित करें। मैट्रिक्स फाई को 'यूनिट मैट्रिक्स' के रूप में आरंभ करें। J को Spc01 के 'जड़त्व मैट्रिक्स' के रूप में परिभाषित करें। मैट्रिक्स J2 की गणना J के व्युत्क्रम के रूप में। गतिशील स्थिति X, मार्गदर्शन संदर्भ Xnow से स्थिति वेग त्रुटि Ve और कोणीय वेग त्रुटि Oe की गणना करें। सतह भार अल्फा का उपयोग करके स्थिति वेग त्रुटि Ve और कोणीय वेग त्रुटि Oe से संयुक्त सर्पण सतह G2 को परिभाषित करें। चिन्हथ्रेशोल्ड (सीमा) 0.01 के साथ संयुक्त स्लाइडिंग सतह G2 से समतल चिन्ह फलन SG2 की गणना करें। गतिशील अवस्था X और सतह भार अल्फा से विशेष गतिशील बल F की गणना करें। मैट्रिक्स J2, सतह भार अल्फा, विशेष गतिशील बल F, समतल चिन्ह फलन SG2 से नियंत्रण टॉर्क T और नियंत्रण बल U की गणना करें। सशर्त क्रियाएँ समाप्त करें।

जो स्लाइडिंग (सर्पण) मोड नियंत्रण विधि का उपयोग करके प्रतिपुष्टि नियंत्रण योजना को परिभाषित करता है।

सॉफ़्टवेयर प्रतिमान
नेचुरल-लैंग्वेज प्रोग्रामिंग सॉफ्टवेयर लिखने की एक ऊपर से नीचे की विधि है। इसके चरण इस प्रकार हैं:


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

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

मशीन ज्ञान में नेचुरल-लैंग्वेज प्रोग्रामों का योगदान
तात्विकी वर्ग एक नेचुरल-लैंग्वेज प्रोग्राम है जो उस अर्थ में अवधारणा नहीं है जिस तरह मनुष्य अवधारणाओं का उपयोग करते हैं। एनएलपी में अवधारणाएँ सामान्य मानवीय अवधारणाओं के उदाहरण (नमूने) हैं। नेचुरल-लैंग्वेज प्रोग्राम में प्रत्येक वाक्य या तो (1) विश्व प्रतिरूप में एक संबंध बताता है या (2) पर्यावरण में एक क्रिया करता है या (3) एक संगणनात्मक प्रक्रिया करता है या (4) एक प्रश्न के उत्तर में एक उत्तर क्रियाविधि उत्पन्न करता है।

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

यह भी देखें

 * नियंत्रित नेचुरल लैंग्वेज
 * प्रसंग-मुक्त लैंग्वेज
 * डोमेन-विशिष्ट लैंग्वेज (या डीएसएल)
 * अंतिम-उपयोगकर्ता प्रोग्रामिंग
 * ज्ञान निरूपण
 * नेचुरल लैंग्वेज प्रसंस्करण
 * स्वचालित_प्रोग्रामिंग#स्रोत-कोड_जनरेशन|स्रोत-कोड पीढ़ी
 * बहुत उच्च स्तरीय प्रोग्रामिंग लैंग्वेज


 * अंग्रेजी जैसे सिंटैक्स वाली प्रोग्रामिंग लैंग्वेजएं


 * एप्पलस्क्रिप्ट
 * अंग्रेजी पर नियंत्रण रखने का प्रयास करें
 * कोबोल
 * क्लीयरटॉक
 * फ्लो-Matic
 * हाइपरटॉक
 * सूचित करें 7
 * चीनी बुत
 * सेंसटॉक
 * सॉफ्टवेयर इंक
 * प्रतिलेख (प्रोग्रामिंग लैंग्वेज)
 * संरचित क्वेरी लैंग्वेज (या SQL)
 * एक्सटॉक

ग्रन्थसूची

 * Books:
 * Natural Language Programming of Agents and Robotic Devices: publishing for agents and humans in sEnglish by S M Veres, ISBN 978-0-9558417-0-5, London, June 2008.
 * Papers at conferences:
 * Sliding mode control of autonomous spacecraft. (half written in sEnglish) by S M Veres an N K Lincoln, Proc. TAROS’2008, Towards Autonomous Robotic Systems, Edinburgh, 1–3 September 2008.
 * Papers at conferences:
 * Sliding mode control of autonomous spacecraft. (half written in sEnglish) by S M Veres an N K Lincoln, Proc. TAROS’2008, Towards Autonomous Robotic Systems, Edinburgh, 1–3 September 2008.
 * Sliding mode control of autonomous spacecraft. (half written in sEnglish) by S M Veres an N K Lincoln, Proc. TAROS’2008, Towards Autonomous Robotic Systems, Edinburgh, 1–3 September 2008.
 * Sliding mode control of autonomous spacecraft. (half written in sEnglish) by S M Veres an N K Lincoln, Proc. TAROS’2008, Towards Autonomous Robotic Systems, Edinburgh, 1–3 September 2008.


 * Program synthesis from natural language specifications
 * Raza, Mohammad, Sumit Gulwani, and Natasa Milic-Frayling. "Compositional Program Synthesis from Natural Language and Examples." IJCAI. 2015.
 * Green, Cordell. "A Summary of the PSI Program Synthesis System." IJCAI. Vol. 5. 1977.

बाहरी संबंध

 * English Script (dormant since 2016)
 * Plain English Programming Programming language using English sentences in ASCII.
 * SEMPRE –  a toolkit for training semantic parsers
 * sysbrain.com –  sEnglish Editor in C++/ROS for robot programming to develop transparent robots.
 * wy-lang.org –  "Programming Language for the ancient Chinese"
 * How natural should a natural interface be? – thoughts on how "natural" the Ubiquity interface (dormant since 2009)
 * Metafor turns English to code (dormant since 2005)
 * Computer knowledge representation format, system, methods, and applications – US patent re: hyperlinking to .who/what/where/when/how XML files that embed NL