मैं प्रोल के डीसीजी से बहुत प्रभावित हूं और मैं कितनी जल्दी एक विशेष व्याकरण के लिए आवश्यक सभी संभावित संरचनाओं का उत्पादन कर सकता हूं।प्रोलॉग: अन्य प्रतिबंधों के साथ डीसीजी व्याकरण का मिश्रण
लेकिन मैं इस खोज को अन्य बाधाओं के साथ जोड़ना चाहता हूं। उदाहरण के लिए, एक जटिल व्याकरण को परिभाषित करें और प्रोलॉग से सभी वाक्यों को 10 से अधिक शब्दों के साथ उत्पन्न करने के लिए कहें। या सभी वाक्यों जो एक ही शब्द दो बार दोहराते हैं।
क्या डीसीजी व्याकरण में इस तरह की अतिरिक्त बाधाएं जोड़ना संभव है? या क्या मुझे मूल रूप से डीसीजी को सामान्य प्रोलॉग क्लॉज में अनुवाद करना है और उन्हें संशोधित करना शुरू करना है?
?- length(Xs, N), phrase(mynonterminal, Xs).
पाठ्यक्रम कि सभी वाक्य उत्पन्न की:
मुझे लगता है कि इसका पहला हिस्सा "seq" से निपटने के लिए है, जो मुझे चाहिए (यानी एक nonterminal एक सीमित सूची है)। लेकिन मुझे शायद यह काम करने में काफी कुछ नहीं मिल रहा है क्योंकि मुझे समझ में नहीं आता है। उस पहले उदाहरण में "वाक्यांश" क्या है? – interstar
'(&) // 2' की परिभाषा को समझने से पहले, यह समझने की कोशिश करें कि डीएलजी को प्रोलॉग में कैसे एन्कोड किया गया है। पेरेरा और शिबर द्वारा प्रोलॉग एंड नेचुरल लैंग्वेज एनालिसिस पर एक अच्छी किताब है। http://www.mtome.com/Publications/PNLA/pnla.html (यह मुफ़्त है) – false
हाय झूठी, पुस्तक संदर्भ के लिए धन्यवाद। उपयोगी हो जाएगा। मेरी विशेष समस्या पर, मुझे लगता है कि आपका समाधान "ए -> {लंबाई (एसएस, 10)}, सीईसी (एस), {वाक्यांश (mynonterminal, Es)}।" लगभग वही दिखता है जो मैं चाहता हूं। मैं समझ में नहीं आता कि, मेरे कार्यक्रम में, मुझे लिखना चाहिए जहां आपने "वाक्यांश" लिखा है।मैं देख सकता हूं कि उस हिस्से का उद्देश्य यह कहना है कि अनुक्रम mynonterminals से बना है। लेकिन वह "वाक्यांश" क्या कहता है? – interstar