The above four fields (perhaps with better nomenclature) would be an ideal set to "drill down" through in a computer program when selecting a source type to define or cite. The program, of course, needs to allow the end user to define new fields of their choice, and not be locked in to a fixed set some vendor or programmer would define.