Recently, I read Nine Open Problems for Conjunctive and Boolean Gramars. I’m excited that these problems are still open, and I’m thankful that Alex Okhotin took the trouble to compile this list so that relative laypeople like me could start nibbling around the edges of this problem space. If I really wanted to start developing a deep intuition about conjunctive and Boolean grammars, though, where would I begin?
I think the obvious answer here is reading the literature and playing with some of the examples and ideas myself, but there’s one problem with that approach: ‘play’ is not easily regimented or measured, and when the objective of play is something concrete that only manifests over a long period of time (e.g. deep intuition), I find it difficult to maintain the habit.
One solution: play often, and play at your leisure, but separately, find a project which requires the continual application of your chosen domain to solved problems, and work on that in parallel. Preferably, actually, find a project which requires it many times over, in discrete, measurable units. In my case, if I’m aiming at conjunctive and Boolean grammars, perhaps one interesting practical problem would be implementing syntax highlighting for many different languages with embedded domain-specific semantics (a SQL clause inside a multiline string in Python, or snippet of AWK in a bash script), and attempting to make small improvements on the state of the art (for a given environment) at the same time.