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

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

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

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

अंग्रेजी भाषा के प्राकृतिक-भाषा कार्यक्रम का एक उदाहरण पाठ इस प्रकार है:

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

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

सॉफ़्टवेयर प्रतिमान
प्राकृतिक-भाषा प्रोग्रामिंग सॉफ्टवेयर लिखने की एक शीर्ष-डाउन विधि है। इसके चरण इस प्रकार हैं:


 * ओन्टोलॉजी की परिभाषा (सूचना विज्ञान) – वर्गीकरण –  संबोधित विषय में कार्यों का वर्णन करने के लिए आवश्यक अवधारणाओं की। प्रत्येक अवधारणा और उनकी सभी विशेषताओं को प्राकृतिक भाषा के शब्दों में परिभाषित किया गया है। यह ऑन्कोलॉजी उन डेटा संरचनाओं को परिभाषित करेगी जिनका उपयोग एनएलपी वाक्यों में कर सकता है।
 * ऑन्टोलॉजी से अवधारणाओं के संदर्भ में एक या अधिक शीर्ष-स्तरीय वाक्यों की परिभाषा। इन वाक्यों का उपयोग बाद में विषय में सबसे महत्वपूर्ण गतिविधियों को शुरू करने के लिए किया जाता है।
 * प्रत्येक शीर्ष-स्तरीय वाक्य को वाक्यों के अनुक्रम के आधार पर परिभाषित करना।
 * निचले स्तर के प्रत्येक वाक्य को अन्य वाक्यों के संदर्भ में या निष्पादन कोड के रूप में एक सरल वाक्य द्वारा परिभाषित करना...। जहां ... संबंधित उच्च-स्तरीय प्रोग्रामिंग भाषा के संदर्भ में एक कोड के लिए है।
 * पिछले चरण को तब तक दोहराते रहें जब तक कि आपके पास कोई वाक्य अपरिभाषित न रह जाए। इस प्रक्रिया के दौरान प्रत्येक वाक्य को अंतिम प्राकृतिक-भाषा कार्यक्रम बनाने के लिए 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