Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Case: Manage taxonomy terms as a content manager #1899

Open
rosiel opened this issue Sep 22, 2021 · 5 comments
Open

Use Case: Manage taxonomy terms as a content manager #1899

rosiel opened this issue Sep 22, 2021 · 5 comments
Labels
Type: use case proposes a new feature or function for the software using user-first language.

Comments

@rosiel
Copy link
Member

rosiel commented Sep 22, 2021

Title (Goal) Manage taxonomy terms in a repo
Primary Actor Collections Manager, Content manager
Scope DAMS Functionality
Story "As a manager of the content in my repository, I may need to make changes individually or in bulk to my taxonomy terms. This includes a variety of things that can as of now only be done one by one or not at all. As I am a manager of content, I do not have access to the Drupal filesystem, Drush, PHP (devel), or adding additional modules not included "out of the box".

Examples:

  • Update existing taxonomy terms with field values from a spreadsheet (e.g. fields like external_uri, or geo coordinates). This is a general maintenance task, and should not rely on terms existing in a migrate api lookup table because per our documentation, terms can be added in several other ways.
  • Replace the names on existing taxonomy terms to have new names (key example: authority update).
  • Merge term A into term B (so that all content referring to term A now refers to term B and term A is deleted).
  • Bulk ingest complex taxonomy terms (with fields other than name) from a CSV. Technically possible with migrate api but not without much pain and workarounds. For a DAMS, this should be much simpler.
  • Bulk ingest a list of taxonomy terms, checking not to duplicate terms that already exist (see https://www.drupal.org/project/migrate_plus/issues/3060320).
  • Bulk delete terms.
  • "Move" terms from one vocabulary to another. Key requirement since some fields (e.g. Subject) pull from multiple vocabularies but only write to one.
@kstapelfeldt
Copy link
Member

Although it does not cover all of your use cases, I have had great success with https://www.drupal.org/project/taxonomy_manager in the past two versions. The merging functions have saved me many times! You can do things like paste in a giant list of terms and they are all autocreated if they are on new lines. Between this and setting up VBO views, I have been able to do most things I need to with taxonomies. It doesn't cover the use case of a spreadsheet (I would have used Feeds for that, and I'm not sure if that's working in Drupal 8). I acknowledge that maybe there is some Islandora-specific taxonomy thing I'm missing in this suggestion, but thought it was worth making the suggestion just in case.

@seth-shaw-unlv
Copy link
Contributor

seth-shaw-unlv commented Sep 22, 2021

Note that taxonomy_manger merging capability uses the term_merge module and they are not yet integrated for Drupal 8+ (see https://www.drupal.org/project/taxonomy_manager/issues/3220993 and https://www.drupal.org/project/term_merge/issues/3160872). Even after these two issues are resolved the term_merge module doesn't work with our Typed Relationship fields. (See #1619.)

Addendum: nor does term_merge update Migrate API mapping tables (used for the migration_lookup plugins) nor term to term relationships.

@rosiel
Copy link
Member Author

rosiel commented Sep 22, 2021

That's great, should't islandora have this feature "out of the box"? Should I make a ticket to add this module to defaults, for example?

@kayakr
Copy link
Contributor

kayakr commented Sep 23, 2021

Some requirements I've gathered/am interested in:

  • list all terms; sounds trivial, but becomes a risk when using search-based listings from Search API DB, Search API Solr, etc. Implies immediate indexing of changes (add, change, delete, etc.)
  • can handle large taxonomies, multiple x 10,000s of terms
  • Result summary: Displaying {start} - {end} of {total}
  • Filter by term label (e.g. name), especially with fuzzy matching, stemming (implies search basis)
  • can handle macrons and other special characters (e.g. Solr ASCII-folding)
  • Show additional fields in management UI
    • Published/unpublished status
    • term id
    • field_authority_link
    • local URI?
    • count of related content items
  • Bulk operations
    • index to fcrepo and index to blazegraph by default (tbc)
    • Select 1..N terms and move to different vocabulary (e.g. term added as Person, move to Corporate Body)
    • Select 1..N merge to 1 of N, where 1 is existing preferred term
    • Publish/Unpublish
    • Delete
  • Export
    • as CSV
    • as JSON
    • as SKOS?
  • Import
    • as CSV
    • as JSON
    • as SKOS
  • publish/subscribe - 1 instance can be primary, other instances can subscribe to changes
  • round-trip to/from OpenRefine
  • clustering per OpenRefine algorithms
  • trim (alert on trailing or leading (white)space)

/cc @rosiel

@kstapelfeldt kstapelfeldt added bug Type: use case proposes a new feature or function for the software using user-first language. and removed bug labels Sep 25, 2021
@rosiel
Copy link
Member Author

rosiel commented Oct 22, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: use case proposes a new feature or function for the software using user-first language.
Projects
Development

No branches or pull requests

4 participants