Developing Containers for Specify 7

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

image

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?

What type of Collection and Collection Objects do you work with?
Wildlife (specimens/tissues/sounds), Fish (Specimens/tissues/X-rays)

Do you currently use Containers in Specify 6?
No - we are migrating our data straight to Specify 7

Could you briefly describe any use cases you have, or that you would potentially like to support using the Container concept?
For the sounds collection there are physicals reels/cassettes that are registered as collection objects, but it could also be considered as a container for the tracks on the reels. The tracks are also registered as collection objects and again could be seen as container children of the main reel. Finally the individual bird sounds are registered as collection objects.

Would having Containers limited to associating only Collection Object records meet your requirements?
Yes

Do Specify Containers need to support associations of Preparation or any other kinds of Specify data types?
No

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?
No

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?
It would be nice to have an option to auto-assign the container to have the catalogue number of the collection object in the case where the container is the collection object

What kind of attribute data or metadata do Containers require to meet your uses cases?
None at the moment, but text1/2/3 and num1/2/3 fields could be useful in the future

If you use Containers in Sp6, would implementing them in Sp7 the same way, meet your requirements?
Yes

Can you offer an example of a query or two that you would use to search and retrieve Container data records?
Generally would search for a particular species to find out what tracks to borrow for a loan. We would also want to know what other species are recorded on those tracks that are found from the first query

What would be the most important user interface functionality for a Container concept or for visualizing a Container record in Specify forms.
A tree-style visualisation could be useful for management users

Additional thoughts?
We would require the ability to bulk create the collection object/container relationships via the workbench. Right now it doesn’t appear to be possible to assign a collection object as a “kid” of a container that already exists (or is being created in the same upload).

1 Like

What type of Collection and Collection Objects do you work with?

Ichthyology - primarily alcohol preserved specimens of adults and larvae, as well as tissue samples.

Do you currently use Containers in Specify 6?

Sort of? We use the Storage tree extensively.

Could you briefly describe any use cases you have, or that you would potentially like to support using the Container concept?

We are active users of the many-vials-in-a-jar concepts (each containing an individually cataloged larva). We also use the storage tree to keep track of tissue samples (preparations) in a -80 freezer.

Would having Containers limited to associating only Collection Object records meet your requirements?

No: We need to be able to record the location of preparations too (particularly tissue samples within a particular box in a particular freezer).

Do Specify Containers need to support associations of Preparation or any other kinds of Specify data types?

Definitely yes on preparations.

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?

We don’t currently need this.

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?

I’d rather not use catalog numbers for containers. Some other identifier (minimally human-readable, but machine readable is a bonus) should be used.

What kind of attribute data or metadata do Containers require to meet your uses cases?
Minimally, the location and type of the container.

If you use Containers in Sp6, would implementing them in Sp7 the same way, meet your requirements?

The storage tree is painful to use for large numbers of vials, so a better system would be great.

Thanks for working on this important topic!

Brian Sidlauskas, Oregon State Ichthyology Collection.

What type of Collection and Collection Objects do you work with?
Amber collection, Botanical collection (sheets), Ichthyology (alcohol preserved specimens), …

Do you currently use Containers in Specify 6?
We are just planning to do so.

Could you briefly describe any use cases you have, or that you would potentially like to support using the Container concept?
Right now we are dealing a large amount of multispecimen herbarium sheets (more than one specimen occurs on one sheet). We also have a nice collection of amber preserved specimens.

Do you need Containers work across Specify collections in the same database?
Yes.

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?
Catalog Number or collection-customizable unique identifier could be fine for us.

What type of Collection and Collection Objects do you work with?
Invertebrate Paleontology, Paleobotany, Rocks & Minerals, Meteorites and Tektites

Do you currently use Containers in Specify 6?
Yes

Could you briefly describe any use cases you have, or that you would potentially like to support using the Container concept?
We use it all the time for our fossils and minerals. Our specimens often have more than one species on a single collection object. Our mineral specimens almost always have more than one mineral present. We have to use containers since only one taxon name is allowed for a single Collection Object

Would having Containers limited to associating only Collection Object records meet your requirements?
Yes. We only use Containers to associate multiple Collection Objects. We use the remarks field for any other information that we might want to add.

Do Specify Containers need to support associations of Preparation or any other kinds of Specify data types?
I’m not sure if we would use this or not. I think that it could be confusing. We only use containers to associate Collection Objects, and probably wouldn’t need it for anything else, but I’m open to the idea.

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?
Since we have all of our rocks and minerals in the same collection and database, we do not need to have linkages across different databases. However, if we were required to separate out our collections in the future, we would definitely need to be able to link them. We do have minerals that contain fossils. It would be nice to have it linkable elsewhere on the internet. We prefer to keep a single collection for everything so that we only have to maintain single tables for Localities and Collecting Events. Sometimes our minerals, plants and animals are collected from the same locality and occasionally during the same event.

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?
We use the catalog number of the primary Collection Object as the Container number, but we would be willing to change our Container numbering system for global access and internet linking. Here is a link to how we handle our Container numbers Specify Field: about the Containers field - Non-vertebrate Paleontology Lab - UT Austin Wikis

What kind of attribute data or metadata do Containers require to meet your uses cases?
We currently have a drop down list indicates if the container is a matrix that contains multiple collection objects, or if it is a living thing (plant or animal) that contains other collection objects. However, I’m not sure how important it is to have this.

If you use Containers in Sp6, would implementing them in Sp7 the same way, meet your requirements?
Containers are a necessity for us, unless we are able to have multiple taxon names for each Collection Object. We would prefer to have multiple taxon names for single Collection Object. This would include both minerals and living things in the same Collection Object.

Can you offer an example of a query or two that you would use to search and retrieve Container data records?
If someone were to search for a particular mineral and wanted to borrow it, we use the Container numbering system to let us know that we need to mark all Collection Objects as on loan, not just that one mineral. This issue would be solved if we could have multiple taxon names for a single Collection Object. It isn’t obvious to a researcher running a query, but to us, if we see an object that is in a container, we know that there are other taxon names and/or minerals associated with that object. We can send that information to a researcher who may be doing work in Paleoecology or something else where they are looking at systems and relationships between the geology and living things that were alive at that point in time.

What would be the most important user interface functionality for a Container concept or for visualizing a Container record in Specify forms.
It would be great if we could loan out a Container. Right now, when we loan out a Collection Object that is in a Container, we have to find all of the other Collection Objects and loan those out too, which is confusing to the borrower. Then we have to return each individual Collection Object once that one specimen is returned.

Additional thoughts?
Here is a link to how we currently use Containers. Specify Field: about the Containers field - Non-vertebrate Paleontology Lab - UT Austin Wikis
The Container idea isn’t perfect, but it has worked for us, and has become a necessity.