Plans for RGG and descriptive phrases

Yes.

You should not need to write an RGGSubphraseGenerator class. Instead the rgg session will provide <View>...</View> configuration XML that tells the QueryPhraseModel what to do. For example, we might have

<View Type="DescriptivePhrase" TopLevel="true" AllowSortFilter="true">
  <PhraseModel Type="RGGPhraseModel"/>
  <SubphraseGenerator Type="QueryPhraseModel">
    <MapPhrase ParentTitle="pins">
      <Resource Type="smtk::session::rgg::Resource" 
        Filter="aux_geom[string{'rgg_type'='pin'}]"/>
   </MapPhrase>
    <MapPhrase ParentTitle="ducts">
      <Resource Type="smtk::session::rgg::Resource" 
        Filter="aux_geom[string{'rgg_type'='duct'}]"/>
   </MapPhrase>
    <MapPhrase ParentTitle="assemblies">
      <Resource Type="smtk::session::rgg::Resource" 
        Filter="group[string{'rgg_type'='assembly'}]"/>
   </MapPhrase>
    <MapPhrase ParentTitle="cores">
      <Resource Type="smtk::session::rgg::Resource" 
        Filter="group[string{'rgg_type'='core'}]"/>
   </MapPhrase>
  </SubphraseGenerator>
</View>

(The filter strings are discussed here: Query filter strings for model resources .)