Choice Point

A choice point is a set of possible actions that an agent could take.

A subjective choice point is a set of possible actions that an agent believes it could take.

This concept is defined to make it easier to refer to the set of options available to an agent instead of focusing on the agent and the process of deciding1As of draft 4, a distinct notion of situations is used..

SUMO

Both versions are defined as non-empty sets whose members are autonomous agent processes.

(documentation ChoicePoint EnglishLanguage "A set of classes of processes where one agent has to choose between two or more (mutually exclusive?) options.")
(subclass ChoicePoint Set)
(subclass ChoicePoint NonNullSet)

(documentation SubjectiveChoicePoint EnglishLanguage "A set of classes of processes where one agent has to choose between two or more (mutually exclusive?) options.")
(subclass SubjectiveChoicePoint Set)
(subclass SubjectiveChoicePoint NonNullSet)

(=> 
  (and 
    (instance ?CP ChoicePoint)
    (element ?P ?CP))
  (subclass ?P AutonomousAgentProcess))

(=> 
  (and 
    (instance ?CP SubjectiveChoicePoint)
    (element ?P ?CP))
  (subclass ?P AutonomousAgentProcess))

The difference lies in whether the agent believes it is capable of performing every member of the option set.

(=> 
  (instance ?CP ChoicePoint)
  (exists (?AGENT)
    (forall (?P)
      (=> 
        (element ?P ?CP)
        (capability ?P agent ?AGENT)))))

(=> 
  (instance ?CP SubjectiveChoicePoint)
  (exists (?AGENT)
    (forall (?P)
      (=> 
        (element ?P ?CP)
        (believes ?AGENT
          (capability ?P agent ?AGENT))))))

The definition of subjective choice point cleanly matches the definition of deciding: whenever an agent is deciding among some options, this is a subjective choice point.

(=> 
  (and
    (instance ?DECIDE Deciding)
    (agent ?DECIDE ?AGENT)
    (instance ?OPTIONS NonNullSet)
    (patient ?DECIDE ?OPTIONS))
  (instance ?OPTIONS SubjectiveChoicePoint))

For a choice point, the best that can be said is that the agent believes that the option set is a choice point:

(=> 
  (and
    (instance ?DECIDE Deciding)
    (agent ?DECIDE ?AGENT)
    (instance ?OPTIONS NonNullSet)
    (patient ?DECIDE ?OPTIONS))
  (believes ?AGENT
        (instance ?OPTIONS ChoicePoint)))  

For every subjective choice point, there is a similar choice point. One example is the choice for the agent to try to do what it believes it can do2Unfortunately “to try” is only defined in SUMO as an Intentional Process, which would make providing this example more work.3This could justify not concerning oneself much with whether one deals with the subjective or objective versions in general..

(forall (?SCP)
  (exists (?CP ?AGENT)
    (and
      (instance ?CP ChoicePoint)
      (instance ?SCP SubjectiveChoicePoint)
      (similar ?AGENT ?CP ?SCP))))