COLD - curating objects with Deno, Dataset and SQLite3

R. S. Doiel,

Caltech Library, Digital Library Development

November 15, 2024

How do manage metadata about People, Groups and controlled vocabularies?

Spreadsheets!

A spreadsheet sprouted a problem

What does a solution look like?

  1. A simple way to curate collections of metadata objects
  2. A data source for https://feeds.library.caltech.edu
  3. A means of generating RDM vocabularies

Our answer, COLD

COLD
Controlled Object Lists with Dataset

What does COLD do?

COLD is an application for curating collections of metadata objects

Used for…

Deliverables

Project status

A quick tour of COLD

Demo of Pilot deployment

Development history

Four prototypes

  1. Python and PostgreSQL via Flask/ORM (way too much code to maintain)
  2. Go plus SQLite3 and browser side JavaScript (better but required JS browser side)
  3. Go, PostgreSQL+PostgREST (cumbersome, too heavy weight)
  4. Deno & Dataset using SQLite3 storage (final version)

Current Pilot

Built in three parts

  1. cold (TypeScript & Handlebars templates: web UI)
  2. cold_reports (TypeScript: report runner service)
  3. cold_api (YAML configuration: back end JSON API)

Current Pilot (the gory details)

What I used “off the shelf”

What is Deno?

Why Deno and not NodeJS?

Why TypeScript? Why not Go or Python?

Why TypeScript? Why not JavaScript?

Why compiled?

What is Dataset?

Why Dataset?

Developing with Deno and Dataset

Take away

Plans for the future

Reference URLs