Faceted classifications as a plugin DNA for any data source with unique identifiers.
The FacetGroup is used for applications that has more than one set of facets for different purposes. If you only have one set of facets, you don't need that. If you use it, you will need to "hard-code" the name, to use the right set of facets in the right places in your application. The Facets and FacetValues can then be user defined.
In addition to this base, you will need a way for users to specify which FacetValues apply to the objects they are categorizing.
See the Facet requirements page for more info.