AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..


Hi Bruce, hi all,

is it possible to have annotations in CS,
perhaps of anaphors -
and how would they look like?

For example:

u: (your mother) <span id=“a1”>My mother</span> hates <span id=“a2”>doing the dishes</span>, but <span data-antecedent=“a1”>she</a> would never allow me to do <span data-antecedent=“a2”>it</a> for <span data-antecedent=“a1”>her</a>.

How would I do it in “real” ChatScript?




  [ # 1 ]

Not sure what you are asking. You can certainly take that rule you wrote, put it into chatscript and it will output what you have written.  If you want to do something else with this, you’ll have to explain what is intended to process these annotations.


  [ # 2 ]

Hi Bruce,

sorry for being not clear enough:

I want these annotations to be inside the output
for reasons of anaphora-resolution, but invisible in the output for the user.

The user should see after a sentence with “your mother” in it simply:
“My mother hates doing the dishes, but she would never allow me to do it for her.”

But the bot should react as if having said:
“My mother hates doing the dishes, but my mother would never allow me to do it for my mother.”

Can you see my point now?




  [ # 3 ]

For it to be valid HTML, you need closing /SPAN instead of /a around “she”, “her” and “it”.

<span id="a1">My mother</spanhates <span id="a2">doing the dishes</span>,
but <span data-antecedent="a1">she</spanwould never allow me to do <span data-antecedent="a2">it</span>
for <
span data-antecedent=“a1”>her</span>. 

  [ # 4 ]

Hi Merlin,

thank you for your hint.
You are absolutely right.
It should just be an example
to show Bruce, what I need in ChatScript: )




  [ # 5 ]

So, Andreas, your use case is still not clear. Normally bots don’t react to what THEY say, unless you are using postprocess topic to analyze chatbots own sentences. But let’s pretend I do know what you want…
1. if you had some program outside of chatscript that you were annotating for, that was between CS and the user, then that exterior program could strip off any form of annotation, make use of it, and present the unannotated output to the user. I presume this is not what you want.
2. If you intend to have CS analyze its own output   (and assuming you don’t have a reasonable pronoun resolution code in postprocessing to do this automatically which is admittedly a difficult thing to do), then annotation is data you want to pass to postprocessing. So
u: (your mother) ^pronoundef(a1 “My mother”) ... ^pronounref(a1 “she”) 
would be a notation.
Then its a question of how to code the output macro. I would imagine it records facts which hold (a1 pronoundef “My mother”) and probably the position in the sentence of the pronoun for a pronounref and then just puts the words into the output stream Then during postprocessing one could reconstruct a sentence which had pronouns substituted back in place, and then analyze that sentence to react in script. The user would see the clean output.


  [ # 6 ]

Dear Bruce,

its a variation of case 1:

Hendrik and me are still working
an an anaphora-resolution-tool, which shall be go to work
after every output (after bot-output AND user-output).

Would a more abstract annotation bepossible: like
u: (your mother) ^antezref(a1 “My mother”) hates doing the dishes, but. ^anapref(a1 “she”)...
to catch the antecedent by ^antezref(a1 “XYZ”) ant the first anaphora by ^anapref(a1 “xyz”)

with a user-seen output:
“My mother hates doing the dishes, but…”
but with antecedent and the anaphora sent to the anaphora-resolution-tool?

Thanks for your patience: )


  [ # 7 ]

so if you are in case #1, you have an interceptor program between the user and CS, then what I would “expect” is that you annotation using macros (as you show), and that the macro both generates facts and then puts out the ordinary output. And then during postprocessing, you retrieve those facts (FACTTRANSIENT) and output special annotation as out of band information to your interceptor which processes the oob data and does not display it to the user. So the resulting oob data might be
[ a1=“My mother” ref=a1.15]  the user message
where the ref names both the value to use and the position of the pronoun in the sentence. That’s one idea anyway.


  [ # 8 ]

that is the structure
of what we wanna do.

Our interceptor program (SLS) shall recreate
the process of human thinking by putting the puzzle of words together,
for example using elipses als “free space” in this puzzle.


User: Einstein was a great physicist.
Bot: (finding u: (<<Einstein* ~value_d) ) He was a great violonist, too!
(Bot (thinking with the help of SLS and sending back to ChatScript) Einstein was a great violonist, too!)
User: Impossible!
(Bot (putting the puzzle together, thinking:) Impossible, that Einstein was a great violonist, too!)
Bot outputs: Believe me!
(Bot thinking: Believe me, that Einstein was a great violonist, too!)




  [ # 9 ]

It’s all up to you now.


  [ # 10 ]

We will keep you informed,
when we have good results to show.
Like my teacher in primary school said:
“He is working slowly, but he never gives up!” : )


  login or register to react