Skip to content
This repository was archived by the owner on Oct 2, 2025. It is now read-only.

Commit 9455dc6

Browse files
Update component_extension.md
1 parent eb7fe21 commit 9455dc6

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,78 @@
1+
### Component Extension to Collection Objects
2+
3+
## Overview
4+
5+
The Component extension enhances the existing Collection Object (CO) data structure by introducing
6+
a flexible and structured way to manage sub-elements of a CO—such as rocks, fossils, and minerals—within a one-to-many relationship. This feature directly addresses the slow and cumbersome data entry process associated with the current Collection Object Group system, simplifies the entry of sub-objects, reduces time spent on repetitive tasks, and responds to feedback received from domain experts and partner institutions.
7+
8+
## Background and Motivation
9+
10+
Following concerns raised in correspondence and during meetings about inefficiencies in the current data entry process, we developed the Component extension to streamline workflows and reduce redundancy. The existing Collection Object Group (COG) model remains available and continues to be the appropriate tool for representing more complex specimen relationships where full object-level modeling is required. Users reported difficulties such as:
11+
12+
- Repetitive entry of the same data across COs within a COG
13+
- Limited ability to clone or inherit shared information
14+
- Risk of catalog number duplication and inconsistency
15+
- Inefficient representation of trace minerals or fossil sub-parts
16+
17+
## Component Extension Goals
18+
19+
The Component extension is designed to:
20+
21+
- Provide a way to represent identifiable parts of a CO without elevating each to a member of a COG.
22+
- Reduce data redundancy by allowing Components to inherit information from their parent CO.
23+
- Simplify data entry, especially for specimens with multiple sub-elements.
24+
- Improve catalog number management through an optional inheritance system and cross-table uniqueness validation.
25+
26+
## Key Functional Benefits
27+
28+
1. Simplified Data Entry
29+
- Users can now add Components (e.g., minerals, fossils, tissues) directly within a CO form.
30+
- Avoids the need for cloning or separate creation of COs and later linking them via COGs.
31+
- All contextual information (e.g., locality, collection event) is entered once in the parent CO.
32+
33+
2. Flexible Catalog Numbering
34+
- Components may inherit the CO’s catalog number or be assigned their own.
35+
- New business rule ensures catalog number uniqueness across both CO and Component tables within the same collection based on the collection preference.
36+
37+
3. Improved Query Support
38+
- Components can be included, excluded, or targeted directly in queries.
39+
- Aggregated display of components within COs supports better visualization and reporting.
40+
41+
4. Configurable Interface
42+
- Institutions can configure which Component fields are visible or required.
43+
- Components are supported in WorkBench for import and batch editing, ensuring workflow compatibility.
44+
45+
## Technical Scope and Implementation Summary
46+
- **New Component Table** : One-to-many relationship from Collection Object.
47+
- **Key Fields**:
48+
- Catalog Number (optional/inheritable)
49+
- Component Type (determines applicable taxon tree)
50+
- Name (from taxon tree based on type)
51+
- Identifier (agent)
52+
- Proportion, Role, Verbatim Name, GUID
53+
- Additional configurable text, checkbox, number, and integer fields
54+
- **Business Rules**:
55+
- Cross-table catalog number uniqueness scoped per collection.
56+
- **Tree Integration**:
57+
- Dynamic filtering of taxon names by selected Component type.
58+
- Full name display to ensure accurate and standard naming.
59+
- **Workbench Support**:
60+
- Components can be imported alongside COs using child component column.
61+
62+
## Conclusion
63+
64+
The Component extension represents a direct response to user feedback and solves real problems encountered in managing complex specimens. It simplifies workflows, improves data consistency, and enhances querying capabilities.
65+
66+
## Why Components Were Not Implemented as Child Collection Objects
67+
68+
We chose not to implement Components as child Collection Objects within the existing CO table using a parent-child relationship. While this approach was initially considered, we determined it introduced too many usability, structural, and performance drawbacks that outweighed its potential benefits. Key reasons for this decision include:
69+
70+
- **Determination View Limitation**: The determination relationship could not support a Query Combo Box (QCBX) in this setup and would have required a subview, reducing usability and flexibility.
71+
- **Shared Schema Issues**: Components and full Collection Objects would share the same schema, making it difficult to enforce distinct behavior.
72+
- **No UI Enforcement**: The application would not prevent Components from being accessed or used as standalone Collection Objects, creating confusion and potential data misuse.
73+
- **Query Ambiguity**: Users would need to search for Determination Full Name in two separate contexts, complicating the querying process.
74+
- **Filtering Required in Query Builder**: Differentiating between a true CO and a Component in queries would require users to add filters based on the presence of a parent, adding complexity to everyday operations.
75+
- **WorkBench Complexity**: Data entry in WorkBench would have been significantly more difficult, requiring multiple columns to represent nested parent-child relationships.
76+
- **Limited Benefit**: The only clear advantage of this model was the potential for hierarchical nesting of children, which did not justify the additional complexity introduced.
77+
178

0 commit comments

Comments
 (0)