Image Class - Mapping Image Structures

 

Most often each record of a database has a single digital image associated with it. In such situations, configuration is relatively simple and described fully in the data preparation documentation. It is important to read the general data preparation documenation first before proceeding with more complicated structures.

MySQL: ImageClass Data Loading: MySQL

The instructions in this document are for less common situations. When a record has multiple images associated with it, for example, several views of an sculpture. Each of the views might be of equal standing, or, perhaps there is one that alone does a reasonable job of summarizing the object, while the others provide valuable details difficult to see in the summary. These are just a couple of the possible structural configurations one might encounter.

The key factors for the accurate representation of image structures in the Iimage Class are:

Note that structures apply to entire collections and cannot vary per record.

Definitions

A filename field is a field of a database that contains image (or other media) filenames and nothing else. A filename field may have any number of repetitions.

A caption field is a field of a database that contains text that typically describes the image in a very specific way. For example, "View of steeple from the north." A record with multiple image filenames will often have a corresponding caption for each.

A record with a filename field that has 5 repetitions will often have a corresponding image caption field with 5 repetitions. The values in each are synchronized.

Image Filename Field

image01.tif

image02.tif

image03.tif

image04.tif

image05.tif

Image Caption Field

View from the north

View from the south

View from the east

View from the west

View from the sky

A record may also have multiple filename fields, and multiple image caption fields. Together they might represent a hierarchical structure.

Image Filename Field 1

image01.tif

Image Caption Field 1

Front view of sculpture (overview)


Image Filename Field 2

imageF.tif

imageB.tif

imageR.tif

imageL.tif

Image Caption Field 2

Front view of sculpture (detail)

Back of sculpture

Right side of sculpture

Left side of Sculpture

To get an idea of a more complicated example, look at the this example from the Advanced Papyrological Information System at the University of Michigan.

Administrative metadata field mappings are used to identify filename and caption fields for the purpose of loading data. In addition to the very basic mappings IC_fn and IC_vi there is a complex set of mappings that can be used to represent complex structures. Generically the new mappings are referred to as IC_fn* and IC_vi* (the "*" suggests a longer, more complex, mapping).

A structure is a group filename and caption fields that together make up a structure. A record can have more than one structure. This papyrus example has two structures. The first structure ties all of the "front" views together, and the second ties all of the "back" views together. This causes the structural display online of thumbnail images to flow from front summary images to front detail to back summary to back detail. This flow can be changed through configuration.

Rules

  1. A record may have many filename fields, which may have repetitions.
  2. Each filename field must be mapped to only one administrative metadata filename mapping (IC_fn, IC_fn-st).
  3. A record may have many caption fields, and the fields may have repetitions.
  4. Each caption field may be mapped with any number of administrative metadata caption mappings (IC_vi, IC_vi-st).
  5. Each caption field mapped to plain IC_vi will be associated with all image filename fields mapped to IC_fn (but not fields mapped to IC_fn-st).
  6. Fields mapped to IC_vi or IC_vi-st may have one or more repetitions, which may be independent of the number of repetitions in the associated IC_fn or IC_fn-st mapped field.
  7. If the filename field has repetitions but the corresponding image caption field does not, then the single value of the image caption field is associated with each of the repetitions of the image filename field.
  8. Structures can only be specified at the collection level. It is not currently possible to have the structure change per record.

Syntax

Simple situations (one image per record) can be handled with a simple mapping of the filename field to "IC_fn" and the caption field to "IC_vi".

More complex situations rely on the structural mappings so far referred to as IC_fn* and IC_vi*. These are not the actual mappings, they are only generic and simplified representations to aid discussion. The actual mappings consist of a base (IC_fn and IC_vi) plus four attributes. When structural mappings are used, all four attributes are required to have values.

The base: IC_fn and IC_vi

Type Attribute

Type Attribute Value

Description

type="summ"

summary

For fields that represent images that summarize all the images of the record or are otherwiser representative of the entire record.

type="det"

detail

For fields that represent images that provide greater detail or extended view than what is depicted in the summary images.

Face Attribute

Face Attribute Value

Description

face="front"

For fields that represent images that provide views of the front.

face=" back"

For fields that represent images that provide views of the back.

face=" right"

For fields that represent images that provide views of the right.

face=" left"

For fields that represent images that provide views of the left.

face=" top"

For fields that represent images that provide views of the top.

face=" bottom"

For fields that represent images that provide views of the bottom.

Structural ID (STID) Attribute

stid=1 .. N

Each structure must be given a numeric ID. Be sure to read the definition of structure given above. Structural IDs can be assigned somewhat arbitrarily, though there needs to be at least one.

Y Attribute

y=1 .. N

Sometimes the images of a record represent cells of a two dimensional matrix, which can also be thought of as a table or tiles. The Y attribute, together with the X attribute, allow for a matrix of images to be stored in the data.

X Attribute (not configurable)

The fifth attribute, "X", is not configurable. It is calculated as the data is loaded based on the number of repetitions.

 

Database systems typically only offer the ability to have field repetitions in one dimension. That is, a 1xN field of repetitions can be built. To simulate a two dimensional matrix involves working with multiple repeating fields where each repetition represents a column (X) and each field a row (Y).

The Y attribute must be specified in the configuration file. The X attribute, on the other hand, is calculuated automatically at the time of loading and depends on the number of repetitions there are. A good example is this papyrus example.

These two discrete fields can be combined to form a two dimensional matrix.

Image Filename Field 1 (2 repetitions)

X=1, Y=1

X=2, Y=1

Image Filename Field 2 (2 repetitions)

X=1, Y=2

X=2, Y=2

Combining the Base with the Attributes

All attributes are required in all cases and the components must be joined with a period (".") as demonstrated below.

For an image filename field:
IC_fn-type=summ.face=front.stid=1.y=1

For the caption field that corresponds with the above filename field:
IC_vi-type=summ.face=front.stid=1.y=1

Configuring the Fields

Once the structural attributes are determined the mappings for the filename and caption fields are entered into CollMgr (MySQL) or the collection configuration (XPat). Mapping is handled similarly to all other field mapping, the only difference being the long length of structural attributes.

In Collmgr the example above looks like...

IC_fn-type=summ.face=front.stid=1.y=1:::filenamefield
IC_vi-type=summ.face=front.stid=1.y=1:::captionfield

(filenamefield and captionfield need to be actual fields)

Examples

University of Michigan, Bentley Historical Library.

View an example record online.

Image Filename Fields per Record

1

Image Filename Field Repetitions

1

Image Caption Fields per Record

1

Image Caption Field Repetitions

1

 

Field Name

Field Type

Repetitions

Administrative Metadata Mapping

Collmgr admin_field_maps

Item Number (bhl_itno)

Filename

1

IC_fn

IC_fn:::bhl_itno

Item Title (bhl_it)

Caption

1

IC_vi

IC_vi:::bhl_it

How it looks in Collmgr admin_field_maps...

IC_fn:::bhl_itno
IC_vi:::bhl_it

University of Michigan, Museum of Art.

View an example record online.

Field Name

Field Type

Repetitions

Administrative Metadata Mapping
ShortName (musart_sn)

Filename

1

IC_fn-type=summ.face=front.stid=1.y=1
Details (musart_rim)

Filename

20

IC_fn-type=det.face=front.stid=2.y=1
Title (musart_ti)

Caption

1

IC_vi-type=summ.face=front.stid=1.y=1
Details_caption (musart_rimc)

Caption

20

IC_vi-type=det.face=front.stid=2.y=1

How it looks in CollMgr admin_field_maps...

ic_vi:::musart_ti
ic_fn-type=summ.face=unspec.stid=1.y=1:::musart_sn
ic_fn-type=det.face=unspec.stid=2.y=1:::musart_rim
ic_vi-type=det.face=unspec.stid=2.y=1:::musart_rimc
    

University of Michigan, Advanced Papyrological Information System

View the example record online. Note that the apis structure has the potential to have a large number of images, but the example record happens to only have 6.

Field Name

Field Type

Repetitions

Administrative Metadata Mapping
Full SizeFront R1 (apis_fsfr1)

Filename

2

ic_fn-type=summ.face=front.stid=1.y=1

Full SizeFront R1 (apis_fsfr1)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 2 ic_vi-type=summ.face=front.stid=1.y=1
Full SizeFront R2 (apis_fsfr2) Filename 2 ic_fn-type=summ.face=front.stid=1.y=2
Full SizeFront R2 (apis_fsfr2)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 2

ic_vi-type=summ.face=front.stid=1.y=2

Full SizeFront R3 (apis_fsfr3) Filename 2 ic_fn-type=summ.face=front.stid=1.y=3
Full SizeFront R3 (apis_fsfr3)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 2 ic_vi-type=summ.face=front.stid=1.y=3
Full SizeFront R4 (apis_fsfr4) Filename 2 ic_fn-type=summ.face=front.stid=1.y=4
Full SizeFront R4 (apis_fsfr4)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 2 ic_vi-type=summ.face=front.stid=1.y=4
_600DPIFront R1 (apis_600fr1) Filename 8 ic_fn-type=det.face=front.stid=1.y=1
_600DPIFront R1 (apis_600fr1)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 8 ic_vi-type=det.face=front.stid=1.y=1
_600DPIFront R2 (apis_600fr2) Filename 8 ic_fn-type=det.face=front.stid=1.y=2

_600DPIFront R2 (apis_600fr2)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=front.stid=1.y=2
_600DPIFront R3 (apis_600fr3) Filename 8 ic_fn-type=det.face=front.stid=1.y=3

_600DPIFront R3 (apis_600fr3)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8

ic_vi-type=det.face=front.stid=1.y=3

_600DPIFront R4 (apis_600fr4) Filename 8 ic_fn-type=det.face=front.stid=1.y=4
_600DPIFront R4 (apis_600fr4)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 8

ic_vi-type=det.face=front.stid=1.y=4

_600DPIFront R5 (apis_600fr5) Filename 8 ic_fn-type=det.face=front.stid=1.y=5

_600DPIFront R5 (apis_600fr5)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=front.stid=1.y=5
_600DPIFront R6 (apis_600fr6) Filename 8 ic_fn-type=det.face=front.stid=1.y=6

_600DPIFront R6 (apis_600fr6)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=front.stid=1.y=6
_600DPIFront R7 (apis_600fr7) Filename 8 ic_fn-type=det.face=front.stid=1.y=7

_600DPIFront R7 (apis_600fr7)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=front.stid=1.y=7
_600DPIFront R8 (apis_600fr8) Filename 8 ic_fn-type=det.face=front.stid=1.y=8
_600DPIFront R8 (apis_600fr8)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 8

ic_vi-type=det.face=front.stid=1.y=8

Full SizeBack R1 (apis_fsbr1) Filename 2 ic_fn-type=summ.face=back.stid=2.y=1

Full SizeBack R1 (apis_fsbr1)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 2 ic_vi-type=summ.face=back.stid=2.y=1
Full SizeBack R2 (apis_fsbr2) Filename 2 ic_fn-type=summ.face=back.stid=2.y=2
Full SizeBack R2 (apis_fsbr2)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 2

ic_vi-type=summ.face=back.stid=2.y=2

Full SizeBack R3 (apis_fsbr3) Filename 2 ic_fn-type=summ.face=back.stid=2.y=3

Full SizeBack R3 (apis_fsbr3)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 2

ic_vi-type=summ.face=back.stid=2.y=3

Full SizeBack R4 (apis_fsbr4) Filename 2 ic_fn-type=summ.face=back.stid=2.y=4

Full SizeBack R4 (apis_fsbr4)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 2

ic_vi-type=summ.face=back.stid=2.y=4

_600DPIBack R1 (apis_600br1) Filename 8 ic_fn-type=det.face=back.stid=1.y=1

_600DPIBack R1 (apis_600br1)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=back.stid=1.y=1
_600DPIBack R2 (apis_600br2) Filename 8 ic_fn-type=det.face=back.stid=1.y=2
_600DPIBack R2 (apis_600br2) Caption 8

ic_vi-type=det.face=back.stid=1.y=2

_600DPIBack R2 (apis_600br3) Filename 8 ic_fn-type=det.face=back.stid=1.y=3

_600DPIBack R2 (apis_600br3)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8

ic_vi-type=det.face=back.stid=1.y=3

_600DPIBack R2 (apis_600br4) Filename 8 ic_fn-type=det.face=back.stid=1.y=4

_600DPIBack R2 (apis_600br4)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=back.stid=1.y=4
_600DPIBack R2 (apis_600br5) Filename 8 ic_fn-type=det.face=back.stid=1.y=5
_600DPIBack R2 (apis_600br5) Caption 8 ic_vi-type=det.face=back.stid=1.y=5
_600DPIBack R2 (apis_600br6) Filename 8 ic_fn-type=det.face=back.stid=1.y=6
_600DPIBack R2 (apis_600br6) Caption 8

ic_vi-type=det.face=back.stid=1.y=6

_600DPIBack R2 (apis_600br7) Filename 8 ic_fn-type=det.face=back.stid=1.y=7
_600DPIBack R2 (apis_600br7) Caption 8

ic_vi-type=det.face=back.stid=1.y=7

_600DPIBack R2 (apis_600br8) Filename 8 ic_fn-type=det.face=back.stid=1.y=8

_600DPIBack R2 (apis_600br8)
Inventory Number (apis_inv)
Section/Side (apis_ss)

Caption 8 ic_vi-type=det.face=back.stid=1.y=8
alternativeImages (apis_alt) Filename 1 ic_fn-type=det.face=unspec.stid=3.y=1
alternativeImages (apis_alt)
Inventory Number (apis_inv)
Section/Side (apis_ss)
Caption 1

ic_vi-type=det.face=unspec.stid=3.y=1

How it looks in CollMgr admin_field_maps...

ic_fn-type=summ.face=front.stid=1.y=1:::apis_fsfr1
   ic_fn-type=summ.face=front.stid=1.y=2:::apis_fsfr2
   ic_fn-type=summ.face=front.stid=1.y=3:::apis_fsfr3
   ic_fn-type=summ.face=front.stid=1.y=4:::apis_fsfr4
   ic_vi-type=summ.face=front.stid=1.y=1:::apis_fsfr1 apis_inv apis_inv apis_ss
   ic_vi-type=summ.face=front.stid=1.y=2:::apis_fsfr2 apis_inv apis_ss
   ic_vi-type=summ.face=front.stid=1.y=3:::apis_fsfr3 apis_inv apis_ss
   ic_vi-type=summ.face=front.stid=1.y=4:::apis_fsfr4 apis_inv apis_ss
   ic_fn-type=det.face=front.stid=1.y=1:::apis_600fr1
   ic_fn-type=det.face=front.stid=1.y=2:::apis_600fr2
   ic_fn-type=det.face=front.stid=1.y=3:::apis_600fr3
   ic_fn-type=det.face=front.stid=1.y=4:::apis_600fr4
   ic_fn-type=det.face=front.stid=1.y=5:::apis_600fr5
   ic_fn-type=det.face=front.stid=1.y=6:::apis_600fr6
   ic_fn-type=det.face=front.stid=1.y=7:::apis_600fr7
   ic_fn-type=det.face=front.stid=1.y=8:::apis_600fr8
   ic_vi-type=det.face=front.stid=1.y=1:::apis_600fr1 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=2:::apis_600fr2 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=3:::apis_600fr3 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=4:::apis_600fr4 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=5:::apis_600fr5 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=6:::apis_600fr6 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=7:::apis_600fr7 apis_inv apis_ss
   ic_vi-type=det.face=front.stid=1.y=8:::apis_600fr8 apis_inv apis_ss
   ic_fn-type=summ.face=back.stid=2.y=1:::apis_fsbr1
   ic_fn-type=summ.face=back.stid=2.y=2:::apis_fsbr2
   ic_fn-type=summ.face=back.stid=2.y=3:::apis_fsbr3
   ic_fn-type=summ.face=back.stid=2.y=4:::apis_fsbr4
   ic_vi-type=summ.face=back.stid=2.y=1:::apis_fsbr1 apis_inv apis_ss
   ic_vi-type=summ.face=back.stid=2.y=2:::apis_fsbr2 apis_inv apis_ss
   ic_vi-type=summ.face=back.stid=2.y=3:::apis_fsbr3 apis_inv apis_ss
   ic_vi-type=summ.face=back.stid=2.y=4:::apis_fsbr4 apis_inv apis_ss
   ic_fn-type=det.face=back.stid=2.y=1:::apis_600br1
   ic_fn-type=det.face=back.stid=2.y=2:::apis_600br2
   ic_fn-type=det.face=back.stid=2.y=3:::apis_600br3
   ic_fn-type=det.face=back.stid=2.y=4:::apis_600br4
   ic_fn-type=det.face=back.stid=2.y=5:::apis_600br5
   ic_fn-type=det.face=back.stid=2.y=6:::apis_600br6
   ic_fn-type=det.face=back.stid=2.y=7:::apis_600br7
   ic_fn-type=det.face=back.stid=2.y=8:::apis_600br8
   ic_vi-type=det.face=back.stid=2.y=1:::apis_600br1 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=2:::apis_600br2 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=3:::apis_600br3 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=4:::apis_600br4 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=5:::apis_600br5 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=6:::apis_600br6 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=7:::apis_600br7 apis_inv apis_ss
   ic_vi-type=det.face=back.stid=2.y=8:::apis_600br8 apis_inv apis_ss
   ic_fn-type=det.face=unspec.stid=3.y=1:::apis_alt
 ic_vi-type=det.face=unspec.stid=3.y=1:::apis_alt apis_inv apis_ss

dlxs-help@umich.edu