हायलॉग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 7: Line 7:
यह दिखाया गया है कि हायलॉग को काफी सरल परिवर्तन के माध्यम से प्रथम-क्रम तर्क में एम्बेड किया जा सकता है।<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> जो शब्द के रूप में एम्बेड हो जाता है।


[[नियम विनिमय प्रारूप]] FLD रूल इंटरचेंज फॉर्मेट (RIF) के लॉजि क-बेस्ड डायलेक्ट्स (RIF-FLD) के लिए फ्रेमवर्क काफी हद तक हायलॉग और [[एफ तर्क]] के विचारों पर आधारित है।<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>
 
 
== उदाहरण ==
== उदाहरण ==


नीचे दिए गए सभी उदाहरणों में, पूंजीकृत प्रतीक चर को दर्शाते हैं और अल्पविराम [[तार्किक संयोजन]] को दर्शाता है, जैसा कि अधिकांश [[तर्क प्रोग्रामिंग]] भाषाओं में होता है। पहले और दूसरे उदाहरण दिखाते हैं कि चर विधेय स्थिति में प्रकट हो सकते हैं। विधेय जटिल शब्द भी हो सकते हैं, जैसे <code>closure(P)</code> या <code>maplist(F)</code> नीचे। तीसरा उदाहरण दिखाता है कि चर भी परमाणु सूत्रों के स्थान पर प्रकट हो सकते हैं, जबकि चौथा उदाहरण फ़ंक्शन प्रतीकों के स्थान पर चर के उपयोग को दिखाता है। पहला उदाहरण एक सामान्य सकर्मक क्लोजर ऑपरेटर को परिभाषित करता है, जिसे एक मनमाने ढंग से द्विआधारी विधेय पर लागू किया जा सकता है। दूसरा उदाहरण भी ऐसा ही है। यह एक एलआईएसपी-जैसे मैपिंग ऑपरेटर को परिभाषित करता है, जो एक मनमाने ढंग से द्विआधारी विधेय पर लागू होता है। तीसरा उदाहरण दिखाता है कि [[प्रोलॉग]] मेटा-प्रेडिकेट <code>call/1</code> HiLog में एक प्राकृतिक तरीके से और अतिरिक्त-तार्किक सुविधाओं के उपयोग के बिना व्यक्त किया जा सकता है। अंतिम उदाहरण एक विधेय को परिभाषित करता है जो टर्म (तर्क) के रूप में प्रतिनिधित्व किए गए मनमाना बाइनरी ट्री को पार करता है। प्रथम-क्रम की शर्तें।
नीचे दिए गए सभी उदाहरणों में, पूंजीकृत प्रतीक चर को दर्शाते हैं और अल्पविराम [[तार्किक संयोजन]] को दर्शाता है, जैसा कि अधिकांश [[तर्क प्रोग्रामिंग]] भाषाओं में होता है। पहले और दूसरे उदाहरण दिखाते हैं कि चर विधेय स्थिति में प्रकट हो सकते हैं। विधेय जटिल शब्द भी हो सकते हैं, जैसे कि क्लोजर (पी) या मैपलिस्ट (एफ), तीसरा उदाहरण दिखाता है कि चर भी परमाणु सूत्रों के स्थान पर प्रकट हो सकते हैं, जबकि चौथा उदाहरण फ़ंक्शन प्रतीकों के स्थान पर चर के उपयोग को दिखाता है। पहला उदाहरण एक सामान्य सकर्मक क्लोजर ऑपरेटर को परिभाषित करता है, जिसे एक मनमाने ढंग से द्विआधारी विधेय पर लागू किया जा सकता है। दूसरा उदाहरण भी ऐसा ही है। यह एक एलआईएसपी-जैसे मैपिंग ऑपरेटर को परिभाषित करता है, जो एक मनमाने ढंग से द्विआधारी विधेय पर लागू होता है। तीसरे उदाहरण से पता चलता है कि [[प्रोलॉग]] मेटा-प्रेडिकेट कॉल/1 को हायलॉग में प्राकृतिक तरीके से और अतिरिक्त-तार्किक सुविधाओं के उपयोग के बिना व्यक्त किया जा सकता है। अंतिम उदाहरण एक विधेय को परिभाषित करता है जो पहले-क्रम की शर्तों के रूप में दर्शाए गए मनमाना बाइनरी ट्री को पार करता है।
<syntaxhighlight lang="prolog">
<syntaxhighlight lang="prolog" line="1">
closure(P)(X,Y) <- P(X,Y).
closure(P)(X,Y) <- P(X,Y).
closure(P)(X,Y) <- P(X,Z), closure(P)(Z,Y).
closure(P)(X,Y) <- P(X,Z), closure(P)(Z,Y).
Line 24: Line 22:
traverse(X(L,R)) <- traverse(L), traverse(R).
traverse(X(L,R)) <- traverse(L), traverse(R).
</syntaxhighlight>
</syntaxhighlight>
==संदर्भ==
==संदर्भ==
{{reflist}}
{{reflist}}
==अग्रिम पठन==
==अग्रिम पठन==
* {{cite journal |last=Ross |first=Kenneth A. |date=January 1994 |title=On negation in HiLog |journal=[[Journal of Logic Programming]] |volume=18 |issue=1 |pages=27–53 |doi=10.1016/0743-1066(94)90040-X |doi-access=free }}  
* {{cite journal |last=Ross |first=Kenneth A. |date=January 1994 |title=On negation in HiLog |journal=[[Journal of Logic Programming]] |volume=18 |issue=1 |pages=27–53 |doi=10.1016/0743-1066(94)90040-X |doi-access=free }}  

Revision as of 22:02, 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.

अग्रिम पठन