Previously I said that a phrase is a note or a set of sub-phrases. This gives phrases a hierarchical tree structure. A sub-phrase is a unit which can match a concept. The only problem with this is that it seems restrictive for the AI to be only able to think in trees. We might want to be able to divide the phrase in less regular ways. So the phrase shouldn’t be a tree; it should be a topology.
Let us then take another shot at phrases. A phrase has the following components:
1. N: a set of notes, each of which has pitch, velocity, position, and duration.
2. T: a topology over N.
3. For every set t in T, a set C(t) of concepts which t satisfies. (Prune members of t which satisfy no concepts.)
4. A record of N’s minimum position; its maximum position; its duration; its minimum pitch; its maximum pitch; and its pitch range.
The primitive operations which can be performed on this phrase structure are rather complex. This will probably add expressiveness to the system.