2010-09-24 4 views
13

काम पर वहाँ एक वेब ऐप्लिकेशन पर किसी नियम इंजन के लिए बैकएंड के रूप में prolog का उपयोग करने का विचार-विमर्श किया गया था। यह मौजूदा सिस्टम में कैसे बंधेगा? प्रोलॉग मॉड्यूल के आवेदक की अनुमति देने वाली अन्य भाषाओं के लिए प्रोलॉग लाइब्रेरी उपलब्ध हैं।Prolog वेब प्रोग्रामिंग

+1

बस जिज्ञासा से बाहर: प्रोलॉग में आपके कार्यस्थल पर कितने लोग वास्तव में अच्छी तरह से ग्राउंड हैं? यह एक दिलचस्प विकल्प, व्यवसाय के अनुसार लगता है। –

उत्तर

9

SWI-Prolog के लिए, आप Thea2 जो Prolog में SWRL के लिए समर्थन है और यह भी के माध्यम से बाहरी reasoners अटैच किया जा सकता करने के लिए दिखाई दे सकता है JPL आदि OWL/SWRL तर्क के लिए HermiT, या Pellet,

एक व्यक्तिगत पर के रूप में ध्यान दें, मैं अतीत में JPL कई बार इस्तेमाल किया है एक SWI-Prolog बैकएंड, जो सिर्फ ठीक काम करता है अगर आप एक भाषा है जो एक JVM, जावा, ग्रूवी तरह पर निष्पादन योग्य है का उपयोग कर अपने वेब अनुप्रयोग कार्यक्रम करने का इरादा के साथ वेब एप्लिकेशन को सक्षम करने के लिए, या उदाहरण के लिए, स्कैला। एक और विकल्प एसडब्ल्यूआई-प्रोलॉग को C या C++ environment में हुक करना होगा, जिसे मैंने वेब-एप के लिए नहीं किया है।

यदि आपका वेब-ऐप किसी अन्य विकास भाषा का उपयोग कर रहा है जो JVM या C/C++ में नहीं चलता है, तो यह आपके लिए सही पथ नहीं हो सकता है क्योंकि यह कनेक्ट करने के लिए थोड़ा कठिन लगता है एसडब्ल्यूआई-प्रोलॉग पर्यावरण को अन्य भाषा वातावरण में चला रहा है। हालांकि, उस ने कहा, हम सफलतापूर्वक HTTP से पहले का उपयोग कर एक SWI-Prolog करने वाली कुछ भी पुल को लागू किया है, लेकिन इस आदर्श से कम है, तो प्रदर्शन करना जरूरी है।

+0

जीएनयू प्रोलॉग के लिए कोई ढांचा? – iGbanam

+0

मुझे यकीन नहीं है - मैंने मुख्य रूप से एसडब्ल्यूआई-प्रोलॉग के साथ निपटाया है। – sharky

2

मुझे यकीन है कि आप के लिए क्या चाहिए, तो नहीं कर रहा हूँ, लेकिन आप Yield Prolog , जो अजगर, सी #, या Javascript का उपयोग कर कार्यक्रमों में Prolog कोड की एम्बेडिंग की अनुमति देता है पर गौर कर सकते हैं। कोई एपीआई शामिल नहीं है। मैंने इसे स्वयं (अभी तक) उपयोग नहीं किया है, लेकिन यह आप जो करने की कोशिश कर रहे हैं उसके लिए उपयुक्त हो सकता है।

+0

मेरी समझ में यील्ड प्रोलॉग जावास्क्रिप्ट आधारित है या तो, क्या आप इसे वेब सर्वर पर चलाएंगे? लेकिन फ्रंटेंड एकीकरण के लिए मुझे लगता है कि यह बहुत अच्छा होगा। –

+0

सर्वर-साइड प्रोग्रामिंग विशेष रूप से जावास्क्रिप्ट में [node.js] (https://nodejs.org/) के साथ अधिक लोकप्रिय हो रहा है, यह क्लाइंट या सर्वर पक्ष पर प्रोलॉग प्रोसेसिंग को एकीकृत करने के लिए एक उपयोगी टूल हो सकता है। – sharky

1

LPA Prolog व्यापक रूप से विभिन्न वाणिज्यिक वेब आधारित अनुप्रयोगों में इस्तेमाल किया गया है, सबसे काफ़ी व्यापार अखंडता के उद्योग नेतृत्व दस्तावेज़ विधानसभा उत्पाद, DealBuilder भीतर

LPA वेब आधारित अनुप्रयोगों deliverying के लिए विभिन्न आर्किटेक्चर प्रदान - जिनमें से कुछ कर रहे हैं LPA वेब साइट www.lpa.co.uk

क्लाइव

5

SWI-prolog एक पूरी तरह से उचित HTTP सर्वर/वेब रूपरेखा शामिल है पर VisiRule अनुभाग के भीतर shocased।

आप HTTP पर यह करने के लिए बात कर सकते हैं।

एक्सएमएल/SGML और JSON, और ODBC

+0

JSON और साथ ही कुछ डीबी कनेक्टिविटी, वेब के लिए महत्वपूर्ण प्रतीत होता है। दुर्भाग्य से यह यहां सूचीबद्ध नहीं है: http://en.wikipedia.org/wiki/Comparison_of_Prolog_implementations#Operating_system_and_Web-related_features –

0

मैं वेब एम्बेडिंग के लिए एक महत्वपूर्ण शर्त लगता है पार्स करने, विशेष रूप से सर्वर साइड पर करने के लिए उपकरण हैं, Prolog प्रणाली की बहु theading क्षमता है। कम से कम आप शायद, इस आवश्यकता यदि आप कई उन समवर्ती सेवा करना चाहते हैं।

फिर आप विकल्प चुन सकते हैं या तो एक शुद्ध समाधान है, जहां पृष्ठों उत्पन्न और Prolog ही द्वारा बनाए रखा हैं के लिए। या शायद एक मिश्रण समाधान के लिए, जहां प्रोलॉग सिस्टम का उपयोग केवल कुछ व्यावसायिक तर्क के लिए किया जाता है और अन्य प्रोग्रामिंग भाषा प्रस्तुति और/या संग्रहण के लिए उपयोग की जाती है।

निम्नलिखित विकी तुलना तालिका Prolog प्रणाली का अवलोकन और कि क्या वे बहु लड़ी और/या समर्थन कुछ वेब प्रोग्रामिंग कर रहे हैं देता है:

Comparison of Prolog implementations,
Operating system and Web-related features

इस समस्या मेरे पास है पर अपने ही ले लिए थोड़ा सा ट्यूटोरियल सेट करें जो सर्वर पक्ष व्यावसायिक तर्क के लिए जेकेजेके रनटाइम का उपयोग दिखाता है। जेकेजेके रनटाइम काफी लचीला है, आप पर केवल एकाधिक धागे नहीं कर सकते हैं, आप कई ज्ञान अड्डों भी प्राप्त कर सकते हैं।

Jekejeke Runtime,
Deployment Methods

Jekejeke रनटाइम, उदाहरण वर्तमान में, एक उत्पादक बिक्री प्रणाली में इस्तेमाल किया कुछ/लिखने ताले कस्टम पढ़ द्वारा के लिए है यह को पुन: प्रारंभ बिना किसी व्यवस्थापक द्वारा ज्ञान का आधार भी दूरदराज के गर्म स्वैप की अनुमति देता है वेब संदर्भ दुर्भाग्यवश उस पर अभी तक कोई रिपोर्ट नहीं है।

अलविदा

+0

एसडब्ल्यूआई-प्रोलॉग वेब ढांचा बहु-थ्रेडेड है। मैंने इसे एक ऐसे एप्लिकेशन के लिए उपयोग किया है जहां मैं 10^7 की सेवा कर रहा था या फिर एक दिन का अनुरोध करता था। – Anniepoo

+0

हां, यही कारण है कि एसडब्ल्यूआई-प्रोलॉग मेरी पोस्ट में दी गई विकी टेबल लिंक में सूचीबद्ध है। वही विकी तुलना तालिका में एक स्तंभ "बहु-थ्रेडेड" और वेब से संबंधित कॉलम भी हैं। –