Additionally Zipf’s Law as applied to the corpus of “Things people say to chatbots” can be used separately in layers of bot development - handling:[ol]
[li]-linquistics: how people communicate with chatbots (question structure, statement structure, relations, goals, specification, generalization, reference, context)[/li]
[li]-domain: what people communicate about (topics, properties and values, methods, time)[/li]
[/ol]
Personally, I have found AIML v1 to quite restrictive for representing linguistic features, as well as restrictive and obfuscating for representing domain knowledge. It was not easy to separate input understanding, from knowledge representation, and not easy to separate those two from response generation.
AIML v2 with the addition of sets and maps will allow further isolation between linguistics and domain knowledge within AIML.
It should even be possible to implement a set of AIML CRU(D) statements that use maps to totally isolate knowledge into a database of maps.
Then a zipf topic analysis can guide domain knowledge map writing, and a zipf linguistic analysis can guide input reduction. We’re on our own for the response generation techniques though.