In the end I had a “draft booking” and a conversation loop, where the bot would repeatedly ask to fill in missing parts (eg nr of participants) and then give you a summary and opportunity to correct things. It was hard to do, and definitely required a lot of contextual understanding of how people book meeting rooms. That approach doesn’t scale up well.
I think the basic problem is being stuck in a local optimum. The scripted bot approach doesn’t scale to complex conversations, and you need to start from scratch to do better.
Wanna have the simplest parser? Finite State Automaton to the rescue! So people automatically assume that a the simplest approach yo conversation is also something like a finite state machine.
Here's the thing. The only reasonable FSA would be a clique.
You can always move between nodes.
A much more feasible approach is the "actions competing for repelevance" one. Where you have global state manipulated by actions, and all the actions generate a "appiccability score" for the given user input. The system then chooses the most appropriate action, and it does it's thing. And on the next user input the cycle repeats.
I've just been trained to not bother. Unless I'm setting a timer, I just don't try anymore.
Which is why I have no confidence calling it AI if its not even intelligent. Its just voice recognition on preprogrammed operations.
That's because it really should be called Simulated Intelligence, and would be a much more accurate description. The marketing team wouldn't like this though.
It's quite interesting to hear very small children talk to voice assistants. Probably not surprising, but it seems like in normally-learnt human communication you expect your conversational partner to remember the context of what you were saying, and carefully forming canned commands is a separate learned skill. It suggests these voice assistants have still got a way to go, and it seems more like a paradigm change, a big leap, than just incremental improvements.