Hello Specificians,
We receive regular requests to support “Containers” Specify 7. Containers mean different things to different collections and disciplines, some are physical, some are virtual. Some represent a two-level, one-to-many hierarchy with Collection Object or Preparation records. Conceivably they could exist as a hierarchy with more than two levels (“Containers all the way down!”). Various, nuanced conceptualizations and usages have been brought to our attention.
As we prioritize future capabilities, we are seeking input from SCC members on how to conceptualize, design and implement Containers in Specify 7. We need to know your user stories and use cases, if you have considered workflows that require Containers in Sp7, or if you are using Containers in Sp6. If you are motivated to share your Container uses or aspirations with us, we have included a template with some questions at the bottom of this topic as a way to get started.
First some background.
How Containers work in Specify 6
Containers allow Collection Objects to be logically grouped together in a Specify database. A container can be physical, like a common substrate or a box or other storage container. Containers can also be logical–e.g. a logical association of Collection Object records or perhaps other data record types.
A Collection Object record in Specify 6 can act as a Container.
Physical Containers can be substrates or containment objects within a collection. For example, a lichen specimen on the bark of a branch might be cataloged as a Collection Object, with the branch cataloged as a Container. Or a microscope slide upon which one or more diatoms (cataloged Collection Objects) are mounted can itself be assigned a catalog number and be linked to the algal Collection Object records. A Container might be a box of specimens (Collection Objects) that needs to be cataloged in the Specify as a single (composite) collection artifact.
The above examples are for physical Containers. A logical Container is one in which only logical associations among Collection Objects are made. For example, a tissue, skin and skeleton of an animal may exist in different storage units or in different rooms or buildings in a mammal collection. Each of these might have their own Collection Object record with their own curatorial, transaction or conservation history, which for collections management purposes need to be logically associated. A logical container, itself a Collection Object, can be named in Sp6, then contain links to the data records for the associated Collection Objects.
Some physical Containers might be considered a low level rank in a Specify Storage Location tree. For example, boxes could be conceptualized as the lowest level of storage location. Currently in Specify 6 however, Containers as Collection Objects do not appear as a rank in the Storage Location Tree hierarchy, but they can be associated with a nodes on that tree. For example in a “box of specimens” example, “Box” would not be a tree rank, but the box may be stored on a shelf in a particular room where “Room” and “Shelf” would be ranks (columns) in the Storage Location tree.
In Specify 6, Containers can be nested. A Container can have a Container inside of it.
Containers have a designated Type. Type is a pick list field that contains values like: Folder, Sheet, Specimen, etc.
If your collection has Containers cataloged as Collection Objects along with regular Collection Objects (specimens or lots) that are not Containers, using a query, one would need to parameterize it, to filter it out the Container records before exporting specimen data or printing labels or reports of specimens.
Existing Container Table Fields:
Italics means it is hidden from view by default.
Visible Fields:
Name
Description
Type
Number (user defined)
Hidden fields:
timestampModified
timestampCreated
version
Relationships
Container (parent and child)
Collection Object (one-to-many, collectionObjects and collectionObjectKids)
Storage (Storage tree)
Some Sample Containers Use Cases:
- Entomology: A piece of amber containing several insects.
- Ichthyology: A collection might have a large jar of pickled fish of multiple species (not a “lot”). The jar contains many specimens, each of which have their own Collection Object record. The Container record tracks the large jar with links to the contained specimens.
- Vertebrate Paleontology: Wooden crates containing cataloged specimens of several species from a single Collecting Event and/or Accession are stored together and linked in the database in a Container record.
- Botany: Several lichen species and specimens are identified from the same collected twig, and a Container record associates them to that single cataloged substrate.
- Geology: A rock could include multiple layer types, inclusions, crystals, etc. Embedded materials would be cataloged as a individual, discrete Collection Objects although associated together in the common substrate.
Implementing the Container Concept in Specify 7
We solicit inspiration and input from SCC members to understand how you would conceptualize and utilize a Container concept implemented in Specify.
What type of Collection and Collection Objects do you work with?
Do you currently use Containers in Specify 6?
Could you briefly describe any use cases you have, or that you would potentially like to support using the Container concept?
Would having Containers limited to associating only Collection Object records meet your requirements?
Do Specify Containers need to support associations of Preparation or any other kinds of Specify data types?
Do you need Containers work across Specify collections in the same database? Across Specify records in different databases? Or through linkages include findable and accessible collection data objects anywhere on the Internet?
How should containers be identified? Should they be cataloged with a Catalog Number? Do they require some other a collection-customizable unique identifier? Can you imagine a use case involving GUIDs or DOIs identifying containers for global access or internet linking?
What kind of attribute data or metadata do Containers require to meet your uses cases?
If you use Containers in Sp6, would implementing them in Sp7 the same way, meet your requirements?
Can you offer an example of a query or two that you would use to search and retrieve Container data records?
What would be the most important user interface functionality for a Container concept or for visualizing a Container record in Specify forms.
Additional thoughts?