Specify 6.8.00

Release Notes

Specify 6.8.00

16 April 2020, This Update Fix: Released 1 June 2020

Specify Collections Consortium



Overview and New Capabilities

Database administrators note that with this update: (1) the Specify 6 updater modifies the Specify database schema and (2) it creates new dependencies among the three packages (Specify 6, 7, and Web Portal). Each platform currently in use will need to be updated to interoperate with the others— these updates are not backward compatible with existing releases of the three platforms. This Specify 6 update will require a concurrent update to the Specify 6 Web Portal to support new export/import methods between them. If Specify 6 and are being used at the same time they will both need to be updated to run on a common database.

A significant new module in Specify 6 and 7 provides support for recording all changes made to a database, including record additions, edits, and deletions. “Audit Logging” is a background process that records every change to data along with metadata on who made it and when. The Audit Log is configurable to retain change data records for a specified period, and records can be queried, exported, and printed.

Specify 6.8 has been Apple “Notarized” -- authorized by Apple to run on macOS 10.14 (Mojave), and 10.15 (Catalina).

Specify 6.8 adds tables to the database and updates others (see list below). ‘Taxon Attribute’ is a new table linked (many-to-one) to the Taxon table for a flexible and extensible way to handle trait or ‘character’ data that describe the properties of a taxa or morphotypes. We also added tables to support multiple ‘Extractor’ and ‘PCR Person’ Agent assignments in the DNA Sequence table for documenting DNA workflows. ‘Accession Citation’ is a new table to enable Accession records to reference publications. These tables were added as the result of member requests for additional capabilities.

In this Specify 6 and 7 update, the status of Loans can be tracked more efficiently using new data fields that summarize the disposition of loaned items (cataloged or uncatalogued). The fields provide information on Loan resolution status and are included on the default Loan forms in this Specify 6.8 distribution. Sites that use previously customized Loan forms can contact SCC staff to have the new fields added to their interface.

We exercised Specify’s Unicode infrastructure to implement two Cyrillic language translations, Ukrainian and Russian. Contact us for setup information if you are interested in using them.

We added a second link connecting the Storage Tree and the Preparation table in order to provide the possibility for designating a second or alternate storage location for a Preparation. This capability is useful when Preparations are moved temporarily, e.g. for an exhibit, conservation treatment, or for use in a project. The main or current storage locality field should be edited to reflect the actual location of the object. The alternate location field serves to record the objects original or ‘return to’ storage location after a temporary placement. Right clicking on Storage Tree nodes only shows a count of Preparations that are recorded at that location in the Current Storage Location data field on the Preparation form. Alternate Storage Locations are not counted in the Storage Tree.

In a previous Specify 6 release, we added two new tables, Collection Object Properties and Preparation Properties, to handle attribute or trait data for Collection Objects and Preparations, respectively. These new Specify Properties data tables will allow a researcher to choose the attribute being described or measured for a Collection Object or Preparation at the time of data entry from a drop-down pick list, and then record the corresponding value of that attribute in a second, associated field. In the data modeling world, this type of data association is known as the Entity-Attribute-Value (EAV) model, although it is also referred to as key/value pairs. This extensible design essentially removes the upper limit on the number of character or attribute types that can be selected during data entry and then have a corresponding value recorded as discrete, fielded data that are accessible for querying and export. The value field in key (attribute)/value pairs can be set up for variables that are logical (presence/absence, yes/no, etc.), categorical, or quantitative. Their values can be represented in the database as logical, text, integer or floating point data types. We will provide more information on the Specify web site about how to configure and use the two Properties tables for trait data.

With the Specify 6.8 and 7.4 we confirm compatibility and support for MariaDB, a popular open-source, relational database platform and alternative to MySQL. MariaDB is designed to be compatible with MySQL applications. We did side-by-side testing of Specify with MySQL and MariaDB and found performance differences that we will describe soon.

The Specify Web Portal can now ingest, search, and display Collection Object records from multiple Specify collections. If you manage two or more collections, you can combine their exported records to make them publicly available in a single Web Portal. We also changed the way the Specify 6 and 7 platforms export data to the Web Portal, and Specify data export files are now indexed by Solr in the Portal and not in Specify. We improved search behavior in the portal when using quoted phrases. Additionally, by setting a preference, web link URLs in Specify data fields displayed by the Portal can now be made active, enabling public web users to click and retrieve the linked remote resource.

The next planned Specify 6 update will support Preparation-level processing for transactions like Accessions, Cataloging, Loans, and Exchanges. This will allow institutions that treat Preparations as primary data objects with unique IDs to more effectively manage collection transactions, searches, reports, etc., at the Preparation level. Also, we are working closely with a SCC member consortium of museums that operate genetic biorepositories to extend the Specify data model for more comprehensive curation of tissue and DNA samples. Those enhancements will allow researchers to more holistically track the provenance and preparation of tissues and molecular extracts, starting with Collecting Events in the field, documenting temporary mobile container treatment, and finally curating and publishing catalog data associated with long-term storage. If you are interested in managing biorepository sample data and curatorial workflows in Specify and have suggestions or requirements to offer, please contact us, we would like to know about them.



Bugs Fixed  

Specify 6.8.0 addresses over 135 issues, about 50 user-facing. The list is at: https://github.com/specify/specify6/issues?q=milestone%3A6.8.00

Specify 7.4.0 bug fixes include: https://github.com/specify/specify7/milestone/16

Specify Web Portal 2.0 fixed bugs are here: https://github.com/specify/webportal-installer/issues?q=is%3Aopen+is%3Aissue+label%3A%22Confirmed+Fixed%22


Specify 6.8.0 and 7.4.0: New tables and fields, field changes

Data Tables Added

AccessionCitation

AccessionCitation is a table that enables Accession records to include published citations. (Denmark Museums of Natural History)

  • AccessionCitationID int(11)    
  • AccessionID int(11)    
  • ReferenceWorkID int(11)
  • Version int(11)    
  • FigureNumber varchar(50)
  • IsFigured boolean    
  • PageNumber varchar(50)
  • PlateNumber varchar(50)
  • Remarks text      
  • ModifiedByAgentID int(11)    
  • CreatedByAgentID int(11)    
  • TimestampCreated datetime  
  • TimestampModified datetime 

Extractor

Extractor is a join table linking the Agent and DNASequence tables in a many-to-many relationship to enable multiple Agents to be recorded in the role of extracting DNA from samples. (South Dakota School of Mines and Technology)

  • ExtractorID int(11)
  • Version int(11)
  • OrderNumber int(11)
  • YesNo1 boolean  
  • YesNo2 boolean  
  • DNASequenceID int(11)
  • AgentID int(11)
  • Remarks text    
  • Text1 text    
  • Text2 text
  • CreatedByAgentID int(11)
  • ModifiedByAgentID int(11)
  • TimestampCreated datetime
  • TimestampModified datetime

PCRperson

PCRPerson is a join table between the Agent and DNASequence tables in a many-to-many relationship to allow the association of multiple Agents in the role of persons performing PCR steps in DNA amplification. (South Dakota School of Mines and Technology)

  • PcrPersonID int(11)
  • Version int(11)
  • OrderNumber int(11)
  • Remarks text    
  • Text1 text    
  • Text2 text    
  • YesNo1 boolean  
  • YesNo2 boolean  
  • AgentID int(11)
  • DNASequenceID int(11)
  • ModifiedByAgentID int(11)
  • CreatedByAgentID int(11)
  • TimestampCreated datetime
  • TimestampModified datetime

TaxonAttribute

The TaxonAttribute table is related 1:1 with Taxon to accommodate semi-structured data attributes (traits) describing morphotypes. (U. Wyoming, Paleobotany)

  • TaxonAttributeID, int(11)    
  • Version, int(11)    
  • Date1, date
  • Agent1ID, int(11)  
  • Date1Precision, tinyint(4)  
  • Number[1...20], float
  • Text[1...58], varchar(128)
  • YesNo[1...82], boolean      
  • Remarks, text        
  • TimestampCreated, datetime    
  • TimestampModified, datetime
  • CreatedByAgentID, int(11)    
  • ModifiedByAgentID, int(11)    

Changes to Existing Data Fields (table.field, change)

  • agent.LastName 128 -> 256
  • collectingtrip.CollectingTripName 64 -> 250
  • exsiccata.Schedae made nullable
  • geography.Name 64 -> 128
  • geography.FullName 255 -> 500
  • preparation.SampleNumber indexed
  • treatmentevent.Type 32 -> 128

New Data Fields Added to Existing Tables (table.field, type)

  • agent.Date1 (with partial precision)
  • agent.Date2 (with partial precision)
  • agent.Integer1 int
  • agent.Integer2 int
  • agent.Text1 text
  • agent.Text2 text
  • agent.VerbatimDate1 varchar(128)
  • agent.VerbatimDate2 varchar(128)
  • collectionobject.NumberOfDuplicates int
  • preparation.BarCode varchar(256)
  • taxon.taxonattributeid link to taxonattribute

New Calculated fields added for Loans (scoped over an entire Loan)

  • totalPreps: number of Loan records or lines (usually distinct Cat #/PrepType combos)
  • totalItems: number of loaned items (Preparations = biological artifacts) in a Loan
  • resolvedPreps: number of Loan Preparations (Loan record = line items) that are resolved
  • resolvedItems: number of resolved Preparations or artifacts, scoped to entire Loan
  • unresolvedPreps: number of unresolved Loan Preparations
  • unreolvedItems: number of unresolved Loan items (=Preparations)

Specify Collections Consortium
Biodiversity Institute
University of Kansas
Lawrence, KS 66045, USA

www.specifysoftware.org