Opened 18 years ago

Closed 17 years ago

#326 closed task (fixed)

Mass annotation plug-in

Reported by: Johan Enell Owned by: Nicklas Nordborg
Priority: minor Milestone: BASE 2.4
Component: coreplugins Version: trunk
Keywords: Cc:

Description (last modified by Nicklas Nordborg)

There should be a plugin for doing anotation of item from a file. The file should/could be a tab-separated list where the first column is the item and the following columns is the annotatinos types.

i.e.

Sampleann1ann2
sampleA1yes
sampleB8no

The plugin will know in what context it is run from so the user doesn't have to specify that in the file. The fist column can just be named "name" (or anything).

I was thinking to implement this plugin based on the FlatFileParser used by most other import plugins. The plugin should be usable both with and without a configuration. If used without a configuration it works like this:

  1. The user selects a file and sets the regular expressions to parse it, possible with help from the "Test with file" function.
  2. The plugin parses the file to get the data headers. Each header can now be mapped to an annotation type. One column should be mapped to either the name or the external ID of the item to annotate. The plugin should try to match the header names with annotation types to provide a default mapping.

Multiple valued annotations: Either map two or more columns to the same annotation type or use more than one row for items with multiple annotation values.

Finding the items: We must use the name or external ID to find items. Since neither has to be unique there is a possibility of more than one match. This could be an error condition or we could annotate all items. If no item is found it could be an error condition or we could just ignore it. There should also be options to specify which items to search: owned, shared, in active project, etc.

Error handling: Invalid annotation values could be considered an error condition or ignored.

Replace vs. add or update: There should be an option to specify if annotations that can take multiple values should be replaced or if we should just add new values. If the annotation can only take a single value there should be an option if the value should be updated or not.

Using with configuration: A configuration should store regular expressions and mappings. The user has to select a file and specify other options. It should be possible to override the regular expressions and mappings.

Change History (10)

comment:1 by Jari Häkkinen, 18 years ago

Milestone: BASE 2.x+BASE 2.2
Version: trunk

comment:2 by Johan Enell, 18 years ago

If the plug-in can figure out in what context it is run it will be easier to use and when reducing the workload from the user it will also (hopefully) be less error prone.

How do the plug-in know in what context it is in?
The plug-in gets the context from the job configuration so when the method config(GuiContext context, Request request, Response response) with the request command Request.COMMAND_CONFIGURE_JOB the context should be saved for later use. Store it as a parameter in AbstractPlugin.job.

comment:3 by Nicklas Nordborg, 17 years ago

Milestone: BASE 2.2BASE 2.x+

comment:4 by Jari Häkkinen, 17 years ago

Milestone: BASE 2.x+BASE 2.4

comment:5 by Jari Häkkinen, 17 years ago

Milestone: BASE 2.4BASE 2.3

Milestone BASE 2.4 deleted

comment:6 by Nicklas Nordborg, 17 years ago

Description: modified (diff)

comment:7 by Nicklas Nordborg, 17 years ago

Summary: Mass annotateMass annotation plug-in

comment:8 by Nicklas Nordborg, 17 years ago

Owner: changed from Johan Enell to Nicklas Nordborg
Status: newassigned

comment:9 by Nicklas Nordborg, 17 years ago

(In [3586]) References #326: Mass annotation plug-in

Major features in place. Code needs to be polished up and documented. Need to add permissions. User documentation (docbook) should be checked if it needs to be updated.

comment:10 by Nicklas Nordborg, 17 years ago

Resolution: fixed
Status: assignedclosed

(In [3588]) Fixes #326: Mass annotation plug-in

Note: See TracTickets for help on using tickets.