You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Oct 2, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: _sources/technical_decisions/extended_age_query.md.txt
+50Lines changed: 50 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,23 @@ The Extended Age Query (EAQ) feature enhances query capabilities for **Collectio
18
18
- **Highest** `StartPeriod` across relevant nodes
19
19
Because MYA increases into the past, higher StartPeriod means older boundary.
20
20
21
+
- **Strictness in Range Calculations**
22
+
- an age query start period `x`
23
+
- an age query end period `y`
24
+
- with constraint that `x >= y`
25
+
- for each collection object, a meta start period `a` is decided, and a meta end period `b` is decided.
26
+
- with constraint that `a >= b`
27
+
28
+
Strict Filter: (full overlap, a-b is within x-y)
29
+
`a <= x` and `b >= y`
30
+
31
+
Non-Strict Filter: (partial age range overlap, any overlap so x-y can be within a-b or a-b can be within x-y)
32
+
(` a<= x` and `a >= y`) or (`b <= x` and `b >= y`) or (`a >= x` and `b <= y`)
33
+
34
+
This is omitting the complication of uncertainty values.
35
+
The meta age range for each collection object should appear in the age column of the query results.
36
+
The "Any" age query bug is being push to a later issue. For now, do a Age Range query from "13800" to "0" to get all COs with age data (query all of time, the age of the universe
37
+
21
38
## User Interface & Workflow
22
39
23
40
1. **Add Age Field**
@@ -43,9 +60,42 @@ EAQ applies to the following age contexts within Collection Objects:
43
60
44
61
- **Absolute Age**
45
62
Computes a range using: AbsoluteAge + AgeUncertainty to AbsoluteAge – AgeUncertainty
63
+
46
64
- **Paleo Context**
47
65
Bound by `ChronosStratID` (and optionally `ChronosStratEndID`). The system determines the widest combined range across both IDs using start/end values.
48
66
67
+
**Table paths from CollectionObject to Absoluteage or GeologicTimePeriod**
Copy file name to clipboardExpand all lines: technical_decisions/extended_age_query.html
+194-2Lines changed: 194 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -185,19 +185,35 @@ <h2>Overview<a class="headerlink" href="#overview" title="Link to this heading">
185
185
</section>
186
186
<sectionid="core-logic-filtering-criteria">
187
187
<h2>Core Logic & Filtering Criteria<aclass="headerlink" href="#core-logic-filtering-criteria" title="Link to this heading"></a></h2>
188
-
<ulclass="simple">
188
+
<ul>
189
189
<li><p><strong>Numeric-Based Logic</strong><br/>
190
190
EAQ exclusively uses numerical start and end values; no names are directly used for computation—names are converted into numeric ranges by the system.</p></li>
191
191
<li><p><strong>Valid Periods Only</strong><br/>
192
192
Only Chronostratigraphy nodes from the <codeclass="docutils literal notranslate"><spanclass="pre">GeologicTimePeriod</span></code> table with valid <codeclass="docutils literal notranslate"><spanclass="pre">StartPeriod</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">EndPeriod</span></code> values (where StartPeriod > EndPeriod) are considered for queries.</p></li>
193
193
<li><p><strong>Range Calculation</strong><br/>
194
194
The query computes its range using:</p>
195
-
<ul>
195
+
<ulclass="simple">
196
196
<li><p><strong>Lowest</strong><codeclass="docutils literal notranslate"><spanclass="pre">EndPeriod</span></code> across relevant nodes</p></li>
197
197
<li><p><strong>Highest</strong><codeclass="docutils literal notranslate"><spanclass="pre">StartPeriod</span></code> across relevant nodes<br/>
198
198
Because MYA increases into the past, higher StartPeriod means older boundary.</p></li>
199
199
</ul>
200
200
</li>
201
+
<li><p><strong>Strictness in Range Calculations</strong></p>
202
+
<ulclass="simple">
203
+
<li><p>an age query start period <codeclass="docutils literal notranslate"><spanclass="pre">x</span></code></p></li>
204
+
<li><p>an age query end period <codeclass="docutils literal notranslate"><spanclass="pre">y</span></code></p></li>
205
+
<li><p>with constraint that <codeclass="docutils literal notranslate"><spanclass="pre">x</span><spanclass="pre">>=</span><spanclass="pre">y</span></code></p></li>
206
+
<li><p>for each collection object, a meta start period <codeclass="docutils literal notranslate"><spanclass="pre">a</span></code> is decided, and a meta end period <codeclass="docutils literal notranslate"><spanclass="pre">b</span></code> is decided.</p></li>
207
+
<li><p>with constraint that <codeclass="docutils literal notranslate"><spanclass="pre">a</span><spanclass="pre">>=</span><spanclass="pre">b</span></code></p></li>
208
+
</ul>
209
+
<p>Strict Filter: (full overlap, a-b is within x-y)
210
+
<codeclass="docutils literal notranslate"><spanclass="pre">a</span><spanclass="pre"><=</span><spanclass="pre">x</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">b</span><spanclass="pre">>=</span><spanclass="pre">y</span></code></p>
211
+
<p>Non-Strict Filter: (partial age range overlap, any overlap so x-y can be within a-b or a-b can be within x-y)
212
+
(<codeclass="docutils literal notranslate"><spanclass="pre">a<=</span><spanclass="pre">x</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">a</span><spanclass="pre">>=</span><spanclass="pre">y</span></code>) or (<codeclass="docutils literal notranslate"><spanclass="pre">b</span><spanclass="pre"><=</span><spanclass="pre">x</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">b</span><spanclass="pre">>=</span><spanclass="pre">y</span></code>) or (<codeclass="docutils literal notranslate"><spanclass="pre">a</span><spanclass="pre">>=</span><spanclass="pre">x</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">b</span><spanclass="pre"><=</span><spanclass="pre">y</span></code>)</p>
213
+
<p>This is omitting the complication of uncertainty values.
214
+
The meta age range for each collection object should appear in the age column of the query results.
215
+
The “Any” age query bug is being push to a later issue. For now, do a Age Range query from “13800” to “0” to get all COs with age data (query all of time, the age of the universe</p>
216
+
</li>
201
217
</ul>
202
218
</section>
203
219
<sectionid="user-interface-workflow">
@@ -232,6 +248,182 @@ <h2>Search Scope Across Age Fields<a class="headerlink" href="#search-scope-acro
232
248
<li><p><strong>Paleo Context</strong><br/>
233
249
Bound by <codeclass="docutils literal notranslate"><spanclass="pre">ChronosStratID</span></code> (and optionally <codeclass="docutils literal notranslate"><spanclass="pre">ChronosStratEndID</span></code>). The system determines the widest combined range across both IDs using start/end values.</p></li>
234
250
</ul>
251
+
<p><strong>Table paths from CollectionObject to Absoluteage or GeologicTimePeriod</strong></p>
0 commit comments