Feature #11910

Create command-line task that removes unnecessary actor links at lower levels where inheritance could be used

Added by Dan Gillean over 4 years ago. Updated about 3 years ago.

Status:VerifiedStart date:01/26/2018
Priority:MediumDue date:
Assignee:-% Done:


Category:CLI tools
Target version:Release 2.5.0
Google Code Legacy ID: Tested version:2.5
Sponsored:Yes Requires documentation:


In AtoM, the repository name and the creator name will automatically inherit to lower levels, following the ICA principles of not repeating information unnecessarily, and describing at the highest relevant aggregation. Additionally, using inheritance tends to be better for performance in AtoM overall - there are less permissions checks to be made, and less discrete updates that need to be made when the source link is updated.

In many cases, new users are unaware of this functionality and its rationale, and may add direct links to a creator at many or all levels of description. This task will iterate over the descriptions searching for places where lower level descriptions match the parent, and removing the lower level link so that the creator name will be inherited instead.

However, there are several possible uses cases where an intermediate creator has been purposefully added (e.g. a different creator for a series), and the task must respect these changes.

This new command-line task can be run with the following command:

php symfony tools:unlink-creators

Run without any options, it will example all descriptions. There are also options to specify a single descriptive hierarchy (input is a slug), or a single actor (input is an actor slug).

creator-inheritance.csv Magnifier (25.7 KB) Dan Gillean, 01/26/2018 06:00 PM


#3 Updated by Steve Breker over 4 years ago

php symfony help tools:unlink-creators
symfony tools:unlink-creators [--application[="..."]] [--env="..."] [--connection="..."] [--creator-slug="..."] [--description-slug="..."]

--application The application name (default: 1)
--env The environment (default: cli)
--connection The connection name (default: propel)
--creator-slug Restrict changes to specific creator.
--description-slug Restrict changes to this information object hierarchy.

Unlink creators from descriptions so creator inheritance can be used.

This Task will examine a description's creators and compare them to the
description's ancestors. If the identical ancestors are found on an ancestor
description such that creator inheritance could be used instead of directly
linking a creator to a description, the creator will be unlinked from the

[~/atom] (qa/2.5.x)

#4 Updated by Dan Gillean over 4 years ago

  • Status changed from New to QA/Review

#5 Updated by Dan Gillean over 4 years ago

Attaching a CSV that can be used for testing purposes, which covers a lot of the more complex use cases.

#6 Updated by Dan Gillean over 4 years ago

  • Status changed from QA/Review to Verified

#7 Updated by Dan Gillean about 3 years ago

  • Assignee deleted (Dan Gillean)
  • Requires documentation deleted (Yes)

Also available in: Atom PDF