I set up a Drupal site with its chief taxonomy vocabulary marked for free-tagging. After some months in production, I see a pattern in the assigned tags and wish to replace the existing vocabulary with multiple more specific vocabularies.

To illustrate better, I want to replace the vocabulary NOUN, with the vocabularies PERSON, PLACE and THING, and move the tags NOUN:"Marilyn Monroe" to PERSON, NOUN:"New York City" to PLACE and NOUN:"Subway Grate" to THING. In the end, a node so tagged would retain the tags originally assigned under NOUN, but now associated with PERSON, PLACE or THING.

I don't think it would be worthwhile to repopulate the new vocabularies or to retag thousands of nodes individually.

Can something like this be done in a systematic manner without losing the current associations between the terms and nodes?

Thanks for any and all leads.

--
Sean

Comments

ensemble’s picture

I took over maintaining a Drupal site, and it has one big vocabulary that everyone agrees should have originally been set up as 4 separate vocabularies. I think I can probably write a php script to do this, but I was hoping someone else already had a module that does this without retagging all of the nodes. Does anyone else know of a module that will do this?

summit’s picture

Would taxonomy manager module be of assistance to you?

ensemble’s picture

The version of Taxonomy Manager that we have installed in our system has a "merge" option, but no "split" option that I can see.

seanemmett’s picture

I ended up installing the Views Bulk Operation module and creating an exposed filter on the (old) mega-vocabulary to the admin view.

I could use the resulting view to select all items with the term from the old vocabulary, then assign the nodes the term in one of the (new) micro-vocabularies through "Modify node taxonomy terms"

It was a separate step to delete the term from the old mega-vocabulary using Taxonomy Manager.

The only trip-up for me was that I thought at first I could use the replace option in VBO. That would wipe out ALL the taxonomy terms assigned to selected nodes, not just the terms I had selected on.

More steps than I would have liked, but it all worked out in the end.