घटना गणना

प्रसंग गणना प्रसंगो और उनके प्रभावों के बारे में प्रतिनिधित्व और तर्क करने के लिए एक तार्किक भाषा है जिसे पहली बार 1986 में रॉबर्ट कोवाल्स्की और मारेक सर्गोट द्वारा प्रस्तुत किया गया था। इसे 1990 के दशक में मुर्राय षनहं और रॉब मिलर (कंप्यूटर वैज्ञानिक) द्वारा विस्तारित किया गया था। परिवर्तन के बारे में तर्क के लिए अन्य भाषाओं के समान, प्रसंग गणना स्पष्टता पर क्रिया के प्रभावों का प्रतिनिधित्व करता है। हालाँकि, प्रसंग (कंप्यूटिंग) पद्वति के बाहर भी हो सकता है। प्रसंग गणना में, कोई कुछ निश्चित समय बिंदुओं पर स्पष्टता के मान, दिए गए समय बिंदुओं पर होने वाली प्रसंगो और उनके प्रभावों को निर्दिष्ट कर सकता है।

स्पष्टता और प्रसंग
प्रसंग गणना में, स्पष्ट पुनःकरण हैं। इसका अर्थ यह है कि उन्हें विधेय के माध्यम से नहीं बल्कि फलन के माध्यम से औपचारिक रूप दिया जाता है। एक अलग विधेय $HoldsAt$ का उपयोग यह बताने के लिए किया जाता है कि कौनसी स्पष्टता किसी निश्चित समय बिंदु पर उपलब्ध हैं। उदाहरण के लिए, $$\mathit{HoldsAt}(on(box,table),t)$$ इसका अर्थ है कि $t$ समय पर बॉक्स टेबल पर है ; इस सूत्र में, $HoldsAt$ एक विधेय है और $on$ एक फलन है।

प्रसंगो को पदों के रूप में भी दर्शाया जाता है। प्रसंगो का प्रभाव विधेय, आरंभ और समाप्ति का उपयोग करके दिया जाता है। विशेष रूप से, $$\mathit{Initiates}(e,f,t)$$ का अर्थ है कि, यदि प्रसंग को $e$ पद द्वारा $t$ समय पर निष्पादित किया जाता है तो $t$ समय पर स्पष्टता $f$ सत्य होगी। समाप्ति विधेय का अर्थ आरंभ विधेय के समतुल्य ही होता है, केवल अंतर के साथ कि $t$ समय पर स्पष्टता $f$ असत्य होगी।

कार्यक्षेत्र-स्वतंत्र सिद्धांत
क्रियाओं का प्रतिनिधित्व करने के लिए अन्य भाषाओं की तरह, प्रसंग गणना एक मनमानी कार्रवाई के बाद प्रत्येक स्पष्टता के मान को बताने वाले सूत्रों के माध्यम से स्पष्टता के सही विकास को औपचारिक बनाता है। प्रसंग गणना तंत्र समस्या को इस तरह से हल करता है जो स्थिति गणना के अनुक्रमित अवस्था सिद्धांत के समान है: समय पर एक स्पष्टता सत्य होता है $t$ यदि और केवल यदि इसे अतीत में सत्य बनाया गया हो और इस बीच असत्य नहीं बनाया गया हो।
 * $$\mathit{HoldsAt}(f,t) \leftarrow

[\mathit{Happens}(e,t_1) \wedge \mathit{Initiates}(e,f,t_1) \wedge (t_1<t) \wedge \neg \mathit{Clipped}(t_1,f,t)]$$ इस सूत्र का अर्थ है कि स्पष्टता शब्द द्वारा दर्शाया गया है $f$ समय पर सत्य है $t$ अगर:

एक समान सूत्र का उपयोग विपरीत स्थितियों को औपचारिक बनाने के लिए किया जाता है जिसमें एक निश्चित समय पर स्पष्टता गलत होता है। किसी प्रसंग के प्रभाव होने से पहले स्पष्टता को सही ढंग से औपचारिक बनाने के लिए अन्य सूत्रों की भी आवश्यकता होती है। ये सूत्र उपरोक्त के समान हैं, लेकिन $$\mathit{Happens}(e,t_1) \wedge \mathit{Initiates}(e,f,t_1)$$ द्वारा प्रतिस्थापित किया जाता है $$\mathit{HoldsAt}(f,t_1)$$. $e$ विधेय, जिसमें कहा गया है कि एक अंतराल के दौरान एक स्पष्टता को असत्य बना दिया गया है, इसे सिद्धांत किया जा सकता है, या बस शॉर्टहैंड के रूप में लिया जा सकता है, इस प्रकार:
 * 1) एक प्रसंग $f$ हो गया: $$\mathit{Happens}(e,t_1)$$;
 * 2) यह अतीत में हुआ था: $$\mathit{t}_1<t$$;
 * 3) इस प्रसंग में स्पष्टता है $Clipped}ed$ प्रभाव के रूप में: $$\mathit{Initiates}(e,f,t_1)$$;
 * 4) इस बीच स्पष्टता को गलत नहीं बनाया गया है: $$\mathit{Clipped}(t_1,f,t)$$


 * $$\mathit{Clipped}(t_1,f,t_2) \equiv

\exists e,t [\mathit{Happens}(e,t) \wedge (t_1 \leq t < t_2) \wedge \mathit{Terminates}(e,f,t)]$$

कार्यक्षेत्र-निर्भर सिद्धांत
उपरोक्त सिद्धांत विधेय के मान से संबंधित हैं $HoldsAt$, $Initiates$ और $Terminates$, लेकिन यह निर्दिष्ट न करें कि कौन से स्पष्टता सत्य माने जाते हैं और कौन सी प्रसंगएँ वास्तव में स्पष्टता को सत्य या गलत बनाती हैं। यह कार्यक्षेत्र-निर्भर सिद्धांतों के एक समूह का उपयोग करके किया जाता है। स्पष्टता के ज्ञात मानों को सरल शाब्दिक रूप में बताया गया है $$\mathit{HoldsAt}(f,t)$$. प्रसंगो के प्रभावों को उनकी पूर्व शर्तों के साथ प्रसंगो के प्रभावों से संबंधित सूत्रों द्वारा बताया जाता है। उदाहरण के लिए, यदि प्रसंग $open$ स्पष्टता बनाता है $isopen$ सत्य है, परंतु केवल यदि $haskey$ वर्तमान में सत्य है, प्रसंग गणना में संबंधित सूत्र है:


 * $$\mathit{Initiates}(e,f,t) \equiv

[ e=open \wedge f=isopen \wedge \mathit{HoldsAt}(haskey, t)] \vee \cdots $$ इस तुल्यता की दाहिनी ओर की अभिव्यक्ति एक विच्छेद से बनी है: प्रत्येक प्रसंग और स्पष्टता के लिए जिसे प्रसंग द्वारा सच किया जा सकता है, वहां एक विच्छेद कहा गया है कि $e$ वास्तव में वह प्रसंग है, वह $f$ वास्तव में वह स्पष्टता है, और यह कि प्रसंग की पूर्व शर्त पूरी हो गई है।

उपरोक्त सूत्र सत्य मान निर्दिष्ट करता है $$\mathit{Initiates}(e,f,t)$$ हर संभव प्रसंग और स्पष्टता के लिए। परिणामस्वरूप, सभी प्रसंगो के सभी प्रभावों को एक सूत्र में संयोजित करना होगा। यह एक समस्या है, क्योंकि किसी नए ईवेंट को जोड़ने के लिए नए जोड़ने के बजाय उपलब्धा सूत्रों को संशोधित करने की आवश्यकता होती है। इस समस्या को सूत्रों के एक समूह पर परिधि (तर्क) के अनुप्रयोग द्वारा हल किया जा सकता है, जिनमें से प्रत्येक एक प्रसंग के एक प्रभाव को निर्दिष्ट करता है:


 * $$\mathit{Initiates}(open, isopen, t) \leftarrow \mathit{HoldsAt}(haskey, t)$$
 * $$\mathit{Initiates}(break, isopen, t) \leftarrow \mathit{HoldsAt}(hashammer, t)$$
 * $$\mathit{Initiates}(break, broken, t) \leftarrow \mathit{HoldsAt}(hashammer, t)$$

ये सूत्र उपरोक्त सूत्र की तुलना में सरल हैं, क्योंकि प्रत्येक प्रसंग के प्रत्येक प्रभाव को अलग से निर्दिष्ट किया जा सकता है। कौन सी प्रसंग बता रहा है एक सूत्र $e$ और स्पष्टता $f$ निर्माण $$\mathit{Initiates}(e,f,t)$$ ट्रू को छोटे सूत्रों के एक समूह से बदल दिया गया है, जिनमें से प्रत्येक एक स्पष्टता पर किसी प्रसंग के प्रभाव को बताता है। हालाँकि, ये सूत्र उपरोक्त सूत्र के समतुल्य नहीं हैं। दरअसल, वे केवल इसके लिए पर्याप्त शर्तें निर्दिष्ट करते हैं $$\mathit{Initiates}(e,f,t)$$ सत्य होने के लिए, जिसे इस तथ्य से पूरा किया जाना चाहिए $Initiates$ अन्य सभी मामलों में गलत है। इस तथ्य को केवल विधेय को सीमित करके औपचारिक रूप दिया जा सकता है $Initiates$ उपरोक्त सूत्र में। यह ध्यान रखना महत्वपूर्ण है कि यह परिनियम केवल निर्दिष्ट सूत्रों पर ही किया जाता है $Initiates$ और कार्यक्षेत्र-स्वतंत्र सिद्धांतों पर नहीं। विधेय $Terminates$ को उसी तरह निर्दिष्ट किया जा सकता है $Initiates$ है।

के लिए एक समान दृष्टिकोण अपनाया जा सकता है $Happens$ विधेय. इस विधेय का मानांकन सूत्रों द्वारा लागू किया जा सकता है जो न केवल यह निर्दिष्ट करता है कि यह कब सत्य है और कब गलत है:


 * $$\mathit{Happens}(e,t) \equiv

(e=open \wedge t=0) \vee (e=exit \wedge t=1) \vee \cdots$$ परिधि इस विनिर्देश को सरल बना सकती है, क्योंकि केवल आवश्यक शर्तें ही निर्दिष्ट की जा सकती हैं:


 * $$\mathit{Happens}(open, 0)$$
 * $$\mathit{Happens}(exit, 1)$$

विधेय की परिधि करना $Happens$, यह विधेय उन सभी बिंदुओं पर गलत होगा जहां इसे स्पष्ट रूप से सत्य होने के लिए निर्दिष्ट नहीं किया गया है। यह परिच्छेद अन्य सूत्रों के परिच्छेद से अलग करना पड़ता है। दूसरे शब्दों में, यदि $F$ प्रकार के सूत्रों का समूह है $$\mathit{Initiates}(e,f,t) \leftarrow \cdots$$, $G$ सूत्रों का समूह है $$\mathit{Happens}(e, t)$$, और $H$ कार्यक्षेत्र स्वतंत्र सिद्धांत हैं, कार्यक्षेत्र का सही सूत्रीकरण है:


 * $$\mathit{Circ}(F; \mathit{Initiates}, \mathit{Terminates}) \wedge

Circ(G; Happens) \wedge H$$

 एक तर्क कार्यक्रम के रूप में प्रसंग गणना 

प्रसंग गणना को मूल रूप से विफलता के रूप में नकार के साथ संवर्धित सींग उपवाक्य के एक समूह के रूप में तैयार किया गया था और इसे प्रोलॉग प्रोग्राम के रूप में चलाया जा सकता था। वास्तव में, परिधि कई शब्दार्थों में से एक है जिसे नकार को विफलता के रूप में दिया जा सकता है, और पूर्णता शब्दार्थ से निकटता से संबंधित है (जिसमें यदि की व्याख्या यदि और केवल यदि के रूप में की जाती है - तर्क प्रोग्रामिंग देखें)।

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

केव एशघी ने दिखाया कि प्रसंग गणना का उपयोग योजना बनाने के लिए कैसे किया जा सकता है, प्राधिग्रहण तर्क प्रोग्रामिंग में काल्पनिक प्रसंगो को उत्पन्न करने के लिए अपहरण (तर्क) का उपयोग करना। वैन लैम्बलजेन और हैम ने दिखाया कि कैसे प्रसंग गणना का उपयोग प्राकृतिक भाषा में काल और पहलू को एल्गोरिदमिक शब्दार्थ देने के लिए भी किया जा सकता है। बाधा तर्क प्रोग्रामिंग का उपयोग करना।

प्रसंग गणना के अन्य उल्लेखनीय विस्तारों में मार्कोव लॉजिक नेटवर्क-आधारित, संभावना, ज्ञानमीमांसा वेरिएंट और उनके संयोजन.

तर्क उपकरण
प्रोलॉग और इसके वेरिएंट के अलावा, प्रसंग गणना का उपयोग करके तर्क करने के लिए कई अन्य उपकरण भी उपलब्ध हैं:
 * अपहरण प्रसंग गणना प्लानर्स
 * असतत प्रसंग गणना रीज़नर
 * प्रसंग गणना उत्तर समूह प्रोग्रामिंग
 * रिएक्टिव प्रसंग गणना
 * रन-टाइम प्रसंग गणना (RTEC)

यह भी देखें

 * प्रथम-क्रम तर्क
 * फ़्रेम समस्या
 * स्थिति गणना

अग्रिम पठन

 * Brandano, S. (2001) "The Event Calculus Assessed," IEEE TIME Symposium: 7-12.
 * R. Kowalski and F. Sadri (1995) "Variants of the Event Calculus," ICLP: 67-81.
 * Mueller, Erik T. (2015). Commonsense Reasoning: An Event Calculus Based Approach (2nd Ed.). Waltham, MA: Morgan Kaufmann/Elsevier. ISBN 978-0128014165. (Guide to using the event calculus)
 * Shanahan, M. (1997) Solving the frame problem: A mathematical investigation of the common sense law of inertia. MIT Press.
 * Shanahan, M. (1999) "The Event Calculus Explained" Springer Verlag, LNAI (1600): 409-30.