No doubt something like this would be an improvement over the current regular expressions. Try creating a regular expression for an edit field that can have different numeric values with different scales. It’s time consuming. A BNF set of rules would be more powerful, readable, and manageable.
I wonder though if variables, programmable weights and the like wouldn’t sneak in. I imagine also that some type of interaction (feedback, for instance) would be useful between the recognizers and this higher level “language.” Or what about getting to the lower-level stroke data? That might be useful at times too.
Also, there are times when what is being recognized goes beyond the left-to-right (or right-to-left) alphanumeric set of characters. For instance, I’d like to be able to handwrite symbolic equations in the TIP just as I would write them on a piece of paper rather than using a coding-style syntax. Now in this case what would the TIP generate as output? It would probably have to conform to a simple text string that the TIP and the application could render.
Providing 3rd party programmable access would provide a simple initial path to extending the TIP. As patterns emerge, a simpler subset could be developed. Now security is probably a key issue with an approach like this. So that’s one reason I like simple interfaces. But this could be a deal killer. That’s why a development experiment might be in order. See what developers really want to do; try to facilitate it; and if it doesn’t work, so be it. But if it does, it could be a big win for the Tablet.
You’re absolutely right that it’s easy to imagine things that go beyond BNF. My favorite is matrix notation from linear algebra: finite, easily comprehensible, and undoubtedly useful. But how do you express “Inside the big square brackets”?