Project

General

Profile

Actions

Design #347

open

Comment on the DWD data structure for lookup tables

Added by Joseph Potvin 8 months ago. Updated 4 months ago.

Status:
New
Priority:
Normal
Category:
Research
Start date:
02/08/2026
Due date:
% Done:

0%

Estimated time:
(Total: 0.00 h)

Description

Andrew and Charles, I'd appreciate comments and questions on the following. For reference, you could look at the attached CSV table in a spreadsheet. The purpose of the DWD data structure is to simultaneously optimize for simplicity (only one added character, which is pipe: '|'); compact storage (on a single row of a reference table); easy human auditability; fast processing; and a clean consistent structure that can be auto-adapted to any table.

The DWD Coordinate List looks like this:

INDEX|DATA|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|
|W1|COLUMNHEADER|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|
|W1.1|Function|1|7|13|19|25|
|W1.2|Attribute|2|8|14|20|26|
|W1.3|1960s-1970s|3|9|15|21|27|
|W1.4|1980s-1990s|4|10|16|22|28|
|W1.5|2000s-2010s|5|11|17|23|29|
|W1.6|2020s-2030s|6|12|18|24|30|
|T_W1.1|Communication Devices|1|
|T_W1.2|Wired|2|
|T_W1.3|Landline Phones|3|
|T_W1.4|Fax Machines|4|
|T_W1.5|ISDN/DSL; Fibre-Optic|5|
|T_W1.6|Multiplexed Fibre-Optic; Brain-Computer|6|
|T_W1.1|Communication Devices|7|
|T_W1.2|Wireless|8|
|T_W1.3|Radio; Television|9|
|T_W1.4|Wireless Phones|10|
|T_W1.5|Smartphones|11|
|T_W1.6|IoT; 5G/6G; Satellite Internet|12|
|T_W1.1|General-Purpose Computers|13|
|T_W1.2|Platform|14|
|T_W1.3|Mainframe Computers|15|
|T_W1.4|Desktop Computers|16|
|T_W1.5|Laptops/Tablets; Smartphones|17|
|T_W1.6|IoT; mRNA|18|
|T_W1.1|General-Purpose Computers|19|
|T_W1.2|Mobility|20|
|T_W1.3|Stationary|21|
|T_W1.4|Movable|22|
|T_W1.5|Mobile|23|
|T_W1.6|Ubiquitous; Ambient|24|
|T_W1.1|General-Purpose Computers|25|
|T_W1.2|Storage|26|
|T_W1.3|Magnetic Tapes|27|
|T_W1.4|Floppy Disks; CDs|28|
|T_W1.5|Flash Drives; Central Cloud|29|
|T_W1.6|ReRAM/3D-NAND Drives; IPFS Cloud; DNA|30|

The expanded DWD Array for that data is like this (which is easier to 'see' when right-justified):

|INDEX|DATA|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|
|W1|COLUMNHEADER|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|
|W1.1|Function|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|
|W1.2|Attribute|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|
|W1.3|1960s-1970s|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|
|W1.4|1980s-1990s|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|
|W1.5|2000s-2010s|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|
|W1.6|2020s-2030s|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|0|0|0|0|0|1|
|T_W1.1|Communication Devices|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.2|Wired|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.3|Landline Phones|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.4|Fax Machines|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.5|ISDN/DSL; Fibre-Optic|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.6|Multiplexed Fibre-Optic; Brain-Computer|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.1|Communication Devices|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.2|Wireless|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.3|Radio; Television|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.4|Wireless Phones|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.5|Smartphones|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.6|IoT; 5G/6G; Satellite Internet|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.1|General-Purpose Computers|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.2|Platform|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.3|Mainframe Computers|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.4|Desktop Computers|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.5|Laptops/Tablets; Smartphones|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.6|IoT; mRNA|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.1|General-Purpose Computers|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|0|
|T_W1.2|Mobility|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|0|
|T_W1.3|Stationary|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|0|
|T_W1.4|Movable|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|0|
|T_W1.5|Mobile|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|0|
|T_W1.6|Ubiquitous; Ambient|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|0|
|T_W1.1|General-Purpose Computers|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|0|
|T_W1.2|Storage|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|0|
|T_W1.3|Magnetic Tapes|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|0|
|T_W1.4|Floppy Disks; CDs|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0|
|T_W1.5|Flash Drives; Central Cloud|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|
|T_W1.6|ReRAM/3D-NAND Drives; IPFS Cloud; DNA|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|

The CSV, shown below, would be difficult for a human to audit, especially if this table were much larger, because it's not obvious to distinguish secondary keys from values. Beyond a tiny table, it becomes just a data blob. By comparison, the DWD data structure is more intuitive and, with the API, would be faster for a computer to process.

Function,Attribute,1960s-1970s,1980s-1990s,2000s-2010s,2020s-2030s
Communication Devices,Wired,Landline Phones,Fax Machines,ISDN/DSL; Fibre-Optic,Multiplexed Fibre-Optic; Brain-Computer
Communication Devices,Wireless,Radio; Television,Wireless Phones,Smartphones,IoT; 5G/6G; Satellite Internet
General-Purpose Computers,Platform,Mainframe Computers,Desktop Computers,Laptops/Tablets; Smartphones,IoT; mRNA
General-Purpose Computers,Mobility,Stationary,Movable,Mobile,Ubiquitous; Ambient
General-Purpose Computers,Storage,Magnetic Tapes,Floppy Disks; CDs,Flash Drives; Central Cloud,ReRAM/3D-NAND Drives; IPFS Cloud; DNA

The SQL could look like this:

CREATE TABLE technology_categories (
    id INT PRIMARY KEY,
    category_name VARCHAR(50) NOT NULL
);

CREATE TABLE technology_attributes (
    id INT PRIMARY KEY,
    category_id INT,
    attribute_name VARCHAR(50) NOT NULL,
    FOREIGN KEY (category_id) REFERENCES technology_categories(id)
);

CREATE TABLE technology_evolution (
    id INT PRIMARY KEY,
    attribute_id INT,
    era VARCHAR(20),
    technologies TEXT,
    FOREIGN KEY (attribute_id) REFERENCES technology_attributes(id)
);

With data:
sql

INSERT INTO technology_categories VALUES
(1, 'Communication Devices'),
(2, 'General-Purpose Computers');

INSERT INTO technology_attributes VALUES
(1, 1, 'Wired'),
(2, 1, 'Wireless'),
(3, 2, 'Platform'),
(4, 2, 'Mobility'),
(5, 2, 'Storage');

INSERT INTO technology_evolution VALUES
(1, 1, '1960s-1970s', 'Landline Phones'),
(2, 1, '1980s-1990s', 'Fax Machines'),
(3, 1, '2000s-2010s', 'ISDN/DSL; Fibre-Optic'),
(4, 1, '2020s-2030s', 'Multiplexed Fibre-Optic; Brain-Computer'),
(5, 2, '1960s-1970s', 'Radio; Television'),
(6, 2, '1980s-1990s', 'Wireless Phones'),
(7, 2, '2000s-2010s', 'Smartphones'),
(8, 2, '2020s-2030s', 'IoT; 5G/6G; Satellite Internet'),
(9, 3, '1960s-1970s', 'Mainframe Computers'),
(10, 3, '1980s-1990s', 'Desktop Computers'),
(11, 3, '2000s-2010s', 'Laptops/Tablets; Smartphones'),
(12, 3, '2020s-2030s', 'IoT; mRNA'),
(13, 4, '1960s-1970s', 'Stationary'),
(14, 4, '1980s-1990s', 'Movable'),
(15, 4, '2000s-2010s', 'Mobile'),
(16, 4, '2020s-2030s', 'Ubiquitous; Ambient'),
(17, 5, '1960s-1970s', 'Magnetic Tapes'),
(18, 5, '1980s-1990s', 'Floppy Disks; CDs'),
(19, 5, '2000s-2010s', 'Flash Drives; Central Cloud'),
(20, 5, '2020s-2030s', 'ReRAM/3D-NAND Drives; IPFS Cloud; DNA');

Files

computing-history-table.csv computing-history-table.csv 620 Bytes Joseph Potvin, 10/10/2025 03:38 PM
computing-history_dwd-array.png View computing-history_dwd-array.png 63.7 KB Joseph Potvin, 10/12/2025 09:03 AM

Subtasks 1 (1 open0 closed)

Output 2: Rule Authoring Software - Feature #359: DWD format design: uniform metadata fieldsNewJoseph Potvin02/08/2026

Actions
Actions

Also available in: Atom PDF