Submitting LTPDA objects to a repository


Any of the user objects can be submitted to an LTPDA repository

There are three different methods which submit/update object(s) to the repository:

The submission process

When an object is submitted, the following steps are taken:

  1. The userid of the user connecting is retrieved from the Users table of the repository
  2. For each object to be submitted:
    1. The object to be submitted is checked to be one of the types listed above
    2. The name, created, and version fields are read from the object
    3. The object is converted to an XML text string
    4. An MD5 hash sum is computed for the XML string
    5. The XML string and the hash code are inserted in to the objs table
    6. The automatically assigned ID of the object is retrieved from the objs table
    7. An attempt is made to create a binary representation of the object (.MAT). If this is possible, the binary data is inserted in the bobjs table.
    8. Various pieces of meta-data (object name, object type, created time, client IP address, etc.) are submitted to the objmeta table
    9. Additional meta-data is entered into the table matching the object class (ao, tsdata, etc.)
    10. An 'in' entry is made in the transaction table recording the user ID and the object ID
  3. A entry is then made in the collections table, even if this is a single object submission
  4. The object IDs and the collection ID are returned to the user


Submitting objects

Objects can be submitted using the command submit. This command takes at least two inputs:

objectThe object(s) to submit
plA plist containing various pieces of information (see below)

The plist details can be found at: Parameter Sets

The following example script connects to a repository and submits an AO:

      
      % Load the AO
      a = ao('result.xml');
      
      % Build a plist containing connection parameters and submission information
      pl = plist(...
        'hostname', 'localhost', ...
        'database', 'test', ...
        'experiment title', 'Interferometer noise', ...
        'experiment description', 'Spectral estimation of interferometer output signal', ...
        'analysis description', 'Spectrum of the recorded signal', ...
        'quantity', 'photodiode output', ...
        'keywords', 'interferometer, noise, spectrum', ...
        'reference ids', '', ...
        'additional comments', 'none', ...
        'additional authors', 'no one');
      
      % Submit the AO
      [ids, cid] = submit(a, pl);
The ID assigned to the submitted object is contained in the first output of the submit function:
    
      % Inspect the object ID
      disp(ids)
      212
If the plist contains sufficient information, it is possible to overide the appearance of the 'submission' dialog by giving the key/value pair: 'no dialog', true.

Submitting collections

Collections of LTPDA objects can also be submitted. Here a collection is defined as a group of objects submitted at the same time. In this way, a single information structure describing the collection is assigned to all the objects. The collection is just a virtual object; it is defined by a list of object IDs in the database.



©LTP Team