/
Metadata

Metadata

Overview

We are introducing a completely new metadata model that transfers the control over how and what information is captured from the hands of developers back to you – system administrators. This model is based on the premise of simplifying the metadata structure by flattening it. This approach allows us to represent the metadata as relatively simple database table which can be queried both from within Earthlight eVO as well as via database reporting software e.g.: SQL Server Reporting Service, Crystal Reports, BOARD and many others.

The primary characteristics of the new metadata model are:

  • increased readability;
  • improved auditing;

In the new flattened structure all metadata fields are represented by database table columns that store the appropriate values. Although this approach is quite intuitive when it comes to simple fields like title, description or custodian it becomes slightly less intuitive when we approach complex fields like keywords. A dataset can have a 1, 2, 5 or more keywords. The question is how to store those keywords in a single table with a set number of columns and still keep the metadata queryable. Our solution to this problem was what we call Composite field. Detailed description of both simple and composite fields is provided later on.

To make it easier we are introducing a special tab called METADATA that deals exclusively with metadata configuration.

You can see that the configuration interface is very similar to Aurora AutoForm creator. We found the Aurora AutoForm creator to have an easy learning curve thus enabling users to build complex forms after a very short time. We wanted to replicate this experience with the metadata editor and this is why we opted for this familiar interface.

Definitions

Types

  1. Tab – this type controls grouping of metadata fields in metadata editor. It is used exclusively for metadata editor purpose and has no representation in the metadata table.
    1. MetadataField – this type defines the actual metadata field – its name, control type, label, initial value, etc. Each simple MetadataField is represented by a metadata table column. Complex MetadataFields, just like Tabs, have no representation in the metadata table.

The specifics of simple and complex metadata fields are covered in the next section.

Controls

There are six simple control types and one complex type of controls. Below is a list of available control types with a short description of each of them.

  1. TextBox (simple type) – as the name suggests it enables users to type any text as long as it fits on a single line.
  2. NumericBox (simple type) – this one accepts numeric values of any kind.
  3. TextArea (simple type) – similar to TextBox, this field accept text entries but these entries can have several lines. 
  4. DatePicker (simple type) – this field allows users to enter a date manually or choose one from the pop-up calendar.
  5. DropDown (simple type) – it enables users to choose one from a set of predefined values.
  6. Autocomplete (simple type) – similar to DropDown in that it also has a set of predefined values but in addition it allows users to enter a value of their choice.
  7. Composite (complex type) – this is the only complex type control available. Unlike the simple types, this control does not have representation in the metadata table by itself. Instead it acts as a container for simple type controls and controls how many metadata table columns should be created to account for the stored simple types.

To make it easier to understand the Composite fields, please look at the screenshot below. We have there a MetadataField of type Composite called Keywords (highlighted in blue). As you can see on the right pane of the screenshot the Keywords field has a Max items count of 5 (1). This particular Composite field acts as a container for a single MetadataField of type DropDown called Keyword (2).

Since we need to keep the metadata table structure flat but we want the users to be able to enter anywhere between 0 and 5 keywords we will create five fields in the metadata table. Please look at the screenshot below showing part of the structure of this metadata table in the database.


Framed in blue we have five columns called KEYWORDS_KEYWORD0 to KEYWORDS_KEYWORD4 which allow us to store the keywords entered by metadata editors while still allowing simplicity and speed when querying the data.

You may wonder what happens if we want to replicate a more complex metadata. Is this a viable option? Shouldn’t there be a more complicated model with multiple relational tables alike the LLPG storage model?

We were wondering the same thing so we reproduced the INSPIRE metadata structure in the new model. I think we can all agree that the INSPIRE metadata complexity outshines anything that was previously and is far beyond the complexity of metadata used by organisations.

There was a lot of Composite containers and we set the Max items count on each of them at 5. This means 5 Points of Contact, 5 Resource Locators, 5 Responsible Parties, 5 Temporal Extents, 5 Geographic Bounding Boxes, etc. We ended up with a metadata table just shy of 200 columns. You could think it’s a lot but it is not a problem for the modern relational database management systems (RDBMS).

Creating a model

If you want to create new metadata model, please go to METADATA (1) tab. If no other metadata model is open you can start creating your model straight away. If there is already a model open please click Create (2) to clear the workspace.

First you should add a tab by clicking Add new tab (3) so your controls are grouped together. When a Tab entry is on the list please select it (4) and start adding fields via Add new field (5) button. If you wish to delete a field or a tab, just select it on the list and click Delete (6). You can also change field ordering by selecting a field on the list and clicking Change Order (7). You can also see that this is a brand new model as both the Table and Last synchronisation (8) read: N/A.

Modifying an existing model

You can use Open tool if you wish to modify an existing metadata model. Upon executing this tool a new window will show up presenting you with all metadata models created and saved previously. When you click an entry on the list, this model will be opened and the structure of fields and tabs will be shown.  You will also be able to see the name of the database table that embodiments the model as well as the date of last synchronisation between the model and the table.


Important:

  • If you change any metadata field’s control type, the mirroring metadata table column will be dropped and recreated with the new type but the data stored in this field will be lost.
  • If you remove any metadata field, the mirroring metadata table column will be dropped and the data stored in this field will be lost.

Validating a model

While working on a metadata model it’s possible to verify whether the structure that you’ve created is considered by Earthlight as a valid one. To do so you can click Validate at any point during metadata creation or modification without enforcing your changes onto the database metadata table.

Please Note:

Validating metadata model is especially important when you’re modifying an existing model as committing a change to the metadata table structure is an irreversible process which may result in data loss. See the note in Modifying existing model sect

Saving a model 

When you’re happy with the result of your work you can click Save tool to save the model and commit your changes to the metadata table structure. When you click Save you will see a confirmation window with warnings regarding changes to metadata table structure.

If you’re confident that your model is valid please click Start, otherwise click Cancel.

If this is a first time you’re saving this metadata model you’ll be asked to provide a name for the database table representing this model:

and a name for your metadata model:


Deleting metadata

This tool allows users to delete metadata form from the repository along with a database table.

To delete metadata form choose it from a list and click OK button.


Delete metadata confirmation window will be displayed. It will show the metadata name and database table name that form refers to. In order to drop the database table as well just tick the checkbox next to that option.


Related content