हायलॉग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
हायलॉग उच्च-क्रम सिंटैक्स वाला एक प्रोग्रामिंग [[ तर्क |तर्क]] है, जो मनमाने शब्दों को विधेय और कार्य स्थितियों में प्रकट होने की अनुमति देता है।<ref name="hilog-jlp">{{cite journal |last1=Chen |first1=Weidong |last2=Kifer |first2=Michael |last3=Warren |first3=David S. |date=February 1993 |title=HiLog: A foundation for higher-order logic programming |journal=[[Journal of Logic Programming]] |volume=15 |issue=3 |pages=187–230 |doi=10.1016/0743-1066(93)90039-J|doi-access=free }}</ref> हालाँकि, हायलॉग का [[मॉडल सिद्धांत]] प्रथम-क्रम है। हालांकि सिंटैक्टिक रूप से '''हायलॉग''' सख्ती से पहले ऑर्डर लॉजिक का विस्तार करता है, हायलॉग को इस लॉजिक में एम्बेड किया जा सकता है।
हायलॉग उच्च क्रम सिंटैक्स वाला एक प्रोग्रामिंग [[ तर्क |तर्क]] है, जो मनमाने शब्दों को विधेय और कार्य स्थितियों में प्रकट होने की अनुमति देता है।<ref name="hilog-jlp">{{cite journal |last1=Chen |first1=Weidong |last2=Kifer |first2=Michael |last3=Warren |first3=David S. |date=February 1993 |title=HiLog: A foundation for higher-order logic programming |journal=[[Journal of Logic Programming]] |volume=15 |issue=3 |pages=187–230 |doi=10.1016/0743-1066(93)90039-J|doi-access=free }}</ref> चूंकि, हायलॉग का [[मॉडल सिद्धांत]] प्रथम-क्रम है। चूंकि सिंटैक्टिक रूप से '''हायलॉग''' सख्ती से पहले ऑर्डर तर्क का विस्तार करता है, तथा हायलॉग को इस तर्क में एम्बेड किया जा सकता है।


हायलॉग को पहली बार 1989 में वर्णित किया गया था।<ref>{{cite conference |last1=Chen |first1=Weidong |last2=Kifer |first2=Michael |last3=Warren |first3=David S. |date=1989 |title=HiLog: a first order semantics for higher-order logic programming constructs |book-title=Logic programming: Proceedings of the North American conference, 1989 |publisher=MIT Press |isbn=0262620642 |oclc=1153667751}}</ref> इसे बाद में कई तरह के तर्क की दिशा में बढ़ाया गया है।<ref>{{cite book |last1=Chen |first1=Weidong |last2=Kifer |first2=Michael |date=1995 |chapter=Sorted HiLog: sorts in higher-order logic data languages |editor1-last=Gottlob |editor1-first=Georg |editor2-last=Vardi |editor2-first=Moshe Y. |title=Database theory—ICDT '95: 5th International Conference, Prague, Czech Republic, January 11–13, 1995: proceedings |series=Lecture notes in computer science |volume=893 |publisher=Springer |pages=252–265 |isbn=9780387589077 |oclc=31740400 |doi=10.1007/3-540-58907-4_20}}</ref>
हायलॉग को पहली बार 1989 में वर्णित किया गया था।<ref>{{cite conference |last1=Chen |first1=Weidong |last2=Kifer |first2=Michael |last3=Warren |first3=David S. |date=1989 |title=HiLog: a first order semantics for higher-order logic programming constructs |book-title=Logic programming: Proceedings of the North American conference, 1989 |publisher=MIT Press |isbn=0262620642 |oclc=1153667751}}</ref> इसे पश्चात में कई प्रकार के तर्क की दिशा में बढ़ाया गया है।<ref>{{cite book |last1=Chen |first1=Weidong |last2=Kifer |first2=Michael |date=1995 |chapter=Sorted HiLog: sorts in higher-order logic data languages |editor1-last=Gottlob |editor1-first=Georg |editor2-last=Vardi |editor2-first=Moshe Y. |title=Database theory—ICDT '95: 5th International Conference, Prague, Czech Republic, January 11–13, 1995: proceedings |series=Lecture notes in computer science |volume=893 |publisher=Springer |pages=252–265 |isbn=9780387589077 |oclc=31740400 |doi=10.1007/3-540-58907-4_20}}</ref>


[[XSB|एक्सएसबी]] प्रणाली हायलॉग सिंटैक्स को पार्स करता है, लेकिन एक्सएसबी में हायलॉग का एकीकरण केवल आंशिक है। विशेष रूप से, हायलॉग एक्सएसबी मॉड्यूल प्रणाली के साथ एकीकृत नहीं है। [[फ्लोरा-2]] प्रणाली में हाईलॉग का पूर्ण कार्यान्वयन उपलब्ध है।
[[XSB|एक्सएसबी]] प्रणाली हायलॉग सिंटैक्स को पार्स करता है, लेकिन एक्सएसबी में हायलॉग का एकीकरण केवल आंशिक है। विशेष रूप से, हायलॉग एक्सएसबी मॉड्यूल प्रणाली के साथ एकीकृत नहीं है। [[फ्लोरा-2]] प्रणाली में हाईलॉग का पूर्ण कार्यान्वयन उपलब्ध है।


यह दिखाया गया है कि हायलॉग को काफी सरल परिवर्तन के माध्यम से प्रथम-क्रम तर्क में एम्बेड किया जा सकता है।<ref name="hilog-jlp" /> उदाहरण के लिए, <code>p(X)(Y,Z(V)(W))</code>निम्नलिखित प्रथम-क्रम लागू करें <code>apply(p(X),Y,apply(apply(Z,V),W))<ref name="hilog-jlp" /></code> जो शब्द के रूप में एम्बेड हो जाता है।
यह दिखाया गया है कि हायलॉग को पर्याप्त सरल परिवर्तन के माध्यम से प्रथम-क्रम तर्क में एम्बेड किया जा सकता है।<ref name="hilog-jlp" /> उदाहरण के लिए, <code>p(X)(Y,Z(V)(W))</code>निम्नलिखित प्रथम-क्रम लागू करें <code>apply(p(X),Y,apply(apply(Z,V),W))<ref name="hilog-jlp" /></code> जो शब्द के रूप में एम्बेड हो जाता है।


[[नियम विनिमय प्रारूप]] एफएलडी रूल इंटरचेंज फॉर्मेट (आरआईएफ) के लॉजि क-बेस्ड डायलेक्ट्स (आरआईएफ-एफएलडी) के लिए फ्रेमवर्क काफी हद तक हायलॉग और [[एफ तर्क]] के विचारों पर आधारित है।<ref>{{cite book |last=Kifer |first=Michael |date=2008 |chapter=Rule interchange format: the framework |editor1-last=Calvanese |editor1-first=Diego |editor2-last=Lausen |editor2-first=Georg |title=Web reasoning and rule systems: second international conference, RR 2008, Karlsruhe, Germany, October 31–November 1, 2008: proceedings |series=Lecture notes in computer science |volume=5341 |publisher=Springer |pages=1–11 |isbn=9783540887362 |oclc=262884460 |doi=10.1007/978-3-540-88737-9_1 }}</ref>
[[नियम विनिमय प्रारूप]] एफएलडी रूल इंटरचेंज फॉर्मेट (आरआईएफ) के तर्क आधारित डायलेक्ट्स (आरआईएफ-एफएलडी) के लिए फ्रेमवर्क पर्याप्त हद तक हायलॉग और [[एफ तर्क]] के विचारों पर आधारित है।<ref>{{cite book |last=Kifer |first=Michael |date=2008 |chapter=Rule interchange format: the framework |editor1-last=Calvanese |editor1-first=Diego |editor2-last=Lausen |editor2-first=Georg |title=Web reasoning and rule systems: second international conference, RR 2008, Karlsruhe, Germany, October 31–November 1, 2008: proceedings |series=Lecture notes in computer science |volume=5341 |publisher=Springer |pages=1–11 |isbn=9783540887362 |oclc=262884460 |doi=10.1007/978-3-540-88737-9_1 }}</ref>
== उदाहरण ==
== उदाहरण ==


नीचे दिए गए सभी उदाहरणों में, पूंजीकृत प्रतीक चर को दर्शाते हैं और अल्पविराम [[तार्किक संयोजन]] को दर्शाता है, जैसा कि अधिकांश [[तर्क प्रोग्रामिंग]] भाषाओं में होता है। पहले और दूसरे उदाहरण दिखाते हैं कि चर विधेय स्थिति में प्रकट हो सकते हैं। विधेय जटिल शब्द भी हो सकते हैं, जैसे कि क्लोजर (पी) या मैपलिस्ट (एफ), तीसरा उदाहरण दिखाता है कि चर भी परमाणु सूत्रों के स्थान पर प्रकट हो सकते हैं, जबकि चौथा उदाहरण फ़ंक्शन प्रतीकों के स्थान पर चर के उपयोग को दिखाता है। पहला उदाहरण एक सामान्य सकर्मक क्लोजर ऑपरेटर को परिभाषित करता है, जिसे एक मनमाने ढंग से द्विआधारी विधेय पर लागू किया जा सकता है। दूसरा उदाहरण भी ऐसा ही है। यह एक एलआईएसपी-जैसे मैपिंग ऑपरेटर को परिभाषित करता है, जो एक मनमाने ढंग से द्विआधारी विधेय पर लागू होता है। तीसरे उदाहरण से पता चलता है कि [[प्रोलॉग]] मेटा-प्रेडिकेट कॉल/1 को हायलॉग में प्राकृतिक तरीके से और अतिरिक्त-तार्किक सुविधाओं के उपयोग के बिना व्यक्त किया जा सकता है। अंतिम उदाहरण एक विधेय को परिभाषित करता है जो पहले-क्रम की शर्तों के रूप में दर्शाए गए मनमाना बाइनरी ट्री को पार करता है।
नीचे दिए गए सभी उदाहरणों में, पूंजीकृत प्रतीक चर को दर्शाते हैं और अल्पविराम [[तार्किक संयोजन]] को दर्शाता है, जैसा कि अधिकांश [[तर्क प्रोग्रामिंग]] भाषाओं में होता है। पहले और दूसरे उदाहरण दिखाते हैं कि चर विधेय स्थिति में प्रकट हो सकते हैं। विधेय जटिल शब्द भी हो सकते हैं, जैसे कि क्लोजर (पी) या मैपलिस्ट (एफ), तीसरा उदाहरण दिखाता है कि चर भी परमाणु सूत्रों के स्थान पर प्रकट हो सकते हैं, जबकि चौथा उदाहरण फ़ंक्शन प्रतीकों के स्थान पर चर के उपयोग को दिखाता है। पहला उदाहरण एक सामान्य सकर्मक क्लोजर ऑपरेटर को परिभाषित करता है, जिसे एक मनमाने ढंग से द्विआधारी विधेय पर लागू किया जा सकता है। दूसरा उदाहरण भी ऐसा ही है। यह एक एलआईएसपी जैसे मैपिंग ऑपरेटर को परिभाषित करता है, जो एक मनमाने ढंग से द्विआधारी विधेय पर लागू होता है। तीसरे उदाहरण से पता चलता है कि [[प्रोलॉग]] मेटा प्रेडिकेट कॉल/1 को हायलॉग में प्राकृतिक विधि से और अतिरिक्त तार्किक सुविधाओं के उपयोग के बिना व्यक्त किया जा सकता है। अंतिम उदाहरण एक विधेय को परिभाषित करता है जो पहले-क्रम की शर्तों के रूप में दर्शाए गए मनमाना बाइनरी ट्री को पार करता है।
<syntaxhighlight lang="prolog" line="1">
<syntaxhighlight lang="prolog" line="1">
closure(P)(X,Y) <- P(X,Y).
closure(P)(X,Y) <- P(X,Y).

Revision as of 22:19, 20 May 2023

हायलॉग उच्च क्रम सिंटैक्स वाला एक प्रोग्रामिंग तर्क है, जो मनमाने शब्दों को विधेय और कार्य स्थितियों में प्रकट होने की अनुमति देता है।[1] चूंकि, हायलॉग का मॉडल सिद्धांत प्रथम-क्रम है। चूंकि सिंटैक्टिक रूप से हायलॉग सख्ती से पहले ऑर्डर तर्क का विस्तार करता है, तथा हायलॉग को इस तर्क में एम्बेड किया जा सकता है।

हायलॉग को पहली बार 1989 में वर्णित किया गया था।[2] इसे पश्चात में कई प्रकार के तर्क की दिशा में बढ़ाया गया है।[3]

एक्सएसबी प्रणाली हायलॉग सिंटैक्स को पार्स करता है, लेकिन एक्सएसबी में हायलॉग का एकीकरण केवल आंशिक है। विशेष रूप से, हायलॉग एक्सएसबी मॉड्यूल प्रणाली के साथ एकीकृत नहीं है। फ्लोरा-2 प्रणाली में हाईलॉग का पूर्ण कार्यान्वयन उपलब्ध है।

यह दिखाया गया है कि हायलॉग को पर्याप्त सरल परिवर्तन के माध्यम से प्रथम-क्रम तर्क में एम्बेड किया जा सकता है।[1] उदाहरण के लिए, p(X)(Y,Z(V)(W))निम्नलिखित प्रथम-क्रम लागू करें apply(p(X),Y,apply(apply(Z,V),W))[1] जो शब्द के रूप में एम्बेड हो जाता है।

नियम विनिमय प्रारूप एफएलडी रूल इंटरचेंज फॉर्मेट (आरआईएफ) के तर्क आधारित डायलेक्ट्स (आरआईएफ-एफएलडी) के लिए फ्रेमवर्क पर्याप्त हद तक हायलॉग और एफ तर्क के विचारों पर आधारित है।[4]

उदाहरण

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

closure(P)(X,Y) <- P(X,Y).
closure(P)(X,Y) <- P(X,Z), closure(P)(Z,Y).

maplist(F)([],[]).
maplist(F)([X|R],[Y|Z]) <- F(X,Y), maplist(F)(R,Z).

call(X) <- X.

traverse(X(L,R)) <- traverse(L), traverse(R).

संदर्भ

  1. 1.0 1.1 1.2 Chen, Weidong; Kifer, Michael; Warren, David S. (February 1993). "HiLog: A foundation for higher-order logic programming". Journal of Logic Programming. 15 (3): 187–230. doi:10.1016/0743-1066(93)90039-J.
  2. Chen, Weidong; Kifer, Michael; Warren, David S. (1989). "HiLog: a first order semantics for higher-order logic programming constructs". Logic programming: Proceedings of the North American conference, 1989. MIT Press. ISBN 0262620642. OCLC 1153667751.
  3. Chen, Weidong; Kifer, Michael (1995). "Sorted HiLog: sorts in higher-order logic data languages". In Gottlob, Georg; Vardi, Moshe Y. (eds.). Database theory—ICDT '95: 5th International Conference, Prague, Czech Republic, January 11–13, 1995: proceedings. Lecture notes in computer science. Vol. 893. Springer. pp. 252–265. doi:10.1007/3-540-58907-4_20. ISBN 9780387589077. OCLC 31740400.
  4. Kifer, Michael (2008). "Rule interchange format: the framework". In Calvanese, Diego; Lausen, Georg (eds.). Web reasoning and rule systems: second international conference, RR 2008, Karlsruhe, Germany, October 31–November 1, 2008: proceedings. Lecture notes in computer science. Vol. 5341. Springer. pp. 1–11. doi:10.1007/978-3-540-88737-9_1. ISBN 9783540887362. OCLC 262884460.

अग्रिम पठन