MOA2 DATABASE
Introduction
The types of bibliographic objects we are dealing with in this project
(albums, photographs, diaries, ledgers, etc) have been selected primarily
because they pose interesting technical problems for display and navigation.
From a database standpoint they also pose another interesting set of problems.
How do we define them in such a way that we can reasonably deal with all
the possibly forms these objects and their elements can take? And how do
we design a relational database that will allow us to define and create
such variable and complex objects, and manage the kinds of processing they
might will require on their way to becoming digital objects?
We began with the observation that these objects are essentially hierarchical
in nature:
-
photos have 2 sides
-
albums are made up of pages, pages contain items (photos, clippings, other
objects), items can be broken down into details
-
ledgers and diaries contain pages, pages contain entries.
And any element at any level in one of these hierarchies can be subject
to some kind of processing, like imaging or transcription, or both.
So we have attempted to design a database that can deal with all this
variability and complexity, that will allow us to define and manage these
objects and their subobjects during production, and that in the end will
allow the objects, all the attendant metadata, and digital files to be
packaged up in coherent digital MOA2 objects. Each object defined in this
system is represented as a hierarchical collection of subobjects, any one
of which can be subject to some kind(s) of processing that result in a
digital file(s).
The DataBase
This is a users overview of the data base. In addition, context specific
information is available for nearly every feature of the database interface.
If you hold your pointer over a field or button, the system should present
you with a short description of that feature.
Main Menu Form
When you open the database, this is the first form you will see. It
allows you to select the kind of processing you want to do.
-
Defaults button. This opens the Defaults Form. Before you do anything else,
open this form and change the defaults to reflect your environment. If
you need to create default records for new object types, do so. It is also
a good idea to check these defaults whenever you create any kind of new
record to the database. Defaults buttons are available in other contexts
throughout the database interface.
-
Process Objects button. This opens the Object Form. Click this to find
and edit existing object records, to add new ones, or delete obsolete ones.
-
Process Images button. This opens the Process Images form. Click this to
record image processing information for objects and subobjects marked for
imaging.
-
Tables And Queries button. Click this to access various tables and execute
odd queries. Not yet implemented.
Defaults Form
Defaults are used extensively throughout the database. Anytime you add
new object, subobject, transcription, master image, or derivative image
records, defaults are invoked that are relevant to the type of object that
you are dealing with. Before creating any one of these types of records,
it would be a very good idea check the appropriate defaults for that record
type. In most cases, however, the defaulted fields can be changed in the
new record, once it has been created.
You cannot create in the database a new object of a particular object
type, unless there is already a default record for that object type. If
you are creating an object of a type for which there isn't a default record,
you will have to create a default record first.
If you open the Defaults Form from within the context of a particular
object, the form will display the defaults for that object type only. If
you open it from the Object Form, and the Object Type listbox is empty,
the Defaults Form will display defaults records for all object types.
-
Pages (Object, SubObject, MasterImage, DerivImage, Transcription). These
compartments contain default fields relevant to the creation of the corresponding
record types. These fields can all be changed as requirements change during
production.
-
Add New Default button. Click to create a default record for a new object
type.
-
Host/Dir/Netloc button. All image and transcription files have defaults
for Host, Directory, and Network Location. Since these variables are interrelated,
and important in locating files that make up finished objects, they have
to be carefully controlled. Click here to edit these file location records,
or add new ones. Then apply them as needed to the defaults in the appropriate
pages.
Object Form
This form is the starting point for locating existing objects, adding
new ones, and deleting obsolete ones.
-
Find Object button. Click in the field you want to use as a basis for the
search through existing object records, then click this button. You will
be prompted for a search string, and parameters controlling the nature
of the search. Of particular interest is the partial field search.
-
Process Subobjects button. Click this to open the Subobject Form. With
this form you can navigate through the subobjects that make up this object,
add to or otherwise modify the subobject records, order transcription or
image processing for the various subobjects, and determine whether that
processing has been completed.
-
Add New Object button. This opens the Add New Object Form. To open this
form, though, you must first select an object type from the Object Type
list box. There is an entry there for every kind of object that you have
created a default record for. If you want to create an instance of an object
type that hasn't been so defined, you should click the Defaults button
lower on this form, and create and save a default record for the new object
type. Then look for the new object type in the Object Type list box, select
it, and click the Add New Object button. When you have created the new
object, close the Add New Object Form. The new created object should now
display on the Object Form. Click the Process Subobject button, and the
SubObject Form will open, displaying the root node of the newly created
object. At that point, you can started defining the hierarchical structure
of the new object.
-
Delete Object button. Click this to delete an obsolete object. This will
also cause the deletion of all its subobject, master image, derivative
image, and transcription records.
-
Defaults button. If the Object Type list box is blank, the Defaults Form
will open displaying all defaults records. If an object type has been selected
in the Object Type list box, the Defaults Forms will open displaying the
selected object type.
Subobject Form
This form allows you to construct and navigate the various levels of
a complex hierarchical object. When you open it, it displays the root node
of the object you selected on the Object Form. This node is the ancester
of all subobjects that make up that object. The fields in the upper left
of this form display information about only one subobject at a time, out
of the hierarchy of subobjects. But the view represented by those fields
can be made to display any subobject in the hierarchy. Every node in the
hierarchy (except the root node) has a parent, and many nodes have children.
So from any node (except root) you can move the view to its parent, or
to any particular child. There is also a way to display the entire hierarchy,
and select any node from it for display.
-
Children page. This shows the children of the subobject currently displayed.
You can select a child row in the Children subform on this page, click
the Descend button, and that child will become the current subobject. Or
you can click the Ascend button, and the parent of the current subobject
will be displayed, if the current node isn't already the root node. If
the Parent field of the current subobject is 0, you are already displaying
the root node and can ascend no further. On this page you can click the
Add Child button to add a child subobject to the current subobject. If
you do so, the new child will fall into a sequence with the other children
determined by the value of NextSibSeq. You can change that value before
you add a child, so that the new child will fall where you want it to among
its siblings. NextSibSeq is incremented by one from its last value, with
the addition of each new child. On this page you can also select a child
for deletion by clicking the Delete Child button. A form will open displaying
the child selected for deletion, and if you press the Delete button on
that form, the child will be deleted. If that child has children of its
own, you will be prompted for confirmation of your intention to delete.
If you still elect deletion, the child, all its descendants, and all their
associated image and transcription files will be deleted.
-
Master Files page. The Master Image Files subform on this page shows all
the files that have been captured for the current subobject. The rows marked
Selected have been chosen to be master files, from which derivatives will
be produced.
-
Derivatives page. The Derivative Image Files subform on this page shows
all the derivative files produced from the master file row selected in
the Master Image Files subform on the Master Files page.
-
Transcriptions page. The subform on this page shows all the transcription
files that have been created for the current subobject. From this page
you can click the Add Transcript button to create a new transcript record,
if the current subobject has been marked for transcription in the current
subobject Text? field. A transcription is considered complete if there
is a date in the CompleteDate field.
-
Display Subobjects button. Click this to produce an "in order" listing
of the subobjects that make up the object. You can use this listing to
itemize for production staff the subobjects and the kinds of processing
they require. You can also double click on any row, and the subobject you
select will be displayed as the current object on the Subobject Form.
-
Display Defaults button. Click to display the defaults record for this
object type.
-
Display Rights button. Click to display the Rights record for this subobject.
-
Redo Path button. When an new subobject is created, it inherits the path
of its parent, to which is appended the SObjType and SiblingSeq number
of the new subobject. The resulting Path string describes the location
of that subobject among all the other subobjects that make up the current
object. However, in any given subobject, SobjType and SiblingSeq can be
edited, with the result that the Path strings of all its descendant subobjects
are invalidated. If such changes are made, you can ascend to the root node,
and click Path Redo to rewrite all the Path strings throughout the object.
-
Print SObj Not Trans button. Click to list all subobjects in the current
object that have been marked for transcription in field Text?, but which
have not been transcribed. A subobject is considered transcribed if there
is a row in the Transciption subform with a date in the CompleteDate field.
-
Print SObj Not Capt button. Click to list all subobjects in the current
object that have been marked for Capture in field Image?, but which have
not been captured. A subobject is considered captured if there is a row
in the Master Image Files subform with a check mark in the Selected? field.
-
Print SObj Not Deriv button. Click to list all subobjects in the current
object which have records in the Master Image Files subform marked Selected,
for which there aren't corresponding records in the Derivative Image Files
subform.
Process Images Form
This is the main form for image processing. When it opens, it displays
the last object created in the database. If you want to display another
object record, you can click the field you want to search in, then click
the Find button. You will be prompted for search criteria. You can also
apply this method to search for records in any of the three subforms.
-
SubObjects subform. This displays the subobject records in the current
object that have been marked for imaging in the Image? field.
-
Master Frames subform. This displays capture file records for the subobject
that has been selected in the SubObjects subform. The Add and Edit buttons
to the left allow you to add new Master Frame records for the selected
subobject, or edit existing ones.
-
Derivatives subform. This displays derivative file records for the master
frame record selected in the Master Frames subform. The Add and Edit buttons
to the left allow you to add new Derivative records for the selected master
record, or edit existing ones.
-
Descriptive MetaD button. Click this to open the Object Form for this object.
-
Defaults. Click this to open the Defaults Form for this object.
-
Print SObj Not Capt button. Click to list all subobjects in the current
object that have been marked for Capture in field Image?, but which have
not been captured. A subobject is considered captured if there is a row
in the Master Image Files subform with a check mark in the Selected? field.
-
Print SObj Not Deriv button. Click to list all subobjects in the current
object which have records in the Master Image Files subform marked Selected,
for which there aren't corresponding records in the Derivative Image Files
subform.