story.scheherazade.verbalizer
Class SymbolPlanner

java.lang.Object
  extended by story.scheherazade.verbalizer.SymbolPlanner
Direct Known Subclasses:
ActionPlanner, ConditionPlanner, ModifierPlanner, NounPlanner

public abstract class SymbolPlanner
extends java.lang.Object

An absract class with functionality common to the different Planners, which store natural-language equivalents of various narrative elements.


Constructor Summary
SymbolPlanner()
           
 
Method Summary
 int getAssumedAgentArg()
           
 java.lang.String getMenuName()
           
 DiscourseExecutable getPlan(VerbTense tense)
           
 java.lang.String getPrompt(int argNumber)
           
 boolean hasMenuName()
           
 boolean hasPlan(VerbTense tense)
           
 boolean hasPrompt(int argNumber)
           
 boolean isRaising()
          Get whether this symbol is a "raising" verb (or other POS), i.e., requires AND locks its assumed agent for any nested frames.
 void setAssumedAgentArg(int arg, boolean raisesAgent)
          If this frame sets an assumed agent for nested frames, this specified which argument contains the appropriate character.
 void setMenuName(java.lang.String name)
           
 void setPlan(VerbTense tense, DiscourseExecutable plan)
           
 void setPostroll(DiscourseExecutable plan)
           
 void setPreroll(DiscourseExecutable plan)
          Set a "preroll" discourse plan that will be prepended to the discourse plan retrieved for all tenses.
 void setPrompt(int argNumber, java.lang.String prompt)
           
 boolean setsAssumedAgent()
          Returns whether this frame sets an assumed agent for nested frames.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SymbolPlanner

public SymbolPlanner()
Method Detail

setPlan

public void setPlan(VerbTense tense,
                    DiscourseExecutable plan)
             throws Scheherexception
Throws:
Scheherexception

setPreroll

public void setPreroll(DiscourseExecutable plan)
                throws Scheherexception
Set a "preroll" discourse plan that will be prepended to the discourse plan retrieved for all tenses.

Throws:
Scheherexception

setPostroll

public void setPostroll(DiscourseExecutable plan)
                 throws Scheherexception
Throws:
Scheherexception

getPlan

public DiscourseExecutable getPlan(VerbTense tense)
                            throws Scheherexception
Throws:
Scheherexception

hasPlan

public boolean hasPlan(VerbTense tense)
                throws Scheherexception
Throws:
Scheherexception

setPrompt

public void setPrompt(int argNumber,
                      java.lang.String prompt)
               throws Scheherexception
Throws:
Scheherexception

getPrompt

public java.lang.String getPrompt(int argNumber)
                           throws Scheherexception
Throws:
Scheherexception

hasPrompt

public boolean hasPrompt(int argNumber)

setMenuName

public void setMenuName(java.lang.String name)
                 throws Scheherexception
Throws:
Scheherexception

hasMenuName

public boolean hasMenuName()

getMenuName

public java.lang.String getMenuName()
                             throws Scheherexception
Throws:
Scheherexception

setAssumedAgentArg

public void setAssumedAgentArg(int arg,
                               boolean raisesAgent)
                        throws Scheherexception
If this frame sets an assumed agent for nested frames, this specified which argument contains the appropriate character.

Parameters:
raisesAgent - Set true of the nested frame MUST be agent-compatible and have the agent specified in arg. For example, "appeal for action" -- "Alice appeals to Bob to die"; do not allow "Alice appeals to Bob for Charlie to die" in which the assumed agent set (Bob) for the "die" frame is different than the "die" agent chosen (Charlie). Another example is "able" -- no "Alice is able for Bob to die." Such verbs are known as "raising" verbs.

Set false if divergent agents are OK, or if the inner frame does not necessarily need a agent, e.g., "desire" -- "Alice wants to die" and "Alice wants for Bob to die" are both OK, as is "Alice wants for it to rain," the inner frame of which (rain) has no agent. Such verbs are known as "control" verbs.
Throws:
Scheherexception

setsAssumedAgent

public boolean setsAssumedAgent()
Returns whether this frame sets an assumed agent for nested frames.


getAssumedAgentArg

public int getAssumedAgentArg()
                       throws Scheherexception
Throws:
Scheherexception

isRaising

public boolean isRaising()
Get whether this symbol is a "raising" verb (or other POS), i.e., requires AND locks its assumed agent for any nested frames. "John appealed to Mary to get the eggs" is OK -- NOT "John appealed to Mary for Joe to get the eggs" -- because "appealed" is a raising verb.



Copyright © 2011 David K. Elson. All Rights Reserved.