OLD: Description of the Data upload and Annotation Service

From ecology
Jump to: navigation, search

Data upload and annotation service

In a highly database oriented environment with different types of users, some users prefer the possibility of uploading file-based data instead of interacting directly with the database.

With such a facility the file-based data, for example a comma-separated value file, could be easily uploaded via a web form and all data would automatically be inserted into a new database table without further user interaction.

For the creation of a new table, the automated system should know the number and type of columns in the uploaded file. This means that some sort of template must exist in the system before a table can be uploaded and inserted automatically. Since most users will typically upload more than one table with the same column names and types, a template has to be created only once and can be reused many times by the same user or by a group of users.

For such a system, users must be able to create new and view existing templates, and use these templates to upload file-based data. Such a system requires 3 modules:

1. Template viewer

The template viewer providesan overview of available templates, and shows details such as:

  • the user who created the template
  • the name of the template
  • a description of the template


2. Template creator

The template editor allows a user to create new (edit existing) templates, defining all relevant aspects such as:

  • a template name
  • a list of columns, where each column has a name and a database type
  • a description of the template and its purpose


3. Upload service

Once a template has been created, a flat file with corresponding data columns can easily be uploaded to the services. The user does not need any prior knowledge of the database and the contents of the file will be inserted into the database automatically.

Once a new table has been uploaded, it may be shared with other users and used to annotate existing data in the database. Such functionality requires access to and intermediate knowledge about database usage.

As a first step we will create and integrate the three modules described above, and provide documentation about typical usage schemes (i.e. creating a template, uploading a table to the database, sharing it with other users, editing the contents of a table, and annotating data.