अब मैंने जांच की है कि एक्स (वाई) मेरे छोटे डीबी में एक स्वीकार्य तथ्य नहीं है। चूंकि एक्स (वाई) झूठा रिटर्न देता है, इसलिए यह जोर देने का प्रयास करेगा।क्या मैं जोर/1 के साथ चर का उपयोग कर सकता हूं?
ifNotAdd(X,Y):-
not(call(X,Y)),
!,
assert(X(Y)).
उदाहरण के लिए (मैं इस समस्याओं को प्रस्तुत करता है जब एक्स एक नियम और नहीं एक तथ्य है एहसास), मान लें कि इस तथ्य डीबी
mammal(dolphin).
में है मैं ifNotAdd (स्तनपायी, हाथी पूछना चलो)।
मैं इसे देखना चाहता हूं? स्तनपायी (हाथी)। झूठ है और फिर स्तनधारियों (हाथी) पर जोर देते हैं।
स्पष्ट रूप से "जोर (एक्स (वाई))।" लाइन गलत है लेकिन मैं इसे किसके साथ बदलूं? मैं जवाब के लिए प्रोलॉग प्रलेखन और मंचों का सामना कर रहा हूं लेकिन अब तक कोई भाग्य नहीं है। मैं कुछ लिखने की भी कोशिश कर रहा हूं जो इसे स्वयं ही करेगा।
EDIT मुझे गतिशील डेटाबेस रखने के लिए डीबी को संपादित करने की आवश्यकता है ताकि उपयोगकर्ता बातचीत कर सके। मैं एक तर्क मशीन बना रहा हूं और मुझे उपयोगकर्ता को सिस्टम को यह बताने की अनुमति देने की आवश्यकता है कि वे "निश्चित रूप से तथ्य को जानते हैं" ताकि सिस्टम इसके डोमेन के बाहर ज्ञान से निपट सके।
http://en.wikipedia.org/wiki/Reason_maintenance
चीयर्स के सिलसिले में,
आह हा, मैं आमतौर पर पठनीयता के लिए() को उपयोग नहीं करता हूं, जब इसे पहली बार एक साथ हैकिंग किया जाता है, भले ही इसे बहिष्कृत किया गया हो। पोस्ट के लिए इसे बदलना चाहिए था। वैसे भी वही है जो मैं खोज रहा हूं। मैंने प्रोलॉग का उपयोग नहीं किया है क्योंकि मैंने इसे कक्षा में कुछ समय पहले सीखा था और रिलीज कर रहा हूं। पूरी तरह से भूल गए '= ../2' ताकि वह हल हो जाए। मैं ऊपर कार्यक्रम को स्पष्ट कर दूंगा। आपके संपादन के बारे में –
: डीबी में हेरफेर करने का एक कानूनी कारण लगता है:] – m09