Okay so loads of code written, which has really found holes and helped smooth out the model.
Okay so the most basic Query format is a Graphed Query.
Any item which is pop-able can throw away it’s parents without loss of information. You may want to keep the context if you want to use a “previous topic” action. If the depth is becoming unmanageable however you can slice off the top at Pop-able joints.
Items which are not popable require their context to make sense.
The current context is the Query which was passed in, we can then pass out the response nodes.
If you have a general query then an outline will be provided on the context item.
If you have a specific query, for instance the above query could be expressed as.
Object(Knife) -> Event(Stabbing #2) -> Actor( NULL )
What data does each agent hold, well coding really shone light on the dark places and showed up the cracks.
The Atom element indicates time-sensitive data. It can be attached to anything, to contain a time sensitive element. AtomCollection was a break through, it smooths out the accessing of Time Sensitive data.
Atoms cannot be a child of Event Node.
Person, Place, and Event all inherit from Talk Base.
Talk Base has a list of status which allow generic attachment of time-sensitive data.
At first I was look at expanding the data model but then I thought of data groups. So the Graph provides context.
I’m still not happy with the verb declarations, the model needs some revision.
I’m thinking of having a dictionary of possible game verbs.