There are a couple of interesting peculiarities in the data, and I am not sure yet how to interpret them. For example A1III/IV is clearly an A1 which is somewhere between a super-giant and giant. We can just drop it into one of the two categories or encode it as is and assign an intermediate mass.
How about A8/A9V? I think, judging from other entries, is a main sequence A type intermediate between A8 ad A9 I am fairly sure F6IV + F6IV is a binary with a pair of F6 giants. G0/G1:+... on the other hand would be a start somewhere between G0 and G1 of uncertain luminosity with a fuzzy spectrum in a pair with -- well "..." just means Damned If I Know.
So, the two next tricks are:
- Develop a coding that incorporates what we need to know.
- Implement a parser that takes one of these descriptions and plops out our code.