System Design: BibEdit - MultiEdit

1. Introduction

The purpose of the MultiEdit record editing interface (= a special BibEdit mode) is to allow cataloguers to easily edit more than one record in one go.

The MultiEdit should allow cataloguer to easily look up various records in the system in order to find record sets upon which to operate, and then to allow some easy replacement procedures on these records in one go, e.g. a substring substitution of some field value in some field tags, or a regexp substitution, etc.

2. Use cases

Use case 1: while editing some record R, the cataloguer notices that the field F with the value FV is misspelled. The cataloguer estimates that there may be more errors of this kind, so she launches MultiEdit editing mode, does search for FV, and instructs the system to change FV into FW in selected records.

Use case 2: for all records written by John Doe from 1972 to 1977, output the collaboration field, and if it does not contain Bar collaboration, add it.

3. Workflow

A cataloguer - an interface - a backend office.

4. Mock-up screenshots

A split search area and an action command area may be good to have. The display area will allow to see and select only some field values to display, or the standard HTML Brief display, or anything the cataloguer needs.

Here is a very rudimentary ASCII art mock-up of how the interface could look like.

S E A R C H   A R E A :                           A C T I O N   A R E A :

Search for: [100__a:Ellis____]
Output tags: [100,710___]                         Change in tag: [710__a]
                                                       change from: [Fuu]
      [ SEARCH ]                                         change to: [Foo]
                                           substitution mode: [substring]
D I S P L A Y   A R E A :
                                                       [ PERFORM CHANGE ]
[x] 1. Ellis, J - Fuu Collaboration           in (*) all ( ) selected records

[ ] 2. Ellis, J - Foo Collaboration
[ ] 3. Ellis, J - Foo Collaboration
[x] 3. Ellis, John - Baz Collaboration

The action area might need to propose operations like: modification of a field, addition of a new field, or deletion of existing field.

5. Architecture

Standard multi-tier model, with UI in front, the business logic, and CLI core functionality in the back.

The UI interface may need some AJAX-y features to provide efficient operation.

MultiEdit could borrow heavily from other modules, such as search engine, the field exporter, the bibcheck checker and substitutor.

6. API

It may be nice to invent some CLI API doing the core multi-editing business, like:

  $ bibedit --multiedit --search-pattern author:Ellis \
            --substitute-tag 710__a --substitution-mode substring \
            --change-value-from Fuu --change-value-to Foo

This CLI could be called from the UI to do the job.

Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2009-01-21 - TiborSimko
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Inspire All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback