2009-04-07 9 views
12

ज्यादा सोचने के बिना, ऐसा लगता है कि प्रोलॉग की कार्यक्षमता का एक बड़ा सेट संबंधपरक गणक (ए.के.ए. एसक्यूएल) के रूप में लागू किया जा सकता है।एसक्यूएल कनवर्टर के लिए prolog

क्या किसी ने स्वचालित रूप से प्रोलॉग को एसक्यूएल में परिवर्तित करने के लिए किसी भी उपकरण के बारे में सुना है?

+0

नहीं, मैं किसी भी पता नहीं है, लेकिन यह एक शॉट देने के लिए :-) – paxdiablo

+0

वाह संकोच न करें।निश्चित रूप से इस दुनिया में खोज के लिए संभावित है! :) –

उत्तर

2

अनुशंसा:

https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/code/io/pl2sql/0.html

मेरी सलाह के उपयोग ग्रहण prolog (http://www.eclipseclp.org/) (नहीं (यहाँ) ग्रहण आईडीई में prolog साथ भ्रमित होने की)।

मैंने 4 अन्य प्रस्तावों (!) और ग्रहण में संकलित करने के लिए 4 मिनट में संकलित करने के लिए कोड प्राप्त करने के लिए घंटों बिताए।

जब यह काम करता है, तो यह सौंदर्य की बात है। निश्चित रूप से हेर Draxler को

क्रेडिट

2

मानचित्रण बहुत अच्छा नहीं है। एसक्यूएल, उदाहरण के लिए, बैकट्रैकिंग, एकीकरण, सूचियां, या एहोक नेस्टेड संरचनाओं को नहीं करता है।

Prolog समग्र वस्तुओं, अनुक्रमित, आदि

मैं कहना चाहता हूँ कि यह एक नहीं जाना है के साथ अच्छी तरह से निपटने के नहीं है।

+0

मुझे नहीं लगता कि आपको बैकट्रैकिंग या एकीकरण की आवश्यकता होगी क्योंकि चीज दूसरी छोर से (उत्पन्न होने के साथ) उत्पन्न होगी ओटीओएच यह सभी मनमानी गहराई रिकर्सन को मार देगा – BCS

+2

बैकट्रैकिंग, एकीकरण, रिकर्सन और सूचियों के बिना कोई नहीं है प्रोलॉग के बहुत सारे छोड़ दिया। और आप जुड़ने के साथ चीजों की एक ही कक्षा उत्पन्न नहीं कर सकते हैं, जब तक कि आप स्वयं को एसक्यूएल संशोधित करने के बारे में सोच रहे हों (प्रश्न पूछने वाले प्रश्न) जो मुझे लगता है _possible_ है ... – MarkusQ

28

हां, ज़ाहिर है।

संदेहियों के लिए एक आधार: डेटाबेस सिद्धांत पर किसी भी अर्ध-सभ्य पुस्तक का उल्लेख Datalog (जो प्रोलॉग जैसा है) और प्रमेय दर्शाता है जो दर्शाता है कि इसे रिलेशनल बीजगणित (आरए) (विशिष्ट प्रतिबंधों के तहत) से अनुवाद करना संभव है।

एसक्यूएल आरए या संबंधपरक पथरी के प्रति वफादार नहीं है, लेकिन समर्थन करने के लिए पर्याप्त है Prolog:

2

यह prolog से एक SQL क्वेरी है, जो तब prolog तथ्यों में अनुवाद किया जा सकता करने के लिए और अधिक समझ में आता है। जैसे Prolog ODBC Library

यह सभी प्रतिबंधों को हटा देता है और दोनों भाषाओं को उनके उचित स्थानों में अलग रखता है।

संबंधित मुद्दे