Whats is the correct plural form of compound nouns

First: This is not a question about spelling in software development. But I'm often stumbling upon it in software development.

In software development it's often necessary to name entities both in singular and plural form to distinguish if it's about a single entity or a list of such entities.

$car = new Car(); // one car
$cars = new Cars(); // a list of cars

$cars->add( $car ); // add a car to the list of cars

Now in my current use case I'm implementing a QR code algorithm. I need a mapping of encoding modes to their indicators. That means I have multiple encoding modes, every one of them mapped to a different indicator.

Would a list of those mappings be called

  • 'encoding mode indicators'
    • This would imply their is one encoding mode with multiple indicators.
  • 'encoding modes indicators'
    • This would imply their is multiple encoding modes with multiple indicators.

I could name that list 'encoding mode indicator mappings'. That would nail it. But while it's a use case in software development, what would a correct real world spelling look like? There are multiple cases, I'd have to decide which plural form is correct and currently I don't now.


Typically, you pick the operative noun and make that plural.

For example:

  • a solicitor general is a solicitor (the title doesn’t tell you they’re a general), so the plural would be solicitor_s_ general; but

  • a bus timetable is a timetable, not a bus, so the plural is bus timetable_s_.

Note that “bus timetables” doesn’t tell you whether you have only 1 bus or multiple buses. It only tells you that you have multiple timetables, and that “bus” is the topic of those timetables. Also, because “bus” is used here as a descriptive noun (functioning like an adjective), the plural buses isn’t normally used here. There are exceptions, but in this particular case, if you want to express that all the timetables relate to the same bus, you’d say something like “timetables for one bus”. If they are for 5 buses, you can say “timetables for five buses”, and so on.

In your case, the mapping is neither an encoding mode nor an indicator. So you’ll need to properly name the mapping first. Your rejected mappings works best here.


Mode indicator is a noun1 + noun2 construction = a noun2 associated with noun1. In this, noun1 typically acts adjectivally and is not inflected. A mode indicator would tell you which of many modes is operating.

In encoding mode, encoding is either a gerund or an adjective and follows the above guidance.

In either case it is not inflected.

"encoding mode indicator" can either be (i) an adjective, i.e. a mode indicator that encodes or (ii) a gerund - a thing that indicates the mode of action of encoding.

From the context I would choose (ii) and therefore the plural of encoding mode indicator is encoding mode indicators

Consider

We have a language department -> we have two language departments.

We have a French language department -> we have two French language departments.