Asking questions

A nice thing to have is the ability to query the AI with questions. This allows a statement to be posed and then a question to be asked to determine whether the AI understood the statement.

Parsing a question uses transformations much like parsing a statement. The only difference is that our end goal is a reference to an entity's value rather than an assignment.

For example:

What is my name?

We already have transformations that will get us to:

What is [speaker.first_name]?

Next we apply:

what is {noun} -> $1

Which results in:

[speaker.first_name]?

A built-in rule is that any value followed by a question mark prompts that the value be output:

"Daniel"