Last modified 6 years ago Last modified on 09/01/11 13:53:41

Go back to the table of modules

Metadata Group Editor

The Metadata Group Editor module is a layer that re-uses the Metadata Editor to perform an operation, or change specific metadata values for a list of metadata records in a single operation. It speaks the same protocol as the Metadata Editor Module, and calls the Metadata Editor module to do the actual editing.

The group being edited is a set returned from the query engine module as part of a search, a collection or browsing a classification vocabulary. The actual operation to be performed is comparing the difference between a single metadata instance containing the common values for the entire group sent to the metadata editor, and the representation returned after edition. The changes are then applied to every resource.

Implementation choices/alternatives

The MetadataEditor is heavily dependent on the Metadata Translator Module, where some of its algorithms may actually live.

The actual groups are provided by the Query Engine, the Group Editor just acts on them and commits the results.

Algorithms

Initial case

Deals with editing, replacing and deleting common values. Also provides a user interface for performing batch operations on the group (deleting records, performing link checking, etc.)

  1. Receive a list of metadata record
  2. Have them converted in a common representation
  3. Identify the list of fields for which all the records have the same value
  4. Pass a representation to the MetadataEditor with the fields identified above marked editable. The value for the other fields are not displayed (and cannot be appended).
  5. Identify the differences between the representation passed to the editor and the one returned.
  6. Apply those differences to all the initial metadata records.

Second case

Deals with appending values Same as above, but add:

  • Allow appending new values for repeatable fields (especially structured ones)
  • Perform duplicate value detection before applying to initial metadata records.

Third case

Deals with making data more uniform (correcting spelling errors, incoherent classifications, keywords, etc.)

Same as above, but:

  • Make every field editable, if the number of different value is small.
    • If the field is not repeatable, the different values are repeated as if the field were repeatable (but new values can't be appended).
  • The values that aren't common to all instances must be clearly marked, otherwise the interface will get really confusing.
  • When applying changes to the original records, the modified values are not written to every record, only to those that contained the old values that correspond to the modified ones.

0.9.8 © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.67711 sec.)