PROLOG में एक नकारात्मक तथ्य बनाने के लिए

वोट
0

अगर मैं एक तथ्य है PROLOG में मैं उदाहरण के लिए लिखना अन्ना एक व्यक्ति है:

person(anna).

लेकिन क्या मैं लिखने अगर मैं एक तथ्य यह है तालिका एक व्यक्ति नहीं है है। मैंने कोशिश की

not(person(table)).

लेकिन यह काम नहीं करता। मैं नकारात्मक तथ्यों कैसे लिख सकता हूँ?

09/10/2019 को 12:54
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

Prolog में, आम तौर पर आप एक तथ्य के रूप में नकारात्मक बात पर जोर देना नहीं है। सकारात्मक तथ्य के अभाव या विफलता में एक साबित नियम परिणाम (या अधिक सही, "Provability की कमी")।

तो अगर आप केवल यह है कि जोर person(anna), तो क्वेरी person(anna).सच (सफल होते हैं, या साध्य हो) होगा, लेकिन person(table).गलत हो (असफल, या साध्य नहीं है) के रूप में उम्मीद करेंगे। इसके अलावा, क्वेरी, person(X).केवल निकलेगा X = annaअपेक्षा के अनुरूप।

डिफ़ॉल्ट रूप से, अगर आप क्वेरी person(X)और वहाँ कोई व्यक्तियों परिभाषित कर रहे हैं, Prolog दे देंगे कि यह दर्शाता है एक त्रुटि personएक अज्ञात विधेय है। यदि आप इसके बजाय कि Prolog बस उस मामले में विफल रहता है, वहाँ आप सेट कर सकते हैं एक विकल्प है चाहते हैं (मैं विशेष रूप से SWI Prolog में पता है, लेकिन मुझे याद है नहीं क्या विकल्प है), या आप घोषणा कर सकते हैं person/1एक होने के लिए गतिशील विधेय आप अगर जोर की योजना personगतिशील अपने डेटाबेस में तथ्यों के रूप में कार्यक्रम निष्पादित करता है।

एक विधेय परिभाषा के भाग के रूप में, आप संकेत मिलता है कि एक गर्म खून वाले जानवर एक स्तनपायी है, लेकिन एक व्यक्ति नहीं है चाहते हो सकता है। उस मामले में, आप हो सकता है:

warm_blooded_animal(X) :-
    mammal(X),
    \+ person(X).

यह सिर्फ एक उदाहरण के रूप में एक छोटे से काल्पनिक है। इस मामले में, आप अधिक होने की संभावना निर्धारित करेंगे mammalगर्म खून वाले किया जा रहा है, आदि, बल्कि दूसरी तरह के आसपास से की विशेषता के संदर्भ में। लेकिन आप अंदाजा हो ... ध्यान दें कि ऑपरेटर not/1आईएसओ मानक के पक्ष में पदावनत किया गया है \+/1

09/10/2019 को 16:35
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more