Skip to content

Commit fabe63d

Browse files
rdhyeeclaude
andauthored
Add accordion menus to Requirements and clean up Architecture overview (#90)
Requirements: wrap all 18 requirements in collapsible callouts so the page loads as a scannable table of contents rather than a wall of text. Shortened some long headings for readability. Architecture overview: restructure from flat bullet list into organized sections (Core Principles, Contributions, Further Reading) with links to related pages. Addresses #86 Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ed6365c commit fabe63d

File tree

2 files changed

+86
-70
lines changed

2 files changed

+86
-70
lines changed

design/index.qmd

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
11
---
22
title: "Overview"
33
subtitle: "iSamples use cases, requirements, architecture, and data models"
4-
---
5-
6-
Physical samples are represented by a digital record.
4+
number-sections: false
5+
---
76

8-
Each digital record is addressable by at least one identifier that is unique to the record.
7+
## Core Principles {.unnumbered}
98

10-
A collection of digital records can be represented by a list of the record identifiers.
9+
The iSamples architecture is built on a set of fundamental principles about how physical samples are represented digitally:
1110

12-
A list of all physical sample digital record identifiers (global record list) can be constructed from the collection lists.
11+
- Physical samples are represented by a **digital record**
12+
- Each digital record is addressable by at least one **identifier** that is unique to the record
13+
- A collection of digital records can be represented by a **list of the record identifiers**
14+
- A list of all physical sample digital record identifiers (**global record list**) can be constructed from the collection lists
15+
- Digital records may be presented in different **serializations** (media type)
16+
- Digital records of a serialization may present different **views** of the same information (profile)
1317

14-
Digital records may be presented in different serializations (media type).
18+
## iSamples Contributions {.unnumbered}
1519

16-
Digital records of a serialization may present different views of the same information (profile).
20+
iSamples has defined:
1721

18-
iSamples has defined a profile applicable to all physical samples.
22+
- A **metadata profile** applicable to all physical samples — see the [Metadata Model](https://isamplesorg.github.io/metadata/)
23+
- A set of **controlled vocabularies** for interoperable sample description — see [Vocabularies](../models/index.qmd)
24+
- A **programmatic interface** for sample discovery and access
25+
- A **browser-based data analysis** approach using geoparquet + DuckDB-WASM — see the [Interactive Explorer](/tutorials/progressive_globe.html)
1926

20-
iSamples has defined a programmatic interface
27+
## Further Reading {.unnumbered}
2128

22-
PlantUML diagram removed for testing [SMR 2024-01-04]
29+
- [Requirements](requirements.html) — 18 use cases and requirements
30+
- [Metadata Model](https://isamplesorg.github.io/metadata/) — schema and data model documentation
31+
- [Vocabularies](../models/index.qmd) — SKOS taxonomies for sample classification

design/requirements.md

Lines changed: 66 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ format:
88
number-sections: false
99
---
1010

11+
Click any requirement to expand its full description.
12+
13+
::: {.callout-note collapse="true"}
1114
## 01 Mint Identifiers
1215

1316
Mint identifiers and manage record.
@@ -28,8 +31,9 @@ Components
2831
- iSB
2932

3033
- [Original Source](https://docs.google.com/document/d/16397FFbd0NjzW93TTD95ZqYkrwEpsC5DzBJnE7xnLPA/edit#heading=h.wm0ue5lp5goi)
34+
:::
3135

32-
36+
::: {.callout-note collapse="true"}
3337
## 02 Awareness of how specimens are being used
3438

3539
Provide metrics that indicate usage of a specimen.
@@ -52,8 +56,9 @@ Components
5256

5357
- iSB
5458
- iSC
59+
:::
5560

56-
61+
::: {.callout-note collapse="true"}
5762
## 03 Availability of all information related to a sample
5863

5964
A sample has related content. All relations (transitive) need to be discoverable in the view of a sample. There are different types of relations. For example an image may be associated with a sample through a relationship that is different to the relationship between a sample and derived products. In an RDF view, the type of relation is the predicate of the association between a sample (subject) and the related item (object). Relationships occur within a context and there may be multiple contexts associated with any content.
@@ -71,8 +76,9 @@ Components
7176
- iSC
7277
- iSB
7378
- Metadata model
79+
:::
7480

75-
81+
::: {.callout-note collapse="true"}
7682
## 04 Define relationships between things such as samples and derived products
7783

7884
Guidelines and mechanisms to support the creation of relationships between things such as samples, images of samples, components of other projects (e.g. Field Notes project of Smithsonian), derived products, annotations.
@@ -97,8 +103,9 @@ Components
97103
- iSC
98104
- iSB
99105
- Portal
106+
:::
100107

101-
108+
::: {.callout-note collapse="true"}
102109
## 05 Support sample management (loans, duplicates, subsamples)
103110

104111
Guidelines and mechanisms to support tracking of samples on loan or moved to a new institution. Allow for duplicate samples in different organizations, as is common in botany. For samples that can be sub-samples, track the subsamples and the status (i.e. amount remaining) of the parent sample.
@@ -121,8 +128,9 @@ Components
121128
- iSC
122129
- iSB
123130
- Portal
131+
:::
124132

125-
133+
::: {.callout-note collapse="true"}
126134
## 06 All metadata for all samples should be searchable and retrievable
127135

128136
Searchable should be against metadata properties. Can also be against relationship types. It may be feasible to search properties of related content up to n steps removed (n=0..?)
@@ -144,8 +152,9 @@ Components
144152
- Metadata model
145153
- iSC (collated metadata)
146154
- iSB (expose metadata, retrieve subsets)
155+
:::
147156

148-
157+
::: {.callout-note collapse="true"}
149158
## 07 Services support content negotiation, alternate renderings
150159

151160
Different renderings of the same content are needed for different purposes. A human should see a different rendering of metadata than a piece of software. Note that the rendering may be performed client side using a programmatic expression of the metadata. For example, a web UI may consume the same JSON to render in HTML that is also used by software.
@@ -161,9 +170,10 @@ Actors
161170
Components
162171

163172
- Any component exposing content
173+
:::
164174

165-
166-
## 08 Recognize that any entity may have multiple identifiers, some of which may not be globally unique.
175+
::: {.callout-note collapse="true"}
176+
## 08 Recognize that any entity may have multiple identifiers
167177

168178
There are many examples of different types of identifiers attached to content. Some identifiers may be well formed (globally unique and resolvable) others may be more context specific. Context specific identifiers should include sufficient information to determine the context.
169179

@@ -190,62 +200,58 @@ Components
190200
- Metadata model
191201
- iSC
192202
- iSB
203+
:::
193204

194-
195-
## 09 Content must be programmatically accessible and transferable to different systems
196-
205+
::: {.callout-note collapse="true"}
206+
## 09 Content must be programmatically accessible and transferable
197207

198208
All content should be accessible through API and should exhibit no loss of information in the transfer to another system.
199209

200210
Note that it is expected that collections of content will be large (>> 10E6 items) so efficient paging, windowing and other subset selection mechanisms are needed.
201211

202212
The web publishing pattern (i.e. robots.txt -> sitemap -> schema.org) should be available for all resources appropriate for broad discovery.
203213

204-
See also [Services support content negotiation, alternate renderings](https://docs.google.com/document/d/16397FFbd0NjzW93TTD95ZqYkrwEpsC5DzBJnE7xnLPA/edit#heading=h.xsuxu7mw1taf)
205-
206214
Derived from:
207215

208216
- O6, R04, R05, R06, R08, R10, R12, R17, G1, G9, G11
209-
217+
210218
Actors
211219

212220
- Research-consumer
213-
221+
214222
Components
215223

216224
- Any components exposing APIs
217-
225+
:::
218226

219-
## 10 User Interfaces for discovery and display of information should be efficient and practical for research use and expose relationships between items as appropriate.
220-
227+
::: {.callout-note collapse="true"}
228+
## 10 User Interfaces for discovery and display
221229

222-
At the global scale, low resolution maps, timescales and general discovery mechanisms are useful. As specificity increases, opportunities for expressing relationships between content as a means of assisting discovery and interpretation can follow.
230+
User Interfaces for discovery and display of information should be efficient and practical for research use and expose relationships between items as appropriate.
223231

224-
See also: 
232+
At the global scale, low resolution maps, timescales and general discovery mechanisms are useful. As specificity increases, opportunities for expressing relationships between content as a means of assisting discovery and interpretation can follow.
225233

226-
- [Availability of all information related to a sample](https://docs.google.com/document/d/16397FFbd0NjzW93TTD95ZqYkrwEpsC5DzBJnE7xnLPA/edit#heading=h.ggvgwq1kyba4)
227-
228-
- [All metadata for all samples should be searchable and retrievable](https://docs.google.com/document/d/16397FFbd0NjzW93TTD95ZqYkrwEpsC5DzBJnE7xnLPA/edit#heading=h.7lzhf0qirmsj)
229-
230234
Derived from:
231235

232236
- O14, R01, R06, R08, G5. G6
233-
237+
234238
Actors
235239

236240
- Research-consumer
237241
- Curator
238-
242+
239243
Components
240244

241245
- iSC
242246
- iSB
243-
247+
:::
244248

245-
## 11 The diversity of metadata standards in use should be supported whilst also encouraging consistency in use and possibly reducing the diversity as appropriate with no loss of meaning.
246-
249+
::: {.callout-note collapse="true"}
250+
## 11 Support diverse metadata standards
247251

248-
There are many metadata formats in use, and this will continue. Creation of new metadata formats should be discouraged by facilitating concept matching to existing metadata elements. 
252+
The diversity of metadata standards in use should be supported whilst also encouraging consistency in use and possibly reducing the diversity as appropriate with no loss of meaning.
253+
254+
There are many metadata formats in use, and this will continue. Creation of new metadata formats should be discouraged by facilitating concept matching to existing metadata elements.
249255

250256
Mixed authority metadata formats should be supported. E.g. a metadata document may contain concepts defined in Dublin Core, ISO-19115, and the Observation Data Model
251257

@@ -258,7 +264,7 @@ Recognize that there are natural levels of aggregation for metadata describing d
258264
Derived from:
259265

260266
- O16, R02, R03, R16, G4, G2, G5, G6, G10, G11
261-
267+
262268
Actors
263269

264270
- Research-contributor
@@ -267,33 +273,32 @@ Actors
267273
Components
268274

269275
- iSB
276+
:::
270277

271-
278+
::: {.callout-note collapse="true"}
272279
## 12 Ingest and deliver meta/data in multiple open formats
273-
274280

275-
Portals  may choose what formats they will allow for data upload and ingest and what format they want to use to deliver data. iSB shouldmust support the use of common open formats such as CSV, JSON, possibly XML and XLSX. 
281+
Portals may choose what formats they will allow for data upload and ingest and what format they want to use to deliver data. iSB should support the use of common open formats such as CSV, JSON, possibly XML and XLSX.
276282

277283
iSC will receive data only from iSB instances and project personnel, so it can limit the number of input formats. Metadata delivered as a result of searching the iSC index should be delivered in one or a few open formats.
278284

279285
Note that translation between serialization formats may result in loss of information. Support of multiple serializations can significantly increase implementation overhead.
280286

281-
Derived from:
282-
283287
Actors:
284288

285289
- Research-contributor
286290
- Curator
287-
291+
288292
Components
289293

290294
- iSB
291295
- iSC
292296
- Portal
293-
297+
:::
294298

299+
::: {.callout-note collapse="true"}
295300
## 13 Support creation of identifiers early in a project
296-
301+
297302
Early association of an identifier with content improves efficiency of data handling. Ideally, identifiers should be reliably mintable with no knowledge except for an initial state.
298303

299304
Derived from:
@@ -308,12 +313,12 @@ Actors:
308313
Components
309314

310315
- iSB
311-
316+
:::
312317

313-
## 14 Web interfaces should be flexible and loosely coupled through standard APIs to encourage diverse adoption
314-
318+
::: {.callout-note collapse="true"}
319+
## 14 Web interfaces should be flexible and loosely coupled
315320

316-
Portal web interfaces can serve a variety of audiences. In some cases (e.g. iSC) the interface will serve a very broad, diverse community. Other instances may be very specific (e.g. iSB or web UI serving the needs of a specific project). 
321+
Portal web interfaces can serve a variety of audiences. In some cases (e.g. iSC) the interface will serve a very broad, diverse community. Other instances may be very specific (e.g. iSB or web UI serving the needs of a specific project).
317322

318323
UIs should leverage standard APIs as far as possible, and underlying infrastructure should similarly express APIs using standard mechanisms.
319324

@@ -323,7 +328,6 @@ Derived from:
323328

324329
- R05, R09, R08, R06, R10, R12
325330

326-
327331
Actors
328332

329333
- Research-contributor
@@ -333,10 +337,12 @@ Actors
333337
Components
334338

335339
- All
336-
340+
:::
341+
342+
::: {.callout-note collapse="true"}
343+
## 15 Dynamic content synchronization
337344

338-
## 15 All content sources should be assumed to be dynamic and attached components should facilitate efficient synchronization of subscribed content.
339-
345+
All content sources should be assumed to be dynamic and attached components should facilitate efficient synchronization of subscribed content.
340346

341347
With the transition to geoparquet-based data access, content synchronization now occurs through periodic updates of parquet files rather than real-time API synchronization. This approach provides better performance and reliability for analytical workloads.
342348

@@ -355,10 +361,10 @@ Components
355361

356362
- iSC
357363
- iSB
358-
364+
:::
359365

360-
## 16 Data and metadata to be stored by iSamples in a box.
361-
366+
::: {.callout-note collapse="true"}
367+
## 16 Data and metadata storage
362368

363369
SESAR would like to utilize iSB as a data repository.
364370

@@ -378,18 +384,18 @@ Actors
378384
Components
379385

380386
- iSB
387+
:::
381388

382-
383-
## 17 Content may not all be publicly accessible.
384-
389+
::: {.callout-note collapse="true"}
390+
## 17 Content may not all be publicly accessible
385391

386392
There may be content (metadata, data, related content) with information that should not be publicly accessible (e.g. artifact location). This implies that the system should either reject access controlled content or implement access control at all levels.
387393

388394
Implementation of access control all or nothing. It must be integrated at all levels and rigorous. A break in trust can have significant consequences beyond the project.
389395

390396
Leverage existing user management infrastructure as far as possible. ORCID for user identification, oauth + JWT for access
391397

392-
Group management should be delegated to another system if possible. TODO: suggestions for infrastructure? Enable arbitrary group creation, management. Roles.
398+
Group management should be delegated to another system if possible.
393399

394400
Derived from:
395401

@@ -402,10 +408,10 @@ Actors
402408
Components
403409

404410
- All
405-
411+
:::
406412

407-
## 18 Validation rules can assist with production of higher quality content. 
408-
413+
::: {.callout-note collapse="true"}
414+
## 18 Validation rules can assist with production of higher quality content
409415

410416
Just like a spell checker, validation rules can assist with production of higher quality content. Validation rules should be sharable and reusable. Content entry / editing systems should leverage validation mechanisms for immediate user feedback and/or guidance.
411417

@@ -414,13 +420,14 @@ Note that validation is context dependent, and the validity rules may change ove
414420
Derived from:
415421

416422
- G4, G8
417-
423+
418424
Actors
419425

420426
- Research-contributor
421427
- Curator
422-
428+
423429
Components
424430

425431
- Portal
426432
- iSB
433+
:::

0 commit comments

Comments
 (0)