These are some notes about the creation of a JOSM plugin which can perform text transformations on tags. A possible name is TextTransformer or TagTransformer.
The motivating idea for this plugin is to un-abbreviate street types, such as "St" -> "Street", "Rd" -> "Road". As abbreviations vary from region to region, there needs to be a way to choose between different abbreviation dictionaries and logic (street type at beginning, at end, etc.). By default (or by design) this should not apply to objects that have tiger:reviewed=no.
Changing key name
Perhaps a key was used incorrectly or changed name.
Normalizing phone numbers
This example is obviously just for North America.
The GUI mockups above give an indication of what the dialog would look like. The plugin will only consider selected objects, so we can take advantage of all the powers of JOSM's built-in search tool. "Transformers" will themselves be plugin-like, or at the very least implement a common base class. A simple signature might be
OsmObject transform(OsmObject input), as it could then perhaps automatically filter by region, or ignore objects with a certain ID number, last author, version, etc.