حساب المواقف

حساب المواقف هو شكل منطقي مصمم لتمثيل المجالات الديناميكية والاستدلال عليها. وقد قدمه جون مكارثي لأول مرة عام 1963. [ 1 ] [ 2 ] وتستند النسخة الرئيسية من حساب المواقف المعروضة في هذه المقالة إلى تلك التي قدمها راي رايتر عام 1991. ويلي ذلك أقسام تتناول نسخة مكارثي لعام 1986 وصياغة البرمجة المنطقية .

ملخص

يمثل حساب المواقف السيناريوهات المتغيرة كمجموعة من صيغ المنطق من الدرجة الأولى . العناصر الأساسية لهذا الحساب هي:

  • اللغات التي تصف حالة العالم
  • الأفعال التي يمكن القيام بها في العالم
  • المواقف

يتم تحديد المجال بشكل رسمي من خلال عدد من الصيغ، وهي:

  • بديهيات الشروط المسبقة للفعل، واحدة لكل فعل
  • بديهيات الحالة اللاحقة، واحدة لكل حالة سلسة
  • بديهيات تصف العالم في مختلف المواقف
  • البديهيات الأساسية لحساب المواقف

سيتم تصميم عالم روبوتات بسيط كمثال عملي. يحتوي هذا العالم على روبوت واحد وعدة أشياء جامدة. تم تصميم العالم وفقًا لشبكة بحيث يمكن تحديد المواقع من حيث(x،y){\displaystyle (x,y)}نقاط الإحداثيات. يستطيع الروبوت التحرك في أرجاء العالم، والتقاط الأشياء وإسقاطها. قد تكون بعض الأشياء ثقيلة جدًا بحيث لا يستطيع الروبوت التقاطها، أو هشة بحيث تنكسر عند إسقاطها. كما يمتلك الروبوت القدرة على إصلاح أي أشياء مكسورة يحملها.

عناصر

تتألف العناصر الرئيسية لحساب المواقف من الأفعال، والمتغيرات، والمواقف. كما يتضمن وصف العالم عادةً عددًا من الكائنات. يعتمد حساب المواقف على مجال مُصنَّف بثلاثة أنواع: الأفعال، والمواقف، والكائنات، حيث تشمل الكائنات كل ما ليس فعلًا أو موقفًا. ويمكن استخدام متغيرات من كل نوع. وبينما تُعدّ الأفعال والمواقف والكائنات عناصر من المجال، تُنمذج المتغيرات إما كمسندات أو دوال.

الإجراءات

تشكل الإجراءات نوعًا من المجال. يمكن استخدام متغيرات من نوع الإجراء، وكذلك الدوال التي تكون نتائجها من نوع الإجراء. يمكن قياس الإجراءات كميًا. في مثال عالم الروبوتات، ستكون مصطلحات الإجراءات الممكنة هيمovهـ(x،y){\displaystyle move(x,y)}لنمذجة انتقال الروبوت إلى موقع جديد(x،y){\displaystyle (x,y)}، وصأناجكuص(o){\displaystyle pickup(o)}لنمذجة الروبوت وهو يلتقط جسمًا ما . يتم استخدام مسند خاص Poss للإشارة إلى متى يكون الإجراء قابلاً للتنفيذ.

المواقف

في حساب المواقف، يُصوَّر العالم الديناميكي على أنه يتقدم عبر سلسلة من المواقف نتيجةً لأفعال مختلفة تُنفَّذ داخله. يُمثِّل الموقف تاريخًا لأحداث وقعت. في نسخة رايتر من حساب المواقف الموصوفة هنا، لا يُمثِّل الموقف حالةً، خلافًا للمعنى الحرفي للمصطلح وخلافًا للتعريف الأصلي لماكارثي وهايز . وقد لخَّص رايتر هذه النقطة على النحو التالي:

الموقف عبارة عن سلسلة محدودة من الإجراءات. نقطة. إنه ليس حالة، وليس لقطة، بل هو تاريخ . [ 3 ]

يُشار عادةً إلى الحالة قبل اتخاذ أي إجراءات بـ S0{\displaystyle S_{0}}ويُطلق عليها الحالة الابتدائية. أما الحالة الجديدة الناتجة عن تنفيذ إجراء ما، فيُشار إليها باستخدام رمز الدالة do ( تستخدمبعض المراجع الأخرى [ 4 ] أيضًا result ). يأخذ رمز الدالة هذا الحالة والإجراء كمعاملات، والحالة كنتيجة، وهي الحالة الناتجة عن تنفيذ الإجراء المحدد في الحالة المحددة.

إن حقيقة أن المواقف عبارة عن تسلسلات من الأفعال وليست حالات يتم تأكيدها من خلال بديهية تنص على أندo(أ،s){\displaystyle do(a,s)}يساويدo(أ،s){\displaystyle do(a',s')}إذا وفقط إذاأ=أ{\displaystyle a=a'}وs=s{\displaystyle s=s'}. هذا الشرط لا معنى له إذا كانت المواقف حالات، حيث يمكن أن يؤدي إجراءان مختلفان يتم تنفيذهما في حالتين مختلفتين إلى نفس الحالة.

في عالم الروبوتات المذكور في المثال، إذا كان الإجراء الأول للروبوت هو الانتقال إلى الموقع(2،3){\displaystyle (2,3)}، الإجراء الأول هومovهـ(2،3){\displaystyle move(2,3)}والنتيجة هيدo(مovهـ(2،3)،S0){\displaystyle do(move(2,3),S_{0})}إذا كان الإجراء التالي هو التقاط الكرة، فإن الوضع الناتج هودo(صأناجكuص(بألل)،دo(مovهـ(2،3)،S0)){\displaystyle do(pickup(Ball),do(move(2,3),S_{0}))}مصطلحات مثل المواقفدo(مovهـ(2،3)،S0){\displaystyle do(move(2,3),S_{0})}ودo(صأناجكuص(بألل)،دo(مovهـ(2،3)،S0)){\displaystyle do(pickup(Ball),do(move(2,3),S_{0}))}تشير إلى تسلسل الإجراءات المنفذة، وليس إلى وصف الحالة الناتجة عن التنفيذ.

المتقنون

تُنمذج العبارات التي قد تتغير قيمتها المنطقية بواسطة المتغيرات العلائقية ، وهي عبارة عن دوال تأخذ الموقف كمعامل نهائي لها. كما توجد المتغيرات الوظيفية ، وهي دوال تأخذ الموقف كمعامل نهائي لها وتُرجع قيمة تعتمد على الموقف. ويمكن اعتبار المتغيرات بمثابة "خصائص العالم".

في المثال، المتحدث بطلاقةيحمل(o،s){\displaystyle {\textit {isCarrying}}(o,s)}يمكن استخدام هذه الخاصية للإشارة إلى أن الروبوت يحمل غرضًا معينًا في موقف معين. إذا كان الروبوت لا يحمل شيئًا في البداية،يحمل(بألل،S0){\displaystyle {\textit {isCarrying}}(Ball,S_{0})}خطأ بينمايحمل(بألل،دo(صأناجكuص(بألل)،S0)){\displaystyle {\textit {isCarrying}}(Ball,do(pickup(Ball),S_{0}))}هذا صحيح. يمكن نمذجة موقع الروبوت باستخدام لغة برمجة وظيفية سلسة.لoجأتأناoن(s){\displaystyle location(s)}الذي يعيد الموقع(x،y){\displaystyle (x,y)}من الروبوت في موقف معين.

الصيغ

يتم ترميز وصف العالم الديناميكي في منطق من الدرجة الثانية باستخدام ثلاثة أنواع من الصيغ: صيغ تتعلق بالأفعال (الشروط المسبقة والآثار)، وصيغ تتعلق بحالة العالم، والمسلمات الأساسية.

الشروط المسبقة للفعل

قد لا تكون بعض الإجراءات قابلة للتنفيذ في موقف معين. على سبيل المثال، من المستحيل وضع شيء ما إلا إذا كان الشخص يحمله بالفعل. يتم تمثيل القيود المفروضة على أداء الإجراءات بواسطة قيم حرفية من الشكل التالي:امتلاك(أ،s){\displaystyle {\textit {Poss}}(a,s)}حيث يمثل a فعلًا، وs موقفًا، و Poss مُسندًا ثنائيًا خاصًا يدل على إمكانية تنفيذ الأفعال. في المثال، يتم تمثيل الشرط الذي ينص على أن إسقاط شيء ما لا يكون ممكنًا إلا عند حمله، كما يلي:

امتلاك(درoص(o)،s)يحمل(o،s){\displaystyle {\textit {Poss}}(drop(o),s)\leftrightarrow {\textit {isCarrying}}(o,s)}

كمثال أكثر تعقيدًا، تشير النماذج التالية إلى أن الروبوت لا يستطيع حمل سوى جسم واحد في كل مرة، وأن بعض الأجسام ثقيلة جدًا بحيث لا يستطيع الروبوت رفعها (كما هو موضح بواسطة المسند ثقيل ):

امتلاك(صأناجكuص(o)،s)(z ¬يحمل(z،s))¬حهـأvy(o){\displaystyle {\textit {Poss}}(pickup(o),s)\leftrightarrow (\forall z\ \neg {\textit {isCarrying}}(z,s))\wedge \neg heavy(o)}

تأثيرات العمل

بافتراض إمكانية حدوث فعل ما في موقف معين، يجب تحديد آثار هذا الفعل على الكائنات المتغيرة. ويتم ذلك من خلال بديهيات التأثير. على سبيل المثال، يمكن نمذجة حقيقة أن التقاط جسم ما يجعل الروبوت يحمله على النحو التالي:

Poss(صأناجكuص(o)،s)يحمل(o،دo(صأناجكuص(o)،s)){\displaystyle Poss(pickup(o),s)\rightarrow {\textit {isCarrying}}(o,do(pickup(o),s))}

من الممكن أيضًا تحديد التأثيرات المشروطة، وهي التأثيرات التي تعتمد على الحالة الراهنة. يوضح النموذج التالي أن بعض الكائنات هشة (يُشار إليها بالخاصية الهشة ) وأن إسقاطها يؤدي إلى تلفها (يُشار إليه بالخاصية المتينة المعطلة ) :

Poss(درoص(o)،s)ورأزأنالهـ(o)برoكهـن(o،دo(درoص(o)،s)){\displaystyle Poss(drop(o),s)\wedge fragile(o)\rightarrow broken(o,do(drop(o),s))}

بينما تصف هذه الصيغة بشكل صحيح تأثير الإجراءات، إلا أنها لا تكفي لوصف الإجراء بشكل صحيح في المنطق، بسبب مشكلة الإطار .

مشكلة الإطار

رغم أن الصيغ المذكورة أعلاه تبدو مناسبة للاستدلال على آثار الأفعال، إلا أنها تعاني من نقطة ضعف جوهرية، وهي عدم إمكانية استخدامها لاستنتاج عدم وجود آثار للأفعال. على سبيل المثال، لا يمكن استنتاج أن موقع الروبوت يبقى دون تغيير بعد التقاطه لجسم ما. يتطلب هذا ما يُسمى ببديهية الإطار، وهي صيغة مثل:

Poss(صأناجكuص(o)،s)لoجأتأناoن(s)=(x،y)لoجأتأناoن(دo(صأناجكuص(o)،s))=(x،y){\displaystyle Poss(pickup(o),s)\wedge location(s)=(x,y)\rightarrow location(do(pickup(o),s))=(x,y)}

لطالما اعتُبرت الحاجة إلى تحديد بديهيات الإطار مشكلةً في وضع بديهيات العوالم الديناميكية، وتُعرف هذه المشكلة باسم " مشكلة الإطار" . ونظرًا لوجود عدد كبير جدًا من هذه البديهيات، فمن السهل جدًا على المصمم إغفال بديهية إطار ضرورية، أو نسيان تعديل جميع البديهيات المناسبة عند إجراء تغيير على وصف العالم.

بديهيات حالة الخلف

تُعالج بديهيات الحالة اللاحقة مشكلة الإطار في حساب المواقف. ووفقًا لهذا الحل، يجب على المصمم حصر جميع الطرق التي يمكن من خلالها تغيير قيمة عنصر معين كبديهيات تأثير. وتؤثر بديهيات التأثير على قيمة العنصر.F(x،s){\displaystyle F({\overrightarrow {x}},s)}يمكن كتابتها في شكل عام كبديهية التأثير الإيجابي وبديهية التأثير السلبي:

Poss(أ،s)γF+(x،أ،s)F(x،دo(أ،s)){\displaystyle Poss(a,s)\wedge \gamma _{F}^{+}({\overrightarrow {x}},a,s)\rightarrow F({\overrightarrow {x}},do(a,s))}
Poss(أ،s)γF-(x،أ،s)¬F(x،دo(أ،s)){\displaystyle Poss(a,s)\wedge \gamma _{F}^{-}({\overrightarrow {x}},a,s)\rightarrow \neg F({\overrightarrow {x}},do(a,s))}

الصيغةγF+{\displaystyle \gamma _{F}^{+}}يصف الشروط التي بموجبها يصبح الفعل أ في الموقف س صحيحًا في الموقف اللاحق .دo(أ،s){\displaystyle do(a,s)}. على نفس المنوال،γF-{\displaystyle \gamma _{F}^{-}}يصف الشروط التي بموجبها يؤدي القيام بالإجراء أ في الموقف س إلى جعل F الطليق خاطئًا في الموقف اللاحق.

إذا كان هذا الزوج من البديهيات يصف جميع الطرق التي يمكن أن تغير بها F السلسة قيمتها، فيمكن إعادة كتابتها كبديهية واحدة:

Poss(أ،s)[F(x،دo(أ،s))γF+(x،أ،s)(F(x،s)¬γF-(x،أ،s))]{\displaystyle Poss(a,s)\rightarrow \left[F({\overrightarrow {x}},do(a,s))\leftrightarrow \gamma _{F}^{+}({\overrightarrow {x}},a,s)\vee \left(F({\overrightarrow {x}},s)\wedge \neg \gamma _{F}^{-}({\overrightarrow {x}},a,s)\right)\right]}

بعبارة أخرى، تنص هذه الصيغة على ما يلي: "بافتراض إمكانية القيام بالفعل أ في الموقف س ، فإن العبارة السلسة ف ستكون صحيحة في الموقف الناتج."دo(أ،s){\displaystyle do(a,s)}إذا وفقط إذا كان القيام بـ a في s سيجعلها صحيحة، أو أنها صحيحة في الموقف s والقيام بـ a في s لن يجعلها خاطئة.

على سبيل المثال، تُعطى قيمة الكسر السلس المذكور أعلاه بواسطة بديهية حالة الخلف التالية:

Poss(أ،s)[برoكهـن(o،دo(أ،s))أ=درoص(o)ورأزأنالهـ(o)برoكهـن(o،s)أرهـصأأنار(o)]{\displaystyle Poss(a,s)\rightarrow \left[broken(o,do(a,s))\leftrightarrow a=drop(o)\wedge fragile(o)\vee broken(o,s)\wedge a\neq repair(o)\right]}

الولايات

يمكن تحديد خصائص الحالة الابتدائية أو أي حالة أخرى ببساطة عن طريق صياغتها كصيغ رياضية. على سبيل المثال، يتم صياغة حقيقة حول الحالة الابتدائية من خلال تقديم تأكيدات حولS0{\displaystyle S_{0}}(وهو ليس حالة، بل موقف ). توضح العبارات التالية أن الروبوت في البداية لا يحمل شيئًا، وهو موجود في الموقع(0،0){\displaystyle (0,0)}ولا توجد أشياء مكسورة:

z¬يحمل(z،S0){\displaystyle \forall z\,\neg {\textit {isCarrying}}(z,S_{0})}
لoجأتأناoن(S0)=(0،0){\displaystyle location(S_{0})=(0,0)\,}
o¬برoكهـن(o،S0){\displaystyle \forall o\,\neg broken(o,S_{0})}

البديهيات الأساسية

تُضفي البديهيات الأساسية لحساب المواقف طابعًا رسميًا على فكرة أن المواقف هي تاريخ من خلال امتلاكهادo(أ،s)=دo(أ،s)أ=أs=s{\displaystyle do(a,s)=do(a',s')\iff a=a'\land s=s'}وتشمل أيضًا خصائص أخرى مثل الاستقراء من الدرجة الثانية على المواقف.

الانحدار

الانحدار [ 5 ] هو آلية لإثبات النتائج في حساب المواقف. [ 6 ] وهو يعتمد على صياغة صيغة تتضمن الموقفدo(أ،s){\displaystyle do(a,s)}من حيث صيغة تحتوي على الفعل أ والموقف س ، ولكن ليس الموقفدo(أ،s){\displaystyle do(a,s)}بتكرار هذه العملية، يمكن التوصل إلى صيغة مكافئة تحتوي فقط على الحالة الأولية S 0. ومن المفترض أن يكون إثبات النتائج أبسط باستخدام هذه الصيغة مقارنةً بالصيغة الأصلية.

جولوج

لغة GOLOG هي لغة برمجة منطقية تعتمد على حساب المواقف. [ 7 ] [ 8 ]

النسخة الأصلية من حساب المواقف

يكمن الاختلاف الرئيسي بين حساب المواقف الأصلي لماكارثي وهايز والحساب المستخدم اليوم في تفسير المواقف. ففي النسخة الحديثة من حساب المواقف، يُعرَّف الموقف بأنه سلسلة من الأفعال. في الأصل، عُرِّفت المواقف بأنها "الحالة الكاملة للكون في لحظة زمنية معينة". كان واضحًا منذ البداية أنه لا يمكن وصف هذه المواقف وصفًا كاملًا؛ إذ كانت الفكرة ببساطة هي تقديم بعض التصريحات حول المواقف، واستخلاص النتائج منها. وهذا يختلف أيضًا عن النهج الذي يتبعه حساب التدفق ، حيث يمكن أن تكون الحالة مجموعة من الحقائق المعروفة، أي وصفًا قد يكون غير مكتمل للكون.

في النسخة الأصلية من حساب المواقف، لا تُجسّد المتغيرات. بمعنى آخر، تُمثَّل الشروط القابلة للتغيير بواسطة المسندات لا الدوال. في الواقع، عرّف مكارثي وهايز المتغير بأنه دالة تعتمد على الموقف، لكنهما استمرا في استخدام المسندات لتمثيل المتغيرات. على سبيل المثال، حقيقة هطول المطر في المكان س في الموقف ص تُمثَّل بالحرفرأأنانأنانز(x،s){\displaystyle raining(x,s)}في نسخة عام 1986 من حساب المواقف لماكارثي، تُستخدم الدوال المتغيرة. على سبيل المثال، يُعبَّر عن موضع الجسم x في الموقف s بقيمة .لoجأتأناoن(x،s){\displaystyle location(x,s)}حيث الموقع دالة. ويمكن التعبير عن هذه الدوال باستخدام المساواة:لoجأتأناoن(x،s)=لoجأتأناoن(x،s){\displaystyle location(x,s)=location(x,s')}يعني ذلك أن موقع الجسم x هو نفسه في الحالتين s وs{\displaystyle s'}.

يتم تمثيل تنفيذ الإجراءات بواسطة الدالة result : تنفيذ الإجراء a في الموقف s هو الموقفنتيجة(أ،s){\displaystyle {\textit {result}}(a,s)}يتم التعبير عن آثار الأفعال بصيغ تربط بين المتحدثين بطلاقة في المواقف والمتحدثين بطلاقة في المواقفنتيجة(أ،s){\displaystyle {\textit {result}}(a,s)}على سبيل المثال، يتم تمثيل أن عملية فتح الباب تؤدي إلى فتحه إذا لم يكن مغلقًا بما يلي:

¬لoجكهـد(دooر،s)oصهـن(دooر،نتيجة(oصهـنs،s)){\displaystyle \neg locked(door,s)\rightarrow open(door,{\textit {result}}(opens,s))}

يمثل المسندان "مغلق" و "مفتوح" حالتي إغلاق الباب وفتحه على التوالي. ولأن هاتين الحالتين قد تختلفان، فإنهما يُعبَّر عنهما بمسندين يتضمنان وسيطًا ظرفيًا. تنص الصيغة على أنه إذا لم يكن الباب مغلقًا في حالة معينة، فإنه يكون مفتوحًا بعد تنفيذ فعل الفتح، والذي يُمثَّل بالثابت " يفتح" .

لا تكفي هذه الصيغ لاستنتاج كل ما يُعتبر معقولاً. في الواقع، لا ترتبط المتغيرات اللغوية في المواقف المختلفة إلا إذا كانت شروطًا مسبقة ونتائج لأفعال؛ فإذا لم يتأثر متغير لغوي بفعل ما، فلا سبيل للاستنتاج بأنه لم يتغير. على سبيل المثال، لا تعني الصيغة المذكورة أعلاه أن¬لoجكهـد(دooر،نتيجة(oصهـنs،s)){\displaystyle \neg locked(door,{\textit {result}}(opens,s))}يتبع من¬لoجكهـد(دooر،s){\displaystyle \neg locked(door,s)}وهذا ما يُتوقع (لا يُغلق الباب بمجرد فتحه). ولكي يستمر مبدأ القصور الذاتي، نحتاج إلى صيغ تُسمى بديهيات الإطار . تُحدد هذه الصيغ جميع الآثار غير المباشرة للأفعال.

¬لoجكهـد(دooر،s)¬لoجكهـد(دooر،نتيجة(oصهـنs،s)){\displaystyle \neg locked(door,s)\rightarrow \neg locked(door,{\textit {result}}(opens,s))}

في الصيغة الأصلية لحساب المواقف، يُشار إلى الموقف الأولي لاحقًا بـ S0{\displaystyle S_{0}}لم يتم تحديدها صراحةً. لا حاجة للحالة الابتدائية إذا اعتُبرت الحالات بمثابة أوصاف للعالم. على سبيل المثال، لتمثيل السيناريو الذي كان فيه الباب مغلقًا ولكنه غير مُقفل، ويتم تنفيذ فعل فتحه، يتم تحديد الحالة الابتدائية بأخذ ثابت s للدلالة عليها، وتقديم عبارات عنها (مثلًا،¬لoجكهـد(دooر،s){\displaystyle \neg locked(door,s)}). إن كون الباب مفتوحًا بعد التغيير ينعكس في الصيغةoصهـن(دooر،نتيجة(oصهـنs،s)){\displaystyle open(door,{\textit {result}}(opens,s))}إن الوضع الأولي ضروري إذا اعتبرنا، كما هو الحال في حساب المواقف الحديث، أن الموقف عبارة عن سلسلة من الأفعال، لأن الوضع الأولي يمثل التسلسل الفارغ للأفعال.

تختلف نسخة حساب المواقف التي قدمها مكارثي عام 1986 عن النسخة الأصلية باستخدام الدوال الوظيفية (على سبيل المثال،لoجأتأناoن(x،s){\displaystyle location(x,s)}هو مصطلح يمثل موضع x في الموقف s ) ومحاولة استخدام التحديد لاستبدال بديهيات الإطار.

حساب المواقف كبرنامج منطقي

من الممكن أيضًا (على سبيل المثال Kowalski 1979، Apt و Bezem 1990، Shanahan 1997) كتابة حساب الموقف كبرنامج منطقي:

يحمل(و،دo(أ،s))امتلاك(أ،s)المبتدئون(أ،و،s){\displaystyle {\textit {Holds}}(f,do(a,s))\leftarrow {\textit {Poss}}(a,s)\wedge {\textit {Initiates}}(a,f,s)}
يحمل(و،دo(أ،s))امتلاك(أ،s)يحمل(و،s)¬ينهي(أ،و،s){\displaystyle {\textit {Holds}}(f,do(a,s))\leftarrow {\textit {Poss}}(a,s)\wedge {\textit {Holds}}(f,s)\wedge \neg {\textit {Terminates}}(a,f,s)}

هنا، يُعتبر Holds مُسندًا فوقيًا، ويتراوح المتغير f بين المتغيرات المتغيرة. تتوافق المُسندات Poss و Initiates و Terminates مع المُسندات Poss وγF+(x،أ،s){\displaystyle \gamma _{F}^{+}({\overrightarrow {x}},a,s)}، وγF-(x،أ،s){\displaystyle \gamma _{F}^{-}({\overrightarrow {x}},a,s)}على التوالي. السهم الأيسر ← هو نصف التكافؤ ↔. أما النصف الآخر فهو ضمني في إتمام البرنامج، حيث يُفسَّر النفي على أنه نفي بمعنى الفشل . بديهيات الاستقراء ضمنية أيضًا، ولا تُستخدم إلا لإثبات خصائص البرنامج. الاستدلال العكسي، كما في حل SLD ، وهو الآلية المعتادة لتنفيذ البرامج المنطقية، يُطبِّق الانحدار ضمنيًا.

انظر أيضاً

مراجع

  1. مكارثي، جون (1963). "المواقف والأفعال والقوانين السببية" (ملف PDF) . تقرير فني من جامعة ستانفورد . مؤرشف من الأصل (ملف PDF) بتاريخ 21 مارس 2020.
  2. "حساب الموقف" . إنجاتي . تم الاسترجاع في 17 نوفمبر 2025 .
  3. "مساهمة في مناظرة إكستر" .
  4. "دمج الروايات، جون مكارثي وآخرون (1998)" (PDF) .
  5. والدينجر، ريتشارد. "تحقيق عدة أهداف في وقت واحد". في قراءات في الذكاء الاصطناعي، ص 250-271. مورغان كوفمان، 1981.
  6. رايتر، ر.، 1991. مشكلة الإطار في حساب المواقف: حل بسيط (أحيانًا) ونتيجة اكتمال لانحدار الهدف. النظرية الاصطناعية والرياضية للحوسبة، 3.
  7. لاكيمير، جيرهارد. "حساب الموقف وغولوغ: دليل تعليمي" (ملف PDF) . www.hybrid-reasoning.org . تاريخ الاطلاع: 16 يوليو 2014 .
  8. "منشورات حول GOLOG" . تم الاطلاع عليه بتاريخ 16 يوليو 2014 .
  • ج. مكارثي وب. هايز (1969). بعض المشكلات الفلسفية من منظور الذكاء الاصطناعي . في ب. ميلتزر ود. ميتشي، محررين، الذكاء الآلي ، 4: 463-502. مطبعة جامعة إدنبرة، 1969.
  • ر. كوالسكي (1979). المنطق لحل المشكلات - إلسيفير نورث هولاند.
  • كي آر أبت وم. بيزيم (1990). البرامج غير الدورية. في: المؤتمر الدولي السابع حول البرمجة المنطقية. مطبعة معهد ماساتشوستس للتكنولوجيا. القدس، إسرائيل.
  • ر. رايتر (1991). مشكلة الإطار في حساب المواقف: حل بسيط (أحيانًا) ونتيجة اكتمال لانحدار الهدف. في: فلاديمير ليفشيتز (محرر)، الذكاء الاصطناعي والنظرية الرياضية للحوسبة: أوراق بحثية تكريمًا لجون مكارثي ، الصفحات 359-380، سان دييغو، كاليفورنيا، الولايات المتحدة الأمريكية. دار النشر الأكاديمية الاحترافية، 1991.
  • م. شاناهان (1997). حل مشكلة الإطار: دراسة رياضية لقانون القصور الذاتي البديهي. مطبعة معهد ماساتشوستس للتكنولوجيا.
  • H. Levesque, F. Pirri, and R. Reiter (1998). Foundations for the Wisty Calculus . Electronic Transactions on Artificial Intelligence , 2(3–4):159-178.
  • ف. بيري و ر. رايتر (1999). بعض المساهمات في النظرية الفوقية لحساب المواقف. مجلة ACM ، 46(3): 325-361. doi : 10.1145/316542.316545
  • ر. رايتر (2001). المعرفة في العمل: الأسس المنطقية لتحديد وتنفيذ الأنظمة الديناميكية. مطبعة معهد ماساتشوستس للتكنولوجيا.