@causari/mcp-server 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +23 -0
- package/README.md +256 -0
- package/dist/chunk-7XWPOH6R.js +4552 -0
- package/dist/chunk-R5UFW6H7.js +61 -0
- package/dist/cli.js +18 -0
- package/dist/index.d.ts +209 -0
- package/dist/index.js +10 -0
- package/dist/smoke.js +143 -0
- package/package.json +38 -0
|
@@ -0,0 +1,4552 @@
|
|
|
1
|
+
// ../../packages/ckg/dist/store.js
|
|
2
|
+
var CKGStore = class {
|
|
3
|
+
events = /* @__PURE__ */ new Map();
|
|
4
|
+
links = /* @__PURE__ */ new Map();
|
|
5
|
+
insights = /* @__PURE__ */ new Map();
|
|
6
|
+
// Adjacency indexes for fast causal traversal.
|
|
7
|
+
// outgoing[A] = links where A is the cause; incoming[A] = links where A is the effect.
|
|
8
|
+
outgoing = /* @__PURE__ */ new Map();
|
|
9
|
+
incoming = /* @__PURE__ */ new Map();
|
|
10
|
+
constructor(seed10) {
|
|
11
|
+
if (seed10) {
|
|
12
|
+
seed10.events?.forEach((e) => this.addEvent(e));
|
|
13
|
+
seed10.causalLinks?.forEach((l) => this.addLink(l));
|
|
14
|
+
seed10.insights?.forEach((i) => this.addInsight(i));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
addEvent(e) {
|
|
18
|
+
this.events.set(e.id, e);
|
|
19
|
+
}
|
|
20
|
+
addLink(l) {
|
|
21
|
+
if (!this.events.has(l.fromEvent) || !this.events.has(l.toEvent)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.links.set(l.id, l);
|
|
25
|
+
if (!this.outgoing.has(l.fromEvent))
|
|
26
|
+
this.outgoing.set(l.fromEvent, []);
|
|
27
|
+
this.outgoing.get(l.fromEvent).push(l);
|
|
28
|
+
if (!this.incoming.has(l.toEvent))
|
|
29
|
+
this.incoming.set(l.toEvent, []);
|
|
30
|
+
this.incoming.get(l.toEvent).push(l);
|
|
31
|
+
}
|
|
32
|
+
addInsight(i) {
|
|
33
|
+
this.insights.set(i.id, i);
|
|
34
|
+
}
|
|
35
|
+
getEvent(id) {
|
|
36
|
+
return this.events.get(id);
|
|
37
|
+
}
|
|
38
|
+
getLink(id) {
|
|
39
|
+
return this.links.get(id);
|
|
40
|
+
}
|
|
41
|
+
getInsight(id) {
|
|
42
|
+
return this.insights.get(id);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* All outgoing causal links from a given event (this event as cause).
|
|
46
|
+
* Filtered by minConfidence if provided.
|
|
47
|
+
*/
|
|
48
|
+
outgoingFrom(eventId, minConfidence = 0) {
|
|
49
|
+
const links = this.outgoing.get(eventId) ?? [];
|
|
50
|
+
return minConfidence > 0 ? links.filter((l) => l.confidence >= minConfidence) : links;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* All incoming causal links into a given event (this event as effect).
|
|
54
|
+
*/
|
|
55
|
+
incomingTo(eventId, minConfidence = 0) {
|
|
56
|
+
const links = this.incoming.get(eventId) ?? [];
|
|
57
|
+
return minConfidence > 0 ? links.filter((l) => l.confidence >= minConfidence) : links;
|
|
58
|
+
}
|
|
59
|
+
allEvents() {
|
|
60
|
+
return Array.from(this.events.values());
|
|
61
|
+
}
|
|
62
|
+
allLinks() {
|
|
63
|
+
return Array.from(this.links.values());
|
|
64
|
+
}
|
|
65
|
+
allInsights() {
|
|
66
|
+
return Array.from(this.insights.values());
|
|
67
|
+
}
|
|
68
|
+
stats(scope = "world") {
|
|
69
|
+
const events = this.allEvents().filter((e) => e.scope === scope);
|
|
70
|
+
const links = this.allLinks().filter((l) => l.scope === scope);
|
|
71
|
+
const insights = this.allInsights();
|
|
72
|
+
const domains = {};
|
|
73
|
+
for (const e of events) {
|
|
74
|
+
for (const d of e.domains) {
|
|
75
|
+
domains[d] = (domains[d] ?? 0) + 1;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
eventCount: events.length,
|
|
80
|
+
causalLinkCount: links.length,
|
|
81
|
+
insightCount: insights.length,
|
|
82
|
+
domains,
|
|
83
|
+
scope,
|
|
84
|
+
lastUpdated: (/* @__PURE__ */ new Date()).toISOString()
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// ../../packages/ckg/dist/seed/events.js
|
|
90
|
+
var demoSource = {
|
|
91
|
+
type: "demo-seed",
|
|
92
|
+
reliability: 0.95,
|
|
93
|
+
citation: "Causari demo-v2.0.html curated baseline"
|
|
94
|
+
};
|
|
95
|
+
function ev(e) {
|
|
96
|
+
return { ...e, scope: "world", sources: [demoSource] };
|
|
97
|
+
}
|
|
98
|
+
var seedEvents = [
|
|
99
|
+
// ── Core historical chain ──────────────────────────────────────────────
|
|
100
|
+
ev({
|
|
101
|
+
id: "lang",
|
|
102
|
+
title: "Emergence of Language",
|
|
103
|
+
description: "The cognitive revolution that turned thought into syntax. Language became the first protocol for transmitting structured information across minds and generations, enabling symbolic worldviews and the social fabric of belief.",
|
|
104
|
+
yearNum: -7e4,
|
|
105
|
+
yearLabel: "70k BCE",
|
|
106
|
+
precision: "millennium",
|
|
107
|
+
domains: ["humanities", "culture", "systems"],
|
|
108
|
+
impactScore: 0.95,
|
|
109
|
+
tags: ["communication", "origin", "cognition", "protocol"]
|
|
110
|
+
}),
|
|
111
|
+
ev({
|
|
112
|
+
id: "write",
|
|
113
|
+
title: "Invention of Writing",
|
|
114
|
+
description: "Encoding knowledge into matter. Writing externalized memory beyond the human brain \u2014 the first storage layer of civilization, enabling cumulative culture across centuries.",
|
|
115
|
+
yearNum: -3500,
|
|
116
|
+
yearLabel: "3500 BCE",
|
|
117
|
+
precision: "century",
|
|
118
|
+
domains: ["humanities", "technology", "systems"],
|
|
119
|
+
impactScore: 0.92,
|
|
120
|
+
tags: ["storage", "knowledge", "memory", "cuneiform"]
|
|
121
|
+
}),
|
|
122
|
+
ev({
|
|
123
|
+
id: "alex",
|
|
124
|
+
title: "Library of Alexandria",
|
|
125
|
+
description: "Centralized data architecture v1.0. The peak of ancient curiosity \u2014 a deliberate attempt to aggregate global knowledge in one place. Foreshadowed both the promise and fragility of centralized information systems.",
|
|
126
|
+
yearNum: -331,
|
|
127
|
+
yearLabel: "331 BCE",
|
|
128
|
+
precision: "year",
|
|
129
|
+
domains: ["humanities", "systems"],
|
|
130
|
+
impactScore: 0.78,
|
|
131
|
+
tags: ["library", "knowledge", "centralization"],
|
|
132
|
+
wikidataId: "Q177260"
|
|
133
|
+
}),
|
|
134
|
+
ev({
|
|
135
|
+
id: "rome",
|
|
136
|
+
title: "Fall of the Roman Empire",
|
|
137
|
+
description: "Information flow disruption at civilization scale. The breakdown shows how complex coordination systems can collapse when their substrate (roads, administration, literacy) erodes \u2014 the dark ages were a system breakdown more than an absence.",
|
|
138
|
+
yearNum: 476,
|
|
139
|
+
yearLabel: "476 CE",
|
|
140
|
+
precision: "year",
|
|
141
|
+
domains: ["systems", "geopolitics", "humanities"],
|
|
142
|
+
impactScore: 0.82,
|
|
143
|
+
tags: ["collapse", "history", "system-failure"],
|
|
144
|
+
wikidataId: "Q40878"
|
|
145
|
+
}),
|
|
146
|
+
ev({
|
|
147
|
+
id: "printing",
|
|
148
|
+
title: "Gutenberg Printing Press",
|
|
149
|
+
description: "Mechanical replication broke the church/state monopoly on knowledge distribution. Mass-produced text democratized information, directly enabling the Reformation, Renaissance, and Scientific Revolution.",
|
|
150
|
+
yearNum: 1440,
|
|
151
|
+
yearLabel: "1440",
|
|
152
|
+
precision: "decade",
|
|
153
|
+
domains: ["technology", "humanities"],
|
|
154
|
+
impactScore: 0.94,
|
|
155
|
+
tags: ["technology", "distribution", "revolution", "broadcast"],
|
|
156
|
+
wikidataId: "Q11331"
|
|
157
|
+
}),
|
|
158
|
+
ev({
|
|
159
|
+
id: "rena",
|
|
160
|
+
title: "Renaissance",
|
|
161
|
+
description: "The kernel update of European civilization. Recovery of classical knowledge plus printed dissemination produced a step-change in scientific method, art, and humanist philosophy.",
|
|
162
|
+
yearNum: 1500,
|
|
163
|
+
yearLabel: "1500",
|
|
164
|
+
precision: "century",
|
|
165
|
+
domains: ["humanities", "science", "culture"],
|
|
166
|
+
impactScore: 0.88,
|
|
167
|
+
tags: ["rebirth", "science", "art", "humanism"],
|
|
168
|
+
wikidataId: "Q4692"
|
|
169
|
+
}),
|
|
170
|
+
ev({
|
|
171
|
+
id: "indus",
|
|
172
|
+
title: "Industrial Revolution",
|
|
173
|
+
description: "Energy transformation: chemical \u2192 mechanical \u2192 social. Power grid v1 reorganized human society around production, urbanization, and capital \u2014 and started the carbon curve that defines climate today.",
|
|
174
|
+
yearNum: 1800,
|
|
175
|
+
yearLabel: "1800",
|
|
176
|
+
precision: "decade",
|
|
177
|
+
domains: ["technology", "economy", "environment"],
|
|
178
|
+
impactScore: 0.96,
|
|
179
|
+
tags: ["technology", "energy", "revolution", "urbanization"],
|
|
180
|
+
wikidataId: "Q43332"
|
|
181
|
+
}),
|
|
182
|
+
// ── 1859→1953 scientific transition ───────────────────────────────────
|
|
183
|
+
ev({
|
|
184
|
+
id: "darwin_ev",
|
|
185
|
+
title: "Darwinian Evolution",
|
|
186
|
+
description: "Natural selection replaced creation theory. Reframed humanity as one species among many \u2014 a biological algorithm, not a designed peak.",
|
|
187
|
+
yearNum: 1859,
|
|
188
|
+
yearLabel: "1859",
|
|
189
|
+
precision: "year",
|
|
190
|
+
domains: ["science", "systems", "philosophy"],
|
|
191
|
+
impactScore: 0.85,
|
|
192
|
+
tags: ["evolution", "biology", "theory", "naturalism"],
|
|
193
|
+
wikidataId: "Q83337"
|
|
194
|
+
}),
|
|
195
|
+
ev({
|
|
196
|
+
id: "relativity",
|
|
197
|
+
title: "General Relativity",
|
|
198
|
+
description: "Spacetime is curved by mass. Einstein's theory dissolved Newton's absolute frame and laid the foundation for modern cosmology, GPS, and our understanding of gravity at scale.",
|
|
199
|
+
yearNum: 1915,
|
|
200
|
+
yearLabel: "1915",
|
|
201
|
+
precision: "year",
|
|
202
|
+
domains: ["science", "technology"],
|
|
203
|
+
impactScore: 0.86,
|
|
204
|
+
tags: ["physics", "science", "einstein", "spacetime"],
|
|
205
|
+
wikidataId: "Q11452"
|
|
206
|
+
}),
|
|
207
|
+
ev({
|
|
208
|
+
id: "turing_m",
|
|
209
|
+
title: "Turing Machine",
|
|
210
|
+
description: "Can a machine think? Turing's universal computation model \u2014 and the test that bears his name \u2014 set the agenda for computer science and artificial intelligence for the next 75 years.",
|
|
211
|
+
yearNum: 1950,
|
|
212
|
+
yearLabel: "1950",
|
|
213
|
+
precision: "year",
|
|
214
|
+
domains: ["technology", "science", "philosophy"],
|
|
215
|
+
impactScore: 0.88,
|
|
216
|
+
tags: ["computing", "AI", "theory", "turing"],
|
|
217
|
+
wikidataId: "Q163310"
|
|
218
|
+
}),
|
|
219
|
+
ev({
|
|
220
|
+
id: "dna_disc",
|
|
221
|
+
title: "DNA Double Helix",
|
|
222
|
+
description: "Watson and Crick decoded the structure of life's source code. Established that biology runs on a digital substrate \u2014 a discovery that converges with computing 50 years later in synthetic biology.",
|
|
223
|
+
yearNum: 1953,
|
|
224
|
+
yearLabel: "1953",
|
|
225
|
+
precision: "year",
|
|
226
|
+
domains: ["science", "systems", "health"],
|
|
227
|
+
impactScore: 0.9,
|
|
228
|
+
tags: ["biology", "code", "genetics", "helix"],
|
|
229
|
+
wikidataId: "Q7430"
|
|
230
|
+
}),
|
|
231
|
+
// ── 1969→2017 digital cluster ─────────────────────────────────────────
|
|
232
|
+
ev({
|
|
233
|
+
id: "internet",
|
|
234
|
+
title: "ARPANET / Internet",
|
|
235
|
+
description: "The first packet-switched network \u2014 a unified protocol that turned the planet into a single information substrate. Echoes the printing press at 100x scale and 1000x speed.",
|
|
236
|
+
yearNum: 1969,
|
|
237
|
+
yearLabel: "1969",
|
|
238
|
+
precision: "year",
|
|
239
|
+
domains: ["technology", "systems"],
|
|
240
|
+
impactScore: 0.96,
|
|
241
|
+
tags: ["network", "technology", "communication", "tcp-ip"],
|
|
242
|
+
wikidataId: "Q75"
|
|
243
|
+
}),
|
|
244
|
+
ev({
|
|
245
|
+
id: "web",
|
|
246
|
+
title: "World Wide Web",
|
|
247
|
+
description: "Tim Berners-Lee gave the internet a navigable surface. HTTP/HTML flattened information hierarchy and set the conditions for the platform economy.",
|
|
248
|
+
yearNum: 1991,
|
|
249
|
+
yearLabel: "1991",
|
|
250
|
+
precision: "year",
|
|
251
|
+
domains: ["technology"],
|
|
252
|
+
impactScore: 0.92,
|
|
253
|
+
tags: ["internet", "technology", "http", "hypertext"],
|
|
254
|
+
wikidataId: "Q466"
|
|
255
|
+
}),
|
|
256
|
+
ev({
|
|
257
|
+
id: "genome",
|
|
258
|
+
title: "Human Genome Project",
|
|
259
|
+
description: "Reading the complete genetic blueprint of Homo sapiens. Made personalized medicine possible and accelerated biotech by orders of magnitude.",
|
|
260
|
+
yearNum: 2003,
|
|
261
|
+
yearLabel: "2003",
|
|
262
|
+
precision: "year",
|
|
263
|
+
domains: ["science", "health"],
|
|
264
|
+
impactScore: 0.84,
|
|
265
|
+
tags: ["biology", "genetics", "code", "genome"],
|
|
266
|
+
wikidataId: "Q190977"
|
|
267
|
+
}),
|
|
268
|
+
ev({
|
|
269
|
+
id: "iphone",
|
|
270
|
+
title: "iPhone / Smartphone Era",
|
|
271
|
+
description: "The pocket computer became universal. Always-on connectivity restructured attention, work, and social life \u2014 and seeded the data economy that fuels modern AI.",
|
|
272
|
+
yearNum: 2007,
|
|
273
|
+
yearLabel: "2007",
|
|
274
|
+
precision: "year",
|
|
275
|
+
domains: ["technology", "culture", "economy"],
|
|
276
|
+
impactScore: 0.88,
|
|
277
|
+
tags: ["mobile", "technology", "device", "smartphone"],
|
|
278
|
+
wikidataId: "Q2766"
|
|
279
|
+
}),
|
|
280
|
+
ev({
|
|
281
|
+
id: "bitcoin",
|
|
282
|
+
title: "Bitcoin / Blockchain",
|
|
283
|
+
description: "The first decentralized ledger. Introduced trustless coordination \u2014 algorithm replacing institution \u2014 and demonstrated programmable scarcity.",
|
|
284
|
+
yearNum: 2009,
|
|
285
|
+
yearLabel: "2009",
|
|
286
|
+
precision: "year",
|
|
287
|
+
domains: ["technology", "economy", "systems"],
|
|
288
|
+
impactScore: 0.78,
|
|
289
|
+
tags: ["crypto", "technology", "decentralized", "blockchain"],
|
|
290
|
+
wikidataId: "Q131723"
|
|
291
|
+
}),
|
|
292
|
+
ev({
|
|
293
|
+
id: "transformer",
|
|
294
|
+
title: "Transformer Architecture",
|
|
295
|
+
description: "The 'Attention Is All You Need' paper \u2014 the architecture underlying GPT, Claude, and every modern LLM. Made language a first-class computational object.",
|
|
296
|
+
yearNum: 2017,
|
|
297
|
+
yearLabel: "2017",
|
|
298
|
+
precision: "year",
|
|
299
|
+
domains: ["technology", "science"],
|
|
300
|
+
impactScore: 0.93,
|
|
301
|
+
tags: ["AI", "deep-learning", "architecture", "attention", "llm"]
|
|
302
|
+
}),
|
|
303
|
+
// ── Present + speculative future anchors ──────────────────────────────
|
|
304
|
+
ev({
|
|
305
|
+
id: "ai",
|
|
306
|
+
title: "AI Era (Present)",
|
|
307
|
+
description: "Generative AI crosses from research to mass deployment. Self-referential intelligence: AI helps build AI, AI helps design biology, AI mediates most knowledge work.",
|
|
308
|
+
yearNum: 2026,
|
|
309
|
+
yearLabel: "2026",
|
|
310
|
+
precision: "year",
|
|
311
|
+
domains: ["technology", "science", "economy", "culture"],
|
|
312
|
+
impactScore: 0.97,
|
|
313
|
+
tags: ["ai", "present", "llm", "agent"]
|
|
314
|
+
}),
|
|
315
|
+
ev({
|
|
316
|
+
id: "mar",
|
|
317
|
+
title: "Multi-planetary Expansion",
|
|
318
|
+
description: "Speculative: humanity becomes a multi-planet species. Early Mars settlement and orbital habitats redistribute civilization across distributed nodes.",
|
|
319
|
+
yearNum: 2080,
|
|
320
|
+
yearLabel: "2080",
|
|
321
|
+
precision: "decade",
|
|
322
|
+
domains: ["technology", "systems"],
|
|
323
|
+
impactScore: 0.7,
|
|
324
|
+
tags: ["space", "future", "expansion", "mars"],
|
|
325
|
+
forecastConfidence: 0.4,
|
|
326
|
+
forecastReasoning: "Extrapolation from current space industry growth + cost curves"
|
|
327
|
+
}),
|
|
328
|
+
ev({
|
|
329
|
+
id: "omega",
|
|
330
|
+
title: "Omega (Heat Death)",
|
|
331
|
+
description: "Cosmological end state. The eventual silence of the universe \u2014 the outer bound of all possible timelines.",
|
|
332
|
+
yearNum: 1e100,
|
|
333
|
+
yearLabel: "\u221E",
|
|
334
|
+
precision: "millennium",
|
|
335
|
+
domains: ["science", "philosophy"],
|
|
336
|
+
impactScore: 0.5,
|
|
337
|
+
tags: ["end", "future", "eternal", "cosmology"]
|
|
338
|
+
}),
|
|
339
|
+
// ── Forecast nodes (UC4) ──────────────────────────────────────────────
|
|
340
|
+
ev({
|
|
341
|
+
id: "forecast_quantum",
|
|
342
|
+
title: "Practical Quantum Computing",
|
|
343
|
+
description: "Quantum computers cross the threshold of practical advantage for specific problem classes (cryptography, simulation, optimization).",
|
|
344
|
+
yearNum: 2032,
|
|
345
|
+
yearLabel: "2032",
|
|
346
|
+
precision: "year",
|
|
347
|
+
domains: ["technology", "science"],
|
|
348
|
+
impactScore: 0.75,
|
|
349
|
+
tags: ["quantum", "forecast", "computing"],
|
|
350
|
+
forecastConfidence: 0.78,
|
|
351
|
+
forecastReasoning: "Computer Science \u2192 Moore's Law extrapolation + current quantum hardware progress"
|
|
352
|
+
}),
|
|
353
|
+
ev({
|
|
354
|
+
id: "forecast_neural",
|
|
355
|
+
title: "Neural Interfaces (Mainstream)",
|
|
356
|
+
description: "Brain-computer interfaces transition from medical-only to consumer-grade for memory augmentation and direct AI interaction.",
|
|
357
|
+
yearNum: 2030,
|
|
358
|
+
yearLabel: "2030",
|
|
359
|
+
precision: "year",
|
|
360
|
+
domains: ["technology", "science", "health"],
|
|
361
|
+
impactScore: 0.7,
|
|
362
|
+
tags: ["neural", "forecast", "BCI", "augmentation"],
|
|
363
|
+
forecastConfidence: 0.65,
|
|
364
|
+
forecastReasoning: "Brain Science + AI integration + current Neuralink/synchron progress"
|
|
365
|
+
}),
|
|
366
|
+
ev({
|
|
367
|
+
id: "forecast_mars",
|
|
368
|
+
title: "First Mars Settlement",
|
|
369
|
+
description: "Permanent human habitation on Mars (>50 people, >1 year). Humanity becomes biologically multi-planetary.",
|
|
370
|
+
yearNum: 2042,
|
|
371
|
+
yearLabel: "2042",
|
|
372
|
+
precision: "year",
|
|
373
|
+
domains: ["technology", "systems"],
|
|
374
|
+
impactScore: 0.72,
|
|
375
|
+
tags: ["space", "forecast", "mars", "colonization"],
|
|
376
|
+
forecastConfidence: 0.62,
|
|
377
|
+
forecastReasoning: "SpaceX trajectory + cost curves + government program funding"
|
|
378
|
+
}),
|
|
379
|
+
ev({
|
|
380
|
+
id: "forecast_renewable",
|
|
381
|
+
title: "Global Renewable Dominance",
|
|
382
|
+
description: "Renewable energy sources exceed 50% of global generation, with distributed storage solving intermittency.",
|
|
383
|
+
yearNum: 2031,
|
|
384
|
+
yearLabel: "2031",
|
|
385
|
+
precision: "year",
|
|
386
|
+
domains: ["technology", "environment", "systems"],
|
|
387
|
+
impactScore: 0.85,
|
|
388
|
+
tags: ["energy", "forecast", "renewable", "climate"],
|
|
389
|
+
forecastConfidence: 0.8,
|
|
390
|
+
forecastReasoning: "Energy revolution trend + LCOE curves + storage progress"
|
|
391
|
+
}),
|
|
392
|
+
ev({
|
|
393
|
+
id: "forecast_agi",
|
|
394
|
+
title: "AGI Threshold",
|
|
395
|
+
description: "Multi-purpose artificial intelligence reaches or exceeds human cognitive performance across most domains.",
|
|
396
|
+
yearNum: 2040,
|
|
397
|
+
yearLabel: "2040",
|
|
398
|
+
precision: "year",
|
|
399
|
+
domains: ["technology", "science", "philosophy"],
|
|
400
|
+
impactScore: 0.95,
|
|
401
|
+
tags: ["agi", "forecast", "ai", "general-intelligence"],
|
|
402
|
+
forecastConfidence: 0.55,
|
|
403
|
+
forecastReasoning: "Current AI scaling laws + algorithmic progress + compute trajectory"
|
|
404
|
+
}),
|
|
405
|
+
ev({
|
|
406
|
+
id: "forecast_longevity",
|
|
407
|
+
title: "Longevity Tech (Mainstream)",
|
|
408
|
+
description: "Aging-control therapies extend healthspan by 10-20 years for treated populations.",
|
|
409
|
+
yearNum: 2035,
|
|
410
|
+
yearLabel: "2035",
|
|
411
|
+
precision: "year",
|
|
412
|
+
domains: ["health", "science"],
|
|
413
|
+
impactScore: 0.75,
|
|
414
|
+
tags: ["longevity", "forecast", "aging", "biology"],
|
|
415
|
+
forecastConfidence: 0.7,
|
|
416
|
+
forecastReasoning: "Biology + AI convergence + senolytics clinical trials"
|
|
417
|
+
}),
|
|
418
|
+
ev({
|
|
419
|
+
id: "forecast_synthesis",
|
|
420
|
+
title: "Synthetic Biology (Designer Organisms)",
|
|
421
|
+
description: "Engineered organisms become routine for industrial chemicals, food production, and disease eradication.",
|
|
422
|
+
yearNum: 2029,
|
|
423
|
+
yearLabel: "2029",
|
|
424
|
+
precision: "year",
|
|
425
|
+
domains: ["science", "health", "environment"],
|
|
426
|
+
impactScore: 0.78,
|
|
427
|
+
tags: ["synthetic-biology", "forecast", "genetic-engineering"],
|
|
428
|
+
forecastConfidence: 0.75,
|
|
429
|
+
forecastReasoning: "Biotech advancement + CRISPR + AI-designed proteins"
|
|
430
|
+
}),
|
|
431
|
+
ev({
|
|
432
|
+
id: "forecast_fusion",
|
|
433
|
+
title: "Fusion Power (Commercial)",
|
|
434
|
+
description: "First commercially-operating fusion power plants delivering net energy at competitive costs.",
|
|
435
|
+
yearNum: 2036,
|
|
436
|
+
yearLabel: "2036",
|
|
437
|
+
precision: "year",
|
|
438
|
+
domains: ["technology", "science", "environment"],
|
|
439
|
+
impactScore: 0.83,
|
|
440
|
+
tags: ["fusion", "forecast", "energy", "physics"],
|
|
441
|
+
forecastConfidence: 0.68,
|
|
442
|
+
forecastReasoning: "Physics progress + private fusion company milestones (Helion, CFS)"
|
|
443
|
+
}),
|
|
444
|
+
ev({
|
|
445
|
+
id: "forecast_climate",
|
|
446
|
+
title: "Climate Restoration Programs",
|
|
447
|
+
description: "Coordinated planetary-scale carbon capture + ecosystem restoration begins to reverse atmospheric CO2 trajectory.",
|
|
448
|
+
yearNum: 2030,
|
|
449
|
+
yearLabel: "2030",
|
|
450
|
+
precision: "year",
|
|
451
|
+
domains: ["environment", "systems", "geopolitics"],
|
|
452
|
+
impactScore: 0.88,
|
|
453
|
+
tags: ["climate", "forecast", "restoration", "carbon"],
|
|
454
|
+
forecastConfidence: 0.72,
|
|
455
|
+
forecastReasoning: "Environmental science + international policy + tech maturity"
|
|
456
|
+
}),
|
|
457
|
+
ev({
|
|
458
|
+
id: "forecast_distributed",
|
|
459
|
+
title: "Decentralized Governance",
|
|
460
|
+
description: "Blockchain-based voting and DAO structures move from niche to standard at municipal/national level.",
|
|
461
|
+
yearNum: 2042,
|
|
462
|
+
yearLabel: "2042",
|
|
463
|
+
precision: "year",
|
|
464
|
+
domains: ["systems", "geopolitics", "technology"],
|
|
465
|
+
impactScore: 0.6,
|
|
466
|
+
tags: ["governance", "forecast", "decentralized", "dao"],
|
|
467
|
+
forecastConfidence: 0.48,
|
|
468
|
+
forecastReasoning: "Bitcoin + internet evolution + crypto governance experiments"
|
|
469
|
+
}),
|
|
470
|
+
ev({
|
|
471
|
+
id: "forecast_consciousness",
|
|
472
|
+
title: "Mind Upload (Speculative)",
|
|
473
|
+
description: "First credible attempts at digital consciousness transfer. Definition and verification highly contested.",
|
|
474
|
+
yearNum: 2060,
|
|
475
|
+
yearLabel: "2060",
|
|
476
|
+
precision: "decade",
|
|
477
|
+
domains: ["science", "philosophy", "technology"],
|
|
478
|
+
impactScore: 0.8,
|
|
479
|
+
tags: ["consciousness", "forecast", "mind-upload", "speculative"],
|
|
480
|
+
forecastConfidence: 0.3,
|
|
481
|
+
forecastReasoning: "Neuroscience + AI + neural interface convergence (high uncertainty)"
|
|
482
|
+
}),
|
|
483
|
+
ev({
|
|
484
|
+
id: "forecast_language",
|
|
485
|
+
title: "Universal Translation",
|
|
486
|
+
description: "Real-time accurate translation across all major languages becomes free, ubiquitous infrastructure.",
|
|
487
|
+
yearNum: 2038,
|
|
488
|
+
yearLabel: "2038",
|
|
489
|
+
precision: "year",
|
|
490
|
+
domains: ["technology", "humanities"],
|
|
491
|
+
impactScore: 0.68,
|
|
492
|
+
tags: ["translation", "forecast", "language", "nlp"],
|
|
493
|
+
forecastConfidence: 0.7,
|
|
494
|
+
forecastReasoning: "NLP advancement + transformer architecture maturity"
|
|
495
|
+
}),
|
|
496
|
+
ev({
|
|
497
|
+
id: "forecast_space_trade",
|
|
498
|
+
title: "Interplanetary Commerce",
|
|
499
|
+
description: "Regular cargo trade routes between Earth and Mars/orbital settlements operate commercially.",
|
|
500
|
+
yearNum: 2048,
|
|
501
|
+
yearLabel: "2048",
|
|
502
|
+
precision: "decade",
|
|
503
|
+
domains: ["economy", "technology"],
|
|
504
|
+
impactScore: 0.6,
|
|
505
|
+
tags: ["space-commerce", "forecast", "logistics"],
|
|
506
|
+
forecastConfidence: 0.35,
|
|
507
|
+
forecastReasoning: "Mars settlement + space economy maturity (depends on forecast_mars)"
|
|
508
|
+
}),
|
|
509
|
+
ev({
|
|
510
|
+
id: "forecast_quantum_net",
|
|
511
|
+
title: "Quantum Internet",
|
|
512
|
+
description: "Quantum-secured global network operates between major data centers. Unhackable communication baseline.",
|
|
513
|
+
yearNum: 2034,
|
|
514
|
+
yearLabel: "2034",
|
|
515
|
+
precision: "year",
|
|
516
|
+
domains: ["technology", "science"],
|
|
517
|
+
impactScore: 0.7,
|
|
518
|
+
tags: ["quantum-internet", "forecast", "security", "qkd"],
|
|
519
|
+
forecastConfidence: 0.58,
|
|
520
|
+
forecastReasoning: "Quantum computing + cryptography progress"
|
|
521
|
+
}),
|
|
522
|
+
ev({
|
|
523
|
+
id: "forecast_bio_ai",
|
|
524
|
+
title: "Bio-AI Convergence",
|
|
525
|
+
description: "Hybrid biological-digital organisms enter agriculture, medicine, and computing. Substrate boundary blurs.",
|
|
526
|
+
yearNum: 2033,
|
|
527
|
+
yearLabel: "2033",
|
|
528
|
+
precision: "year",
|
|
529
|
+
domains: ["science", "technology", "health"],
|
|
530
|
+
impactScore: 0.78,
|
|
531
|
+
tags: ["bio-ai", "forecast", "hybrid", "convergence"],
|
|
532
|
+
forecastConfidence: 0.64,
|
|
533
|
+
forecastReasoning: "Biotech + AI convergence + CRISPR + brain-organoid research"
|
|
534
|
+
})
|
|
535
|
+
];
|
|
536
|
+
|
|
537
|
+
// ../../packages/ckg/dist/seed/links.js
|
|
538
|
+
var seed = (fromEvent, toEvent, rel, evidence, confidence) => ({
|
|
539
|
+
id: `${fromEvent}--${rel}-->${toEvent}`,
|
|
540
|
+
fromEvent,
|
|
541
|
+
toEvent,
|
|
542
|
+
relationship: rel,
|
|
543
|
+
confidence: confidence ?? (rel === "caused" ? 0.9 : 0.8),
|
|
544
|
+
evidence,
|
|
545
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline" }],
|
|
546
|
+
contributedBy: "system",
|
|
547
|
+
validated: true,
|
|
548
|
+
scope: "world"
|
|
549
|
+
});
|
|
550
|
+
var seedLinks = [
|
|
551
|
+
// Foundation chain
|
|
552
|
+
seed("lang", "write", "enabled", "Spoken language created the cognitive scaffold (syntax, abstraction) that writing systems formalize. Without language structure, symbolic encoding has nothing to encode."),
|
|
553
|
+
seed("write", "alex", "enabled", "Durable written records made centralized libraries possible. Alexandria aggregated what writing had begun preserving across centuries."),
|
|
554
|
+
seed("alex", "printing", "enabled", "The library tradition of preserving and copying texts established the cultural infrastructure that the printing press would later automate at scale."),
|
|
555
|
+
seed("printing", "rena", "caused", "Mechanical reproduction broke clerical knowledge monopoly within a single generation. Cheap books \u2192 wider literacy \u2192 demand for classical texts \u2192 Renaissance.", 0.92),
|
|
556
|
+
// Scientific chain
|
|
557
|
+
seed("rena", "indus", "enabled", "Renaissance scientific method (empirical observation, mathematical modeling) provided the epistemological substrate for systematic engineering."),
|
|
558
|
+
seed("indus", "darwin_ev", "enabled", "Industrial wealth funded scientific expeditions (HMS Beagle); industrial-era geology established deep time, the prerequisite for evolutionary thinking."),
|
|
559
|
+
seed("darwin_ev", "relativity", "enabled", "Evolutionary thinking normalized the idea that fundamental categories (species, time, frame of reference) are not absolute. This conceptual flexibility primed physics for relativity."),
|
|
560
|
+
seed("relativity", "turing_m", "enabled", "Hilbert's formalist program (which Turing addressed) was a response to crises in mathematical foundations that included relativity's reframing of geometry. Same intellectual climate."),
|
|
561
|
+
// Code & biology merge
|
|
562
|
+
seed("turing_m", "dna_disc", "enabled", `Turing's information-theoretic framing seeded the metaphor of biological "code". The structural search for DNA was guided by the question: what is the substrate of biological information?`),
|
|
563
|
+
seed("dna_disc", "relativity", "enabled", "DNA as discrete information substrate strengthened the broader 20th-c shift toward discrete/quantized models of nature, reinforcing relativity's framework.", 0.5),
|
|
564
|
+
// Digital chain
|
|
565
|
+
seed("dna_disc", "internet", "enabled", "Information theory developed in molecular biology (Shannon, Wiener era) directly fed the network protocols that became ARPANET."),
|
|
566
|
+
seed("internet", "web", "enabled", "TCP/IP made the WWW protocol layer possible. The web is an application built on the internet; not the same thing.", 0.95),
|
|
567
|
+
seed("web", "iphone", "enabled", "A mobile device only makes sense if there is a content layer to consume. The web at scale (2007) created the demand for ubiquitous mobile access."),
|
|
568
|
+
// Genome understanding
|
|
569
|
+
seed("web", "genome", "enabled", "Distributed genome sequencing required cheap global coordination \u2014 bandwidth and shared databases that the web provided."),
|
|
570
|
+
seed("genome", "bitcoin", "enabled", "Decoding decentralized biological systems (no central planner; emergent behavior from rules) influenced the conceptual lineage that produced cryptocurrency.", 0.55),
|
|
571
|
+
// AI chain
|
|
572
|
+
seed("turing_m", "transformer", "enabled", "Computational substrate for all neural architectures traces to Turing-complete machines."),
|
|
573
|
+
seed("dna_disc", "transformer", "enabled", 'Neural networks were inspired by biological neurons; the explicit "neural network" framing depends on understanding biological information processing.', 0.7),
|
|
574
|
+
seed("iphone", "transformer", "enabled", "Mobile + web at scale generated the training data corpus and the GPU economic incentive that made transformer-scale training viable."),
|
|
575
|
+
seed("transformer", "ai", "caused", `Transformer architecture is the direct technical substrate of GPT, Claude, Gemini. Without 2017's "Attention Is All You Need", current LLMs do not exist.`, 0.95),
|
|
576
|
+
// Future
|
|
577
|
+
seed("ai", "mar", "enabled", "AI-driven robotics, materials science, and life-support engineering are prerequisites for cost-feasible Mars settlement.", 0.6),
|
|
578
|
+
seed("ai", "internet", "enabled", "Feedback loop: AI systems both consume and reshape internet infrastructure (search, recommendation, content generation).", 0.7),
|
|
579
|
+
// Cross-cutting feedbacks
|
|
580
|
+
seed("internet", "darwin_ev", "enabled", "Online publication of genomic data and computational evolution simulations expanded what evolutionary biology can do \u2014 feedback from later technology to earlier theory.", 0.5),
|
|
581
|
+
seed("printing", "indus", "enabled", "Technical manuals, patents, and scientific journals \u2014 all printing-press artifacts \u2014 were the knowledge distribution layer of the industrial revolution."),
|
|
582
|
+
seed("rena", "darwin_ev", "enabled", "Renaissance humanism placed humans within nature rather than above it. This philosophical reframing was the long arc that made evolution thinkable."),
|
|
583
|
+
seed("bitcoin", "ai", "enabled", "Decentralized consensus mechanisms inform multi-agent AI architectures and distributed training. Conceptual cross-pollination.", 0.55),
|
|
584
|
+
// Forecast → Forecast dependencies
|
|
585
|
+
seed("forecast_synthesis", "forecast_bio_ai", "enabled", "Synthetic biology provides the biological half of the bio-AI fusion equation."),
|
|
586
|
+
seed("forecast_quantum", "forecast_quantum_net", "enabled", "Quantum compute primitives are required to implement quantum-secured network protocols at scale."),
|
|
587
|
+
seed("forecast_renewable", "forecast_climate", "enabled", "Decarbonized energy grid is the largest single lever for atmospheric carbon trajectory reversal."),
|
|
588
|
+
seed("forecast_neural", "forecast_consciousness", "enabled", "Neural interfaces are the read/write hardware that any consciousness-transfer attempt would require."),
|
|
589
|
+
seed("forecast_agi", "forecast_distributed", "enabled", "AGI-mediated coordination could make decentralized governance practical at scale that humans alone cannot manage."),
|
|
590
|
+
seed("forecast_mars", "forecast_space_trade", "enabled", "Permanent Mars population creates the demand-side and supply-side endpoints for interplanetary trade."),
|
|
591
|
+
seed("forecast_quantum", "forecast_agi", "enabled", "Quantum-accelerated training could shorten AGI timelines by orders of magnitude on certain optimization problems.", 0.6),
|
|
592
|
+
seed("forecast_fusion", "forecast_renewable", "enabled", "Fusion provides the high-density baseload that complements intermittent renewables, completing the energy transition."),
|
|
593
|
+
seed("forecast_longevity", "forecast_consciousness", "enabled", "Longevity tech extends biological substrate; consciousness-transfer extends substrate beyond biology. Same problem space.", 0.6),
|
|
594
|
+
seed("forecast_language", "forecast_distributed", "enabled", "Universal translation removes the largest friction in cross-border governance coordination."),
|
|
595
|
+
seed("forecast_bio_ai", "forecast_agi", "enabled", "Biological substrates may contribute novel computational primitives toward AGI thresholds.", 0.5)
|
|
596
|
+
];
|
|
597
|
+
|
|
598
|
+
// ../../packages/ckg/dist/seed/insights.js
|
|
599
|
+
var seedInsights = [
|
|
600
|
+
{
|
|
601
|
+
id: "pattern--info-democratization",
|
|
602
|
+
pattern: "Information Democratization Cycle",
|
|
603
|
+
description: "When a new medium dramatically lowers the cost of distributing knowledge, an institutional monopoly breaks within ~50 years. Pattern: writing \u2192 priesthood breaks; printing \u2192 clergy/state breaks; internet \u2192 mass media breaks; LLMs \u2192 expert credential systems break.",
|
|
604
|
+
instances: [
|
|
605
|
+
"lang--enabled-->write",
|
|
606
|
+
"write--enabled-->alex",
|
|
607
|
+
"printing--caused-->rena",
|
|
608
|
+
"internet--enabled-->web",
|
|
609
|
+
"transformer--caused-->ai"
|
|
610
|
+
],
|
|
611
|
+
predictiveValue: 0.85,
|
|
612
|
+
domains: ["humanities", "technology", "systems"],
|
|
613
|
+
contributedBy: "system"
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
id: "pattern--substrate-substitution",
|
|
617
|
+
pattern: "Substrate Substitution",
|
|
618
|
+
description: "A capability historically running on substrate A migrates to substrate B once B becomes cheaper or more flexible. Mechanical \u2192 electrical (1900s); analog \u2192 digital (1970s); silicon \u2192 quantum (forecast). The migration creates discontinuities in adjacent industries.",
|
|
619
|
+
instances: [
|
|
620
|
+
"indus--enabled-->darwin_ev",
|
|
621
|
+
"turing_m--enabled-->transformer",
|
|
622
|
+
"forecast_quantum--enabled-->forecast_quantum_net"
|
|
623
|
+
],
|
|
624
|
+
predictiveValue: 0.78,
|
|
625
|
+
domains: ["technology", "science"],
|
|
626
|
+
contributedBy: "system"
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
id: "pattern--coordination-scale-jump",
|
|
630
|
+
pattern: "Coordination Scale Jump",
|
|
631
|
+
description: "Each new communication infrastructure enables a step-change in social organization scale. Writing \u2192 cities. Printing \u2192 nations. Internet \u2192 platforms. Universal translation \u2192 ?. Pattern: ~3-4 orders of magnitude per cycle.",
|
|
632
|
+
instances: [
|
|
633
|
+
"write--enabled-->alex",
|
|
634
|
+
"printing--enabled-->indus",
|
|
635
|
+
"internet--enabled-->web",
|
|
636
|
+
"forecast_language--enabled-->forecast_distributed"
|
|
637
|
+
],
|
|
638
|
+
predictiveValue: 0.72,
|
|
639
|
+
domains: ["systems", "geopolitics", "humanities"],
|
|
640
|
+
contributedBy: "system"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
id: "pattern--information-as-physics",
|
|
644
|
+
pattern: "Information as Physical Substrate",
|
|
645
|
+
description: `Across the 20th century, information progressively moves from "abstract" to "physical": Shannon's information theory, DNA as code, Landauer's principle, quantum information. The boundary between bits and matter dissolves.`,
|
|
646
|
+
instances: [
|
|
647
|
+
"turing_m--enabled-->dna_disc",
|
|
648
|
+
"dna_disc--enabled-->internet",
|
|
649
|
+
"forecast_synthesis--enabled-->forecast_bio_ai"
|
|
650
|
+
],
|
|
651
|
+
predictiveValue: 0.68,
|
|
652
|
+
domains: ["science", "technology"],
|
|
653
|
+
contributedBy: "system"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
id: "pattern--abstraction-layer-migration",
|
|
657
|
+
pattern: "Abstraction Layer Migration",
|
|
658
|
+
description: "Computing advances by adding abstraction layers that hide complexity. Assembly \u2192 C \u2192 Python \u2192 LLM prompts. Each layer sacrifices some control for dramatically wider accessibility. The new layer never fully replaces the old \u2014 it sits on top, and experts still drop down when needed.",
|
|
659
|
+
instances: [
|
|
660
|
+
"fortran--enabled-->c_language",
|
|
661
|
+
"c_language--enabled-->python",
|
|
662
|
+
"c_language--enabled-->java",
|
|
663
|
+
"javascript--caused-->typescript",
|
|
664
|
+
"docker--caused-->kubernetes",
|
|
665
|
+
"transformer--caused-->ai"
|
|
666
|
+
],
|
|
667
|
+
predictiveValue: 0.82,
|
|
668
|
+
domains: ["technology"],
|
|
669
|
+
contributedBy: "system"
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
id: "pattern--standardization-cycle",
|
|
673
|
+
pattern: "Standardization Cycle",
|
|
674
|
+
description: 'Technology follows a boom \u2192 fragmentation \u2192 standard \u2192 new boom cycle. Networking: many protocols \u2192 TCP/IP wins \u2192 web boom. Databases: many models \u2192 SQL standard \u2192 NoSQL reaction \u2192 NewSQL synthesis. Containers: many runtimes \u2192 OCI standard \u2192 K8s orchestration. The standard that wins is usually "good enough" technically but has the strongest ecosystem.',
|
|
675
|
+
instances: [
|
|
676
|
+
"tcp_ip_standard--enabled-->web",
|
|
677
|
+
"relational_db--caused-->postgresql",
|
|
678
|
+
"relational_db--enabled-->nosql_movement",
|
|
679
|
+
"docker--caused-->kubernetes",
|
|
680
|
+
"rest_api--enabled-->graphql"
|
|
681
|
+
],
|
|
682
|
+
predictiveValue: 0.78,
|
|
683
|
+
domains: ["technology", "systems"],
|
|
684
|
+
contributedBy: "system"
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
id: "pattern--open-vs-proprietary-substrate",
|
|
688
|
+
pattern: "Open vs Proprietary Substrate",
|
|
689
|
+
description: "When a technology layer becomes infrastructure, open implementations eventually dominate. Unix/proprietary \u2192 Linux/open. IE/proprietary \u2192 Chrome/open-source. AWS/proprietary \u2192 K8s/open orchestration. The pattern: proprietary wins early (resources, polish), open wins long-term (ecosystem, trust, vendor independence).",
|
|
690
|
+
instances: [
|
|
691
|
+
"gnu_project--enabled-->linux",
|
|
692
|
+
"unix--inspired-->linux",
|
|
693
|
+
"linux--enabled-->docker",
|
|
694
|
+
"linux--enabled-->aws",
|
|
695
|
+
"git--caused-->github"
|
|
696
|
+
],
|
|
697
|
+
predictiveValue: 0.75,
|
|
698
|
+
domains: ["technology", "economy", "systems"],
|
|
699
|
+
contributedBy: "system"
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
id: "pattern--prerequisite-cascade",
|
|
703
|
+
pattern: "Prerequisite Cascade in Future Tech",
|
|
704
|
+
description: "Forecasted breakthroughs cluster: each enables 2-3 downstream forecasts. Quantum compute enables both quantum internet and accelerated AGI. Mars settlement enables space commerce. This means timeline confidence in node N requires confidence in all upstream nodes \u2014 uncertainty compounds.",
|
|
705
|
+
instances: [
|
|
706
|
+
"forecast_quantum--enabled-->forecast_agi",
|
|
707
|
+
"forecast_quantum--enabled-->forecast_quantum_net",
|
|
708
|
+
"forecast_mars--enabled-->forecast_space_trade",
|
|
709
|
+
"forecast_agi--enabled-->forecast_distributed"
|
|
710
|
+
],
|
|
711
|
+
predictiveValue: 0.6,
|
|
712
|
+
domains: ["technology", "systems"],
|
|
713
|
+
contributedBy: "system"
|
|
714
|
+
}
|
|
715
|
+
];
|
|
716
|
+
|
|
717
|
+
// ../../packages/ckg/dist/seed/events-ai-history.js
|
|
718
|
+
var demoSource2 = {
|
|
719
|
+
type: "demo-seed",
|
|
720
|
+
reliability: 0.95,
|
|
721
|
+
citation: "Causari curated baseline \u2014 AI history extension"
|
|
722
|
+
};
|
|
723
|
+
function ev2(e) {
|
|
724
|
+
return { ...e, scope: "world", sources: [demoSource2] };
|
|
725
|
+
}
|
|
726
|
+
var aiHistoryEvents = [
|
|
727
|
+
ev2({
|
|
728
|
+
id: "mcculloch_pitts",
|
|
729
|
+
title: "McCulloch\u2013Pitts Neuron",
|
|
730
|
+
description: "First formal model of an artificial neuron \u2014 Warren McCulloch & Walter Pitts showed binary threshold logic could compute any Turing-complete function. The conceptual ancestor of every neural network that followed.",
|
|
731
|
+
yearNum: 1943,
|
|
732
|
+
yearLabel: "1943",
|
|
733
|
+
precision: "year",
|
|
734
|
+
domains: ["science", "technology"],
|
|
735
|
+
impactScore: 0.78,
|
|
736
|
+
tags: ["AI", "neuron", "theory", "foundational"],
|
|
737
|
+
wikidataId: "Q3140412"
|
|
738
|
+
}),
|
|
739
|
+
ev2({
|
|
740
|
+
id: "dartmouth_conf",
|
|
741
|
+
title: "Dartmouth Conference",
|
|
742
|
+
description: 'The summer workshop that named the field. McCarthy, Minsky, Shannon, Rochester convened to study "every aspect of learning or any other feature of intelligence" \u2014 the founding act of AI as a discipline.',
|
|
743
|
+
yearNum: 1956,
|
|
744
|
+
yearLabel: "1956",
|
|
745
|
+
precision: "year",
|
|
746
|
+
domains: ["science", "humanities"],
|
|
747
|
+
impactScore: 0.82,
|
|
748
|
+
tags: ["AI", "founding", "history", "discipline"],
|
|
749
|
+
wikidataId: "Q1141135"
|
|
750
|
+
}),
|
|
751
|
+
ev2({
|
|
752
|
+
id: "perceptron",
|
|
753
|
+
title: "Perceptron",
|
|
754
|
+
description: "Frank Rosenblatt's learning machine \u2014 first algorithm that could update connection weights from examples. Demonstrated machine learning was possible; oversold by the press as the dawn of thinking machines.",
|
|
755
|
+
yearNum: 1958,
|
|
756
|
+
yearLabel: "1958",
|
|
757
|
+
precision: "year",
|
|
758
|
+
domains: ["technology", "science"],
|
|
759
|
+
impactScore: 0.74,
|
|
760
|
+
tags: ["AI", "learning", "connectionism", "rosenblatt"],
|
|
761
|
+
wikidataId: "Q690207"
|
|
762
|
+
}),
|
|
763
|
+
ev2({
|
|
764
|
+
id: "ai_winter_1",
|
|
765
|
+
title: "First AI Winter",
|
|
766
|
+
description: "The Lighthill Report and Minsky & Papert's Perceptrons critique collapsed neural net research. UK and US funding evaporated; symbolic AI dominated for a decade. A cautionary tale about how overpromising kills fields.",
|
|
767
|
+
yearNum: 1974,
|
|
768
|
+
yearLabel: "1974",
|
|
769
|
+
precision: "year",
|
|
770
|
+
domains: ["systems", "economy"],
|
|
771
|
+
impactScore: 0.55,
|
|
772
|
+
tags: ["AI", "winter", "funding", "history"],
|
|
773
|
+
wikidataId: "Q335474"
|
|
774
|
+
}),
|
|
775
|
+
ev2({
|
|
776
|
+
id: "backprop",
|
|
777
|
+
title: "Backpropagation Popularised",
|
|
778
|
+
description: "Rumelhart, Hinton & Williams' paper made gradient descent through multi-layer networks practical. Re-ignited connectionism by solving the credit-assignment problem that had stalled perceptrons for 17 years.",
|
|
779
|
+
yearNum: 1986,
|
|
780
|
+
yearLabel: "1986",
|
|
781
|
+
precision: "year",
|
|
782
|
+
domains: ["science", "technology"],
|
|
783
|
+
impactScore: 0.83,
|
|
784
|
+
tags: ["AI", "deep-learning", "algorithm", "gradient"],
|
|
785
|
+
wikidataId: "Q798503"
|
|
786
|
+
}),
|
|
787
|
+
ev2({
|
|
788
|
+
id: "deep_blue",
|
|
789
|
+
title: "Deep Blue beats Kasparov",
|
|
790
|
+
description: `IBM's chess machine defeated the reigning world champion \u2014 the first symbolic landmark that a "creative" intellectual game could fall to brute search + handcrafted evaluation. Shifted public intuition about what machines could do.`,
|
|
791
|
+
yearNum: 1997,
|
|
792
|
+
yearLabel: "1997",
|
|
793
|
+
precision: "year",
|
|
794
|
+
domains: ["technology", "culture"],
|
|
795
|
+
impactScore: 0.7,
|
|
796
|
+
tags: ["AI", "chess", "milestone", "search"],
|
|
797
|
+
wikidataId: "Q102371"
|
|
798
|
+
}),
|
|
799
|
+
ev2({
|
|
800
|
+
id: "imagenet",
|
|
801
|
+
title: "ImageNet Released",
|
|
802
|
+
description: "Fei-Fei Li's 14M-image labeled dataset. The first time the AI community had enough data to actually train the deep nets the theory had been promising. Data became the new oil.",
|
|
803
|
+
yearNum: 2009,
|
|
804
|
+
yearLabel: "2009",
|
|
805
|
+
precision: "year",
|
|
806
|
+
domains: ["technology", "science"],
|
|
807
|
+
impactScore: 0.84,
|
|
808
|
+
tags: ["AI", "dataset", "computer-vision", "benchmark"],
|
|
809
|
+
wikidataId: "Q19829071"
|
|
810
|
+
}),
|
|
811
|
+
ev2({
|
|
812
|
+
id: "alexnet",
|
|
813
|
+
title: "AlexNet",
|
|
814
|
+
description: "Krizhevsky, Sutskever & Hinton's CNN crushed ImageNet 2012 by 10+ points. Deep learning's coming-out moment \u2014 convinced the field that GPUs + scale + backprop actually worked on real problems.",
|
|
815
|
+
yearNum: 2012,
|
|
816
|
+
yearLabel: "2012",
|
|
817
|
+
precision: "year",
|
|
818
|
+
domains: ["technology", "science"],
|
|
819
|
+
impactScore: 0.9,
|
|
820
|
+
tags: ["AI", "deep-learning", "computer-vision", "gpu"],
|
|
821
|
+
wikidataId: "Q24729090"
|
|
822
|
+
}),
|
|
823
|
+
ev2({
|
|
824
|
+
id: "alphago",
|
|
825
|
+
title: "AlphaGo defeats Lee Sedol",
|
|
826
|
+
description: "DeepMind's Go-playing system beat the 18-time world champion 4-1. Go's branching factor was supposed to be 10 years away; AlphaGo collapsed the timeline using deep RL + Monte Carlo tree search.",
|
|
827
|
+
yearNum: 2016,
|
|
828
|
+
yearLabel: "2016",
|
|
829
|
+
precision: "year",
|
|
830
|
+
domains: ["technology", "culture"],
|
|
831
|
+
impactScore: 0.82,
|
|
832
|
+
tags: ["AI", "reinforcement-learning", "go", "deepmind"],
|
|
833
|
+
wikidataId: "Q20708099"
|
|
834
|
+
}),
|
|
835
|
+
ev2({
|
|
836
|
+
id: "bert",
|
|
837
|
+
title: "BERT",
|
|
838
|
+
description: "Google's bidirectional transformer encoder. State-of-the-art on 11 NLP tasks the day it was released; defined the pre-train-then-fine-tune paradigm that still dominates production NLP.",
|
|
839
|
+
yearNum: 2018,
|
|
840
|
+
yearLabel: "2018",
|
|
841
|
+
precision: "year",
|
|
842
|
+
domains: ["technology", "science"],
|
|
843
|
+
impactScore: 0.8,
|
|
844
|
+
tags: ["AI", "nlp", "transformer", "google"],
|
|
845
|
+
wikidataId: "Q56624948"
|
|
846
|
+
}),
|
|
847
|
+
ev2({
|
|
848
|
+
id: "gpt2",
|
|
849
|
+
title: "GPT-2",
|
|
850
|
+
description: "OpenAI's 1.5B-parameter autoregressive model. Famously held back from full release over misuse concerns \u2014 first time an AI org publicly worried in advance about its own model's capability.",
|
|
851
|
+
yearNum: 2019,
|
|
852
|
+
yearLabel: "2019",
|
|
853
|
+
precision: "year",
|
|
854
|
+
domains: ["technology"],
|
|
855
|
+
impactScore: 0.75,
|
|
856
|
+
tags: ["AI", "llm", "gpt", "openai"],
|
|
857
|
+
wikidataId: "Q94531571"
|
|
858
|
+
}),
|
|
859
|
+
ev2({
|
|
860
|
+
id: "gpt3",
|
|
861
|
+
title: "GPT-3",
|
|
862
|
+
description: 'The 175B-parameter scale jump that made "prompt engineering" a real skill. Demonstrated emergent few-shot learning \u2014 capabilities that did not exist at smaller scale appeared past a threshold.',
|
|
863
|
+
yearNum: 2020,
|
|
864
|
+
yearLabel: "2020",
|
|
865
|
+
precision: "year",
|
|
866
|
+
domains: ["technology", "economy"],
|
|
867
|
+
impactScore: 0.88,
|
|
868
|
+
tags: ["AI", "llm", "gpt", "scaling", "emergence"],
|
|
869
|
+
wikidataId: "Q95726734"
|
|
870
|
+
}),
|
|
871
|
+
ev2({
|
|
872
|
+
id: "alphafold2",
|
|
873
|
+
title: "AlphaFold 2",
|
|
874
|
+
description: "DeepMind solved the 50-year-old protein-folding problem at CASP14 \u2014 predicting 3D structures from amino acid sequences at near-experimental accuracy. Opened structural biology to anyone with an internet connection.",
|
|
875
|
+
yearNum: 2020,
|
|
876
|
+
yearLabel: "2020",
|
|
877
|
+
precision: "year",
|
|
878
|
+
domains: ["science", "health"],
|
|
879
|
+
impactScore: 0.86,
|
|
880
|
+
tags: ["AI", "biology", "protein", "deepmind"],
|
|
881
|
+
wikidataId: "Q103862730"
|
|
882
|
+
}),
|
|
883
|
+
ev2({
|
|
884
|
+
id: "dalle",
|
|
885
|
+
title: "DALL\xB7E",
|
|
886
|
+
description: "OpenAI's text-to-image model. First widely-seen demonstration that diffusion-style generation could produce photorealistic novel imagery from natural language \u2014 kicked off the generative art era.",
|
|
887
|
+
yearNum: 2021,
|
|
888
|
+
yearLabel: "2021",
|
|
889
|
+
precision: "year",
|
|
890
|
+
domains: ["technology", "culture"],
|
|
891
|
+
impactScore: 0.76,
|
|
892
|
+
tags: ["AI", "generative", "image", "multimodal"],
|
|
893
|
+
wikidataId: "Q105509175"
|
|
894
|
+
}),
|
|
895
|
+
ev2({
|
|
896
|
+
id: "chatgpt",
|
|
897
|
+
title: "ChatGPT",
|
|
898
|
+
description: 'GPT-3.5 wrapped in a conversational UI + RLHF \u2014 1M users in 5 days, 100M in 2 months. The product moment AI crossed from research demo to mass consumer tool. Same day, AI moved from "interesting" to "strategic" for every company.',
|
|
899
|
+
yearNum: 2022,
|
|
900
|
+
yearLabel: "2022",
|
|
901
|
+
precision: "year",
|
|
902
|
+
domains: ["technology", "economy", "culture"],
|
|
903
|
+
impactScore: 0.94,
|
|
904
|
+
tags: ["AI", "llm", "chatbot", "rlhf", "consumer"],
|
|
905
|
+
wikidataId: "Q115564437"
|
|
906
|
+
})
|
|
907
|
+
];
|
|
908
|
+
|
|
909
|
+
// ../../packages/ckg/dist/seed/links-ai-history.js
|
|
910
|
+
var seed2 = (fromEvent, toEvent, rel, evidence, confidence) => ({
|
|
911
|
+
id: `${fromEvent}--${rel}-->${toEvent}`,
|
|
912
|
+
fromEvent,
|
|
913
|
+
toEvent,
|
|
914
|
+
relationship: rel,
|
|
915
|
+
confidence: confidence ?? (rel === "caused" ? 0.9 : 0.8),
|
|
916
|
+
evidence,
|
|
917
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline" }],
|
|
918
|
+
contributedBy: "system",
|
|
919
|
+
validated: true,
|
|
920
|
+
scope: "world"
|
|
921
|
+
});
|
|
922
|
+
var aiHistoryLinks = [
|
|
923
|
+
// ── Foundations 1943 → 1986 ──────────────────────────────────────────
|
|
924
|
+
seed2("turing_m", "mcculloch_pitts", "enabled", "Turing's computability framework provided the formal substrate for McCulloch & Pitts to ask whether neurons themselves could be Turing-complete."),
|
|
925
|
+
seed2("mcculloch_pitts", "dartmouth_conf", "enabled", "A formal model of the neuron made artificial intelligence credible as a research programme \u2014 Dartmouth could only happen after the foundational mathematics existed."),
|
|
926
|
+
seed2("dartmouth_conf", "perceptron", "enabled", "The Dartmouth workshop established the AI research community; Rosenblatt built the perceptron two years later inside that emerging field."),
|
|
927
|
+
seed2("perceptron", "ai_winter_1", "caused", `Minsky & Papert's 1969 "Perceptrons" book proved the single-layer perceptron could not learn XOR \u2014 combined with public overhype, this triggered the funding collapse that became the first AI winter.`, 0.85),
|
|
928
|
+
seed2("ai_winter_1", "backprop", "enabled", "The winter forced researchers to address connectionism's core flaw: how to train deeper networks. Rumelhart-Hinton-Williams' 1986 backprop paper was the answer the field had been waiting 12 years to publish."),
|
|
929
|
+
// ── Compute + data preconditions ─────────────────────────────────────
|
|
930
|
+
seed2("backprop", "alexnet", "enabled", "Backpropagation made multi-layer training mathematically tractable; AlexNet showed it scaled to deep CNNs on GPUs. Same algorithm, 26 years later, finally on hardware that could run it."),
|
|
931
|
+
seed2("imagenet", "alexnet", "caused", "AlexNet was specifically trained on and submitted to the ImageNet 2012 challenge \u2014 without the labeled dataset there was no benchmark to win and no signal that depth mattered.", 0.95),
|
|
932
|
+
// ── Deep learning era branches ───────────────────────────────────────
|
|
933
|
+
seed2("alexnet", "alphago", "enabled", "AlexNet validated deep CNNs as state-of-the-art perception; AlphaGo's policy and value networks reused the same architecture family to score Go board positions."),
|
|
934
|
+
seed2("alexnet", "transformer", "enabled", "AlexNet established that scale + GPU compute + deep architectures beat hand-designed features. The transformer paper assumed that lesson and went bigger on attention rather than convolution."),
|
|
935
|
+
// ── Transformer cascade ─────────────────────────────────────────────
|
|
936
|
+
seed2("transformer", "bert", "caused", "BERT is a transformer encoder. Google's team applied the 2017 architecture to bidirectional pre-training and produced state-of-the-art NLP within a year.", 0.95),
|
|
937
|
+
seed2("transformer", "gpt2", "caused", "GPT-2 is a transformer decoder scaled to 1.5B params. The architectural choice is direct; the contribution is scale + the discovery that autoregressive pre-training transfers broadly.", 0.95),
|
|
938
|
+
seed2("gpt2", "gpt3", "enabled", "GPT-2 demonstrated that scaling helped without architectural change; GPT-3 took the same recipe to 175B and unlocked emergent few-shot learning."),
|
|
939
|
+
seed2("gpt3", "chatgpt", "enabled", "ChatGPT is GPT-3.5 + instruction tuning + RLHF + a chat UI. The base capability had to exist before product packaging could turn it into a consumer phenomenon."),
|
|
940
|
+
// ── Bridges into existing graph ──────────────────────────────────────
|
|
941
|
+
seed2("chatgpt", "ai", "caused", 'ChatGPT was the inflection point where generative AI crossed from research demo to mass deployment. The "AI Era" node represents the world post-November 2022.', 0.92),
|
|
942
|
+
seed2("alphafold2", "forecast_synthesis", "enabled", "AlphaFold 2 made protein structure prediction routine; synthetic biology design pipelines now assume structural prediction is free, accelerating the path to engineered organisms.")
|
|
943
|
+
];
|
|
944
|
+
|
|
945
|
+
// ../../packages/ckg/dist/seed/events-computing.js
|
|
946
|
+
var src = {
|
|
947
|
+
type: "demo-seed",
|
|
948
|
+
reliability: 0.9,
|
|
949
|
+
citation: "Causari curated baseline \u2014 computing history"
|
|
950
|
+
};
|
|
951
|
+
function ev3(e) {
|
|
952
|
+
return { ...e, scope: "world", sources: [src] };
|
|
953
|
+
}
|
|
954
|
+
var computingEvents = [
|
|
955
|
+
// ── Pre-electronic era ─────────────────────────────────────────────
|
|
956
|
+
ev3({
|
|
957
|
+
id: "babbage_engine",
|
|
958
|
+
title: "Babbage Analytical Engine",
|
|
959
|
+
description: "Charles Babbage designed the first general-purpose mechanical computer. Never completed, but its architecture \u2014 ALU, control flow, memory \u2014 foreshadowed every von Neumann machine.",
|
|
960
|
+
yearNum: 1837,
|
|
961
|
+
yearLabel: "1837",
|
|
962
|
+
precision: "year",
|
|
963
|
+
domains: ["technology", "science"],
|
|
964
|
+
impactScore: 0.72,
|
|
965
|
+
tags: ["computing", "mechanical", "architecture", "babbage"],
|
|
966
|
+
wikidataId: "Q151888"
|
|
967
|
+
}),
|
|
968
|
+
ev3({
|
|
969
|
+
id: "lovelace_algorithm",
|
|
970
|
+
title: "Ada Lovelace \u2014 First Algorithm",
|
|
971
|
+
description: "Ada Lovelace wrote the first published algorithm (for Bernoulli numbers on the Analytical Engine). More importantly, she articulated the idea that machines could manipulate symbols beyond numbers.",
|
|
972
|
+
yearNum: 1843,
|
|
973
|
+
yearLabel: "1843",
|
|
974
|
+
precision: "year",
|
|
975
|
+
domains: ["technology", "science"],
|
|
976
|
+
impactScore: 0.68,
|
|
977
|
+
tags: ["computing", "algorithm", "programming", "lovelace"],
|
|
978
|
+
wikidataId: "Q7259"
|
|
979
|
+
}),
|
|
980
|
+
ev3({
|
|
981
|
+
id: "boolean_algebra",
|
|
982
|
+
title: "Boolean Algebra",
|
|
983
|
+
description: "George Boole formalized logical operations as algebra. 80 years later, Claude Shannon proved Boolean algebra maps directly to electrical switching circuits \u2014 the mathematical bedrock of all digital hardware.",
|
|
984
|
+
yearNum: 1854,
|
|
985
|
+
yearLabel: "1854",
|
|
986
|
+
precision: "year",
|
|
987
|
+
domains: ["science", "technology"],
|
|
988
|
+
impactScore: 0.75,
|
|
989
|
+
tags: ["logic", "mathematics", "boolean", "foundations"],
|
|
990
|
+
wikidataId: "Q173183"
|
|
991
|
+
}),
|
|
992
|
+
ev3({
|
|
993
|
+
id: "hollerith_tabulator",
|
|
994
|
+
title: "Hollerith Tabulating Machine",
|
|
995
|
+
description: "Herman Hollerith built punch-card tabulators for the 1890 US Census. Reduced processing time from 8 years to 1. His company eventually became IBM.",
|
|
996
|
+
yearNum: 1890,
|
|
997
|
+
yearLabel: "1890",
|
|
998
|
+
precision: "year",
|
|
999
|
+
domains: ["technology", "systems"],
|
|
1000
|
+
impactScore: 0.65,
|
|
1001
|
+
tags: ["computing", "data-processing", "punch-cards", "ibm"],
|
|
1002
|
+
wikidataId: "Q574432"
|
|
1003
|
+
}),
|
|
1004
|
+
// ── Electronic computing (1940s-1950s) ─────────────────────────────
|
|
1005
|
+
ev3({
|
|
1006
|
+
id: "eniac",
|
|
1007
|
+
title: "ENIAC",
|
|
1008
|
+
description: "The first general-purpose electronic digital computer (1945). 17,468 vacuum tubes, 30 tons. Proved that electronic computation was practical, not just theoretical.",
|
|
1009
|
+
yearNum: 1945,
|
|
1010
|
+
yearLabel: "1945",
|
|
1011
|
+
precision: "year",
|
|
1012
|
+
domains: ["technology"],
|
|
1013
|
+
impactScore: 0.82,
|
|
1014
|
+
tags: ["computing", "hardware", "vacuum-tubes", "electronic"],
|
|
1015
|
+
wikidataId: "Q33265"
|
|
1016
|
+
}),
|
|
1017
|
+
ev3({
|
|
1018
|
+
id: "von_neumann_arch",
|
|
1019
|
+
title: "Von Neumann Architecture",
|
|
1020
|
+
description: "John von Neumann described the stored-program concept: instructions and data share the same memory. Nearly every computer built since follows this architecture.",
|
|
1021
|
+
yearNum: 1945,
|
|
1022
|
+
yearLabel: "1945",
|
|
1023
|
+
precision: "year",
|
|
1024
|
+
domains: ["technology", "science"],
|
|
1025
|
+
impactScore: 0.88,
|
|
1026
|
+
tags: ["computing", "architecture", "stored-program", "von-neumann"],
|
|
1027
|
+
wikidataId: "Q753039"
|
|
1028
|
+
}),
|
|
1029
|
+
ev3({
|
|
1030
|
+
id: "transistor",
|
|
1031
|
+
title: "Transistor Invention",
|
|
1032
|
+
description: "Bardeen, Brattain, and Shockley at Bell Labs invented the transistor. Replaced vacuum tubes \u2014 smaller, cheaper, more reliable. The atom of the digital age.",
|
|
1033
|
+
yearNum: 1947,
|
|
1034
|
+
yearLabel: "1947",
|
|
1035
|
+
precision: "year",
|
|
1036
|
+
domains: ["technology", "science"],
|
|
1037
|
+
impactScore: 0.92,
|
|
1038
|
+
tags: ["hardware", "semiconductor", "bell-labs", "electronics"],
|
|
1039
|
+
wikidataId: "Q5339"
|
|
1040
|
+
}),
|
|
1041
|
+
ev3({
|
|
1042
|
+
id: "shannon_info_theory",
|
|
1043
|
+
title: "Shannon Information Theory",
|
|
1044
|
+
description: 'Claude Shannon published "A Mathematical Theory of Communication." Defined bits, entropy, channel capacity. Founded the discipline that underpins compression, encryption, and every digital protocol.',
|
|
1045
|
+
yearNum: 1948,
|
|
1046
|
+
yearLabel: "1948",
|
|
1047
|
+
precision: "year",
|
|
1048
|
+
domains: ["science", "technology"],
|
|
1049
|
+
impactScore: 0.9,
|
|
1050
|
+
tags: ["information", "theory", "shannon", "entropy", "bits"],
|
|
1051
|
+
wikidataId: "Q11153"
|
|
1052
|
+
}),
|
|
1053
|
+
// ── Programming languages & systems (1950s-1970s) ──────────────────
|
|
1054
|
+
ev3({
|
|
1055
|
+
id: "fortran",
|
|
1056
|
+
title: "FORTRAN",
|
|
1057
|
+
description: "First widely-adopted high-level programming language (IBM, John Backus). Proved that compilers could generate code nearly as efficient as hand-written assembly \u2014 making programming accessible to scientists and engineers.",
|
|
1058
|
+
yearNum: 1957,
|
|
1059
|
+
yearLabel: "1957",
|
|
1060
|
+
precision: "year",
|
|
1061
|
+
domains: ["technology"],
|
|
1062
|
+
impactScore: 0.76,
|
|
1063
|
+
tags: ["programming", "language", "compiler", "fortran"],
|
|
1064
|
+
wikidataId: "Q83303"
|
|
1065
|
+
}),
|
|
1066
|
+
ev3({
|
|
1067
|
+
id: "integrated_circuit",
|
|
1068
|
+
title: "Integrated Circuit",
|
|
1069
|
+
description: "Jack Kilby (TI) and Robert Noyce (Fairchild) independently invented the IC. Multiple transistors on a single chip \u2014 launched the miniaturization curve that continues today.",
|
|
1070
|
+
yearNum: 1958,
|
|
1071
|
+
yearLabel: "1958",
|
|
1072
|
+
precision: "year",
|
|
1073
|
+
domains: ["technology"],
|
|
1074
|
+
impactScore: 0.9,
|
|
1075
|
+
tags: ["hardware", "semiconductor", "chip", "miniaturization"],
|
|
1076
|
+
wikidataId: "Q5322"
|
|
1077
|
+
}),
|
|
1078
|
+
ev3({
|
|
1079
|
+
id: "cobol",
|
|
1080
|
+
title: "COBOL",
|
|
1081
|
+
description: "Common Business-Oriented Language. Grace Hopper championed machine-independent business programming. Still runs trillions of dollars in banking transactions daily, 65+ years later.",
|
|
1082
|
+
yearNum: 1959,
|
|
1083
|
+
yearLabel: "1959",
|
|
1084
|
+
precision: "year",
|
|
1085
|
+
domains: ["technology", "economy"],
|
|
1086
|
+
impactScore: 0.68,
|
|
1087
|
+
tags: ["programming", "language", "business", "legacy"],
|
|
1088
|
+
wikidataId: "Q131140"
|
|
1089
|
+
}),
|
|
1090
|
+
ev3({
|
|
1091
|
+
id: "timesharing",
|
|
1092
|
+
title: "Time-Sharing Systems",
|
|
1093
|
+
description: "Compatible Time-Sharing System (CTSS) at MIT allowed multiple users to share a single mainframe interactively. The conceptual ancestor of multi-tenant cloud computing.",
|
|
1094
|
+
yearNum: 1961,
|
|
1095
|
+
yearLabel: "1961",
|
|
1096
|
+
precision: "year",
|
|
1097
|
+
domains: ["technology", "systems"],
|
|
1098
|
+
impactScore: 0.7,
|
|
1099
|
+
tags: ["computing", "multi-user", "mainframe", "interactive"],
|
|
1100
|
+
wikidataId: "Q623520"
|
|
1101
|
+
}),
|
|
1102
|
+
ev3({
|
|
1103
|
+
id: "moores_law",
|
|
1104
|
+
title: "Moore's Law",
|
|
1105
|
+
description: "Gordon Moore observed that transistor count doubles roughly every two years. Not a physical law but a self-fulfilling industry roadmap that drove semiconductor investment for 50+ years.",
|
|
1106
|
+
yearNum: 1965,
|
|
1107
|
+
yearLabel: "1965",
|
|
1108
|
+
precision: "year",
|
|
1109
|
+
domains: ["technology", "economy"],
|
|
1110
|
+
impactScore: 0.85,
|
|
1111
|
+
tags: ["hardware", "scaling", "semiconductor", "prediction"],
|
|
1112
|
+
wikidataId: "Q165474"
|
|
1113
|
+
}),
|
|
1114
|
+
ev3({
|
|
1115
|
+
id: "unix",
|
|
1116
|
+
title: "UNIX",
|
|
1117
|
+
description: 'Ken Thompson and Dennis Ritchie built Unix at Bell Labs. "Everything is a file," pipes, small composable tools. The philosophy behind Linux, macOS, Android, and the entire server ecosystem.',
|
|
1118
|
+
yearNum: 1969,
|
|
1119
|
+
yearLabel: "1969",
|
|
1120
|
+
precision: "year",
|
|
1121
|
+
domains: ["technology"],
|
|
1122
|
+
impactScore: 0.88,
|
|
1123
|
+
tags: ["os", "unix", "philosophy", "bell-labs"],
|
|
1124
|
+
wikidataId: "Q11368"
|
|
1125
|
+
}),
|
|
1126
|
+
ev3({
|
|
1127
|
+
id: "relational_db",
|
|
1128
|
+
title: "Relational Database Model",
|
|
1129
|
+
description: 'Edgar Codd at IBM published "A Relational Model of Data for Large Shared Data Banks." Tables, keys, normalization. Led to SQL and every RDBMS from Oracle to PostgreSQL.',
|
|
1130
|
+
yearNum: 1970,
|
|
1131
|
+
yearLabel: "1970",
|
|
1132
|
+
precision: "year",
|
|
1133
|
+
domains: ["technology", "science"],
|
|
1134
|
+
impactScore: 0.84,
|
|
1135
|
+
tags: ["database", "relational", "sql", "data-model"],
|
|
1136
|
+
wikidataId: "Q204200"
|
|
1137
|
+
}),
|
|
1138
|
+
ev3({
|
|
1139
|
+
id: "c_language",
|
|
1140
|
+
title: "C Programming Language",
|
|
1141
|
+
description: "Dennis Ritchie created C to rewrite Unix. Became the lingua franca of systems programming \u2014 Linux kernel, Python interpreter, and most OS kernels are written in C or its descendants.",
|
|
1142
|
+
yearNum: 1972,
|
|
1143
|
+
yearLabel: "1972",
|
|
1144
|
+
precision: "year",
|
|
1145
|
+
domains: ["technology"],
|
|
1146
|
+
impactScore: 0.86,
|
|
1147
|
+
tags: ["programming", "language", "systems", "c"],
|
|
1148
|
+
wikidataId: "Q15777"
|
|
1149
|
+
}),
|
|
1150
|
+
ev3({
|
|
1151
|
+
id: "ethernet",
|
|
1152
|
+
title: "Ethernet",
|
|
1153
|
+
description: "Robert Metcalfe invented Ethernet at Xerox PARC. The standard for local area networking that connected office computers and evolved into the physical backbone of the internet.",
|
|
1154
|
+
yearNum: 1973,
|
|
1155
|
+
yearLabel: "1973",
|
|
1156
|
+
precision: "year",
|
|
1157
|
+
domains: ["technology"],
|
|
1158
|
+
impactScore: 0.76,
|
|
1159
|
+
tags: ["networking", "lan", "protocol", "xerox-parc"],
|
|
1160
|
+
wikidataId: "Q11946"
|
|
1161
|
+
}),
|
|
1162
|
+
ev3({
|
|
1163
|
+
id: "xerox_alto",
|
|
1164
|
+
title: "Xerox Alto / GUI",
|
|
1165
|
+
description: "The first computer with a graphical user interface, mouse, and WYSIWYG editor. Never sold commercially, but directly inspired the Macintosh and Windows \u2014 the interface paradigm 3 billion people use.",
|
|
1166
|
+
yearNum: 1973,
|
|
1167
|
+
yearLabel: "1973",
|
|
1168
|
+
precision: "year",
|
|
1169
|
+
domains: ["technology", "culture"],
|
|
1170
|
+
impactScore: 0.78,
|
|
1171
|
+
tags: ["gui", "mouse", "xerox-parc", "interface"],
|
|
1172
|
+
wikidataId: "Q244125"
|
|
1173
|
+
}),
|
|
1174
|
+
// ── Personal computing & networking (1980s) ────────────────────────
|
|
1175
|
+
ev3({
|
|
1176
|
+
id: "ibm_pc",
|
|
1177
|
+
title: "IBM PC",
|
|
1178
|
+
description: 'IBM legitimized the personal computer for business. Its open architecture spawned the clone industry, created the x86 monopoly, and made "PC-compatible" the default platform for 30 years.',
|
|
1179
|
+
yearNum: 1981,
|
|
1180
|
+
yearLabel: "1981",
|
|
1181
|
+
precision: "year",
|
|
1182
|
+
domains: ["technology", "economy"],
|
|
1183
|
+
impactScore: 0.82,
|
|
1184
|
+
tags: ["pc", "hardware", "ibm", "open-architecture"],
|
|
1185
|
+
wikidataId: "Q190581"
|
|
1186
|
+
}),
|
|
1187
|
+
ev3({
|
|
1188
|
+
id: "tcp_ip_standard",
|
|
1189
|
+
title: "TCP/IP Becomes Standard",
|
|
1190
|
+
description: 'ARPANET adopted TCP/IP as its standard protocol on January 1, 1983 ("flag day"). Unified fragmented networks into one internet. The protocol stack that still runs the global network.',
|
|
1191
|
+
yearNum: 1983,
|
|
1192
|
+
yearLabel: "1983",
|
|
1193
|
+
precision: "year",
|
|
1194
|
+
domains: ["technology", "systems"],
|
|
1195
|
+
impactScore: 0.88,
|
|
1196
|
+
tags: ["networking", "protocol", "tcp-ip", "internet"],
|
|
1197
|
+
wikidataId: "Q8795"
|
|
1198
|
+
}),
|
|
1199
|
+
ev3({
|
|
1200
|
+
id: "gnu_project",
|
|
1201
|
+
title: "GNU Project",
|
|
1202
|
+
description: "Richard Stallman launched the GNU Project and the Free Software Foundation. Established the philosophical and legal framework (GPL) for open-source software that powers most of the internet today.",
|
|
1203
|
+
yearNum: 1983,
|
|
1204
|
+
yearLabel: "1983",
|
|
1205
|
+
precision: "year",
|
|
1206
|
+
domains: ["technology", "systems", "philosophy"],
|
|
1207
|
+
impactScore: 0.78,
|
|
1208
|
+
tags: ["open-source", "free-software", "gnu", "gpl"],
|
|
1209
|
+
wikidataId: "Q7598"
|
|
1210
|
+
}),
|
|
1211
|
+
ev3({
|
|
1212
|
+
id: "macintosh",
|
|
1213
|
+
title: "Apple Macintosh",
|
|
1214
|
+
description: "First commercially successful computer with a GUI. Steve Jobs brought the Xerox Alto vision to consumers \u2014 mouse, desktop metaphor, WYSIWYG. Established that interfaces matter as much as compute.",
|
|
1215
|
+
yearNum: 1984,
|
|
1216
|
+
yearLabel: "1984",
|
|
1217
|
+
precision: "year",
|
|
1218
|
+
domains: ["technology", "culture"],
|
|
1219
|
+
impactScore: 0.78,
|
|
1220
|
+
tags: ["gui", "apple", "consumer", "personal-computing"],
|
|
1221
|
+
wikidataId: "Q75687"
|
|
1222
|
+
}),
|
|
1223
|
+
ev3({
|
|
1224
|
+
id: "dns",
|
|
1225
|
+
title: "Domain Name System (DNS)",
|
|
1226
|
+
description: "Paul Mockapetris invented DNS to replace the hosts.txt file. Hierarchical, distributed naming for the internet. Every URL you type resolves through DNS \u2014 the phonebook of the internet.",
|
|
1227
|
+
yearNum: 1983,
|
|
1228
|
+
yearLabel: "1983",
|
|
1229
|
+
precision: "year",
|
|
1230
|
+
domains: ["technology", "systems"],
|
|
1231
|
+
impactScore: 0.74,
|
|
1232
|
+
tags: ["networking", "dns", "protocol", "naming"],
|
|
1233
|
+
wikidataId: "Q8767"
|
|
1234
|
+
}),
|
|
1235
|
+
// ── Open source & web (1990s) ──────────────────────────────────────
|
|
1236
|
+
ev3({
|
|
1237
|
+
id: "linux",
|
|
1238
|
+
title: "Linux Kernel",
|
|
1239
|
+
description: "Linus Torvalds released Linux 0.01. Combined with GNU tools, it created a free Unix-like OS. Now runs Android, 96% of cloud servers, most supercomputers, and the infrastructure behind every major web service.",
|
|
1240
|
+
yearNum: 1991,
|
|
1241
|
+
yearLabel: "1991",
|
|
1242
|
+
precision: "year",
|
|
1243
|
+
domains: ["technology", "systems"],
|
|
1244
|
+
impactScore: 0.92,
|
|
1245
|
+
tags: ["os", "open-source", "linux", "kernel"],
|
|
1246
|
+
wikidataId: "Q388"
|
|
1247
|
+
}),
|
|
1248
|
+
ev3({
|
|
1249
|
+
id: "python",
|
|
1250
|
+
title: "Python",
|
|
1251
|
+
description: 'Guido van Rossum released Python 0.9. Readability-first design made it the default language for data science, ML, scripting, and teaching. "Life is too short for C" became a movement.',
|
|
1252
|
+
yearNum: 1991,
|
|
1253
|
+
yearLabel: "1991",
|
|
1254
|
+
precision: "year",
|
|
1255
|
+
domains: ["technology"],
|
|
1256
|
+
impactScore: 0.78,
|
|
1257
|
+
tags: ["programming", "language", "python", "readability"],
|
|
1258
|
+
wikidataId: "Q28865"
|
|
1259
|
+
}),
|
|
1260
|
+
ev3({
|
|
1261
|
+
id: "java",
|
|
1262
|
+
title: "Java",
|
|
1263
|
+
description: '"Write once, run anywhere." James Gosling at Sun Microsystems created the JVM abstraction. Dominated enterprise development for 20 years and inspired the managed-runtime approach of C#, Kotlin, and more.',
|
|
1264
|
+
yearNum: 1995,
|
|
1265
|
+
yearLabel: "1995",
|
|
1266
|
+
precision: "year",
|
|
1267
|
+
domains: ["technology"],
|
|
1268
|
+
impactScore: 0.8,
|
|
1269
|
+
tags: ["programming", "language", "jvm", "enterprise"],
|
|
1270
|
+
wikidataId: "Q251"
|
|
1271
|
+
}),
|
|
1272
|
+
ev3({
|
|
1273
|
+
id: "javascript",
|
|
1274
|
+
title: "JavaScript",
|
|
1275
|
+
description: "Brendan Eich created JavaScript in 10 days at Netscape. Became the only language that runs natively in browsers \u2014 and now, via Node.js, everywhere else. The most deployed programming language in history.",
|
|
1276
|
+
yearNum: 1995,
|
|
1277
|
+
yearLabel: "1995",
|
|
1278
|
+
precision: "year",
|
|
1279
|
+
domains: ["technology"],
|
|
1280
|
+
impactScore: 0.84,
|
|
1281
|
+
tags: ["programming", "language", "javascript", "web", "browser"],
|
|
1282
|
+
wikidataId: "Q2005"
|
|
1283
|
+
}),
|
|
1284
|
+
ev3({
|
|
1285
|
+
id: "postgresql",
|
|
1286
|
+
title: "PostgreSQL",
|
|
1287
|
+
description: "Born from Berkeley's POSTGRES project. The open-source relational database that became the default choice for startups and enterprises alike. Extensible, standards-compliant, and free.",
|
|
1288
|
+
yearNum: 1996,
|
|
1289
|
+
yearLabel: "1996",
|
|
1290
|
+
precision: "year",
|
|
1291
|
+
domains: ["technology"],
|
|
1292
|
+
impactScore: 0.74,
|
|
1293
|
+
tags: ["database", "relational", "postgresql", "open-source"],
|
|
1294
|
+
wikidataId: "Q192490"
|
|
1295
|
+
}),
|
|
1296
|
+
ev3({
|
|
1297
|
+
id: "google_pagerank",
|
|
1298
|
+
title: "Google / PageRank",
|
|
1299
|
+
description: "Larry Page and Sergey Brin applied link analysis to web search. Ranked pages by how many quality pages link to them. Solved web discovery and built the largest advertising business in history.",
|
|
1300
|
+
yearNum: 1998,
|
|
1301
|
+
yearLabel: "1998",
|
|
1302
|
+
precision: "year",
|
|
1303
|
+
domains: ["technology", "economy"],
|
|
1304
|
+
impactScore: 0.88,
|
|
1305
|
+
tags: ["search", "web", "google", "algorithm", "advertising"],
|
|
1306
|
+
wikidataId: "Q9366"
|
|
1307
|
+
}),
|
|
1308
|
+
// ── Modern dev tooling & practices (2000s) ─────────────────────────
|
|
1309
|
+
ev3({
|
|
1310
|
+
id: "rest_api",
|
|
1311
|
+
title: "REST Architecture",
|
|
1312
|
+
description: "Roy Fielding's doctoral thesis defined REST \u2014 stateless, resource-oriented, HTTP-native API design. Became the dominant pattern for web services, replacing SOAP/XML with simpler JSON APIs.",
|
|
1313
|
+
yearNum: 2e3,
|
|
1314
|
+
yearLabel: "2000",
|
|
1315
|
+
precision: "year",
|
|
1316
|
+
domains: ["technology"],
|
|
1317
|
+
impactScore: 0.74,
|
|
1318
|
+
tags: ["api", "rest", "architecture", "web-services"],
|
|
1319
|
+
wikidataId: "Q749568"
|
|
1320
|
+
}),
|
|
1321
|
+
ev3({
|
|
1322
|
+
id: "agile_manifesto",
|
|
1323
|
+
title: "Agile Manifesto",
|
|
1324
|
+
description: '17 software developers signed the Agile Manifesto at Snowbird. "Individuals and interactions over processes and tools." Replaced waterfall with iterative development and reshaped how the industry ships software.',
|
|
1325
|
+
yearNum: 2001,
|
|
1326
|
+
yearLabel: "2001",
|
|
1327
|
+
precision: "year",
|
|
1328
|
+
domains: ["technology", "systems"],
|
|
1329
|
+
impactScore: 0.72,
|
|
1330
|
+
tags: ["methodology", "agile", "software-engineering", "process"],
|
|
1331
|
+
wikidataId: "Q326523"
|
|
1332
|
+
}),
|
|
1333
|
+
ev3({
|
|
1334
|
+
id: "git",
|
|
1335
|
+
title: "Git",
|
|
1336
|
+
description: "Linus Torvalds built Git in 2 weeks after BitKeeper revoked free access. Distributed version control that made branching cheap and merging sane. Foundation of modern collaborative development.",
|
|
1337
|
+
yearNum: 2005,
|
|
1338
|
+
yearLabel: "2005",
|
|
1339
|
+
precision: "year",
|
|
1340
|
+
domains: ["technology"],
|
|
1341
|
+
impactScore: 0.82,
|
|
1342
|
+
tags: ["version-control", "git", "distributed", "collaboration"],
|
|
1343
|
+
wikidataId: "Q186055"
|
|
1344
|
+
}),
|
|
1345
|
+
ev3({
|
|
1346
|
+
id: "aws",
|
|
1347
|
+
title: "AWS / Cloud Computing",
|
|
1348
|
+
description: "Amazon Web Services launched S3 and EC2. Turned infrastructure into an API call. No more buying servers \u2014 just rent compute by the hour. Created the cloud industry and enabled the startup explosion.",
|
|
1349
|
+
yearNum: 2006,
|
|
1350
|
+
yearLabel: "2006",
|
|
1351
|
+
precision: "year",
|
|
1352
|
+
domains: ["technology", "economy"],
|
|
1353
|
+
impactScore: 0.88,
|
|
1354
|
+
tags: ["cloud", "infrastructure", "aws", "iaas", "saas"],
|
|
1355
|
+
wikidataId: "Q456157"
|
|
1356
|
+
}),
|
|
1357
|
+
ev3({
|
|
1358
|
+
id: "github",
|
|
1359
|
+
title: "GitHub",
|
|
1360
|
+
description: "Tom Preston-Werner, Chris Wanstrath, PJ Hyett launched GitHub. Git + social features + pull requests = the social network for code. 100M+ developers, the world's largest open-source ecosystem.",
|
|
1361
|
+
yearNum: 2008,
|
|
1362
|
+
yearLabel: "2008",
|
|
1363
|
+
precision: "year",
|
|
1364
|
+
domains: ["technology", "systems"],
|
|
1365
|
+
impactScore: 0.8,
|
|
1366
|
+
tags: ["collaboration", "git", "open-source", "social"],
|
|
1367
|
+
wikidataId: "Q364"
|
|
1368
|
+
}),
|
|
1369
|
+
ev3({
|
|
1370
|
+
id: "stackoverflow",
|
|
1371
|
+
title: "Stack Overflow",
|
|
1372
|
+
description: 'Joel Spolsky and Jeff Atwood built the Q&A site that replaced expert forums. Gamified knowledge sharing for developers. Changed how an entire generation learned to code \u2014 "just Google it" really means "find the SO answer."',
|
|
1373
|
+
yearNum: 2008,
|
|
1374
|
+
yearLabel: "2008",
|
|
1375
|
+
precision: "year",
|
|
1376
|
+
domains: ["technology", "culture"],
|
|
1377
|
+
impactScore: 0.72,
|
|
1378
|
+
tags: ["knowledge", "community", "qa", "developer"],
|
|
1379
|
+
wikidataId: "Q549037"
|
|
1380
|
+
}),
|
|
1381
|
+
ev3({
|
|
1382
|
+
id: "nodejs",
|
|
1383
|
+
title: "Node.js",
|
|
1384
|
+
description: "Ryan Dahl put V8 (Chrome's JS engine) on the server. JavaScript everywhere \u2014 frontend and backend in one language. Spawned npm (largest package registry), enabled real-time web apps, and created the full-stack JS ecosystem.",
|
|
1385
|
+
yearNum: 2009,
|
|
1386
|
+
yearLabel: "2009",
|
|
1387
|
+
precision: "year",
|
|
1388
|
+
domains: ["technology"],
|
|
1389
|
+
impactScore: 0.78,
|
|
1390
|
+
tags: ["javascript", "runtime", "server", "npm", "fullstack"],
|
|
1391
|
+
wikidataId: "Q756100"
|
|
1392
|
+
}),
|
|
1393
|
+
ev3({
|
|
1394
|
+
id: "golang",
|
|
1395
|
+
title: "Go Language",
|
|
1396
|
+
description: "Rob Pike, Ken Thompson, Robert Griesemer at Google created Go. Fast compilation, built-in concurrency (goroutines), simplicity-by-design. Became the language of cloud infrastructure \u2014 Docker, Kubernetes, Terraform all written in Go.",
|
|
1397
|
+
yearNum: 2009,
|
|
1398
|
+
yearLabel: "2009",
|
|
1399
|
+
precision: "year",
|
|
1400
|
+
domains: ["technology"],
|
|
1401
|
+
impactScore: 0.72,
|
|
1402
|
+
tags: ["programming", "language", "go", "golang", "concurrency", "cloud"],
|
|
1403
|
+
wikidataId: "Q37227"
|
|
1404
|
+
}),
|
|
1405
|
+
ev3({
|
|
1406
|
+
id: "nosql_movement",
|
|
1407
|
+
title: "NoSQL Movement",
|
|
1408
|
+
description: "MongoDB, Cassandra, Redis emerged as alternatives to relational databases. Trade consistency for scalability. Suited for web-scale data that doesn't fit neatly into tables.",
|
|
1409
|
+
yearNum: 2009,
|
|
1410
|
+
yearLabel: "2009",
|
|
1411
|
+
precision: "year",
|
|
1412
|
+
domains: ["technology"],
|
|
1413
|
+
impactScore: 0.7,
|
|
1414
|
+
tags: ["database", "nosql", "mongodb", "redis", "scalability"],
|
|
1415
|
+
wikidataId: "Q621284"
|
|
1416
|
+
}),
|
|
1417
|
+
ev3({
|
|
1418
|
+
id: "oauth",
|
|
1419
|
+
title: "OAuth 2.0",
|
|
1420
|
+
description: 'Standardized delegated authorization for the web. "Sign in with Google/GitHub" \u2014 users grant limited access without sharing passwords. The identity layer of the modern web.',
|
|
1421
|
+
yearNum: 2010,
|
|
1422
|
+
yearLabel: "2010",
|
|
1423
|
+
precision: "year",
|
|
1424
|
+
domains: ["technology", "systems"],
|
|
1425
|
+
impactScore: 0.68,
|
|
1426
|
+
tags: ["security", "auth", "oauth", "identity", "protocol"],
|
|
1427
|
+
wikidataId: "Q384157"
|
|
1428
|
+
}),
|
|
1429
|
+
// ── Modern infrastructure (2010s) ──────────────────────────────────
|
|
1430
|
+
ev3({
|
|
1431
|
+
id: "typescript",
|
|
1432
|
+
title: "TypeScript",
|
|
1433
|
+
description: "Microsoft's Anders Hejlsberg added static types to JavaScript. Catches bugs at compile time, enables IDE autocompletion, scales JS to large codebases. Now used by most major JS projects.",
|
|
1434
|
+
yearNum: 2012,
|
|
1435
|
+
yearLabel: "2012",
|
|
1436
|
+
precision: "year",
|
|
1437
|
+
domains: ["technology"],
|
|
1438
|
+
impactScore: 0.74,
|
|
1439
|
+
tags: ["programming", "language", "typescript", "types", "javascript"],
|
|
1440
|
+
wikidataId: "Q978185"
|
|
1441
|
+
}),
|
|
1442
|
+
ev3({
|
|
1443
|
+
id: "docker",
|
|
1444
|
+
title: "Docker",
|
|
1445
|
+
description: 'Solomon Hykes introduced Linux containers to the masses. "Build once, run anywhere" \u2014 for real this time. Package your app with its dependencies. Killed "works on my machine" and enabled microservices at scale.',
|
|
1446
|
+
yearNum: 2013,
|
|
1447
|
+
yearLabel: "2013",
|
|
1448
|
+
precision: "year",
|
|
1449
|
+
domains: ["technology", "systems"],
|
|
1450
|
+
impactScore: 0.82,
|
|
1451
|
+
tags: ["containers", "devops", "docker", "deployment"],
|
|
1452
|
+
wikidataId: "Q15206305"
|
|
1453
|
+
}),
|
|
1454
|
+
ev3({
|
|
1455
|
+
id: "reactjs",
|
|
1456
|
+
title: "React.js",
|
|
1457
|
+
description: "Facebook open-sourced React. Component-based UI with virtual DOM and one-way data flow. Changed frontend development from jQuery spaghetti to declarative, composable interfaces. Spawned React Native, Next.js, and the component ecosystem.",
|
|
1458
|
+
yearNum: 2013,
|
|
1459
|
+
yearLabel: "2013",
|
|
1460
|
+
precision: "year",
|
|
1461
|
+
domains: ["technology"],
|
|
1462
|
+
impactScore: 0.78,
|
|
1463
|
+
tags: ["frontend", "react", "javascript", "ui", "component"],
|
|
1464
|
+
wikidataId: "Q19399674"
|
|
1465
|
+
}),
|
|
1466
|
+
ev3({
|
|
1467
|
+
id: "kubernetes",
|
|
1468
|
+
title: "Kubernetes",
|
|
1469
|
+
description: "Google open-sourced its container orchestration system. Automates deployment, scaling, and management of containerized applications. Became the operating system of the cloud \u2014 the de facto standard for production workloads.",
|
|
1470
|
+
yearNum: 2014,
|
|
1471
|
+
yearLabel: "2014",
|
|
1472
|
+
precision: "year",
|
|
1473
|
+
domains: ["technology", "systems"],
|
|
1474
|
+
impactScore: 0.82,
|
|
1475
|
+
tags: ["containers", "orchestration", "kubernetes", "k8s", "cloud", "devops"],
|
|
1476
|
+
wikidataId: "Q22661306"
|
|
1477
|
+
}),
|
|
1478
|
+
ev3({
|
|
1479
|
+
id: "terraform",
|
|
1480
|
+
title: "Terraform / Infrastructure as Code",
|
|
1481
|
+
description: "HashiCorp released Terraform. Describe infrastructure in declarative config files, version it in Git, apply changes reproducibly. IaC completed the DevOps revolution \u2014 infrastructure became software.",
|
|
1482
|
+
yearNum: 2014,
|
|
1483
|
+
yearLabel: "2014",
|
|
1484
|
+
precision: "year",
|
|
1485
|
+
domains: ["technology", "systems"],
|
|
1486
|
+
impactScore: 0.72,
|
|
1487
|
+
tags: ["iac", "terraform", "devops", "infrastructure", "declarative"],
|
|
1488
|
+
wikidataId: "Q21080311"
|
|
1489
|
+
}),
|
|
1490
|
+
ev3({
|
|
1491
|
+
id: "rust_1_0",
|
|
1492
|
+
title: "Rust 1.0",
|
|
1493
|
+
description: "Mozilla released Rust 1.0. Memory safety without garbage collection \u2014 the borrow checker catches use-after-free at compile time. Growing adoption in systems programming where C/C++ dominated for decades.",
|
|
1494
|
+
yearNum: 2015,
|
|
1495
|
+
yearLabel: "2015",
|
|
1496
|
+
precision: "year",
|
|
1497
|
+
domains: ["technology"],
|
|
1498
|
+
impactScore: 0.72,
|
|
1499
|
+
tags: ["programming", "language", "rust", "memory-safety", "systems"],
|
|
1500
|
+
wikidataId: "Q575650"
|
|
1501
|
+
}),
|
|
1502
|
+
ev3({
|
|
1503
|
+
id: "graphql",
|
|
1504
|
+
title: "GraphQL",
|
|
1505
|
+
description: "Facebook open-sourced GraphQL. Client specifies exactly what data it needs \u2014 no over-fetching, no under-fetching. Alternative to REST that works well for complex, nested data requirements.",
|
|
1506
|
+
yearNum: 2015,
|
|
1507
|
+
yearLabel: "2015",
|
|
1508
|
+
precision: "year",
|
|
1509
|
+
domains: ["technology"],
|
|
1510
|
+
impactScore: 0.65,
|
|
1511
|
+
tags: ["api", "graphql", "query-language", "facebook"],
|
|
1512
|
+
wikidataId: "Q25104949"
|
|
1513
|
+
}),
|
|
1514
|
+
ev3({
|
|
1515
|
+
id: "vscode",
|
|
1516
|
+
title: "VS Code",
|
|
1517
|
+
description: "Microsoft released Visual Studio Code. Electron-based, extensible, free. Won the editor war through the extension marketplace and language server protocol (LSP). Now used by ~70% of developers.",
|
|
1518
|
+
yearNum: 2015,
|
|
1519
|
+
yearLabel: "2015",
|
|
1520
|
+
precision: "year",
|
|
1521
|
+
domains: ["technology"],
|
|
1522
|
+
impactScore: 0.72,
|
|
1523
|
+
tags: ["editor", "ide", "vscode", "developer-tools", "microsoft"],
|
|
1524
|
+
wikidataId: "Q20829091"
|
|
1525
|
+
}),
|
|
1526
|
+
ev3({
|
|
1527
|
+
id: "websockets",
|
|
1528
|
+
title: "WebSocket Protocol (RFC 6455)",
|
|
1529
|
+
description: "Full-duplex communication over a single TCP connection. Enabled real-time web applications \u2014 chat, live dashboards, collaborative editing, gaming \u2014 without HTTP polling hacks.",
|
|
1530
|
+
yearNum: 2011,
|
|
1531
|
+
yearLabel: "2011",
|
|
1532
|
+
precision: "year",
|
|
1533
|
+
domains: ["technology"],
|
|
1534
|
+
impactScore: 0.64,
|
|
1535
|
+
tags: ["protocol", "websocket", "websockets", "real-time", "web"],
|
|
1536
|
+
wikidataId: "Q859917"
|
|
1537
|
+
}),
|
|
1538
|
+
ev3({
|
|
1539
|
+
id: "mcp_protocol",
|
|
1540
|
+
title: "Model Context Protocol (MCP)",
|
|
1541
|
+
description: 'Anthropic open-sourced MCP \u2014 a standard for connecting AI agents to external tools and data sources. Agents can call tools, read resources, and compose capabilities. The "USB-C for AI" \u2014 one protocol to connect any agent to any tool.',
|
|
1542
|
+
yearNum: 2024,
|
|
1543
|
+
yearLabel: "2024",
|
|
1544
|
+
precision: "year",
|
|
1545
|
+
domains: ["technology", "systems"],
|
|
1546
|
+
impactScore: 0.78,
|
|
1547
|
+
tags: ["ai", "protocol", "mcp", "agents", "tools", "anthropic"],
|
|
1548
|
+
wikidataId: "Q130901288"
|
|
1549
|
+
}),
|
|
1550
|
+
ev3({
|
|
1551
|
+
id: "microservices",
|
|
1552
|
+
title: "Microservices Architecture",
|
|
1553
|
+
description: "Martin Fowler and James Lewis codified the microservices pattern. Break monoliths into small, independently deployable services. Enabled by Docker + Kubernetes, adopted by Netflix, Amazon, Google.",
|
|
1554
|
+
yearNum: 2014,
|
|
1555
|
+
yearLabel: "2014",
|
|
1556
|
+
precision: "year",
|
|
1557
|
+
domains: ["technology", "systems"],
|
|
1558
|
+
impactScore: 0.7,
|
|
1559
|
+
tags: ["architecture", "microservices", "distributed", "pattern"],
|
|
1560
|
+
wikidataId: "Q18344264"
|
|
1561
|
+
})
|
|
1562
|
+
];
|
|
1563
|
+
|
|
1564
|
+
// ../../packages/ckg/dist/seed/links-computing.js
|
|
1565
|
+
var seed3 = (fromEvent, toEvent, rel, evidence, confidence) => ({
|
|
1566
|
+
id: `${fromEvent}--${rel}-->${toEvent}`,
|
|
1567
|
+
fromEvent,
|
|
1568
|
+
toEvent,
|
|
1569
|
+
relationship: rel,
|
|
1570
|
+
confidence: confidence ?? (rel === "caused" ? 0.9 : 0.8),
|
|
1571
|
+
evidence,
|
|
1572
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 computing" }],
|
|
1573
|
+
contributedBy: "system",
|
|
1574
|
+
validated: true,
|
|
1575
|
+
scope: "world"
|
|
1576
|
+
});
|
|
1577
|
+
var computingLinks = [
|
|
1578
|
+
// ── Pre-electronic foundations ──────────────────────────────────────
|
|
1579
|
+
seed3("babbage_engine", "lovelace_algorithm", "enabled", "Lovelace wrote her algorithm specifically for the Analytical Engine. No machine concept \u2192 no algorithm concept."),
|
|
1580
|
+
seed3("lovelace_algorithm", "turing_m", "inspired", "Lovelace articulated that machines could manipulate symbols beyond numbers \u2014 the philosophical seed Turing formalized 93 years later.", 0.6),
|
|
1581
|
+
seed3("boolean_algebra", "shannon_info_theory", "enabled", "Shannon's 1937 master's thesis proved Boolean algebra maps to switching circuits. His 1948 information theory built on this foundation."),
|
|
1582
|
+
seed3("boolean_algebra", "eniac", "enabled", "ENIAC's logic circuits were direct implementations of Boolean operations in electronic hardware."),
|
|
1583
|
+
seed3("hollerith_tabulator", "eniac", "enabled", "Hollerith's tabulating machines proved mechanical data processing was commercially viable, creating institutional demand for faster electronic alternatives."),
|
|
1584
|
+
// ── Birth of electronic computing ──────────────────────────────────
|
|
1585
|
+
seed3("eniac", "von_neumann_arch", "enabled", `Von Neumann observed ENIAC's limitations (hard-wired programs) and proposed the stored-program concept in his "First Draft" report based on the ENIAC project.`),
|
|
1586
|
+
seed3("von_neumann_arch", "fortran", "enabled", "Stored-program computers made high-level languages possible \u2014 instructions could be compiled into memory rather than hard-wired."),
|
|
1587
|
+
seed3("transistor", "integrated_circuit", "caused", "The IC is literally multiple transistors fabricated on a single semiconductor substrate. No transistor \u2192 no IC.", 0.95),
|
|
1588
|
+
seed3("integrated_circuit", "moores_law", "caused", "Moore observed the doubling trend specifically in integrated circuit transistor counts. The IC is the object of the law.", 0.92),
|
|
1589
|
+
seed3("moores_law", "ibm_pc", "enabled", "Exponential cost reduction in chips made personal computers economically viable for consumers and small businesses."),
|
|
1590
|
+
seed3("transistor", "eniac", "enabled", "While ENIAC used vacuum tubes, the transistor (invented 2 years later) was critical for the reliability needed in subsequent computers.", 0.5),
|
|
1591
|
+
// ── Programming languages chain ────────────────────────────────────
|
|
1592
|
+
seed3("fortran", "cobol", "enabled", "FORTRAN proved that high-level compiled languages were practical. COBOL applied the same approach to business data processing 2 years later."),
|
|
1593
|
+
seed3("fortran", "c_language", "enabled", "FORTRAN established the compiled-language paradigm. C evolved through BCPL \u2192 B \u2192 C, each building on the concept that compilers could be efficient."),
|
|
1594
|
+
seed3("c_language", "unix", "caused", "Unix was rewritten in C in 1973 \u2014 the first OS written in a high-level language. C and Unix co-evolved; each made the other viable.", 0.92),
|
|
1595
|
+
seed3("unix", "c_language", "accelerated", "Unix's adoption spread C everywhere. Every Unix system needed a C compiler, creating a self-reinforcing ecosystem.", 0.85),
|
|
1596
|
+
seed3("c_language", "python", "enabled", "CPython (the reference Python interpreter) is written in C. Python's C extension API became its superpower for scientific computing."),
|
|
1597
|
+
seed3("c_language", "java", "enabled", "Java's syntax is directly derived from C/C++. Gosling designed Java to be familiar to C programmers while adding memory safety."),
|
|
1598
|
+
seed3("c_language", "javascript", "enabled", "JavaScript borrowed C-family syntax (braces, semicolons, operators) to feel familiar to web developers already trained on C/C++/Java."),
|
|
1599
|
+
seed3("java", "golang", "inspired", "Go was designed as a reaction to Java/C++ complexity. Pike and Thompson kept what worked (static typing, compilation) and stripped what didn't (inheritance, generics initially, build complexity).", 0.7),
|
|
1600
|
+
seed3("c_language", "rust_1_0", "enabled", "Rust targets the same systems-programming niche as C/C++. Its borrow checker solves the memory safety problems that decades of C code demonstrated."),
|
|
1601
|
+
seed3("javascript", "nodejs", "caused", "Node.js is V8 (Chrome's JavaScript engine) on the server. No JavaScript \u2192 no Node.js.", 0.95),
|
|
1602
|
+
seed3("javascript", "typescript", "caused", "TypeScript is a strict syntactical superset of JavaScript. It exists only because JavaScript needed types at scale.", 0.95),
|
|
1603
|
+
seed3("java", "postgresql", "enabled", "While PostgreSQL predates Java, the JDBC driver and enterprise Java ecosystem drove PostgreSQL adoption in production systems.", 0.5),
|
|
1604
|
+
// ── Operating systems & infrastructure ──────────────────────────────
|
|
1605
|
+
seed3("unix", "linux", "inspired", "Torvalds built Linux as a free Unix-like kernel. Same philosophy (everything is a file, pipes, small tools) reimplemented from scratch to avoid AT&T licensing.", 0.9),
|
|
1606
|
+
seed3("gnu_project", "linux", "enabled", 'GNU provided the userland tools (gcc, bash, coreutils) that Linux needed. "GNU/Linux" \u2014 the kernel alone is useless without the toolchain.', 0.9),
|
|
1607
|
+
seed3("linux", "aws", "enabled", "AWS runs primarily on Linux. Cloud computing is economically viable because the OS layer is free and customizable."),
|
|
1608
|
+
seed3("linux", "docker", "caused", "Docker relies on Linux kernel features (cgroups, namespaces) for containerization. Linux containers are the foundation Docker productized.", 0.92),
|
|
1609
|
+
seed3("linux", "kubernetes", "enabled", "Kubernetes orchestrates Linux containers. Google's internal Borg system (which inspired K8s) ran on Linux clusters."),
|
|
1610
|
+
seed3("linux", "golang", "enabled", "Go was designed at Google for Linux server infrastructure. Its concurrency model targets the Linux process/thread model.", 0.6),
|
|
1611
|
+
// ── Networking chain ───────────────────────────────────────────────
|
|
1612
|
+
seed3("ethernet", "tcp_ip_standard", "enabled", "Ethernet provided the physical layer for local networks. TCP/IP provided the protocol layer that unified local networks into the internet."),
|
|
1613
|
+
seed3("tcp_ip_standard", "dns", "enabled", "DNS was created to make TCP/IP networks human-navigable. IP addresses need names; DNS provides the mapping."),
|
|
1614
|
+
seed3("tcp_ip_standard", "web", "enabled", "HTTP runs on TCP/IP. The World Wide Web is an application-layer protocol built on top of the internet's transport layer."),
|
|
1615
|
+
seed3("dns", "web", "enabled", "URLs use domain names. Without DNS, the web would require memorizing IP addresses \u2014 adoption would have stalled."),
|
|
1616
|
+
seed3("web", "javascript", "caused", "JavaScript was created in 10 days specifically for Netscape Navigator \u2014 a web browser. No web \u2192 no JavaScript.", 0.95),
|
|
1617
|
+
seed3("web", "rest_api", "enabled", "REST was designed around HTTP semantics (GET, POST, PUT, DELETE). It's a web-native architectural style."),
|
|
1618
|
+
seed3("web", "google_pagerank", "caused", "Google exists because the web created an information discovery problem. PageRank is specifically a web graph algorithm.", 0.92),
|
|
1619
|
+
seed3("web", "websockets", "enabled", "WebSockets upgrade HTTP connections to full-duplex. Born from the need for real-time web apps that HTTP request-response couldn't serve."),
|
|
1620
|
+
// ── GUI & developer experience ─────────────────────────────────────
|
|
1621
|
+
seed3("xerox_alto", "macintosh", "caused", "Steve Jobs visited Xerox PARC in 1979 and saw the Alto. The Macintosh GUI was directly inspired by that visit \u2014 Apple hired PARC engineers.", 0.9),
|
|
1622
|
+
seed3("macintosh", "web", "enabled", "GUI computing normalized visual interaction patterns (point, click, navigate) that the web browser adopted. Hyperlinks are just clickable text.", 0.6),
|
|
1623
|
+
seed3("vscode", "typescript", "accelerated", "VS Code is written in TypeScript and provides best-in-class TypeScript support. Each drives adoption of the other.", 0.7),
|
|
1624
|
+
// ── Version control & collaboration ────────────────────────────────
|
|
1625
|
+
seed3("linux", "git", "caused", "Torvalds built Git specifically to manage the Linux kernel source after the BitKeeper license was revoked. Linux's scale requirements shaped Git's design.", 0.92),
|
|
1626
|
+
seed3("git", "github", "caused", "GitHub is a hosted Git service. No Git \u2192 no GitHub. GitHub added the social and PR workflow layer on top.", 0.95),
|
|
1627
|
+
seed3("github", "linux", "accelerated", "GitHub made open-source contributions trivially easy \u2014 fork, branch, PR. Thousands of Linux ecosystem projects flourished on GitHub, accelerating the kernel's surrounding toolchain adoption.", 0.7),
|
|
1628
|
+
// ── Cloud & DevOps ─────────────────────────────────────────────────
|
|
1629
|
+
seed3("aws", "docker", "enabled", "Cloud made disposable infrastructure normal. Docker made the deployment unit portable. Together they created the container-in-the-cloud paradigm."),
|
|
1630
|
+
seed3("docker", "kubernetes", "caused", "Kubernetes orchestrates Docker containers (and OCI containers). Docker created the packaging format; K8s automated running them at scale.", 0.9),
|
|
1631
|
+
seed3("docker", "microservices", "enabled", "Containers made microservices practical. Each service in its own container, independently deployable. Before Docker, running 50 services was an ops nightmare."),
|
|
1632
|
+
seed3("kubernetes", "terraform", "accelerated", "K8s popularized declarative infrastructure. Terraform extended the same principle to cloud resources beyond containers.", 0.65),
|
|
1633
|
+
seed3("agile_manifesto", "docker", "enabled", 'Agile demanded frequent, reliable deployments. Docker made "deploy often" technically feasible by solving environment consistency.', 0.6),
|
|
1634
|
+
seed3("agile_manifesto", "git", "enabled", "Agile's emphasis on collaboration and frequent integration drove demand for better version control. Git's branching model fits agile workflows perfectly.", 0.6),
|
|
1635
|
+
// ── Data layer ─────────────────────────────────────────────────────
|
|
1636
|
+
seed3("relational_db", "postgresql", "caused", "PostgreSQL implements Codd's relational model. It's a direct descendant of the POSTGRES project, which was itself an evolution of the relational concept.", 0.92),
|
|
1637
|
+
seed3("relational_db", "nosql_movement", "enabled", "NoSQL was a reaction to relational DB limitations at web scale. You need the relational model to exist before you can consciously reject it for specific use cases."),
|
|
1638
|
+
seed3("aws", "nosql_movement", "enabled", "Cloud-scale applications exposed relational DB scaling limits. DynamoDB, BigTable \u2014 cloud providers built NoSQL to handle their own scale."),
|
|
1639
|
+
seed3("rest_api", "graphql", "enabled", "GraphQL was created at Facebook to solve REST over-fetching/under-fetching. REST had to exist and show its limitations before GraphQL made sense."),
|
|
1640
|
+
seed3("rest_api", "oauth", "enabled", "OAuth delegates authorization for REST APIs. The protocol assumes HTTP/REST-style resource access patterns."),
|
|
1641
|
+
// ── Knowledge & community ──────────────────────────────────────────
|
|
1642
|
+
seed3("web", "stackoverflow", "enabled", "Stack Overflow is a web application built for web-era developer culture. Search-indexed Q&A only works because the web makes content discoverable."),
|
|
1643
|
+
seed3("stackoverflow", "chatgpt", "enabled", "ChatGPT's coding ability was partly trained on Stack Overflow data. SO's structured Q&A format provided high-quality training signal.", 0.6),
|
|
1644
|
+
// ── Cross-links to existing graph ──────────────────────────────────
|
|
1645
|
+
seed3("shannon_info_theory", "internet", "enabled", "Shannon's theory defined the theoretical limits of data transmission. TCP/IP and every network protocol operate within Shannon capacity bounds."),
|
|
1646
|
+
seed3("timesharing", "internet", "enabled", "Time-sharing systems created the demand for remote access and resource sharing that ARPANET addressed."),
|
|
1647
|
+
seed3("von_neumann_arch", "turing_m", "enabled", "Von Neumann's stored-program architecture is a practical realization of Turing's universal machine concept.", 0.85),
|
|
1648
|
+
seed3("ibm_pc", "web", "enabled", "The PC installed base created the consumer market for the web. Millions of networked PCs \u2192 millions of potential web users."),
|
|
1649
|
+
seed3("ibm_pc", "macintosh", "accelerated", "IBM PC's success proved the personal computer market. Apple positioned the Macintosh as the premium alternative.", 0.65),
|
|
1650
|
+
seed3("google_pagerank", "aws", "enabled", "Google proved that commodity hardware at scale could be more powerful than expensive servers. AWS applied the same economics to infrastructure-as-a-service.", 0.6),
|
|
1651
|
+
seed3("github", "vscode", "enabled", "Microsoft acquired GitHub (2018) and deeply integrated it with VS Code. GitHub Copilot, Codespaces, and PR reviews live inside VS Code.", 0.7),
|
|
1652
|
+
seed3("nodejs", "reactjs", "enabled", "React's toolchain (webpack, babel, create-react-app) runs on Node.js. npm is the distribution mechanism for React and its ecosystem."),
|
|
1653
|
+
seed3("reactjs", "graphql", "accelerated", "Facebook developed both React and GraphQL. React's component model pairs well with GraphQL's declarative data fetching (Relay).", 0.6),
|
|
1654
|
+
seed3("golang", "docker", "caused", "Docker is written in Go. Go's static binaries and Linux syscall access made it ideal for container runtime development.", 0.85),
|
|
1655
|
+
seed3("golang", "kubernetes", "caused", "Kubernetes is written in Go. Google chose Go for K8s because of its concurrency model and deployment simplicity.", 0.85),
|
|
1656
|
+
seed3("golang", "terraform", "caused", "Terraform is written in Go. HashiCorp adopted Go for all its infrastructure tools (Consul, Vault, Nomad) for the same static-binary advantages.", 0.85),
|
|
1657
|
+
seed3("moores_law", "transformer", "enabled", "Transformer training requires massive GPU compute. 50+ years of Moore's Law created the hardware base that makes attention-at-scale feasible."),
|
|
1658
|
+
seed3("moores_law", "iphone", "enabled", "A smartphone is only possible when chips are small, powerful, and cheap enough to fit in a pocket. Moore's Law made that happen."),
|
|
1659
|
+
seed3("aws", "ai", "enabled", "Cloud computing provides the elastic GPU clusters needed for LLM training and inference. No cloud \u2192 AI stays in university labs."),
|
|
1660
|
+
seed3("python", "ai", "enabled", "Python is the lingua franca of AI/ML (TensorFlow, PyTorch, scikit-learn, numpy). Its readability + C extensions made it the bridge between researchers and GPUs."),
|
|
1661
|
+
seed3("imagenet", "aws", "enabled", "Large-scale datasets like ImageNet required cloud storage and compute for distribution and training. The data-hungry ML era drove cloud GPU demand.", 0.5),
|
|
1662
|
+
// ── Developer culture connections ──────────────────────────────────
|
|
1663
|
+
seed3("gnu_project", "agile_manifesto", "enabled", "Free software culture established that developers could organize around shared values, not just employers. Agile Manifesto was written by independent consultants, not corporate mandates.", 0.5),
|
|
1664
|
+
seed3("git", "microservices", "enabled", "Microservices require independent repos or monorepo strategies with good branching. Git's cheap branching made polyrepo microservices manageable.", 0.55),
|
|
1665
|
+
seed3("stackoverflow", "vscode", "enabled", "VS Code's extension ecosystem mirrors SO's community model \u2014 developers sharing tools and knowledge freely. Marketplace adoption echoes SO's reputation system.", 0.4),
|
|
1666
|
+
seed3("typescript", "reactjs", "accelerated", "TypeScript + React became the dominant frontend stack. Type-safe props, hooks, and component APIs caught bugs earlier and improved DX.", 0.7),
|
|
1667
|
+
seed3("rest_api", "mcp_protocol", "enabled", "MCP borrows REST-like resource/tool patterns and applies them to AI agent-tool communication. The resource-oriented thinking came from REST.", 0.6),
|
|
1668
|
+
seed3("chatgpt", "mcp_protocol", "enabled", "The explosion of AI agents after ChatGPT created demand for a standard protocol connecting agents to tools. MCP fills the same role HTTP filled for the web.", 0.75),
|
|
1669
|
+
seed3("kubernetes", "microservices", "accelerated", "K8s made microservices operationally viable. Service discovery, load balancing, rolling deploys \u2014 K8s automates the hard parts of running many small services.", 0.8),
|
|
1670
|
+
seed3("websockets", "nodejs", "accelerated", "Node.js's event-driven architecture handles thousands of WebSocket connections efficiently. Real-time web apps (chat, collab editing) drove Node adoption.", 0.65)
|
|
1671
|
+
];
|
|
1672
|
+
|
|
1673
|
+
// ../../packages/ckg/dist/seed/events-web-ecosystem.js
|
|
1674
|
+
var src2 = {
|
|
1675
|
+
type: "demo-seed",
|
|
1676
|
+
reliability: 0.9,
|
|
1677
|
+
citation: "Causari curated baseline \u2014 web ecosystem"
|
|
1678
|
+
};
|
|
1679
|
+
function ev4(e) {
|
|
1680
|
+
return { ...e, scope: "world", sources: [src2] };
|
|
1681
|
+
}
|
|
1682
|
+
var webEcosystemEvents = [
|
|
1683
|
+
// ── CSS & styling ────────────────────────────────────────────────────
|
|
1684
|
+
ev4({
|
|
1685
|
+
id: "sass",
|
|
1686
|
+
title: "Sass (CSS Preprocessor)",
|
|
1687
|
+
description: "Hampton Catlin created Sass \u2014 the first CSS preprocessor. Variables, nesting, mixins made stylesheets maintainable at scale. CSS-in-JS and Tailwind exist partly in reaction to the complexity Sass revealed.",
|
|
1688
|
+
yearNum: 2006,
|
|
1689
|
+
yearLabel: "2006",
|
|
1690
|
+
precision: "year",
|
|
1691
|
+
domains: ["technology"],
|
|
1692
|
+
impactScore: 0.62,
|
|
1693
|
+
tags: ["css", "sass", "preprocessor", "styling", "frontend"],
|
|
1694
|
+
wikidataId: "Q1068305"
|
|
1695
|
+
}),
|
|
1696
|
+
ev4({
|
|
1697
|
+
id: "bootstrap",
|
|
1698
|
+
title: "Bootstrap CSS Framework",
|
|
1699
|
+
description: "Twitter engineers released Bootstrap \u2014 the grid system and component library that standardized responsive web design. Made professional-looking UIs accessible to backend developers and bootstrapped startups for a decade.",
|
|
1700
|
+
yearNum: 2011,
|
|
1701
|
+
yearLabel: "2011",
|
|
1702
|
+
precision: "year",
|
|
1703
|
+
domains: ["technology"],
|
|
1704
|
+
impactScore: 0.68,
|
|
1705
|
+
tags: ["css", "bootstrap", "responsive", "grid", "component-library"],
|
|
1706
|
+
wikidataId: "Q1076900"
|
|
1707
|
+
}),
|
|
1708
|
+
ev4({
|
|
1709
|
+
id: "tailwind",
|
|
1710
|
+
title: "Tailwind CSS",
|
|
1711
|
+
description: "Adam Wathan released Tailwind \u2014 utility-first CSS that puts styling directly in HTML. Challenged the semantic CSS paradigm. Paired with component frameworks (React, Vue), it became the default design system approach for modern web apps.",
|
|
1712
|
+
yearNum: 2017,
|
|
1713
|
+
yearLabel: "2017",
|
|
1714
|
+
precision: "year",
|
|
1715
|
+
domains: ["technology"],
|
|
1716
|
+
impactScore: 0.68,
|
|
1717
|
+
tags: ["css", "tailwind", "utility-first", "design-system", "frontend"],
|
|
1718
|
+
wikidataId: "Q95614011"
|
|
1719
|
+
}),
|
|
1720
|
+
// ── DOM & early JS ecosystem ─────────────────────────────────────────
|
|
1721
|
+
ev4({
|
|
1722
|
+
id: "jquery",
|
|
1723
|
+
title: "jQuery",
|
|
1724
|
+
description: 'John Resig released jQuery \u2014 "write less, do more." Cross-browser DOM manipulation, Ajax, and event handling in one small library. Ran on 73% of websites at its peak. Established JavaScript as a viable platform and created the library ecosystem.',
|
|
1725
|
+
yearNum: 2006,
|
|
1726
|
+
yearLabel: "2006",
|
|
1727
|
+
precision: "year",
|
|
1728
|
+
domains: ["technology"],
|
|
1729
|
+
impactScore: 0.72,
|
|
1730
|
+
tags: ["javascript", "jquery", "dom", "ajax", "library"],
|
|
1731
|
+
wikidataId: "Q230036"
|
|
1732
|
+
}),
|
|
1733
|
+
ev4({
|
|
1734
|
+
id: "ajax",
|
|
1735
|
+
title: "Ajax (Asynchronous JavaScript)",
|
|
1736
|
+
description: 'Jesse James Garrett coined "Ajax" to describe asynchronous data fetching without full page reloads. Gmail and Google Maps demonstrated the paradigm. Transformed websites into interactive applications and defined the "Web 2.0" era.',
|
|
1737
|
+
yearNum: 2005,
|
|
1738
|
+
yearLabel: "2005",
|
|
1739
|
+
precision: "year",
|
|
1740
|
+
domains: ["technology"],
|
|
1741
|
+
impactScore: 0.72,
|
|
1742
|
+
tags: ["javascript", "ajax", "async", "web2", "xhr"],
|
|
1743
|
+
wikidataId: "Q179239"
|
|
1744
|
+
}),
|
|
1745
|
+
// ── Package management ────────────────────────────────────────────────
|
|
1746
|
+
ev4({
|
|
1747
|
+
id: "npm",
|
|
1748
|
+
title: "npm (Node Package Manager)",
|
|
1749
|
+
description: `Isaac Schlueter built npm as the package manager for Node.js. Became the world's largest software registry \u2014 2M+ packages. "npm install" became the universal developer onboarding command and created the composable JS module ecosystem.`,
|
|
1750
|
+
yearNum: 2010,
|
|
1751
|
+
yearLabel: "2010",
|
|
1752
|
+
precision: "year",
|
|
1753
|
+
domains: ["technology"],
|
|
1754
|
+
impactScore: 0.78,
|
|
1755
|
+
tags: ["npm", "package-manager", "registry", "nodejs", "javascript"],
|
|
1756
|
+
wikidataId: "Q7108012"
|
|
1757
|
+
}),
|
|
1758
|
+
// ── Frontend frameworks ──────────────────────────────────────────────
|
|
1759
|
+
ev4({
|
|
1760
|
+
id: "angularjs",
|
|
1761
|
+
title: "AngularJS",
|
|
1762
|
+
description: "Misko Hevery at Google released AngularJS \u2014 the first comprehensive MVC framework for JavaScript. Two-way data binding and dependency injection brought enterprise software patterns to the browser. Dominated enterprise apps 2012-2016.",
|
|
1763
|
+
yearNum: 2010,
|
|
1764
|
+
yearLabel: "2010",
|
|
1765
|
+
precision: "year",
|
|
1766
|
+
domains: ["technology"],
|
|
1767
|
+
impactScore: 0.7,
|
|
1768
|
+
tags: ["javascript", "angular", "framework", "mvc", "google"],
|
|
1769
|
+
wikidataId: "Q12878963"
|
|
1770
|
+
}),
|
|
1771
|
+
ev4({
|
|
1772
|
+
id: "angular2",
|
|
1773
|
+
title: "Angular (v2+)",
|
|
1774
|
+
description: "Google completely rewrote AngularJS in TypeScript as Angular 2 \u2014 components, RxJS observables, CLI, full TypeScript integration. Controversial breaking change but established TypeScript as the enterprise JS standard and popularized observable-based architecture.",
|
|
1775
|
+
yearNum: 2016,
|
|
1776
|
+
yearLabel: "2016",
|
|
1777
|
+
precision: "year",
|
|
1778
|
+
domains: ["technology"],
|
|
1779
|
+
impactScore: 0.66,
|
|
1780
|
+
tags: ["typescript", "angular", "framework", "rxjs", "enterprise"],
|
|
1781
|
+
wikidataId: "Q28028784"
|
|
1782
|
+
}),
|
|
1783
|
+
ev4({
|
|
1784
|
+
id: "vuejs",
|
|
1785
|
+
title: "Vue.js",
|
|
1786
|
+
description: 'Evan You (ex-Google) released Vue \u2014 the "progressive framework." Easier entry point than Angular, simpler mental model than early React. Became the dominant frontend framework in Asia and the default choice for projects wanting React-like UI without the full ecosystem overhead.',
|
|
1787
|
+
yearNum: 2014,
|
|
1788
|
+
yearLabel: "2014",
|
|
1789
|
+
precision: "year",
|
|
1790
|
+
domains: ["technology"],
|
|
1791
|
+
impactScore: 0.72,
|
|
1792
|
+
tags: ["javascript", "vue", "framework", "progressive", "frontend"],
|
|
1793
|
+
wikidataId: "Q28026027"
|
|
1794
|
+
}),
|
|
1795
|
+
ev4({
|
|
1796
|
+
id: "svelte",
|
|
1797
|
+
title: "Svelte",
|
|
1798
|
+
description: "Rich Harris released Svelte \u2014 the first compile-time UI framework. No virtual DOM, no runtime overhead. Components compile to vanilla JS. Challenged React/Vue's runtime paradigm and proved that the framework can live in the compiler, not the browser.",
|
|
1799
|
+
yearNum: 2016,
|
|
1800
|
+
yearLabel: "2016",
|
|
1801
|
+
precision: "year",
|
|
1802
|
+
domains: ["technology"],
|
|
1803
|
+
impactScore: 0.64,
|
|
1804
|
+
tags: ["javascript", "svelte", "compiler", "framework", "no-virtual-dom"],
|
|
1805
|
+
wikidataId: "Q60055583"
|
|
1806
|
+
}),
|
|
1807
|
+
ev4({
|
|
1808
|
+
id: "redux",
|
|
1809
|
+
title: "Redux",
|
|
1810
|
+
description: "Dan Abramov released Redux \u2014 predictable state management for JavaScript. Single store, pure reducers, time-travel debugging. Became the dominant React state solution and popularized functional programming patterns (immutability, pure functions) across frontend development.",
|
|
1811
|
+
yearNum: 2015,
|
|
1812
|
+
yearLabel: "2015",
|
|
1813
|
+
precision: "year",
|
|
1814
|
+
domains: ["technology"],
|
|
1815
|
+
impactScore: 0.64,
|
|
1816
|
+
tags: ["javascript", "redux", "state-management", "react", "functional"],
|
|
1817
|
+
wikidataId: "Q22001046"
|
|
1818
|
+
}),
|
|
1819
|
+
// ── Build tooling ─────────────────────────────────────────────────────
|
|
1820
|
+
ev4({
|
|
1821
|
+
id: "webpack",
|
|
1822
|
+
title: "Webpack",
|
|
1823
|
+
description: "Tobias Koppers built Webpack \u2014 the module bundler that made modern JS development possible. Bundle everything (JS, CSS, images) into browser-deliverable assets. Code splitting, tree shaking, hot module replacement. The infrastructure behind React, Vue, and Angular CLIs.",
|
|
1824
|
+
yearNum: 2012,
|
|
1825
|
+
yearLabel: "2012",
|
|
1826
|
+
precision: "year",
|
|
1827
|
+
domains: ["technology"],
|
|
1828
|
+
impactScore: 0.7,
|
|
1829
|
+
tags: ["javascript", "webpack", "bundler", "build-tool", "module"],
|
|
1830
|
+
wikidataId: "Q22001105"
|
|
1831
|
+
}),
|
|
1832
|
+
ev4({
|
|
1833
|
+
id: "babel",
|
|
1834
|
+
title: "Babel (JS Transpiler)",
|
|
1835
|
+
description: "Sebastian McKenzie built Babel \u2014 the JavaScript compiler that lets developers use tomorrow's syntax today. Write ES2015+ code, ship ES5 that works everywhere. Unlocked JSX for React, decorators for Angular, and every JS proposal before browsers shipped it.",
|
|
1836
|
+
yearNum: 2014,
|
|
1837
|
+
yearLabel: "2014",
|
|
1838
|
+
precision: "year",
|
|
1839
|
+
domains: ["technology"],
|
|
1840
|
+
impactScore: 0.66,
|
|
1841
|
+
tags: ["javascript", "babel", "transpiler", "compiler", "es6"],
|
|
1842
|
+
wikidataId: "Q22011024"
|
|
1843
|
+
}),
|
|
1844
|
+
ev4({
|
|
1845
|
+
id: "vite",
|
|
1846
|
+
title: "Vite",
|
|
1847
|
+
description: "Evan You built Vite \u2014 the build tool that uses native ES modules in dev and Rollup for production. Starts in milliseconds vs seconds for Webpack. Redefined developer experience expectations for frontend tooling and triggered a Rust-powered build tool generation.",
|
|
1848
|
+
yearNum: 2020,
|
|
1849
|
+
yearLabel: "2020",
|
|
1850
|
+
precision: "year",
|
|
1851
|
+
domains: ["technology"],
|
|
1852
|
+
impactScore: 0.68,
|
|
1853
|
+
tags: ["javascript", "vite", "bundler", "build-tool", "esm", "dx"],
|
|
1854
|
+
wikidataId: "Q105853128"
|
|
1855
|
+
}),
|
|
1856
|
+
ev4({
|
|
1857
|
+
id: "esbuild",
|
|
1858
|
+
title: "esbuild",
|
|
1859
|
+
description: "Evan Wallace wrote esbuild in Go \u2014 a JavaScript bundler 10-100x faster than Webpack. Proved that build tools written in compiled languages could transform developer experience. Became the bundler inside Vite and accelerated the move away from JS-based toolchain.",
|
|
1860
|
+
yearNum: 2020,
|
|
1861
|
+
yearLabel: "2020",
|
|
1862
|
+
precision: "year",
|
|
1863
|
+
domains: ["technology"],
|
|
1864
|
+
impactScore: 0.6,
|
|
1865
|
+
tags: ["javascript", "esbuild", "bundler", "go", "fast", "toolchain"]
|
|
1866
|
+
}),
|
|
1867
|
+
// ── Meta-frameworks (full-stack) ─────────────────────────────────────
|
|
1868
|
+
ev4({
|
|
1869
|
+
id: "nextjs",
|
|
1870
|
+
title: "Next.js",
|
|
1871
|
+
description: "Vercel released Next.js \u2014 React with server-side rendering, file-based routing, API routes, and zero config. Solved the hardest React problems (SEO, performance, data fetching) out of the box. Became the dominant React production framework and shaped how Vercel became a $2.5B company.",
|
|
1872
|
+
yearNum: 2016,
|
|
1873
|
+
yearLabel: "2016",
|
|
1874
|
+
precision: "year",
|
|
1875
|
+
domains: ["technology"],
|
|
1876
|
+
impactScore: 0.76,
|
|
1877
|
+
tags: ["react", "nextjs", "ssr", "framework", "vercel", "fullstack"],
|
|
1878
|
+
wikidataId: "Q56061525"
|
|
1879
|
+
}),
|
|
1880
|
+
ev4({
|
|
1881
|
+
id: "sveltekit",
|
|
1882
|
+
title: "SvelteKit",
|
|
1883
|
+
description: "The official Svelte full-stack framework. File-based routing, server-side rendering, adapters for any deployment target. Completed the compile-time framework vision \u2014 a full production framework with no runtime overhead.",
|
|
1884
|
+
yearNum: 2020,
|
|
1885
|
+
yearLabel: "2020",
|
|
1886
|
+
precision: "year",
|
|
1887
|
+
domains: ["technology"],
|
|
1888
|
+
impactScore: 0.58,
|
|
1889
|
+
tags: ["svelte", "sveltekit", "framework", "ssr", "fullstack"],
|
|
1890
|
+
wikidataId: "Q108508847"
|
|
1891
|
+
}),
|
|
1892
|
+
ev4({
|
|
1893
|
+
id: "remix",
|
|
1894
|
+
title: "Remix",
|
|
1895
|
+
description: "Ryan Florence and Michael Jackson built Remix \u2014 React full-stack framework built on web platform primitives (forms, fetch, progressive enhancement). Acquired by Shopify. Pushed back against client-side-heavy React apps and revived server-side values in a React world.",
|
|
1896
|
+
yearNum: 2021,
|
|
1897
|
+
yearLabel: "2021",
|
|
1898
|
+
precision: "year",
|
|
1899
|
+
domains: ["technology"],
|
|
1900
|
+
impactScore: 0.6,
|
|
1901
|
+
tags: ["react", "remix", "framework", "ssr", "web-platform", "fullstack"],
|
|
1902
|
+
wikidataId: "Q110628793"
|
|
1903
|
+
}),
|
|
1904
|
+
ev4({
|
|
1905
|
+
id: "astro",
|
|
1906
|
+
title: "Astro",
|
|
1907
|
+
description: 'Fred K. Schott built Astro \u2014 the "islands architecture" framework. Ship zero JS by default; hydrate only interactive components. Ideal for content sites. Popularized the concept of partial hydration and multi-framework islands.',
|
|
1908
|
+
yearNum: 2021,
|
|
1909
|
+
yearLabel: "2021",
|
|
1910
|
+
precision: "year",
|
|
1911
|
+
domains: ["technology"],
|
|
1912
|
+
impactScore: 0.6,
|
|
1913
|
+
tags: ["javascript", "astro", "islands", "static-site", "partial-hydration"],
|
|
1914
|
+
wikidataId: "Q110879474"
|
|
1915
|
+
}),
|
|
1916
|
+
// ── Runtimes & platforms ─────────────────────────────────────────────
|
|
1917
|
+
ev4({
|
|
1918
|
+
id: "deno",
|
|
1919
|
+
title: "Deno",
|
|
1920
|
+
description: "Ryan Dahl (original Node.js creator) released Deno \u2014 a secure-by-default TypeScript runtime that fixes Node's design mistakes: no node_modules, web-compatible APIs, built-in TypeScript. Forced Node.js to improve security and embrace web standards.",
|
|
1921
|
+
yearNum: 2018,
|
|
1922
|
+
yearLabel: "2018",
|
|
1923
|
+
precision: "year",
|
|
1924
|
+
domains: ["technology"],
|
|
1925
|
+
impactScore: 0.6,
|
|
1926
|
+
tags: ["javascript", "typescript", "deno", "runtime", "secure"],
|
|
1927
|
+
wikidataId: "Q60316451"
|
|
1928
|
+
}),
|
|
1929
|
+
ev4({
|
|
1930
|
+
id: "bun",
|
|
1931
|
+
title: "Bun",
|
|
1932
|
+
description: "Jarred Sumner built Bun \u2014 a JavaScript runtime, bundler, test runner, and package manager in one, written in Zig. 5-10x faster npm installs, 3x faster test runs. Forced the entire Node.js ecosystem to reckon with performance as a feature.",
|
|
1933
|
+
yearNum: 2021,
|
|
1934
|
+
yearLabel: "2021",
|
|
1935
|
+
precision: "year",
|
|
1936
|
+
domains: ["technology"],
|
|
1937
|
+
impactScore: 0.62,
|
|
1938
|
+
tags: ["javascript", "bun", "runtime", "bundler", "fast", "zig"],
|
|
1939
|
+
wikidataId: "Q117248419"
|
|
1940
|
+
}),
|
|
1941
|
+
// ── Web platform standards ───────────────────────────────────────────
|
|
1942
|
+
ev4({
|
|
1943
|
+
id: "http2",
|
|
1944
|
+
title: "HTTP/2",
|
|
1945
|
+
description: "IETF standardized HTTP/2 \u2014 multiplexed streams, header compression, server push, binary protocol. Eliminated the HTTP/1.1 bottleneck of 6 parallel connections per domain. Enabled modern web performance and was prerequisite for cloud-native HTTP APIs.",
|
|
1946
|
+
yearNum: 2015,
|
|
1947
|
+
yearLabel: "2015",
|
|
1948
|
+
precision: "year",
|
|
1949
|
+
domains: ["technology", "systems"],
|
|
1950
|
+
impactScore: 0.66,
|
|
1951
|
+
tags: ["http", "http2", "protocol", "multiplexing", "performance", "networking"],
|
|
1952
|
+
wikidataId: "Q1093323"
|
|
1953
|
+
}),
|
|
1954
|
+
ev4({
|
|
1955
|
+
id: "webassembly",
|
|
1956
|
+
title: "WebAssembly (WASM)",
|
|
1957
|
+
description: "W3C standardized WebAssembly \u2014 a binary instruction format that runs near-native speed in browsers. Ports C/C++/Rust to the web without plugins. Enabled Figma, AutoCAD, and game engines in the browser. Also becoming the universal portable compute target (WASI).",
|
|
1958
|
+
yearNum: 2017,
|
|
1959
|
+
yearLabel: "2017",
|
|
1960
|
+
precision: "year",
|
|
1961
|
+
domains: ["technology"],
|
|
1962
|
+
impactScore: 0.7,
|
|
1963
|
+
tags: ["wasm", "webassembly", "browser", "performance", "portable", "runtime"],
|
|
1964
|
+
wikidataId: "Q27139720"
|
|
1965
|
+
}),
|
|
1966
|
+
ev4({
|
|
1967
|
+
id: "pwa",
|
|
1968
|
+
title: "Progressive Web Apps (PWA)",
|
|
1969
|
+
description: "Google engineer Alex Russell coined PWA \u2014 web apps that use Service Workers, Web App Manifests, and HTTPS to behave like native apps. Offline support, push notifications, home screen install. Closed the gap between web and native without an app store.",
|
|
1970
|
+
yearNum: 2015,
|
|
1971
|
+
yearLabel: "2015",
|
|
1972
|
+
precision: "year",
|
|
1973
|
+
domains: ["technology"],
|
|
1974
|
+
impactScore: 0.62,
|
|
1975
|
+
tags: ["pwa", "service-worker", "offline", "mobile", "web-app"],
|
|
1976
|
+
wikidataId: "Q30433612"
|
|
1977
|
+
}),
|
|
1978
|
+
ev4({
|
|
1979
|
+
id: "service_workers",
|
|
1980
|
+
title: "Service Workers",
|
|
1981
|
+
description: "W3C standardized Service Workers \u2014 JavaScript running as a background proxy between the app and network. Offline caching, push notifications, background sync. The core primitive behind PWAs and the same concept powering edge computing runtimes (Cloudflare Workers).",
|
|
1982
|
+
yearNum: 2014,
|
|
1983
|
+
yearLabel: "2014",
|
|
1984
|
+
precision: "year",
|
|
1985
|
+
domains: ["technology"],
|
|
1986
|
+
impactScore: 0.64,
|
|
1987
|
+
tags: ["service-worker", "offline", "cache", "background", "web-api"],
|
|
1988
|
+
wikidataId: "Q19592788"
|
|
1989
|
+
}),
|
|
1990
|
+
ev4({
|
|
1991
|
+
id: "web_components",
|
|
1992
|
+
title: "Web Components",
|
|
1993
|
+
description: "W3C's suite of browser-native component standards: Custom Elements, Shadow DOM, HTML Templates. Framework-agnostic, built into the browser. Influenced every component model (React, Vue, Angular) even as framework components won the DX war.",
|
|
1994
|
+
yearNum: 2011,
|
|
1995
|
+
yearLabel: "2011",
|
|
1996
|
+
precision: "year",
|
|
1997
|
+
domains: ["technology"],
|
|
1998
|
+
impactScore: 0.58,
|
|
1999
|
+
tags: ["web-components", "custom-elements", "shadow-dom", "browser-native"],
|
|
2000
|
+
wikidataId: "Q19855516"
|
|
2001
|
+
}),
|
|
2002
|
+
// ── Developer tooling ─────────────────────────────────────────────────
|
|
2003
|
+
ev4({
|
|
2004
|
+
id: "electron",
|
|
2005
|
+
title: "Electron",
|
|
2006
|
+
description: "GitHub released Electron \u2014 build cross-platform desktop apps with web technologies (Chromium + Node.js). VS Code, Slack, Discord, Figma (before WASM), and GitHub Desktop are all Electron. Controversial (memory usage) but solved cross-platform desktop for web teams.",
|
|
2007
|
+
yearNum: 2013,
|
|
2008
|
+
yearLabel: "2013",
|
|
2009
|
+
precision: "year",
|
|
2010
|
+
domains: ["technology"],
|
|
2011
|
+
impactScore: 0.68,
|
|
2012
|
+
tags: ["electron", "desktop", "cross-platform", "chromium", "nodejs"],
|
|
2013
|
+
wikidataId: "Q17107723"
|
|
2014
|
+
}),
|
|
2015
|
+
ev4({
|
|
2016
|
+
id: "jest",
|
|
2017
|
+
title: "Jest (JavaScript Testing)",
|
|
2018
|
+
description: "Facebook open-sourced Jest \u2014 zero-config JavaScript test runner with mocking, code coverage, and watch mode built in. Replaced Mocha + Chai + Sinon with a unified API. Became the default testing choice for React and most JS projects.",
|
|
2019
|
+
yearNum: 2014,
|
|
2020
|
+
yearLabel: "2014",
|
|
2021
|
+
precision: "year",
|
|
2022
|
+
domains: ["technology"],
|
|
2023
|
+
impactScore: 0.64,
|
|
2024
|
+
tags: ["javascript", "jest", "testing", "tdd", "mocking"],
|
|
2025
|
+
wikidataId: "Q22012789"
|
|
2026
|
+
}),
|
|
2027
|
+
ev4({
|
|
2028
|
+
id: "eslint",
|
|
2029
|
+
title: "ESLint",
|
|
2030
|
+
description: "Nicholas Zakas built ESLint \u2014 the pluggable JavaScript linter. Catches errors, enforces style, and enables static analysis custom rules. Replaced JSHint/JSLint with a fully extensible plugin system. Standard part of every JS project setup since 2014.",
|
|
2031
|
+
yearNum: 2013,
|
|
2032
|
+
yearLabel: "2013",
|
|
2033
|
+
precision: "year",
|
|
2034
|
+
domains: ["technology"],
|
|
2035
|
+
impactScore: 0.62,
|
|
2036
|
+
tags: ["javascript", "eslint", "linting", "static-analysis", "code-quality"],
|
|
2037
|
+
wikidataId: "Q22001024"
|
|
2038
|
+
}),
|
|
2039
|
+
ev4({
|
|
2040
|
+
id: "prettier",
|
|
2041
|
+
title: "Prettier",
|
|
2042
|
+
description: 'James Long built Prettier \u2014 an opinionated code formatter that ended the "tabs vs spaces" wars by removing the choice entirely. Format on save, one style everywhere. Adopted across JS/TS, CSS, Markdown, and GraphQL. Proved that opinionated tools beat configurability.',
|
|
2043
|
+
yearNum: 2017,
|
|
2044
|
+
yearLabel: "2017",
|
|
2045
|
+
precision: "year",
|
|
2046
|
+
domains: ["technology"],
|
|
2047
|
+
impactScore: 0.6,
|
|
2048
|
+
tags: ["javascript", "prettier", "formatter", "code-style", "dx"],
|
|
2049
|
+
wikidataId: "Q57232682"
|
|
2050
|
+
}),
|
|
2051
|
+
// ── Deployment & edge ─────────────────────────────────────────────────
|
|
2052
|
+
ev4({
|
|
2053
|
+
id: "vercel",
|
|
2054
|
+
title: "Vercel (formerly Zeit)",
|
|
2055
|
+
description: 'Guillermo Rauch built Vercel \u2014 deploy any frontend with one command. Git push \u2192 production URL in seconds. Created the "preview deployment" pattern now standard across Netlify, Cloudflare Pages, and Railway. Also the company that built and maintains Next.js.',
|
|
2056
|
+
yearNum: 2015,
|
|
2057
|
+
yearLabel: "2015",
|
|
2058
|
+
precision: "year",
|
|
2059
|
+
domains: ["technology", "economy"],
|
|
2060
|
+
impactScore: 0.7,
|
|
2061
|
+
tags: ["vercel", "deployment", "frontend", "serverless", "preview", "edge"],
|
|
2062
|
+
wikidataId: "Q70716765"
|
|
2063
|
+
}),
|
|
2064
|
+
ev4({
|
|
2065
|
+
id: "netlify",
|
|
2066
|
+
title: "Netlify",
|
|
2067
|
+
description: "Matt Biilmann built Netlify \u2014 the platform that popularized the JAMstack deployment model. Git-based workflow, CDN-first delivery, serverless functions, form handling. Netlify coined the JAMstack term and proved that frontend-as-infrastructure was a viable business.",
|
|
2068
|
+
yearNum: 2014,
|
|
2069
|
+
yearLabel: "2014",
|
|
2070
|
+
precision: "year",
|
|
2071
|
+
domains: ["technology", "economy"],
|
|
2072
|
+
impactScore: 0.66,
|
|
2073
|
+
tags: ["netlify", "jamstack", "deployment", "cdn", "serverless", "frontend"],
|
|
2074
|
+
wikidataId: "Q28027017"
|
|
2075
|
+
}),
|
|
2076
|
+
ev4({
|
|
2077
|
+
id: "jamstack",
|
|
2078
|
+
title: "JAMstack Architecture",
|
|
2079
|
+
description: "JavaScript + APIs + Markup \u2014 the architecture pattern for pre-rendered sites served from CDN edges with dynamic functionality via APIs. Eliminated the origin server for content sites, enabling 100ms global response times. Shaped how the web industry thinks about the frontend/backend split.",
|
|
2080
|
+
yearNum: 2015,
|
|
2081
|
+
yearLabel: "2015",
|
|
2082
|
+
precision: "year",
|
|
2083
|
+
domains: ["technology", "systems"],
|
|
2084
|
+
impactScore: 0.64,
|
|
2085
|
+
tags: ["jamstack", "static-site", "cdn", "architecture", "frontend"],
|
|
2086
|
+
wikidataId: "Q65079286"
|
|
2087
|
+
}),
|
|
2088
|
+
ev4({
|
|
2089
|
+
id: "react_native",
|
|
2090
|
+
title: "React Native",
|
|
2091
|
+
description: `Facebook open-sourced React Native \u2014 write React components that render to native iOS and Android UI. "Learn once, write anywhere." Enabled web developers to ship mobile apps, created the cross-platform mobile category, and forced Flutter's creation as a competitor.`,
|
|
2092
|
+
yearNum: 2015,
|
|
2093
|
+
yearLabel: "2015",
|
|
2094
|
+
precision: "year",
|
|
2095
|
+
domains: ["technology"],
|
|
2096
|
+
impactScore: 0.72,
|
|
2097
|
+
tags: ["react", "mobile", "ios", "android", "cross-platform", "native"],
|
|
2098
|
+
wikidataId: "Q19780481"
|
|
2099
|
+
}),
|
|
2100
|
+
ev4({
|
|
2101
|
+
id: "storybook",
|
|
2102
|
+
title: "Storybook",
|
|
2103
|
+
description: 'Storybook introduced isolated component development \u2014 build, test, and document UI components in isolation. The "component-driven development" workflow. Standard in design systems at Airbnb, IBM, BBC, and thousands of teams. Bridged the designer-developer gap.',
|
|
2104
|
+
yearNum: 2016,
|
|
2105
|
+
yearLabel: "2016",
|
|
2106
|
+
precision: "year",
|
|
2107
|
+
domains: ["technology"],
|
|
2108
|
+
impactScore: 0.6,
|
|
2109
|
+
tags: ["storybook", "component", "design-system", "ui", "documentation", "dx"],
|
|
2110
|
+
wikidataId: "Q56059861"
|
|
2111
|
+
})
|
|
2112
|
+
];
|
|
2113
|
+
|
|
2114
|
+
// ../../packages/ckg/dist/seed/links-web-ecosystem.js
|
|
2115
|
+
var seed4 = (fromEvent, toEvent, rel, evidence, confidence) => ({
|
|
2116
|
+
id: `${fromEvent}--${rel}-->${toEvent}`,
|
|
2117
|
+
fromEvent,
|
|
2118
|
+
toEvent,
|
|
2119
|
+
relationship: rel,
|
|
2120
|
+
confidence: confidence ?? (rel === "caused" ? 0.9 : 0.8),
|
|
2121
|
+
evidence,
|
|
2122
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 web ecosystem" }],
|
|
2123
|
+
contributedBy: "system",
|
|
2124
|
+
validated: true,
|
|
2125
|
+
scope: "world"
|
|
2126
|
+
});
|
|
2127
|
+
var webEcosystemLinks = [
|
|
2128
|
+
// ── CSS & styling chain ──────────────────────────────────────────────
|
|
2129
|
+
seed4("sass", "bootstrap", "enabled", "Bootstrap 2 adopted Sass as its preprocessor. Sass's variables/mixins made a large CSS framework maintainable. No Sass \u2192 Bootstrap would have been unmaintainable at its scale."),
|
|
2130
|
+
seed4("bootstrap", "tailwind", "inspired", "Tailwind was a direct reaction to Bootstrap's opinion problem \u2014 you always end up fighting the framework. Utility-first was the counter-proposal: no defaults, all primitives.", 0.7),
|
|
2131
|
+
seed4("sass", "tailwind", "inspired", "Sass revealed that developers needed abstraction over raw CSS. Tailwind answered differently \u2014 instead of abstraction via syntax, abstract via utility classes.", 0.55),
|
|
2132
|
+
// ── Ajax & jQuery chain ───────────────────────────────────────────────
|
|
2133
|
+
seed4("ajax", "jquery", "enabled", "Ajax created demand for cross-browser async DOM manipulation. jQuery packaged the Ajax pattern (XMLHttpRequest wrapper) plus DOM helpers into a single library that handled browser inconsistencies.", 0.85),
|
|
2134
|
+
seed4("web", "ajax", "caused", "Ajax is an application-layer pattern on top of the web (HTTP + JavaScript). It requires a browser, a server, and XHR \u2014 all web-native. No web \u2192 no Ajax.", 0.92),
|
|
2135
|
+
seed4("ajax", "reactjs", "enabled", "Ajax proved that partial page updates (not full reloads) were the right UX model. React's component model and virtual DOM are the architectural evolution of that insight.", 0.65),
|
|
2136
|
+
seed4("jquery", "angularjs", "enabled", "AngularJS was built by developers who had used jQuery and wanted structure. jQuery handled DOM; AngularJS added MVC on top. Direct generational succession.", 0.75),
|
|
2137
|
+
seed4("jquery", "npm", "accelerated", 'jQuery plugins were the first widely-shared JS packages. The pattern of "find a plugin, add a script tag" created demand for a proper dependency manager.', 0.6),
|
|
2138
|
+
// ── npm & package ecosystem ───────────────────────────────────────────
|
|
2139
|
+
seed4("nodejs", "npm", "caused", "npm was built specifically for Node.js's module system (require()). Node needed a package manager; npm was its package manager from the start.", 0.92),
|
|
2140
|
+
seed4("npm", "webpack", "enabled", "Webpack solves the browser packaging problem that npm's module graph created. You can't load 1000 node_modules files in a browser \u2014 webpack bundles them into assets.", 0.9),
|
|
2141
|
+
seed4("npm", "babel", "enabled", "Babel is distributed through npm and integrates into npm-based build pipelines. The JS tooling ecosystem exists on top of npm.", 0.85),
|
|
2142
|
+
seed4("npm", "eslint", "enabled", "ESLint is installed via npm and runs in npm build scripts. The pluggable linting ecosystem (eslint-config-*, eslint-plugin-*) is built entirely on npm's package system.", 0.85),
|
|
2143
|
+
seed4("npm", "jest", "enabled", "Jest is installed via npm, configured in package.json, and runs as an npm script. The JS testing ecosystem is npm-native.", 0.85),
|
|
2144
|
+
seed4("npm", "vite", "enabled", 'Vite uses npm/pnpm/bun for dependency management and its plugin ecosystem. The "npm install vite" onboarding is core to its zero-config pitch.', 0.82),
|
|
2145
|
+
seed4("npm", "storybook", "enabled", "Storybook is installed via npm (npx storybook init) and extends the same project's package.json. The entire component documentation ecosystem runs on npm.", 0.82),
|
|
2146
|
+
// ── JS transpiler & bundler chain ────────────────────────────────────
|
|
2147
|
+
seed4("webpack", "babel", "accelerated", `Babel integrates into Webpack via babel-loader. Webpack's dominance made Babel the de facto JS compiler \u2014 "webpack + babel" was the standard SPA setup 2015-2020.`, 0.8),
|
|
2148
|
+
seed4("babel", "reactjs", "enabled", "React's JSX syntax requires Babel to compile. Without @babel/plugin-transform-react-jsx, JSX is a syntax error. Babel made React's unconventional syntax universally deployable.", 0.9),
|
|
2149
|
+
seed4("babel", "angularjs", "enabled", "Angular 2 adopted TypeScript/Babel for decorators and class syntax. The ability to use next-gen JS syntax in 2016 browsers was Babel's enabling contribution.", 0.7),
|
|
2150
|
+
seed4("webpack", "nextjs", "enabled", "Next.js's build system was Webpack-based until v13. Zero-config Webpack is Next.js's core value \u2014 it manages the complex Webpack config you'd otherwise need to write.", 0.85),
|
|
2151
|
+
seed4("vite", "esbuild", "caused", "Vite uses esbuild internally for dependency pre-bundling and TypeScript transpilation. Vite popularized esbuild's approach and drove esbuild adoption.", 0.8),
|
|
2152
|
+
seed4("esbuild", "vite", "enabled", "esbuild's 100x speed improvement over JS-based tools is what makes Vite's near-instant dev server possible. No esbuild \u2192 no Vite dev server speed story.", 0.88),
|
|
2153
|
+
seed4("golang", "esbuild", "caused", "esbuild is written in Go. Its speed advantage comes entirely from Go's parallel processing and native compilation \u2014 JS tooling written in JS can't match it.", 0.88),
|
|
2154
|
+
seed4("vite", "sveltekit", "enabled", "SvelteKit uses Vite as its build foundation. Svelte's Vite plugin handles the compile step; SvelteKit inherited Vite's fast HMR and build performance.", 0.88),
|
|
2155
|
+
seed4("webpack", "vite", "inspired", "Vite was explicitly created to solve Webpack's slow dev-server problem. Every Vite design decision (ESM-first, no bundling in dev) is a reaction to Webpack's bundling-first approach.", 0.8),
|
|
2156
|
+
// ── Framework chain ───────────────────────────────────────────────────
|
|
2157
|
+
seed4("angularjs", "reactjs", "inspired", "React was built at Facebook as a reaction to AngularJS. Facebook tried Angular, found two-way binding caused too many bugs at scale, and built one-way data flow + virtual DOM as the alternative.", 0.75),
|
|
2158
|
+
seed4("angularjs", "vuejs", "inspired", `Evan You worked with AngularJS at Google and wanted a lighter version. Vue took AngularJS's template syntax and two-way binding but removed the complexity. "Angular but approachable."`, 0.82),
|
|
2159
|
+
seed4("angularjs", "angular2", "caused", "Angular 2 is a complete rewrite of AngularJS. The causal link is the brand + team continuity. AngularJS's success justified Google investing in the rewrite.", 0.88),
|
|
2160
|
+
seed4("typescript", "angular2", "caused", "Angular 2 was built in TypeScript from the ground up. Microsoft and Google co-designed Angular 2 with TypeScript as a first-class citizen. No TypeScript \u2192 Angular 2 would look completely different.", 0.88),
|
|
2161
|
+
seed4("reactjs", "nextjs", "caused", "Next.js is a React framework \u2014 it requires React as its rendering layer. No React \u2192 no Next.js.", 0.95),
|
|
2162
|
+
seed4("reactjs", "redux", "caused", "Redux was created to solve React's component state sharing problem. The Flux architecture (Facebook's internal React state solution) directly inspired Redux.", 0.88),
|
|
2163
|
+
seed4("reactjs", "react_native", "caused", "React Native is React rendered to native mobile UI instead of DOM. The component model, JSX, and hooks are identical. No React \u2192 no React Native.", 0.95),
|
|
2164
|
+
seed4("reactjs", "remix", "caused", "Remix is a React framework. Ryan Florence was a core React Router author \u2014 Remix is the evolution of React Router into a full-stack framework.", 0.92),
|
|
2165
|
+
seed4("reactjs", "storybook", "enabled", "Storybook was originally created for React components. The component-as-function model (React) made isolated component stories natural. React's component ecosystem drove Storybook adoption.", 0.82),
|
|
2166
|
+
seed4("vuejs", "vite", "caused", `Vite was created by Evan You, Vue's author, to solve Vue's build performance problems. Vite started as "Vue 3's build tool" before expanding to support all frameworks.`, 0.9),
|
|
2167
|
+
seed4("vuejs", "sveltekit", "inspired", "SvelteKit's design (file-based routing, adapter pattern) was influenced by Nuxt.js (Vue's meta-framework), which preceded SvelteKit.", 0.55),
|
|
2168
|
+
seed4("svelte", "sveltekit", "caused", "SvelteKit is Svelte's official meta-framework. Same relationship as React\u2192Next.js or Vue\u2192Nuxt.", 0.95),
|
|
2169
|
+
seed4("reactjs", "astro", "enabled", "Astro was built to work with React (and Vue, Svelte) components as islands. The component model React popularized is what Astro's island architecture imports selectively.", 0.75),
|
|
2170
|
+
// ── Runtimes chain ────────────────────────────────────────────────────
|
|
2171
|
+
seed4("nodejs", "deno", "caused", 'Deno was built by Ryan Dahl as a correction of Node.js design mistakes (package.json, node_modules, no default security). Deno requires Node.js to have existed as the "what we learned from."', 0.92),
|
|
2172
|
+
seed4("nodejs", "bun", "inspired", "Bun was created explicitly to replace Node.js with a faster, all-in-one alternative. Every Bun API is a faster drop-in replacement for a Node.js API. Node had to exist as the target.", 0.88),
|
|
2173
|
+
seed4("typescript", "deno", "caused", "Deno supports TypeScript natively without a compilation step. TypeScript-first was a core design decision \u2014 deno replaced babel/tsc in the workflow.", 0.85),
|
|
2174
|
+
seed4("deno", "bun", "inspired", "Bun saw Deno's TypeScript-first, no-node_modules approach and pushed further on performance. Bun uses Zig instead of Rust/V8 to extract maximum speed.", 0.65),
|
|
2175
|
+
// ── Web platform standards chain ─────────────────────────────────────
|
|
2176
|
+
seed4("service_workers", "pwa", "caused", "Service Workers are the core enabling technology of PWAs. Offline caching, push notifications, background sync \u2014 all implemented via Service Workers. No Service Workers \u2192 no meaningful PWA.", 0.92),
|
|
2177
|
+
seed4("http2", "pwa", "enabled", "HTTP/2 server push and multiplexing make PWA asset loading efficient. PWA performance targets require HTTP/2 to be achievable.", 0.65),
|
|
2178
|
+
seed4("web", "service_workers", "enabled", "Service Workers extend the web platform with a programmable network layer. They require HTTPS (web security model) and browser APIs. Web platform is the prerequisite.", 0.85),
|
|
2179
|
+
seed4("web", "web_components", "caused", "Web Components are a native web platform specification \u2014 they exist to give the web its own component model independent of JS frameworks.", 0.88),
|
|
2180
|
+
seed4("web_components", "reactjs", "inspired", "React's component model was in part inspired by the Web Components specification being developed around the same time. Both solved the same problem \u2014 React won the DX battle.", 0.55),
|
|
2181
|
+
seed4("service_workers", "cloudflare_workers", "inspired", "Cloudflare Workers were directly inspired by the Service Worker API. Same event-driven model, same fetch interception pattern \u2014 moved to the edge instead of the browser.", 0.85),
|
|
2182
|
+
// ── WASM chain ────────────────────────────────────────────────────────
|
|
2183
|
+
seed4("javascript", "webassembly", "enabled", "WASM runs alongside JavaScript in the browser \u2014 they share the same runtime, call each other's APIs, and compile to the same memory model. JS proved the browser was a viable runtime; WASM extended it.", 0.75),
|
|
2184
|
+
seed4("webassembly", "astro", "enabled", "Astro uses WASM internally for its build pipeline (Rollup WASM plugin, the compiler itself was ported to WASM). WASM enables fast native-speed build tools in a browser-compatible format.", 0.55),
|
|
2185
|
+
seed4("rust_1_0", "webassembly", "enabled", "Rust is the dominant WASM compilation target \u2014 wasm-pack, wasm-bindgen make Rust\u2192WASM ergonomic. WASM's systems-programming use cases overwhelmingly use Rust.", 0.82),
|
|
2186
|
+
// ── Developer tooling chain ───────────────────────────────────────────
|
|
2187
|
+
seed4("nodejs", "electron", "caused", "Electron embeds Node.js for system access in desktop apps. Electron = Chromium + Node.js. No Node.js \u2192 no Electron.", 0.95),
|
|
2188
|
+
seed4("github", "electron", "caused", "GitHub created Electron to build the GitHub Desktop app and the Atom editor. The company that built Electron is GitHub. Direct organizational causation.", 0.92),
|
|
2189
|
+
seed4("electron", "vscode", "caused", "VS Code is built on Electron. Microsoft chose Electron specifically to enable a cross-platform editor written in TypeScript/JavaScript.", 0.95),
|
|
2190
|
+
seed4("vscode", "prettier", "accelerated", `VS Code's "format on save" feature + Prettier integration (prettier-vscode extension, 38M downloads) made Prettier adoption mainstream. Without VS Code, Prettier would have stayed a CLI tool.`, 0.82),
|
|
2191
|
+
seed4("vscode", "eslint", "accelerated", "VS Code's ESLint extension surfaces lint errors inline as you type. Real-time feedback transformed ESLint from a CI gate to an interactive coding assistant.", 0.78),
|
|
2192
|
+
seed4("babel", "jest", "enabled", "Jest uses Babel (or ts-jest) to transform modern JS/TS syntax before running tests. The ability to test JSX and ES modules depends on Babel's transform pipeline.", 0.82),
|
|
2193
|
+
seed4("reactjs", "jest", "accelerated", "Facebook built Jest specifically for testing React components. The React ecosystem drove Jest adoption \u2014 React devs needed to test components, and Jest was the answer.", 0.8),
|
|
2194
|
+
seed4("eslint", "prettier", "enabled", "Prettier and ESLint were designed to coexist via eslint-config-prettier (disables formatting rules). ESLint handles code quality; Prettier handles formatting. The ecosystem defined both roles.", 0.72),
|
|
2195
|
+
// ── Deployment chain ──────────────────────────────────────────────────
|
|
2196
|
+
seed4("aws", "netlify", "enabled", "Netlify runs on AWS infrastructure (S3, CloudFront, Lambda). The cloud primitive layer (object storage + CDN + serverless functions) is what Netlify packages into a developer-friendly UI.", 0.75),
|
|
2197
|
+
seed4("aws", "vercel", "enabled", "Vercel runs on AWS (and other clouds). Same enabling relationship as AWS \u2192 Netlify. Cloud primitives \u2192 developer experience layer.", 0.72),
|
|
2198
|
+
seed4("netlify", "jamstack", "caused", "Matt Biilmann (Netlify CEO) coined the JAMstack term and Netlify embodies the pattern. JAMstack is the architecture that Netlify was built to serve.", 0.88),
|
|
2199
|
+
seed4("jamstack", "nextjs", "accelerated", "Next.js's static generation mode (getStaticProps) is JAMstack-compatible. The JAMstack ecosystem created demand for React frameworks that could pre-render pages, which Next.js served.", 0.72),
|
|
2200
|
+
seed4("github", "netlify", "enabled", `Netlify's core UX is "connect a GitHub repo, get a deployment." Without GitHub's API and webhook infrastructure, Netlify's git-based workflow doesn't exist.`, 0.88),
|
|
2201
|
+
seed4("github", "vercel", "enabled", "Vercel's git-based deployment (preview per PR, production on merge) requires GitHub integration. The GitHub PR + preview deployment pattern is Vercel's core product.", 0.88),
|
|
2202
|
+
seed4("netlify", "vercel", "accelerated", "Vercel (launched 2015) was directly inspired by and competed with Netlify. Netlify proved the git-based frontend deployment market; Vercel captured it with a Next.js angle.", 0.75),
|
|
2203
|
+
seed4("nextjs", "vercel", "caused", "Vercel creates and maintains Next.js. Next.js is Vercel's distribution vehicle \u2014 every Next.js project is a potential Vercel customer.", 0.88),
|
|
2204
|
+
seed4("reactjs", "vercel", "enabled", "Vercel's success is tied to React's dominance. A major reason to use Vercel is the optimized Next.js hosting. React \u2192 Next.js \u2192 Vercel is the adoption funnel.", 0.72),
|
|
2205
|
+
// ── Mobile chain ──────────────────────────────────────────────────────
|
|
2206
|
+
seed4("react_native", "svelte", "inspired", "Svelte's framework-as-compiler insight was partly inspired by native mobile compilers \u2014 compile to efficient native output rather than shipping a virtual DOM runtime.", 0.4),
|
|
2207
|
+
seed4("pwa", "react_native", "enabled", "PWA and React Native solve adjacent problems (web vs native mobile). PWA's limitations (no deep hardware access) justified React Native's native bridge approach.", 0.55),
|
|
2208
|
+
// ── Storybook / Design systems ────────────────────────────────────────
|
|
2209
|
+
seed4("storybook", "tailwind", "accelerated", "Storybook + Tailwind became the standard design system stack. Component isolation (Storybook) pairs naturally with utility-class styling (Tailwind) \u2014 both enforce reuse and consistency.", 0.62),
|
|
2210
|
+
// ── Cross-era links ───────────────────────────────────────────────────
|
|
2211
|
+
seed4("javascript", "jquery", "caused", "jQuery is a JavaScript library \u2014 it requires JavaScript to exist. jQuery extended JS with cross-browser abstractions that the language itself lacked in 2006.", 0.95),
|
|
2212
|
+
seed4("javascript", "npm", "enabled", "npm is the JavaScript package manager. The entire npm ecosystem exists because JS (via Node.js) needed package distribution. No JS runtime \u2192 no npm.", 0.9),
|
|
2213
|
+
seed4("javascript", "webpack", "caused", "Webpack solves a JavaScript problem: how to use CommonJS/ES modules in a browser that doesn't support them. JS modules \u2192 module bundler demand.", 0.9),
|
|
2214
|
+
seed4("javascript", "babel", "caused", "Babel exists to compile newer JavaScript to older JavaScript. Without JavaScript itself, there is no Babel.", 0.95),
|
|
2215
|
+
seed4("http2", "grpc", "caused", "gRPC is built on HTTP/2 \u2014 it uses HTTP/2 multiplexing, flow control, and header compression. HTTP/2 is the transport layer gRPC requires.", 0.92)
|
|
2216
|
+
];
|
|
2217
|
+
|
|
2218
|
+
// ../../packages/ckg/dist/seed/events-cloud-devops.js
|
|
2219
|
+
var src3 = {
|
|
2220
|
+
type: "demo-seed",
|
|
2221
|
+
reliability: 0.9,
|
|
2222
|
+
citation: "Causari curated baseline \u2014 cloud & devops"
|
|
2223
|
+
};
|
|
2224
|
+
function ev5(e) {
|
|
2225
|
+
return { ...e, scope: "world", sources: [src3] };
|
|
2226
|
+
}
|
|
2227
|
+
var cloudDevopsEvents = [
|
|
2228
|
+
// ── Web server & proxy layer ─────────────────────────────────────────
|
|
2229
|
+
ev5({
|
|
2230
|
+
id: "apache_http",
|
|
2231
|
+
title: "Apache HTTP Server",
|
|
2232
|
+
description: 'The Apache HTTP Server (1995) became the dominant web server by running Linux-based hosting. "A patchy server" powered 65% of the web at peak. The first platform for dynamic content via CGI and mod_php \u2014 the A in LAMP stack.',
|
|
2233
|
+
yearNum: 1995,
|
|
2234
|
+
yearLabel: "1995",
|
|
2235
|
+
precision: "year",
|
|
2236
|
+
domains: ["technology", "systems"],
|
|
2237
|
+
impactScore: 0.78,
|
|
2238
|
+
tags: ["apache", "web-server", "http", "lamp", "open-source"],
|
|
2239
|
+
wikidataId: "Q11354"
|
|
2240
|
+
}),
|
|
2241
|
+
ev5({
|
|
2242
|
+
id: "nginx",
|
|
2243
|
+
title: "Nginx",
|
|
2244
|
+
description: "Igor Sysoev built Nginx to handle the C10K problem \u2014 10,000 concurrent connections that Apache's process-per-connection model couldn't serve. Event-driven, async, low memory. Now used by 34% of all websites and is the default reverse proxy for every major cloud service.",
|
|
2245
|
+
yearNum: 2004,
|
|
2246
|
+
yearLabel: "2004",
|
|
2247
|
+
precision: "year",
|
|
2248
|
+
domains: ["technology", "systems"],
|
|
2249
|
+
impactScore: 0.76,
|
|
2250
|
+
tags: ["nginx", "web-server", "reverse-proxy", "load-balancer", "c10k"],
|
|
2251
|
+
wikidataId: "Q2482243"
|
|
2252
|
+
}),
|
|
2253
|
+
ev5({
|
|
2254
|
+
id: "haproxy",
|
|
2255
|
+
title: "HAProxy",
|
|
2256
|
+
description: "Willy Tarreau released HAProxy \u2014 the high-availability TCP/HTTP load balancer. Used at GitHub, Twitter, Instagram, and Airbnb for routing billions of requests. The invisible infrastructure piece that makes horizontal scaling work.",
|
|
2257
|
+
yearNum: 2001,
|
|
2258
|
+
yearLabel: "2001",
|
|
2259
|
+
precision: "year",
|
|
2260
|
+
domains: ["technology", "systems"],
|
|
2261
|
+
impactScore: 0.64,
|
|
2262
|
+
tags: ["haproxy", "load-balancer", "tcp", "proxy", "high-availability"],
|
|
2263
|
+
wikidataId: "Q847059"
|
|
2264
|
+
}),
|
|
2265
|
+
// ── Message queues & streaming ────────────────────────────────────────
|
|
2266
|
+
ev5({
|
|
2267
|
+
id: "rabbitmq",
|
|
2268
|
+
title: "RabbitMQ",
|
|
2269
|
+
description: "Pivotal released RabbitMQ \u2014 the AMQP message broker. Producer-consumer decoupling, durable queues, fanout/routing patterns. Became the standard async messaging layer for microservices before Kafka redefined event streaming.",
|
|
2270
|
+
yearNum: 2007,
|
|
2271
|
+
yearLabel: "2007",
|
|
2272
|
+
precision: "year",
|
|
2273
|
+
domains: ["technology", "systems"],
|
|
2274
|
+
impactScore: 0.64,
|
|
2275
|
+
tags: ["rabbitmq", "message-queue", "amqp", "async", "messaging"],
|
|
2276
|
+
wikidataId: "Q1066003"
|
|
2277
|
+
}),
|
|
2278
|
+
ev5({
|
|
2279
|
+
id: "kafka",
|
|
2280
|
+
title: "Apache Kafka",
|
|
2281
|
+
description: "LinkedIn open-sourced Kafka \u2014 distributed event streaming platform. Append-only log, consumer groups, horizontal partitioning. Handles 7 trillion events/day at LinkedIn. Redefined data integration from ETL batch jobs to real-time event streams.",
|
|
2282
|
+
yearNum: 2011,
|
|
2283
|
+
yearLabel: "2011",
|
|
2284
|
+
precision: "year",
|
|
2285
|
+
domains: ["technology", "systems"],
|
|
2286
|
+
impactScore: 0.78,
|
|
2287
|
+
tags: ["kafka", "event-streaming", "distributed", "log", "real-time"],
|
|
2288
|
+
wikidataId: "Q16235208"
|
|
2289
|
+
}),
|
|
2290
|
+
ev5({
|
|
2291
|
+
id: "redis",
|
|
2292
|
+
title: "Redis",
|
|
2293
|
+
description: "Salvatore Sanfilippo built Redis \u2014 the in-memory data structure store. Sub-millisecond reads, pub/sub, sorted sets, streams. Used as cache, session store, job queue, leaderboard, and rate limiter. The Swiss Army knife of backend infrastructure.",
|
|
2294
|
+
yearNum: 2009,
|
|
2295
|
+
yearLabel: "2009",
|
|
2296
|
+
precision: "year",
|
|
2297
|
+
domains: ["technology"],
|
|
2298
|
+
impactScore: 0.76,
|
|
2299
|
+
tags: ["redis", "cache", "in-memory", "pub-sub", "database", "key-value"],
|
|
2300
|
+
wikidataId: "Q1153693"
|
|
2301
|
+
}),
|
|
2302
|
+
// ── CI/CD ─────────────────────────────────────────────────────────────
|
|
2303
|
+
ev5({
|
|
2304
|
+
id: "jenkins",
|
|
2305
|
+
title: "Jenkins (CI/CD)",
|
|
2306
|
+
description: "Originally Hudson (Sun Microsystems), Jenkins became the dominant open-source CI server. Plugin ecosystem (1000+), pipeline-as-code (Jenkinsfile), and self-hosted model made it the default automation backbone for enterprise software for a decade.",
|
|
2307
|
+
yearNum: 2011,
|
|
2308
|
+
yearLabel: "2011",
|
|
2309
|
+
precision: "year",
|
|
2310
|
+
domains: ["technology", "systems"],
|
|
2311
|
+
impactScore: 0.72,
|
|
2312
|
+
tags: ["jenkins", "ci-cd", "automation", "pipeline", "build"],
|
|
2313
|
+
wikidataId: "Q1454687"
|
|
2314
|
+
}),
|
|
2315
|
+
ev5({
|
|
2316
|
+
id: "gitlab",
|
|
2317
|
+
title: "GitLab",
|
|
2318
|
+
description: 'Dmitriy Zaporozhets built GitLab \u2014 the self-hosted alternative to GitHub. Complete DevOps platform: git hosting + CI/CD + container registry + issue tracking in one. Pioneered the "DevOps platform" category and forced GitHub to ship Actions.',
|
|
2319
|
+
yearNum: 2011,
|
|
2320
|
+
yearLabel: "2011",
|
|
2321
|
+
precision: "year",
|
|
2322
|
+
domains: ["technology", "systems"],
|
|
2323
|
+
impactScore: 0.7,
|
|
2324
|
+
tags: ["gitlab", "devops", "ci-cd", "self-hosted", "git"],
|
|
2325
|
+
wikidataId: "Q16457575"
|
|
2326
|
+
}),
|
|
2327
|
+
ev5({
|
|
2328
|
+
id: "github_actions",
|
|
2329
|
+
title: "GitHub Actions",
|
|
2330
|
+
description: "GitHub launched Actions \u2014 CI/CD built directly into GitHub. YAML workflows, reusable actions marketplace, matrix builds. Made CI accessible to every GitHub user without configuring a separate CI tool. Triggered mass migration from Jenkins, CircleCI, and TravisCI.",
|
|
2331
|
+
yearNum: 2018,
|
|
2332
|
+
yearLabel: "2018",
|
|
2333
|
+
precision: "year",
|
|
2334
|
+
domains: ["technology", "systems"],
|
|
2335
|
+
impactScore: 0.74,
|
|
2336
|
+
tags: ["github-actions", "ci-cd", "automation", "workflow", "yaml"],
|
|
2337
|
+
wikidataId: "Q65075585"
|
|
2338
|
+
}),
|
|
2339
|
+
// ── Configuration management ──────────────────────────────────────────
|
|
2340
|
+
ev5({
|
|
2341
|
+
id: "ansible",
|
|
2342
|
+
title: "Ansible",
|
|
2343
|
+
description: "Michael DeHaan built Ansible \u2014 agentless infrastructure automation via SSH + YAML playbooks. No daemons to install, no DSL to learn. Made configuration management accessible to sysadmins who weren't Puppet/Chef experts. Red Hat acquired it for $150M.",
|
|
2344
|
+
yearNum: 2012,
|
|
2345
|
+
yearLabel: "2012",
|
|
2346
|
+
precision: "year",
|
|
2347
|
+
domains: ["technology", "systems"],
|
|
2348
|
+
impactScore: 0.68,
|
|
2349
|
+
tags: ["ansible", "configuration-management", "automation", "iac", "yaml"],
|
|
2350
|
+
wikidataId: "Q15908534"
|
|
2351
|
+
}),
|
|
2352
|
+
// ── Monitoring & observability ────────────────────────────────────────
|
|
2353
|
+
ev5({
|
|
2354
|
+
id: "prometheus",
|
|
2355
|
+
title: "Prometheus",
|
|
2356
|
+
description: "SoundCloud open-sourced Prometheus \u2014 the pull-based metrics system with PromQL and built-in alerting. Became the CNCF standard for cloud-native monitoring. Kubernetes and every cloud-native project exposes Prometheus metrics. The lingua franca of SRE.",
|
|
2357
|
+
yearNum: 2012,
|
|
2358
|
+
yearLabel: "2012",
|
|
2359
|
+
precision: "year",
|
|
2360
|
+
domains: ["technology", "systems"],
|
|
2361
|
+
impactScore: 0.72,
|
|
2362
|
+
tags: ["prometheus", "monitoring", "metrics", "alerting", "promql", "sre"],
|
|
2363
|
+
wikidataId: "Q17156677"
|
|
2364
|
+
}),
|
|
2365
|
+
ev5({
|
|
2366
|
+
id: "grafana",
|
|
2367
|
+
title: "Grafana",
|
|
2368
|
+
description: "Torkel \xD6degaard built Grafana \u2014 the open dashboarding layer for Prometheus, InfluxDB, and every other time-series database. Turned metrics into visual stories. The default observability dashboard for every Kubernetes deployment and cloud infrastructure.",
|
|
2369
|
+
yearNum: 2014,
|
|
2370
|
+
yearLabel: "2014",
|
|
2371
|
+
precision: "year",
|
|
2372
|
+
domains: ["technology", "systems"],
|
|
2373
|
+
impactScore: 0.68,
|
|
2374
|
+
tags: ["grafana", "dashboard", "visualization", "monitoring", "observability"],
|
|
2375
|
+
wikidataId: "Q59206168"
|
|
2376
|
+
}),
|
|
2377
|
+
ev5({
|
|
2378
|
+
id: "sentry",
|
|
2379
|
+
title: "Sentry (Error Tracking)",
|
|
2380
|
+
description: 'David Cramer built Sentry \u2014 open-source error tracking that captures exceptions with full stack traces, context, and user data. "npm install @sentry/node" became the first step in any production deployment. Made error observability a default practice.',
|
|
2381
|
+
yearNum: 2008,
|
|
2382
|
+
yearLabel: "2008",
|
|
2383
|
+
precision: "year",
|
|
2384
|
+
domains: ["technology"],
|
|
2385
|
+
impactScore: 0.66,
|
|
2386
|
+
tags: ["sentry", "error-tracking", "observability", "debugging", "apm"],
|
|
2387
|
+
wikidataId: "Q13619910"
|
|
2388
|
+
}),
|
|
2389
|
+
ev5({
|
|
2390
|
+
id: "datadog",
|
|
2391
|
+
title: "Datadog",
|
|
2392
|
+
description: "Olivier Pomel and Alexis L\xEA-Qu\xF4c built Datadog \u2014 cloud-native APM, infrastructure monitoring, log management, and synthetic monitoring in one SaaS platform. $40B market cap. Set the standard for what enterprise observability looks like in the cloud era.",
|
|
2393
|
+
yearNum: 2010,
|
|
2394
|
+
yearLabel: "2010",
|
|
2395
|
+
precision: "year",
|
|
2396
|
+
domains: ["technology", "economy"],
|
|
2397
|
+
impactScore: 0.7,
|
|
2398
|
+
tags: ["datadog", "apm", "monitoring", "observability", "saas"],
|
|
2399
|
+
wikidataId: "Q13599581"
|
|
2400
|
+
}),
|
|
2401
|
+
ev5({
|
|
2402
|
+
id: "opentelemetry",
|
|
2403
|
+
title: "OpenTelemetry",
|
|
2404
|
+
description: 'CNCF merged OpenTracing and OpenCensus into OpenTelemetry \u2014 the vendor-neutral standard for traces, metrics, and logs. One SDK, any backend (Datadog, Honeycomb, Grafana, Jaeger). Ended the observability vendor lock-in era and made the "three pillars" concrete.',
|
|
2405
|
+
yearNum: 2019,
|
|
2406
|
+
yearLabel: "2019",
|
|
2407
|
+
precision: "year",
|
|
2408
|
+
domains: ["technology", "systems"],
|
|
2409
|
+
impactScore: 0.68,
|
|
2410
|
+
tags: ["opentelemetry", "otel", "tracing", "observability", "vendor-neutral", "cncf"],
|
|
2411
|
+
wikidataId: "Q87089591"
|
|
2412
|
+
}),
|
|
2413
|
+
// ── Service mesh & networking ─────────────────────────────────────────
|
|
2414
|
+
ev5({
|
|
2415
|
+
id: "grpc",
|
|
2416
|
+
title: "gRPC",
|
|
2417
|
+
description: "Google open-sourced gRPC \u2014 a high-performance RPC framework using Protocol Buffers and HTTP/2. Typed service contracts, streaming, cross-language. Replaced REST for internal microservice communication at Google, Netflix, and Cisco. The backbone of cloud-native service communication.",
|
|
2418
|
+
yearNum: 2015,
|
|
2419
|
+
yearLabel: "2015",
|
|
2420
|
+
precision: "year",
|
|
2421
|
+
domains: ["technology", "systems"],
|
|
2422
|
+
impactScore: 0.7,
|
|
2423
|
+
tags: ["grpc", "rpc", "protobuf", "http2", "microservices", "streaming"],
|
|
2424
|
+
wikidataId: "Q29474706"
|
|
2425
|
+
}),
|
|
2426
|
+
ev5({
|
|
2427
|
+
id: "istio",
|
|
2428
|
+
title: "Istio (Service Mesh)",
|
|
2429
|
+
description: "Google, IBM, and Lyft open-sourced Istio \u2014 a service mesh for Kubernetes. mTLS between services, traffic management, observability, circuit breaking \u2014 all without code changes. Proved that cross-cutting operational concerns belong in infrastructure, not application code.",
|
|
2430
|
+
yearNum: 2017,
|
|
2431
|
+
yearLabel: "2017",
|
|
2432
|
+
precision: "year",
|
|
2433
|
+
domains: ["technology", "systems"],
|
|
2434
|
+
impactScore: 0.66,
|
|
2435
|
+
tags: ["istio", "service-mesh", "kubernetes", "mtls", "traffic", "envoy"],
|
|
2436
|
+
wikidataId: "Q47444879"
|
|
2437
|
+
}),
|
|
2438
|
+
ev5({
|
|
2439
|
+
id: "envoy_proxy",
|
|
2440
|
+
title: "Envoy Proxy",
|
|
2441
|
+
description: "Lyft open-sourced Envoy \u2014 a high-performance C++ L7 proxy. Observability built in, hot restart, dynamic configuration via xDS API. Became the data plane for Istio, AWS App Mesh, and every major service mesh. The proxy that unified cloud-native networking.",
|
|
2442
|
+
yearNum: 2016,
|
|
2443
|
+
yearLabel: "2016",
|
|
2444
|
+
precision: "year",
|
|
2445
|
+
domains: ["technology", "systems"],
|
|
2446
|
+
impactScore: 0.66,
|
|
2447
|
+
tags: ["envoy", "proxy", "service-mesh", "l7", "xds", "sidecar"],
|
|
2448
|
+
wikidataId: "Q61801997"
|
|
2449
|
+
}),
|
|
2450
|
+
// ── Kubernetes ecosystem ──────────────────────────────────────────────
|
|
2451
|
+
ev5({
|
|
2452
|
+
id: "helm",
|
|
2453
|
+
title: "Helm (Kubernetes Package Manager)",
|
|
2454
|
+
description: 'Helm introduced Charts \u2014 the package format for Kubernetes applications. "apt-get for Kubernetes." Template YAML configs, version them, share them. Became the standard way to distribute and deploy Kubernetes applications.',
|
|
2455
|
+
yearNum: 2015,
|
|
2456
|
+
yearLabel: "2015",
|
|
2457
|
+
precision: "year",
|
|
2458
|
+
domains: ["technology", "systems"],
|
|
2459
|
+
impactScore: 0.66,
|
|
2460
|
+
tags: ["helm", "kubernetes", "package-manager", "charts", "deployment"],
|
|
2461
|
+
wikidataId: "Q55638993"
|
|
2462
|
+
}),
|
|
2463
|
+
ev5({
|
|
2464
|
+
id: "argocd",
|
|
2465
|
+
title: "Argo CD (GitOps)",
|
|
2466
|
+
description: 'Intuit open-sourced Argo CD \u2014 the GitOps continuous delivery tool for Kubernetes. Git is the source of truth; Argo CD syncs cluster state to match. Mainstreamed GitOps as the operational model for Kubernetes: "everything in Git, cluster matches Git."',
|
|
2467
|
+
yearNum: 2018,
|
|
2468
|
+
yearLabel: "2018",
|
|
2469
|
+
precision: "year",
|
|
2470
|
+
domains: ["technology", "systems"],
|
|
2471
|
+
impactScore: 0.66,
|
|
2472
|
+
tags: ["argocd", "gitops", "kubernetes", "continuous-delivery", "declarative"],
|
|
2473
|
+
wikidataId: "Q87105148"
|
|
2474
|
+
}),
|
|
2475
|
+
ev5({
|
|
2476
|
+
id: "etcd",
|
|
2477
|
+
title: "etcd",
|
|
2478
|
+
description: 'CoreOS built etcd \u2014 a distributed key-value store using Raft consensus. Kubernetes uses etcd as its primary data store \u2014 all cluster state (pods, configs, secrets) lives in etcd. The "brain" of every Kubernetes cluster.',
|
|
2479
|
+
yearNum: 2013,
|
|
2480
|
+
yearLabel: "2013",
|
|
2481
|
+
precision: "year",
|
|
2482
|
+
domains: ["technology", "systems"],
|
|
2483
|
+
impactScore: 0.66,
|
|
2484
|
+
tags: ["etcd", "distributed", "key-value", "raft", "consensus", "kubernetes"],
|
|
2485
|
+
wikidataId: "Q22012795"
|
|
2486
|
+
}),
|
|
2487
|
+
ev5({
|
|
2488
|
+
id: "containerd",
|
|
2489
|
+
title: "containerd",
|
|
2490
|
+
description: "Docker open-sourced containerd \u2014 the container runtime that manages the container lifecycle (pull, run, stop). Kubernetes dropped Docker in favor of containerd as the CRI-compliant runtime. Now runs every container on every major cloud Kubernetes service.",
|
|
2491
|
+
yearNum: 2016,
|
|
2492
|
+
yearLabel: "2016",
|
|
2493
|
+
precision: "year",
|
|
2494
|
+
domains: ["technology", "systems"],
|
|
2495
|
+
impactScore: 0.64,
|
|
2496
|
+
tags: ["containerd", "container-runtime", "cri", "docker", "kubernetes"],
|
|
2497
|
+
wikidataId: "Q43748082"
|
|
2498
|
+
}),
|
|
2499
|
+
// ── Infrastructure as code ────────────────────────────────────────────
|
|
2500
|
+
ev5({
|
|
2501
|
+
id: "pulumi",
|
|
2502
|
+
title: "Pulumi",
|
|
2503
|
+
description: "Pulumi brought IaC to real programming languages \u2014 TypeScript, Python, Go instead of Terraform's HCL. Full language features (loops, functions, testing) for infrastructure. Challenged Terraform's DSL-based approach and grew the IaC market to non-ops engineers.",
|
|
2504
|
+
yearNum: 2018,
|
|
2505
|
+
yearLabel: "2018",
|
|
2506
|
+
precision: "year",
|
|
2507
|
+
domains: ["technology", "systems"],
|
|
2508
|
+
impactScore: 0.62,
|
|
2509
|
+
tags: ["pulumi", "iac", "typescript", "infrastructure", "cloud", "declarative"],
|
|
2510
|
+
wikidataId: "Q61804289"
|
|
2511
|
+
}),
|
|
2512
|
+
// ── Security & secrets ────────────────────────────────────────────────
|
|
2513
|
+
ev5({
|
|
2514
|
+
id: "letsencrypt",
|
|
2515
|
+
title: "Let's Encrypt",
|
|
2516
|
+
description: `Internet Security Research Group launched Let's Encrypt \u2014 free, automated TLS certificates. Eliminated the friction and cost of HTTPS. Web went from 30% HTTPS in 2015 to 95%+ by 2023. Made "HTTPS everywhere" a practical reality, not just a recommendation.`,
|
|
2517
|
+
yearNum: 2015,
|
|
2518
|
+
yearLabel: "2015",
|
|
2519
|
+
precision: "year",
|
|
2520
|
+
domains: ["technology", "systems"],
|
|
2521
|
+
impactScore: 0.74,
|
|
2522
|
+
tags: ["letsencrypt", "tls", "https", "ssl", "certificate", "security"],
|
|
2523
|
+
wikidataId: "Q22060091"
|
|
2524
|
+
}),
|
|
2525
|
+
ev5({
|
|
2526
|
+
id: "vault",
|
|
2527
|
+
title: "HashiCorp Vault",
|
|
2528
|
+
description: 'HashiCorp built Vault \u2014 secrets management for dynamic infrastructure. Dynamic database credentials, PKI, encryption-as-a-service. Solved the "secret zero" problem: how do you bootstrap credentials securely in a world where servers are ephemeral.',
|
|
2529
|
+
yearNum: 2015,
|
|
2530
|
+
yearLabel: "2015",
|
|
2531
|
+
precision: "year",
|
|
2532
|
+
domains: ["technology", "systems"],
|
|
2533
|
+
impactScore: 0.66,
|
|
2534
|
+
tags: ["vault", "secrets", "pki", "security", "hashicorp", "encryption"],
|
|
2535
|
+
wikidataId: "Q27983753"
|
|
2536
|
+
}),
|
|
2537
|
+
ev5({
|
|
2538
|
+
id: "cloudflare",
|
|
2539
|
+
title: "Cloudflare CDN & DDoS Protection",
|
|
2540
|
+
description: "Matthew Prince launched Cloudflare \u2014 CDN, DDoS mitigation, DNS, WAF, and later edge compute, all in one network. Democratized enterprise-grade security for small sites. Protects ~20% of the web by traffic and processes 50M+ HTTP requests per second.",
|
|
2541
|
+
yearNum: 2010,
|
|
2542
|
+
yearLabel: "2010",
|
|
2543
|
+
precision: "year",
|
|
2544
|
+
domains: ["technology", "economy", "systems"],
|
|
2545
|
+
impactScore: 0.74,
|
|
2546
|
+
tags: ["cloudflare", "cdn", "ddos", "dns", "security", "edge"],
|
|
2547
|
+
wikidataId: "Q2139415"
|
|
2548
|
+
}),
|
|
2549
|
+
ev5({
|
|
2550
|
+
id: "cloudflare_workers",
|
|
2551
|
+
title: "Cloudflare Workers (Edge Computing)",
|
|
2552
|
+
description: "Cloudflare launched Workers \u2014 JavaScript running on Cloudflare's edge network (200+ cities), not in a central cloud region. Response latency in milliseconds globally. Pioneered the edge computing model and created a new runtime standard (WinterCG).",
|
|
2553
|
+
yearNum: 2017,
|
|
2554
|
+
yearLabel: "2017",
|
|
2555
|
+
precision: "year",
|
|
2556
|
+
domains: ["technology", "systems"],
|
|
2557
|
+
impactScore: 0.7,
|
|
2558
|
+
tags: ["cloudflare-workers", "edge", "serverless", "javascript", "v8", "runtime"],
|
|
2559
|
+
wikidataId: "Q60319975"
|
|
2560
|
+
}),
|
|
2561
|
+
// ── Search & data ─────────────────────────────────────────────────────
|
|
2562
|
+
ev5({
|
|
2563
|
+
id: "elasticsearch",
|
|
2564
|
+
title: "Elasticsearch",
|
|
2565
|
+
description: 'Shay Banon built Elasticsearch \u2014 distributed search and analytics on top of Lucene. Full-text search, aggregations, near-real-time indexing. Became the default for log aggregation (ELK stack), product search, and observability data. The "grep at scale."',
|
|
2566
|
+
yearNum: 2010,
|
|
2567
|
+
yearLabel: "2010",
|
|
2568
|
+
precision: "year",
|
|
2569
|
+
domains: ["technology"],
|
|
2570
|
+
impactScore: 0.7,
|
|
2571
|
+
tags: ["elasticsearch", "search", "distributed", "elk", "logging", "analytics"],
|
|
2572
|
+
wikidataId: "Q3050461"
|
|
2573
|
+
}),
|
|
2574
|
+
// ── Platform / GitOps ─────────────────────────────────────────────────
|
|
2575
|
+
ev5({
|
|
2576
|
+
id: "consul",
|
|
2577
|
+
title: "Consul (Service Discovery)",
|
|
2578
|
+
description: 'HashiCorp released Consul \u2014 service discovery, health checking, and distributed KV. Services register themselves; others discover them by name, not IP. Solved the "which IP is my service?" problem in dynamic cloud infrastructure before Kubernetes DNS made this simpler.',
|
|
2579
|
+
yearNum: 2014,
|
|
2580
|
+
yearLabel: "2014",
|
|
2581
|
+
precision: "year",
|
|
2582
|
+
domains: ["technology", "systems"],
|
|
2583
|
+
impactScore: 0.62,
|
|
2584
|
+
tags: ["consul", "service-discovery", "health-check", "hashicorp", "dns"],
|
|
2585
|
+
wikidataId: "Q27983895"
|
|
2586
|
+
}),
|
|
2587
|
+
ev5({
|
|
2588
|
+
id: "github_copilot",
|
|
2589
|
+
title: "GitHub Copilot",
|
|
2590
|
+
description: 'GitHub and OpenAI launched Copilot \u2014 AI pair programming trained on public code. Completes functions, writes tests, suggests implementations in context. First mass-market AI developer tool: 1M+ paid users in 12 months. Redefined what "developer tooling" means.',
|
|
2591
|
+
yearNum: 2021,
|
|
2592
|
+
yearLabel: "2021",
|
|
2593
|
+
precision: "year",
|
|
2594
|
+
domains: ["technology"],
|
|
2595
|
+
impactScore: 0.8,
|
|
2596
|
+
tags: ["copilot", "ai", "coding-assistant", "llm", "developer-tools", "openai"],
|
|
2597
|
+
wikidataId: "Q107561544"
|
|
2598
|
+
}),
|
|
2599
|
+
ev5({
|
|
2600
|
+
id: "pagerduty",
|
|
2601
|
+
title: "PagerDuty",
|
|
2602
|
+
description: `Alex Solomon built PagerDuty \u2014 incident management and on-call scheduling. Integrates with monitoring tools, routes alerts to the right person, tracks incident timelines. Operationalized SRE on-call culture and made "who's on call" a solvable infrastructure problem.`,
|
|
2603
|
+
yearNum: 2009,
|
|
2604
|
+
yearLabel: "2009",
|
|
2605
|
+
precision: "year",
|
|
2606
|
+
domains: ["technology", "systems"],
|
|
2607
|
+
impactScore: 0.62,
|
|
2608
|
+
tags: ["pagerduty", "incident-management", "on-call", "alerting", "sre"],
|
|
2609
|
+
wikidataId: "Q7126929"
|
|
2610
|
+
}),
|
|
2611
|
+
ev5({
|
|
2612
|
+
id: "ebpf",
|
|
2613
|
+
title: "eBPF (Extended Berkeley Packet Filter)",
|
|
2614
|
+
description: "Linux kernel developers extended BPF into eBPF \u2014 a programmable kernel subsystem for running sandboxed programs in kernel space. Zero-overhead observability, network filtering, security policy enforcement. Powers Cilium, Falco, and Datadog's lowest-overhead agent.",
|
|
2615
|
+
yearNum: 2014,
|
|
2616
|
+
yearLabel: "2014",
|
|
2617
|
+
precision: "year",
|
|
2618
|
+
domains: ["technology", "systems"],
|
|
2619
|
+
impactScore: 0.68,
|
|
2620
|
+
tags: ["ebpf", "linux", "kernel", "observability", "networking", "security"],
|
|
2621
|
+
wikidataId: "Q7956239"
|
|
2622
|
+
})
|
|
2623
|
+
];
|
|
2624
|
+
|
|
2625
|
+
// ../../packages/ckg/dist/seed/links-cloud-devops.js
|
|
2626
|
+
var seed5 = (fromEvent, toEvent, rel, evidence, confidence) => ({
|
|
2627
|
+
id: `${fromEvent}--${rel}-->${toEvent}`,
|
|
2628
|
+
fromEvent,
|
|
2629
|
+
toEvent,
|
|
2630
|
+
relationship: rel,
|
|
2631
|
+
confidence: confidence ?? (rel === "caused" ? 0.9 : 0.8),
|
|
2632
|
+
evidence,
|
|
2633
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 cloud & devops" }],
|
|
2634
|
+
contributedBy: "system",
|
|
2635
|
+
validated: true,
|
|
2636
|
+
scope: "world"
|
|
2637
|
+
});
|
|
2638
|
+
var cloudDevopsLinks = [
|
|
2639
|
+
// ── Web server evolution ──────────────────────────────────────────────
|
|
2640
|
+
seed5("linux", "apache_http", "enabled", "Apache runs on Linux and its dominance was inseparable from Linux-based hosting. The LAMP stack (Linux + Apache + MySQL + PHP) defined a decade of web hosting.", 0.88),
|
|
2641
|
+
seed5("apache_http", "nginx", "caused", "Nginx was created specifically to solve Apache's C10K problem. Igor Sysoev observed Apache's process-per-connection model collapse under load and built an event-driven alternative.", 0.92),
|
|
2642
|
+
seed5("nginx", "haproxy", "enabled", "Nginx and HAProxy serve complementary roles \u2014 Nginx as web server/reverse proxy, HAProxy as the TCP/HTTP load balancer in front. The distinction drove both tools to specialize.", 0.65),
|
|
2643
|
+
seed5("linux", "nginx", "enabled", "Nginx is a Linux-native process \u2014 it uses Linux kernel features (epoll, sendfile) for its event-driven performance. Performance numbers are specific to Linux.", 0.85),
|
|
2644
|
+
seed5("nginx", "kubernetes", "enabled", "Nginx Ingress Controller is the most-used Kubernetes ingress. Before Kubernetes had native ingress, Nginx was the standard HTTP proxy layer every Kubernetes cluster needed.", 0.75),
|
|
2645
|
+
seed5("nginx", "cloudflare", "enabled", "Cloudflare's edge network uses Nginx-derived software as its HTTP layer. The event-driven proxy model that Nginx popularized is fundamental to CDN edge architecture.", 0.6),
|
|
2646
|
+
// ── Message queue / streaming chain ───────────────────────────────────
|
|
2647
|
+
seed5("rabbitmq", "kafka", "enabled", "RabbitMQ demonstrated the market for async messaging. LinkedIn built Kafka to handle message volumes RabbitMQ couldn't sustain \u2014 Kafka is an event log, not a message queue, but the demand was proven by RabbitMQ adoption.", 0.6),
|
|
2648
|
+
seed5("kafka", "microservices", "enabled", "Kafka's event streaming model enabled the event-driven microservices pattern. Services publish events to Kafka topics; other services consume them asynchronously \u2014 decoupling that microservices require.", 0.82),
|
|
2649
|
+
seed5("kafka", "elasticsearch", "enabled", "Kafka \u2192 Elasticsearch is a canonical data pipeline: Kafka captures events in real-time; Logstash (or Kafka Connect) streams them to Elasticsearch for indexing and search.", 0.75),
|
|
2650
|
+
seed5("redis", "nosql_movement", "caused", "Redis was one of the founding examples of the NoSQL movement \u2014 a non-relational store optimized for a specific data model (in-memory key-value). It demonstrated that not every problem needs SQL.", 0.8),
|
|
2651
|
+
seed5("redis", "kafka", "enabled", "Redis Streams (added 2018) was influenced by Kafka's log model. Redis provides sub-millisecond Kafka-lite streaming for use cases where Kafka's operational overhead is too high.", 0.55),
|
|
2652
|
+
seed5("nosql_movement", "redis", "enabled", "The NoSQL movement created space for specialized stores like Redis. Once the industry accepted that non-relational was valid for some problems, in-memory KV, document stores, and time-series DB all emerged.", 0.72),
|
|
2653
|
+
// ── CI/CD evolution chain ─────────────────────────────────────────────
|
|
2654
|
+
seed5("agile_manifesto", "jenkins", "enabled", "Agile's continuous integration principle required automation. Jenkins (then Hudson) automated the build \u2192 test \u2192 report cycle that CI demands. The tool existed to operationalize the manifesto's principles.", 0.78),
|
|
2655
|
+
seed5("git", "jenkins", "enabled", "Jenkins triggered builds on git push via webhooks. Git's branching model (feature branches, pull requests) drove the need for per-branch CI that Jenkins provided.", 0.82),
|
|
2656
|
+
seed5("jenkins", "gitlab", "inspired", 'GitLab saw Jenkins as infrastructure separate from source control and embedded CI directly into the git platform. "GitLab CI is Jenkins minus the separate server" was the original pitch.', 0.75),
|
|
2657
|
+
seed5("github", "github_actions", "caused", "GitHub Actions is CI/CD built into GitHub \u2014 not a separate product but a platform feature. GitHub's market position (100M+ developers) made integrated CI the logical next product step.", 0.92),
|
|
2658
|
+
seed5("gitlab", "github_actions", "accelerated", `GitLab's integrated CI/CD proved the market for "git hosting + CI in one platform." GitHub watched GitLab gain enterprise customers and built Actions to compete.`, 0.78),
|
|
2659
|
+
seed5("jenkins", "github_actions", "inspired", "Actions was designed to feel like Jenkins Pipelines but with zero infrastructure management. Every GitHub Actions concept (step, job, artifact) has a Jenkins parallel \u2014 simplified.", 0.65),
|
|
2660
|
+
seed5("github_actions", "argocd", "enabled", "A common GitOps pattern: GitHub Actions pushes image builds to a registry; ArgoCD deploys them to Kubernetes when the manifest changes in Git. Actions handles CI; ArgoCD handles CD.", 0.75),
|
|
2661
|
+
seed5("git", "argocd", "caused", "ArgoCD's core concept \u2014 Git is the source of truth for cluster state \u2014 directly derives from Git's design. No Git branching/merging model \u2192 no GitOps concept.", 0.88),
|
|
2662
|
+
seed5("kubernetes", "argocd", "caused", "ArgoCD is a Kubernetes-native tool \u2014 it runs as controllers inside a Kubernetes cluster and manages Kubernetes resources. No Kubernetes \u2192 no ArgoCD.", 0.92),
|
|
2663
|
+
seed5("kubernetes", "helm", "caused", "Helm was created because raw Kubernetes YAML is unmanageable at scale. Helm solves Kubernetes's own packaging problem \u2014 templated, versioned, shareable YAML bundles.", 0.9),
|
|
2664
|
+
seed5("helm", "argocd", "enabled", "ArgoCD supports Helm as a source format \u2014 it can render Helm charts and sync the output to a cluster. Helm charts became the standard distributable that ArgoCD manages.", 0.78),
|
|
2665
|
+
// ── Observability stack ───────────────────────────────────────────────
|
|
2666
|
+
seed5("kubernetes", "prometheus", "accelerated", "Kubernetes adopted Prometheus as its metrics standard \u2014 every K8s component exposes /metrics in Prometheus format. K8s made Prometheus the default monitoring choice for anyone running containers.", 0.88),
|
|
2667
|
+
seed5("prometheus", "grafana", "enabled", "Grafana was purpose-built to visualize Prometheus data. The prometheus \u2192 grafana pipeline is the canonical observability stack and comes preconfigured in most Kubernetes monitoring setups.", 0.92),
|
|
2668
|
+
seed5("prometheus", "datadog", "accelerated", "Prometheus established the pull-based metrics model and PromQL query standard. Datadog adopted Prometheus exposition format to ingest Prometheus metrics into its SaaS platform.", 0.65),
|
|
2669
|
+
seed5("prometheus", "opentelemetry", "enabled", "OpenTelemetry's metrics specification was designed to be compatible with Prometheus. The Prometheus exposition format is one of OTel's supported output formats, ensuring continuity.", 0.78),
|
|
2670
|
+
seed5("docker", "sentry", "accelerated", "Docker made Sentry deployable on any stack in seconds (docker run sentry). Self-hosting Sentry's error tracking went from complex setup to a single container.", 0.6),
|
|
2671
|
+
seed5("opentelemetry", "datadog", "enabled", 'Datadog supports OpenTelemetry ingestion \u2014 customers instrument with OTel SDKs and ship to Datadog. OTel made Datadog the "open standard backend" rather than a lock-in provider.', 0.72),
|
|
2672
|
+
seed5("opentelemetry", "grafana", "enabled", "Grafana supports OTel natively (Grafana Tempo for traces, Mimir for metrics, Loki for logs). OTel-compatible data flows into Grafana's stack directly.", 0.78),
|
|
2673
|
+
seed5("linux", "ebpf", "caused", `eBPF is a Linux kernel feature \u2014 it requires the Linux kernel's BPF infrastructure. No Linux \u2192 no eBPF. The "extended" in eBPF refers to extensions made to Linux's existing BPF.`, 0.95),
|
|
2674
|
+
seed5("ebpf", "opentelemetry", "enabled", "eBPF enables zero-code instrumentation \u2014 capture traces, metrics, and network data without modifying application code. Combined with OTel, this creates auto-instrumented observability.", 0.72),
|
|
2675
|
+
seed5("ebpf", "kubernetes", "accelerated", "Cilium (eBPF-based Kubernetes networking) replaced iptables with eBPF programs. Kubernetes clusters using Cilium get 40-60% lower network latency and kernel-level observability.", 0.72),
|
|
2676
|
+
seed5("sentry", "opentelemetry", "enabled", "Sentry added OpenTelemetry support \u2014 traces captured by OTel SDKs can feed into Sentry for error-correlated performance monitoring. Error tracking met distributed tracing.", 0.6),
|
|
2677
|
+
// ── Service mesh chain ────────────────────────────────────────────────
|
|
2678
|
+
seed5("kubernetes", "istio", "enabled", "Istio runs as a Kubernetes control plane extension. It requires Kubernetes's pod model, service discovery, and RBAC to function. Istio cannot exist outside Kubernetes.", 0.92),
|
|
2679
|
+
seed5("envoy_proxy", "istio", "caused", "Istio's data plane is entirely Envoy proxies. Envoy sidecars in each pod handle all traffic. Google, IBM, and Lyft (Envoy's creator) co-built Istio on top of Envoy.", 0.92),
|
|
2680
|
+
seed5("microservices", "istio", "enabled", "Istio addresses the cross-cutting concerns of microservices: mTLS between services, distributed tracing, traffic management. The more microservices you run, the more Istio's value compounds.", 0.82),
|
|
2681
|
+
seed5("microservices", "envoy_proxy", "caused", 'Lyft built Envoy to manage its own microservices at scale. The "service mesh" pattern that Envoy enables is inseparable from microservices complexity at hundreds of services.', 0.85),
|
|
2682
|
+
seed5("grpc", "istio", "accelerated", "gRPC is natively supported by Envoy and Istio \u2014 HTTP/2 streaming, service discovery, and load balancing. Istio's traffic management layer works especially well with gRPC's typed contracts.", 0.68),
|
|
2683
|
+
// ── Kubernetes ecosystem ──────────────────────────────────────────────
|
|
2684
|
+
seed5("docker", "containerd", "caused", "containerd was extracted from Docker's codebase as a standalone runtime. Docker split its architecture into containerd (runtime) + Docker Engine (CLI, build). No Docker \u2192 no containerd.", 0.88),
|
|
2685
|
+
seed5("containerd", "kubernetes", "enabled", "Kubernetes deprecated the Docker shim in 1.24 and uses containerd directly via CRI (Container Runtime Interface). containerd IS the K8s runtime on most production clusters today.", 0.88),
|
|
2686
|
+
seed5("linux", "docker", "caused", "Docker uses Linux kernel features: cgroups for resource limits, namespaces for isolation, union filesystems for layers. Docker is Linux kernel features with a good UX. No Linux \u2192 no Docker.", 0.92),
|
|
2687
|
+
seed5("kubernetes", "etcd", "caused", "etcd is Kubernetes's only supported data store. Every Kubernetes cluster requires etcd. The relationship is architectural: K8s controllers read/write to etcd via the API server.", 0.95),
|
|
2688
|
+
seed5("golang", "etcd", "caused", "etcd is written in Go. The Raft implementation, gRPC-based client protocol, and concurrent request handling are all Go-native patterns. Go's concurrency model fit distributed consensus perfectly.", 0.88),
|
|
2689
|
+
seed5("etcd", "consul", "inspired", "etcd and Consul solve overlapping problems (distributed KV, service discovery). Both emerged in 2013-2014 from the same distributed systems moment. HashiCorp saw etcd and built Consul with a richer service-discovery UX.", 0.6),
|
|
2690
|
+
seed5("consul", "vault", "enabled", "HashiCorp built Vault to complement Consul. Consul stores service config; Vault stores secrets. The two tools form a platform: service discovery + secrets management, deployed together.", 0.78),
|
|
2691
|
+
seed5("kubernetes", "vault", "enabled", `Vault Kubernetes auth method allows pods to authenticate using their service account tokens. Kubernetes's RBAC model enabled the "machine identity" that Vault needs to issue dynamic credentials.`, 0.75),
|
|
2692
|
+
// ── Security chain ─────────────────────────────────────────────────────
|
|
2693
|
+
seed5("web", "letsencrypt", "enabled", "Let's Encrypt provides HTTPS certificates for web domains. The web's HTTP protocol is what Let's Encrypt secures. HTTPS is mandatory for HTTP/2, service workers, and secure cookies.", 0.88),
|
|
2694
|
+
seed5("letsencrypt", "pwa", "enabled", "Service Workers (the core PWA technology) require HTTPS. Let's Encrypt made HTTPS free, enabling any developer to deploy a PWA. Before LE, the $100+/year SSL cert was a barrier.", 0.82),
|
|
2695
|
+
seed5("letsencrypt", "cloudflare", "enabled", `Cloudflare integrates Let's Encrypt certificates automatically. The "one-click HTTPS" that Cloudflare offers uses LE as the certificate authority.`, 0.75),
|
|
2696
|
+
seed5("cloudflare", "cloudflare_workers", "caused", "Cloudflare Workers is Cloudflare's compute offering on its existing edge network. The 200+ city PoP infrastructure was already built for CDN; Workers added programmable compute to each PoP.", 0.92),
|
|
2697
|
+
seed5("service_workers", "cloudflare_workers", "inspired", "Cloudflare Workers uses the same event-driven API as browser Service Workers. The fetch event handler pattern was directly borrowed from the Service Worker specification.", 0.85),
|
|
2698
|
+
seed5("cloudflare_workers", "vercel", "accelerated", "Cloudflare Workers demonstrated edge-first deployment; Vercel adopted edge runtimes and edge functions, competing with Cloudflare's edge compute offering. Both accelerated edge adoption.", 0.65),
|
|
2699
|
+
// ── Platform acceleration ─────────────────────────────────────────────
|
|
2700
|
+
seed5("aws", "elasticsearch", "enabled", "AWS launched Amazon OpenSearch (Elasticsearch fork). Cloud-native Elasticsearch became possible because AWS provisioned and managed the complex distributed cluster setup for customers.", 0.72),
|
|
2701
|
+
seed5("aws", "redis", "accelerated", "AWS ElastiCache for Redis made managed Redis available in one click. Self-managed Redis required ops expertise; ElastiCache drove Redis into mainstream backend architecture.", 0.72),
|
|
2702
|
+
seed5("aws", "kafka", "accelerated", "Amazon MSK (Managed Streaming for Kafka) removed Kafka's operational complexity. Managing Kafka at scale is notoriously hard; MSK drove Kafka adoption beyond large organizations.", 0.7),
|
|
2703
|
+
seed5("kubernetes", "pulumi", "enabled", "Pulumi's Kubernetes provider is one of its most-used integrations. Kubernetes YAML templating (Helm's weakness) pushed teams toward Pulumi's real-language approach.", 0.7),
|
|
2704
|
+
seed5("terraform", "pulumi", "inspired", `Pulumi was built as a reaction to Terraform's HCL DSL. "Terraform but in TypeScript" is the one-line pitch. Terraform had to exist and dominate before Pulumi could offer a contrast.`, 0.85),
|
|
2705
|
+
seed5("github", "gitlab", "accelerated", "GitLab grew in part as a reaction to GitHub's acquisition by Microsoft (2018). Enterprises wanting self-hosted, integrated DevOps migrated to GitLab.", 0.65),
|
|
2706
|
+
seed5("pagerduty", "prometheus", "enabled", "Prometheus Alertmanager routes alerts to PagerDuty. The Prometheus \u2192 Alertmanager \u2192 PagerDuty pipeline is the canonical SRE on-call architecture.", 0.72),
|
|
2707
|
+
seed5("prometheus", "pagerduty", "enabled", "Prometheus fires alerts based on PromQL rules; PagerDuty receives them for routing and escalation. Each tool handles its layer: metrics \u2192 alert \u2192 incident management.", 0.72),
|
|
2708
|
+
// ── AI + DevOps intersection ──────────────────────────────────────────
|
|
2709
|
+
seed5("github", "github_copilot", "caused", "GitHub Copilot is a GitHub product \u2014 built on GitHub's corpus of public code, integrated into GitHub's IDE workflow, and sold as a GitHub subscription. No GitHub \u2192 no Copilot.", 0.92),
|
|
2710
|
+
seed5("vscode", "github_copilot", "enabled", "Copilot launched as a VS Code extension. VS Code's 70% market share made it the distribution vehicle for Copilot. The extension API that VS Code provides is what powers inline completions.", 0.88),
|
|
2711
|
+
seed5("chatgpt", "github_copilot", "accelerated", "ChatGPT's December 2022 launch proved to the market that LLMs could code. Copilot adoption accelerated dramatically after ChatGPT \u2014 the market believed in AI coding tools for the first time.", 0.75),
|
|
2712
|
+
seed5("github_copilot", "mcp_protocol", "enabled", "Copilot proved that AI coding tools could be integrated into developer workflows. MCP extends the same concept \u2014 instead of code completion, structured tool calls. Copilot established developer acceptance of AI IDE tools.", 0.65),
|
|
2713
|
+
// ── Cross-vertical links ───────────────────────────────────────────────
|
|
2714
|
+
seed5("kafka", "ai", "enabled", "Kafka's real-time event streams feed ML feature stores and model training pipelines. Event-driven architectures \u2014 Kafka at the center \u2014 power real-time recommendation and fraud detection systems.", 0.65),
|
|
2715
|
+
seed5("redis", "ai", "enabled", "Redis stores ML model caches, session context, and rate limits for LLM API calls. As AI inference became latency-sensitive, Redis's sub-millisecond reads made it essential infrastructure.", 0.6),
|
|
2716
|
+
seed5("grpc", "transformer", "enabled", "Google's internal infrastructure for training Transformers uses gRPC for distributed communication between workers. TensorFlow's distributed training is built on gRPC.", 0.7),
|
|
2717
|
+
seed5("kubernetes", "ai", "enabled", "Kubernetes GPU scheduling (via NVIDIA device plugin) is the standard way to run LLM training and inference at scale. K8s orchestrates the GPU clusters that power cloud AI.", 0.78),
|
|
2718
|
+
seed5("cloudflare_workers", "mcp_protocol", "enabled", "Cloudflare Workers is a deployment target for MCP servers \u2014 run the MCP server at the edge, close to the agent. The edge-native runtime fits MCP's low-latency tool-call model.", 0.6)
|
|
2719
|
+
];
|
|
2720
|
+
|
|
2721
|
+
// ../../packages/ckg/dist/seed/events-databases.js
|
|
2722
|
+
var src4 = { type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 databases" };
|
|
2723
|
+
var ev6 = (e) => ({ ...e, scope: "world", sources: [src4] });
|
|
2724
|
+
var databaseEvents = [
|
|
2725
|
+
ev6({
|
|
2726
|
+
id: "mysql",
|
|
2727
|
+
title: "MySQL",
|
|
2728
|
+
description: "Michael Widenius and David Axmark built MySQL \u2014 the open-source relational database that powered the LAMP stack and the first generation of web startups. Wikipedia, WordPress, and Facebook started on MySQL. Acquired by Sun then Oracle; MariaDB forked to preserve the open-source lineage.",
|
|
2729
|
+
yearNum: 1995,
|
|
2730
|
+
yearLabel: "1995",
|
|
2731
|
+
precision: "year",
|
|
2732
|
+
domains: ["technology"],
|
|
2733
|
+
impactScore: 0.78,
|
|
2734
|
+
tags: ["mysql", "database", "relational", "lamp", "open-source", "sql"],
|
|
2735
|
+
wikidataId: "Q14565"
|
|
2736
|
+
}),
|
|
2737
|
+
ev6({
|
|
2738
|
+
id: "sqlite",
|
|
2739
|
+
title: "SQLite",
|
|
2740
|
+
description: "D. Richard Hipp built SQLite \u2014 a zero-configuration, serverless SQL database in a single file. Runs inside every Android and iOS app, every Chrome browser, every Python installation. The most deployed database engine in the world by installed count.",
|
|
2741
|
+
yearNum: 2e3,
|
|
2742
|
+
yearLabel: "2000",
|
|
2743
|
+
precision: "year",
|
|
2744
|
+
domains: ["technology"],
|
|
2745
|
+
impactScore: 0.74,
|
|
2746
|
+
tags: ["sqlite", "database", "embedded", "serverless", "sql", "mobile"],
|
|
2747
|
+
wikidataId: "Q319417"
|
|
2748
|
+
}),
|
|
2749
|
+
ev6({
|
|
2750
|
+
id: "mongodb",
|
|
2751
|
+
title: "MongoDB",
|
|
2752
|
+
description: 'Dwight Merriman and Eliot Horowitz built MongoDB \u2014 a JSON document database. Schema-less, horizontally scalable, developer-friendly querying. Led the NoSQL wave for web-scale apps. "If your data is JSON, your database should be JSON" \u2014 convinced a generation of Node.js developers.',
|
|
2753
|
+
yearNum: 2009,
|
|
2754
|
+
yearLabel: "2009",
|
|
2755
|
+
precision: "year",
|
|
2756
|
+
domains: ["technology"],
|
|
2757
|
+
impactScore: 0.72,
|
|
2758
|
+
tags: ["mongodb", "nosql", "document", "json", "database", "bson"],
|
|
2759
|
+
wikidataId: "Q1165412"
|
|
2760
|
+
}),
|
|
2761
|
+
ev6({
|
|
2762
|
+
id: "cassandra",
|
|
2763
|
+
title: "Apache Cassandra",
|
|
2764
|
+
description: "Facebook open-sourced Cassandra \u2014 a wide-column distributed database designed for massive scale with no single point of failure. Used at Apple (10+ PB), Netflix, and Instagram. Proves the CAP theorem in production: choose availability + partition tolerance over strong consistency.",
|
|
2765
|
+
yearNum: 2008,
|
|
2766
|
+
yearLabel: "2008",
|
|
2767
|
+
precision: "year",
|
|
2768
|
+
domains: ["technology", "systems"],
|
|
2769
|
+
impactScore: 0.7,
|
|
2770
|
+
tags: ["cassandra", "nosql", "distributed", "wide-column", "cap-theorem"],
|
|
2771
|
+
wikidataId: "Q1082089"
|
|
2772
|
+
}),
|
|
2773
|
+
ev6({
|
|
2774
|
+
id: "dynamodb",
|
|
2775
|
+
title: "Amazon DynamoDB",
|
|
2776
|
+
description: `Amazon released DynamoDB \u2014 serverless key-value and document database with single-digit millisecond latency. Pay-per-request pricing, auto-scaling, global tables. Popularized the "managed NoSQL" category and the single-table design pattern. Powers Amazon.com's cart and session at scale.`,
|
|
2777
|
+
yearNum: 2012,
|
|
2778
|
+
yearLabel: "2012",
|
|
2779
|
+
precision: "year",
|
|
2780
|
+
domains: ["technology"],
|
|
2781
|
+
impactScore: 0.72,
|
|
2782
|
+
tags: ["dynamodb", "nosql", "serverless", "aws", "key-value", "managed"],
|
|
2783
|
+
wikidataId: "Q2040449"
|
|
2784
|
+
}),
|
|
2785
|
+
ev6({
|
|
2786
|
+
id: "influxdb",
|
|
2787
|
+
title: "InfluxDB",
|
|
2788
|
+
description: "Paul Dix built InfluxDB \u2014 the open-source time-series database. Optimized for writing and querying timestamped data: metrics, events, IoT sensor readings. The default time-series backend for Prometheus long-term storage and Grafana data sources.",
|
|
2789
|
+
yearNum: 2013,
|
|
2790
|
+
yearLabel: "2013",
|
|
2791
|
+
precision: "year",
|
|
2792
|
+
domains: ["technology"],
|
|
2793
|
+
impactScore: 0.62,
|
|
2794
|
+
tags: ["influxdb", "time-series", "database", "metrics", "iot", "monitoring"],
|
|
2795
|
+
wikidataId: "Q18570252"
|
|
2796
|
+
}),
|
|
2797
|
+
ev6({
|
|
2798
|
+
id: "neo4j",
|
|
2799
|
+
title: "Neo4j (Graph Database)",
|
|
2800
|
+
description: "Emil Eifrem founded Neo4j \u2014 the leading graph database using nodes, relationships, and properties. Cypher query language makes graph traversal natural. Used for fraud detection, recommendation engines, knowledge graphs, and \u2014 notably \u2014 powering knowledge graphs like the CKG.",
|
|
2801
|
+
yearNum: 2007,
|
|
2802
|
+
yearLabel: "2007",
|
|
2803
|
+
precision: "year",
|
|
2804
|
+
domains: ["technology"],
|
|
2805
|
+
impactScore: 0.64,
|
|
2806
|
+
tags: ["neo4j", "graph-database", "cypher", "knowledge-graph", "relationships"],
|
|
2807
|
+
wikidataId: "Q10888882"
|
|
2808
|
+
}),
|
|
2809
|
+
ev6({
|
|
2810
|
+
id: "vitess",
|
|
2811
|
+
title: "Vitess (MySQL Sharding)",
|
|
2812
|
+
description: "YouTube built Vitess \u2014 a database clustering system for MySQL horizontal sharding. Transparent to applications: same SQL, but sharded across hundreds of MySQL instances. PlanetScale commercialized it; now powers YouTube at 99.99% availability.",
|
|
2813
|
+
yearNum: 2010,
|
|
2814
|
+
yearLabel: "2010",
|
|
2815
|
+
precision: "year",
|
|
2816
|
+
domains: ["technology", "systems"],
|
|
2817
|
+
impactScore: 0.62,
|
|
2818
|
+
tags: ["vitess", "mysql", "sharding", "distributed", "youtube", "horizontal-scale"],
|
|
2819
|
+
wikidataId: "Q15052889"
|
|
2820
|
+
}),
|
|
2821
|
+
ev6({
|
|
2822
|
+
id: "firebase_rtdb",
|
|
2823
|
+
title: "Firebase Realtime Database",
|
|
2824
|
+
description: 'Firebase launched its real-time database \u2014 JSON synced across all clients via WebSockets in milliseconds. No backend code needed for real-time features. Defined the "serverless app" category and proved that a database could BE the backend for mobile apps. Google acquired Firebase in 2014.',
|
|
2825
|
+
yearNum: 2011,
|
|
2826
|
+
yearLabel: "2011",
|
|
2827
|
+
precision: "year",
|
|
2828
|
+
domains: ["technology"],
|
|
2829
|
+
impactScore: 0.68,
|
|
2830
|
+
tags: ["firebase", "realtime", "nosql", "serverless", "mobile", "google"],
|
|
2831
|
+
wikidataId: "Q17099233"
|
|
2832
|
+
}),
|
|
2833
|
+
ev6({
|
|
2834
|
+
id: "bigquery",
|
|
2835
|
+
title: "Google BigQuery",
|
|
2836
|
+
description: "Google launched BigQuery \u2014 serverless analytics over petabytes of data in seconds. No cluster to manage, SQL interface, pay-per-query. Proved that columnar analytics at cloud scale could be a commodity service and created the modern cloud data warehouse category.",
|
|
2837
|
+
yearNum: 2010,
|
|
2838
|
+
yearLabel: "2010",
|
|
2839
|
+
precision: "year",
|
|
2840
|
+
domains: ["technology", "economy"],
|
|
2841
|
+
impactScore: 0.7,
|
|
2842
|
+
tags: ["bigquery", "analytics", "data-warehouse", "cloud", "sql", "olap"],
|
|
2843
|
+
wikidataId: "Q15087027"
|
|
2844
|
+
}),
|
|
2845
|
+
ev6({
|
|
2846
|
+
id: "snowflake",
|
|
2847
|
+
title: "Snowflake Data Cloud",
|
|
2848
|
+
description: "Bob Muglia and Benoit Dageville built Snowflake \u2014 a cloud-native data warehouse that separated storage and compute. Share live data without copying. Largest software IPO ever ($3.4B in 2020). Made data sharing between organizations a first-class database feature.",
|
|
2849
|
+
yearNum: 2014,
|
|
2850
|
+
yearLabel: "2014",
|
|
2851
|
+
precision: "year",
|
|
2852
|
+
domains: ["technology", "economy"],
|
|
2853
|
+
impactScore: 0.74,
|
|
2854
|
+
tags: ["snowflake", "data-warehouse", "cloud", "analytics", "data-sharing", "olap"],
|
|
2855
|
+
wikidataId: "Q29547026"
|
|
2856
|
+
}),
|
|
2857
|
+
ev6({
|
|
2858
|
+
id: "clickhouse",
|
|
2859
|
+
title: "ClickHouse",
|
|
2860
|
+
description: "Yandex open-sourced ClickHouse \u2014 a column-oriented OLAP database. 100-1000x faster than MySQL for aggregation queries on time-series and event data. Became the analytical database behind Cloudflare, ByteDance, and Uber's metrics pipelines.",
|
|
2861
|
+
yearNum: 2016,
|
|
2862
|
+
yearLabel: "2016",
|
|
2863
|
+
precision: "year",
|
|
2864
|
+
domains: ["technology"],
|
|
2865
|
+
impactScore: 0.66,
|
|
2866
|
+
tags: ["clickhouse", "olap", "column-oriented", "analytics", "fast", "yandex"],
|
|
2867
|
+
wikidataId: "Q55051447"
|
|
2868
|
+
}),
|
|
2869
|
+
ev6({
|
|
2870
|
+
id: "cockroachdb",
|
|
2871
|
+
title: "CockroachDB",
|
|
2872
|
+
description: 'Spencer Kimball built CockroachDB \u2014 distributed SQL that survives node failures like a cockroach. Strong consistency (Raft), horizontal scaling, PostgreSQL-compatible SQL. The first database to make "Google Spanner" properties accessible to startups.',
|
|
2873
|
+
yearNum: 2015,
|
|
2874
|
+
yearLabel: "2015",
|
|
2875
|
+
precision: "year",
|
|
2876
|
+
domains: ["technology", "systems"],
|
|
2877
|
+
impactScore: 0.64,
|
|
2878
|
+
tags: ["cockroachdb", "distributed", "sql", "postgresql-compatible", "raft"],
|
|
2879
|
+
wikidataId: "Q22010688"
|
|
2880
|
+
}),
|
|
2881
|
+
ev6({
|
|
2882
|
+
id: "dbt",
|
|
2883
|
+
title: "dbt (Data Build Tool)",
|
|
2884
|
+
description: 'Fishtown Analytics built dbt \u2014 SQL-first data transformation in the warehouse. Software engineering practices for analytics: version control, testing, documentation for SQL pipelines. Transformed "data analyst" into "analytics engineer" and spawned the modern data stack category.',
|
|
2885
|
+
yearNum: 2016,
|
|
2886
|
+
yearLabel: "2016",
|
|
2887
|
+
precision: "year",
|
|
2888
|
+
domains: ["technology"],
|
|
2889
|
+
impactScore: 0.68,
|
|
2890
|
+
tags: ["dbt", "data-transformation", "analytics", "sql", "data-engineering"],
|
|
2891
|
+
wikidataId: "Q104078399"
|
|
2892
|
+
}),
|
|
2893
|
+
ev6({
|
|
2894
|
+
id: "supabase",
|
|
2895
|
+
title: "Supabase",
|
|
2896
|
+
description: "Paul Copplestone built Supabase \u2014 open-source Firebase alternative built on PostgreSQL. Instant REST and GraphQL APIs, real-time subscriptions, auth, and storage. Brought Firebase's developer experience to a relational, open-source database.",
|
|
2897
|
+
yearNum: 2020,
|
|
2898
|
+
yearLabel: "2020",
|
|
2899
|
+
precision: "year",
|
|
2900
|
+
domains: ["technology"],
|
|
2901
|
+
impactScore: 0.66,
|
|
2902
|
+
tags: ["supabase", "postgresql", "open-source", "firebase-alternative", "baas"],
|
|
2903
|
+
wikidataId: "Q107611116"
|
|
2904
|
+
}),
|
|
2905
|
+
ev6({
|
|
2906
|
+
id: "planetscale",
|
|
2907
|
+
title: "PlanetScale",
|
|
2908
|
+
description: "Sam Lambert commercialized Vitess as PlanetScale \u2014 serverless MySQL with branching like Git. Database schema changes without downtime or locking. Brought software engineering workflow concepts (branches, merges, revert) to database schema management.",
|
|
2909
|
+
yearNum: 2018,
|
|
2910
|
+
yearLabel: "2018",
|
|
2911
|
+
precision: "year",
|
|
2912
|
+
domains: ["technology"],
|
|
2913
|
+
impactScore: 0.62,
|
|
2914
|
+
tags: ["planetscale", "mysql", "serverless", "vitess", "schema-branching"],
|
|
2915
|
+
wikidataId: "Q104390699"
|
|
2916
|
+
}),
|
|
2917
|
+
ev6({
|
|
2918
|
+
id: "timescaledb",
|
|
2919
|
+
title: "TimescaleDB",
|
|
2920
|
+
description: 'Timescale extended PostgreSQL with automatic time partitioning and time-series query optimizations. "The power of PostgreSQL with the scale of time-series databases." DevOps teams adopted it as a Prometheus long-term storage backend with full SQL.',
|
|
2921
|
+
yearNum: 2017,
|
|
2922
|
+
yearLabel: "2017",
|
|
2923
|
+
precision: "year",
|
|
2924
|
+
domains: ["technology"],
|
|
2925
|
+
impactScore: 0.6,
|
|
2926
|
+
tags: ["timescaledb", "postgresql", "time-series", "iot", "metrics"],
|
|
2927
|
+
wikidataId: "Q47482765"
|
|
2928
|
+
}),
|
|
2929
|
+
ev6({
|
|
2930
|
+
id: "pinecone",
|
|
2931
|
+
title: "Pinecone (Vector Database)",
|
|
2932
|
+
description: "Edo Liberty founded Pinecone \u2014 the first managed vector database optimized for embedding similarity search. Storing and querying high-dimensional vectors (embeddings) at scale. Became the infrastructure layer for RAG (Retrieval-Augmented Generation) pipelines.",
|
|
2933
|
+
yearNum: 2019,
|
|
2934
|
+
yearLabel: "2019",
|
|
2935
|
+
precision: "year",
|
|
2936
|
+
domains: ["technology"],
|
|
2937
|
+
impactScore: 0.68,
|
|
2938
|
+
tags: ["pinecone", "vector-database", "embeddings", "similarity-search", "rag", "ai"],
|
|
2939
|
+
wikidataId: "Q117524023"
|
|
2940
|
+
}),
|
|
2941
|
+
ev6({
|
|
2942
|
+
id: "pgvector",
|
|
2943
|
+
title: "pgvector",
|
|
2944
|
+
description: 'pgvector added vector similarity search to PostgreSQL \u2014 cosine similarity, L2 distance, inner product over embedding vectors. Teams running Postgres could now do RAG without a separate vector database. Made "Postgres for AI" viable and boosted Supabase and Neon adoption.',
|
|
2945
|
+
yearNum: 2021,
|
|
2946
|
+
yearLabel: "2021",
|
|
2947
|
+
precision: "year",
|
|
2948
|
+
domains: ["technology"],
|
|
2949
|
+
impactScore: 0.66,
|
|
2950
|
+
tags: ["pgvector", "postgresql", "vector", "embeddings", "rag", "similarity-search"],
|
|
2951
|
+
wikidataId: "Q118255003"
|
|
2952
|
+
}),
|
|
2953
|
+
ev6({
|
|
2954
|
+
id: "neon",
|
|
2955
|
+
title: "Neon (Serverless Postgres)",
|
|
2956
|
+
description: "Nikita Shamgunov built Neon \u2014 serverless PostgreSQL that separates compute from storage. Scales to zero when idle, branches like Git, instant provisioning. Became the database backend for Vercel's serverless functions and the default for Next.js developers.",
|
|
2957
|
+
yearNum: 2022,
|
|
2958
|
+
yearLabel: "2022",
|
|
2959
|
+
precision: "year",
|
|
2960
|
+
domains: ["technology"],
|
|
2961
|
+
impactScore: 0.62,
|
|
2962
|
+
tags: ["neon", "postgresql", "serverless", "branching", "edge", "vercel"],
|
|
2963
|
+
wikidataId: "Q117524556"
|
|
2964
|
+
}),
|
|
2965
|
+
ev6({
|
|
2966
|
+
id: "prisma",
|
|
2967
|
+
title: "Prisma ORM",
|
|
2968
|
+
description: "Johannes Schickling built Prisma \u2014 the TypeScript-first ORM with type-safe query builder, schema-first design, and auto-generated migrations. Replaced Sequelize and TypeORM for TypeScript projects. Made database access in Node.js a fully-typed, ergonomic experience.",
|
|
2969
|
+
yearNum: 2019,
|
|
2970
|
+
yearLabel: "2019",
|
|
2971
|
+
precision: "year",
|
|
2972
|
+
domains: ["technology"],
|
|
2973
|
+
impactScore: 0.66,
|
|
2974
|
+
tags: ["prisma", "orm", "typescript", "database", "schema", "type-safe"],
|
|
2975
|
+
wikidataId: "Q60319453"
|
|
2976
|
+
}),
|
|
2977
|
+
ev6({
|
|
2978
|
+
id: "sqlalchemy",
|
|
2979
|
+
title: "SQLAlchemy",
|
|
2980
|
+
description: "Michael Bayer built SQLAlchemy \u2014 the Python ORM that became the standard for database access across Flask, FastAPI, and every Python web framework. Its Core and ORM layers gave Python developers fine-grained control while abstracting SQL across database engines.",
|
|
2981
|
+
yearNum: 2006,
|
|
2982
|
+
yearLabel: "2006",
|
|
2983
|
+
precision: "year",
|
|
2984
|
+
domains: ["technology"],
|
|
2985
|
+
impactScore: 0.64,
|
|
2986
|
+
tags: ["sqlalchemy", "python", "orm", "database", "sql"],
|
|
2987
|
+
wikidataId: "Q1432598"
|
|
2988
|
+
}),
|
|
2989
|
+
ev6({
|
|
2990
|
+
id: "flyway",
|
|
2991
|
+
title: "Flyway (DB Migrations)",
|
|
2992
|
+
description: `Axel Fontaine built Flyway \u2014 version-controlled database migrations in SQL scripts. The simplest database migration tool: numbered SQL files, applied in order, tracked in a schema history table. Introduced the concept of "database as code" for teams that didn't want an ORM.`,
|
|
2993
|
+
yearNum: 2010,
|
|
2994
|
+
yearLabel: "2010",
|
|
2995
|
+
precision: "year",
|
|
2996
|
+
domains: ["technology"],
|
|
2997
|
+
impactScore: 0.6,
|
|
2998
|
+
tags: ["flyway", "migrations", "database", "versioning", "sql"],
|
|
2999
|
+
wikidataId: "Q15052912"
|
|
3000
|
+
}),
|
|
3001
|
+
ev6({
|
|
3002
|
+
id: "drizzle",
|
|
3003
|
+
title: "Drizzle ORM",
|
|
3004
|
+
description: "Drizzle brought a SQL-first, lightweight TypeScript ORM to serverless and edge environments. Type-safe, zero-dependency, works with Cloudflare D1, Neon, PlanetScale. Emerged as the Prisma alternative for edge-first architectures where Prisma's heavy runtime was problematic.",
|
|
3005
|
+
yearNum: 2022,
|
|
3006
|
+
yearLabel: "2022",
|
|
3007
|
+
precision: "year",
|
|
3008
|
+
domains: ["technology"],
|
|
3009
|
+
impactScore: 0.58,
|
|
3010
|
+
tags: ["drizzle", "orm", "typescript", "edge", "serverless", "sql"],
|
|
3011
|
+
wikidataId: "Q117934582"
|
|
3012
|
+
}),
|
|
3013
|
+
ev6({
|
|
3014
|
+
id: "weaviate",
|
|
3015
|
+
title: "Weaviate (Vector Database)",
|
|
3016
|
+
description: "Bob van Luijt built Weaviate \u2014 an open-source vector database with a built-in ML model inferencing layer. Store objects alongside their embeddings; query by meaning, not keywords. A key infrastructure component in the LLM application stack.",
|
|
3017
|
+
yearNum: 2019,
|
|
3018
|
+
yearLabel: "2019",
|
|
3019
|
+
precision: "year",
|
|
3020
|
+
domains: ["technology"],
|
|
3021
|
+
impactScore: 0.62,
|
|
3022
|
+
tags: ["weaviate", "vector-database", "embeddings", "open-source", "semantic-search", "ai"],
|
|
3023
|
+
wikidataId: "Q117523977"
|
|
3024
|
+
})
|
|
3025
|
+
];
|
|
3026
|
+
|
|
3027
|
+
// ../../packages/ckg/dist/seed/links-databases.js
|
|
3028
|
+
var seed6 = (f, t, rel, ev10, conf) => ({
|
|
3029
|
+
id: `${f}--${rel}-->${t}`,
|
|
3030
|
+
fromEvent: f,
|
|
3031
|
+
toEvent: t,
|
|
3032
|
+
relationship: rel,
|
|
3033
|
+
confidence: conf ?? (rel === "caused" ? 0.9 : 0.8),
|
|
3034
|
+
evidence: ev10,
|
|
3035
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 databases" }],
|
|
3036
|
+
contributedBy: "system",
|
|
3037
|
+
validated: true,
|
|
3038
|
+
scope: "world"
|
|
3039
|
+
});
|
|
3040
|
+
var databaseLinks = [
|
|
3041
|
+
// ── Relational evolution ──────────────────────────────────────────────
|
|
3042
|
+
seed6("relational_db", "mysql", "caused", "MySQL implements Codd's relational model with a GPL license. It's the direct open-source operationalization of the relational concept, purpose-built for web applications.", 0.88),
|
|
3043
|
+
seed6("relational_db", "sqlite", "caused", "SQLite is a relational database \u2014 it implements SQL, tables, joins, and ACID transactions. The relational model is its entire design foundation.", 0.9),
|
|
3044
|
+
seed6("mysql", "vitess", "caused", "Vitess was built specifically to shard MySQL. YouTube's MySQL installation hit scaling limits; Vitess adds a transparent sharding layer without changing MySQL itself.", 0.92),
|
|
3045
|
+
seed6("vitess", "planetscale", "caused", "PlanetScale is Vitess commercialized. Same team (Sugu Sougoumarane et al.) built PlanetScale as a managed Vitess SaaS with the Git branching workflow for schema changes.", 0.92),
|
|
3046
|
+
seed6("postgresql", "supabase", "caused", "Supabase is PostgreSQL with a developer-friendly layer: REST API via PostgREST, real-time via logical replication, auth via GoTrue. No Postgres \u2192 no Supabase.", 0.95),
|
|
3047
|
+
seed6("postgresql", "timescaledb", "caused", "TimescaleDB is a PostgreSQL extension \u2014 it runs inside Postgres as a foreign data wrapper extension. No PostgreSQL \u2192 no TimescaleDB.", 0.95),
|
|
3048
|
+
seed6("postgresql", "pgvector", "caused", "pgvector is a PostgreSQL extension that adds a VECTOR data type and similarity operators. It exists only inside PostgreSQL's extension ecosystem.", 0.95),
|
|
3049
|
+
seed6("postgresql", "neon", "caused", "Neon is serverless PostgreSQL \u2014 it uses Postgres's WAL protocol and storage API as the foundation, adding compute-storage separation on top.", 0.9),
|
|
3050
|
+
seed6("postgresql", "cockroachdb", "inspired", "CockroachDB chose PostgreSQL-compatible SQL syntax to minimize migration friction. Postgres is the de facto standard SQL dialect for open-source databases.", 0.8),
|
|
3051
|
+
seed6("relational_db", "cockroachdb", "enabled", "CockroachDB brings the relational model (SQL, ACID, joins) to a distributed architecture. The relational model defines what CockroachDB is trying to preserve at scale.", 0.82),
|
|
3052
|
+
// ── NoSQL branch ──────────────────────────────────────────────────────
|
|
3053
|
+
seed6("nosql_movement", "mongodb", "caused", 'MongoDB is one of the flagship NoSQL databases \u2014 JSON documents, no schema, horizontal sharding. It was a central participant in defining what "NoSQL" meant practically.', 0.88),
|
|
3054
|
+
seed6("nosql_movement", "cassandra", "caused", "Cassandra is a NoSQL database \u2014 wide-column, eventually consistent, partition-tolerant. Facebook built it to solve problems that relational DBs couldn't: geo-distributed, always-available write throughput.", 0.88),
|
|
3055
|
+
seed6("nosql_movement", "dynamodb", "caused", `DynamoDB is Amazon's NoSQL offering. Werner Vogels (Amazon CTO) cited the NoSQL movement and the "Dynamo" paper as the intellectual ancestors of DynamoDB.`, 0.85),
|
|
3056
|
+
seed6("nosql_movement", "firebase_rtdb", "caused", "Firebase Realtime Database is a NoSQL JSON tree synced via WebSockets. Its schema-less, document-oriented model is the NoSQL philosophy applied to real-time mobile apps.", 0.82),
|
|
3057
|
+
seed6("javascript", "mongodb", "accelerated", "MongoDB stores BSON (Binary JSON). Node.js developers working with JSON data found MongoDB's model natural \u2014 the same data structure in JS and in the database. MEAN stack (MongoDB + Express + Angular + Node) drove MongoDB adoption.", 0.78),
|
|
3058
|
+
seed6("nodejs", "mongodb", "accelerated", 'Mongoose (the Node MongoDB ODM) made MongoDB the default database for Node.js CRUD apps. The Node ecosystem normalized "JavaScript everywhere including the database format."', 0.75),
|
|
3059
|
+
// ── Cloud analytics ───────────────────────────────────────────────────
|
|
3060
|
+
seed6("aws", "dynamodb", "caused", "DynamoDB is an AWS-native, fully managed service. It doesn't exist outside AWS \u2014 the whole value prop is zero-infrastructure NoSQL inside the AWS ecosystem.", 0.95),
|
|
3061
|
+
seed6("relational_db", "snowflake", "enabled", "Snowflake uses ANSI SQL \u2014 the relational query language \u2014 as its interface. It's an OLAP data warehouse, but the relational model's SQL is what makes it learnable by every analyst.", 0.8),
|
|
3062
|
+
seed6("bigquery", "snowflake", "enabled", 'BigQuery (2010) proved the "serverless cloud data warehouse" concept \u2014 pay-per-query, no cluster management. Snowflake (2014) offered the same paradigm with superior data sharing and multi-cloud.', 0.72),
|
|
3063
|
+
seed6("aws", "bigquery", "accelerated", "AWS's commercial success proved cloud infrastructure as a business model. Google launched BigQuery in 2010 as its answer to AWS Redshift in the data warehouse space.", 0.65),
|
|
3064
|
+
seed6("dbt", "snowflake", "accelerated", 'dbt was purpose-built for SQL-first transformation inside data warehouses like Snowflake and BigQuery. The "modern data stack" is dbt + Snowflake \u2014 each made the other more valuable.', 0.82),
|
|
3065
|
+
seed6("dbt", "bigquery", "accelerated", "Same relationship as dbt \u2192 Snowflake. dbt works natively with BigQuery's SQL dialect and storage model, making BigQuery+dbt a common enterprise analytics stack.", 0.78),
|
|
3066
|
+
seed6("kafka", "snowflake", "enabled", "Kafka \u2192 Snowflake Connector is a production-standard real-time ingestion pattern. Event streams in Kafka land in Snowflake tables for analytical queries \u2014 real-time operational data meets analytical SQL.", 0.72),
|
|
3067
|
+
seed6("kafka", "clickhouse", "enabled", "Kafka is the standard upstream for ClickHouse event ingestion. Real-time click streams, log events, and metrics flow from Kafka into ClickHouse for sub-second aggregations.", 0.78),
|
|
3068
|
+
// ── Time-series / specialized ─────────────────────────────────────────
|
|
3069
|
+
seed6("prometheus", "influxdb", "enabled", "InfluxDB is used as Prometheus's long-term storage backend (via remote write). Prometheus's short-term TSDB is fast but not built for months of retention.", 0.7),
|
|
3070
|
+
seed6("prometheus", "timescaledb", "enabled", "TimescaleDB's Promscale adapter accepts Prometheus remote write and stores metrics in PostgreSQL with full SQL queryability \u2014 a Postgres alternative to InfluxDB for Prometheus long-term storage.", 0.65),
|
|
3071
|
+
seed6("kafka", "influxdb", "enabled", "IoT and operational metric pipelines frequently use Kafka as the transport layer and InfluxDB as the time-series store. Kafka handles the write volume; InfluxDB handles the time-window queries.", 0.65),
|
|
3072
|
+
// ── Vector / AI layer ─────────────────────────────────────────────────
|
|
3073
|
+
seed6("transformer", "pinecone", "caused", "Pinecone exists because of Transformer embeddings. BERT, OpenAI text-embedding-ada-002, and every embedding model produces vectors that need a vector database. No transformers \u2192 no meaningful embedding use case \u2192 no vector DB market.", 0.88),
|
|
3074
|
+
seed6("transformer", "weaviate", "caused", "Same as transformer \u2192 pinecone. Weaviate was purpose-built for semantic search using Transformer-generated embeddings.", 0.88),
|
|
3075
|
+
seed6("transformer", "pgvector", "caused", "pgvector was created in 2021 specifically to store OpenAI and BERT embeddings inside PostgreSQL. The Transformer-powered embedding ecosystem created the demand.", 0.9),
|
|
3076
|
+
seed6("pinecone", "langchain", "enabled", "LangChain's vector store abstraction (Pinecone, Weaviate, Chroma, pgvector) made vector DBs a composable RAG component. Pinecone was LangChain's first and most-documented integration.", 0.78),
|
|
3077
|
+
seed6("pgvector", "supabase", "accelerated", 'Supabase integrated pgvector natively \u2014 "your Postgres instance now does AI." Supabase + pgvector became the default open-source RAG stack for teams already using Supabase.', 0.82),
|
|
3078
|
+
seed6("pgvector", "neon", "accelerated", "Neon added pgvector support, making serverless Postgres with vector search available. Combined with Vercel's edge functions, the Neon + pgvector stack became popular for AI-powered Next.js apps.", 0.75),
|
|
3079
|
+
// ── ORM / tooling chain ───────────────────────────────────────────────
|
|
3080
|
+
seed6("python", "sqlalchemy", "caused", "SQLAlchemy is a Python library \u2014 it requires Python as the host language. The tool exists to make SQL database access Pythonic.", 0.95),
|
|
3081
|
+
seed6("sqlalchemy", "prisma", "inspired", `Prisma was inspired by SQLAlchemy's concept of type-safe database access, but redesigned for TypeScript's type system. "SQLAlchemy but for TypeScript, with migrations included."`, 0.65),
|
|
3082
|
+
seed6("typescript", "prisma", "enabled", "Prisma's core value is type safety \u2014 the Prisma Client is a fully typed TypeScript API. Without TypeScript's type system, Prisma's auto-completion and type inference don't exist.", 0.88),
|
|
3083
|
+
seed6("typescript", "drizzle", "enabled", "Drizzle is TypeScript-first by design \u2014 schema defined in TypeScript, queries return typed results. No TypeScript \u2192 no Drizzle value proposition.", 0.9),
|
|
3084
|
+
seed6("prisma", "drizzle", "inspired", "Drizzle was built as a Prisma alternative for edge environments where Prisma's runtime was too heavy. Every Drizzle design decision is a direct contrast to a Prisma trade-off.", 0.82),
|
|
3085
|
+
seed6("nextjs", "prisma", "accelerated", 'Next.js + Prisma is one of the most-documented full-stack TypeScript patterns. Next.js API routes \u2192 Prisma \u2192 PostgreSQL became the default "build a web app" starting point.', 0.78),
|
|
3086
|
+
seed6("nextjs", "drizzle", "accelerated", "Drizzle's edge-compatibility made it the ORM of choice for Next.js Edge API routes and Vercel Edge Functions, where Prisma's Node.js runtime doesn't work.", 0.75),
|
|
3087
|
+
seed6("relational_db", "flyway", "caused", "Flyway exists to manage relational database schema migrations. The relational model's schema-ful nature (tables, columns, constraints) is what needs versioning and migration.", 0.88),
|
|
3088
|
+
seed6("git", "flyway", "enabled", "Flyway's numbered migration files map naturally to Git commits \u2014 each migration is a versioned, ordered change applied once. Git became the outer version control layer for Flyway migrations.", 0.72),
|
|
3089
|
+
seed6("git", "planetscale", "inspired", `PlanetScale's "database branching" concept directly mirrors Git branching: create a branch, apply schema changes, open a deploy request (pull request), merge. Git's workflow applied to database schemas.`, 0.85),
|
|
3090
|
+
// ── Firebase chain ─────────────────────────────────────────────────────
|
|
3091
|
+
seed6("firebase_rtdb", "firebase", "caused", "Firebase Realtime Database was Firebase's original product. Google acquired Firebase and expanded it into a full platform (Firestore, Auth, Functions, Hosting) \u2014 but the realtime DB is why Firebase existed.", 0.92),
|
|
3092
|
+
seed6("firebase", "supabase", "inspired", `Supabase positioned itself as "the open-source Firebase alternative." Firebase's developer-friendly BaaS experience is the benchmark Supabase was designed to match, using open-source tools.`, 0.88),
|
|
3093
|
+
seed6("nosql_movement", "firebase_rtdb", "enabled", "Firebase's JSON tree is a NoSQL data model. The NoSQL movement's acceptance of schema-less, document-oriented storage validated Firebase's approach to mobile app data.", 0.75),
|
|
3094
|
+
// ── Graph DB chain ────────────────────────────────────────────────────
|
|
3095
|
+
seed6("relational_db", "neo4j", "inspired", "Neo4j was built to handle highly connected data that relational databases model poorly \u2014 many-to-many relationships require expensive JOINs in SQL but are native graph traversals in Neo4j.", 0.8),
|
|
3096
|
+
seed6("neo4j", "transformer", "enabled", "Knowledge graphs (Neo4j) are one input to early NLP and AI systems. Graph-structured knowledge informed reasoning systems before transformers; some transformer pipelines still use graph context as augmentation.", 0.5),
|
|
3097
|
+
// ── Managed cloud acceleration ─────────────────────────────────────────
|
|
3098
|
+
seed6("kubernetes", "cockroachdb", "enabled", "CockroachDB is cloud-native and Kubernetes-ready \u2014 it uses K8s operators for deployment, scaling, and upgrades. Kubernetes's declarative infrastructure model made distributed SQL operationally viable.", 0.75),
|
|
3099
|
+
seed6("kubernetes", "mongodb", "accelerated", "MongoDB Atlas Kubernetes Operator and the Percona Operator made MongoDB a K8s-native workload. Container orchestration removed the primary barrier to self-hosting production MongoDB.", 0.65),
|
|
3100
|
+
seed6("github_copilot", "prisma", "accelerated", "Prisma's schema DSL and typed client are particularly AI-friendly \u2014 Copilot and Cursor can generate valid Prisma schemas and queries from natural language. AI coding tools drove Prisma adoption by reducing the learning curve.", 0.6)
|
|
3101
|
+
];
|
|
3102
|
+
|
|
3103
|
+
// ../../packages/ckg/dist/seed/events-ai-tooling.js
|
|
3104
|
+
var src5 = { type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 AI tooling" };
|
|
3105
|
+
var ev7 = (e) => ({ ...e, scope: "world", sources: [src5] });
|
|
3106
|
+
var aiToolingEvents = [
|
|
3107
|
+
ev7({
|
|
3108
|
+
id: "cuda",
|
|
3109
|
+
title: "CUDA (GPU Computing)",
|
|
3110
|
+
description: "NVIDIA released CUDA \u2014 a parallel computing platform that lets developers program GPUs for general computation. Deep learning is fundamentally CUDA: every major neural network framework (TensorFlow, PyTorch) runs on CUDA. Without CUDA, the deep learning revolution doesn't happen at the speed it did.",
|
|
3111
|
+
yearNum: 2007,
|
|
3112
|
+
yearLabel: "2007",
|
|
3113
|
+
precision: "year",
|
|
3114
|
+
domains: ["technology", "science"],
|
|
3115
|
+
impactScore: 0.88,
|
|
3116
|
+
tags: ["cuda", "gpu", "parallel-computing", "nvidia", "deep-learning", "hardware"],
|
|
3117
|
+
wikidataId: "Q697928"
|
|
3118
|
+
}),
|
|
3119
|
+
ev7({
|
|
3120
|
+
id: "scikit_learn",
|
|
3121
|
+
title: "scikit-learn",
|
|
3122
|
+
description: "David Cournapeau initiated scikit-learn \u2014 the Python machine learning library. Unified API for classification, regression, clustering, dimensionality reduction, model selection, and preprocessing. Made ML accessible to every Python developer and became the entry point for the field.",
|
|
3123
|
+
yearNum: 2007,
|
|
3124
|
+
yearLabel: "2007",
|
|
3125
|
+
precision: "year",
|
|
3126
|
+
domains: ["technology", "science"],
|
|
3127
|
+
impactScore: 0.76,
|
|
3128
|
+
tags: ["scikit-learn", "python", "machine-learning", "sklearn", "data-science"],
|
|
3129
|
+
wikidataId: "Q1992255"
|
|
3130
|
+
}),
|
|
3131
|
+
ev7({
|
|
3132
|
+
id: "keras",
|
|
3133
|
+
title: "Keras",
|
|
3134
|
+
description: "Fran\xE7ois Chollet built Keras \u2014 a high-level neural network API designed for human beings, not machines. Write a neural network in 10 lines. Ran on top of TensorFlow and Theano. Democratized deep learning for researchers and developers who didn't want to write CUDA. Now merged into TensorFlow 2 as tf.keras.",
|
|
3135
|
+
yearNum: 2015,
|
|
3136
|
+
yearLabel: "2015",
|
|
3137
|
+
precision: "year",
|
|
3138
|
+
domains: ["technology", "science"],
|
|
3139
|
+
impactScore: 0.72,
|
|
3140
|
+
tags: ["keras", "deep-learning", "python", "neural-network", "high-level", "tensorflow"],
|
|
3141
|
+
wikidataId: "Q21094516"
|
|
3142
|
+
}),
|
|
3143
|
+
ev7({
|
|
3144
|
+
id: "tensorflow",
|
|
3145
|
+
title: "TensorFlow",
|
|
3146
|
+
description: 'Google Brain open-sourced TensorFlow \u2014 the computation graph framework that brought industrial-scale deep learning to the world. Defined the "define-then-run" paradigm. Runs in production at Gmail, Google Translate, and Google Search. First framework to ship a production-grade ML serving solution.',
|
|
3147
|
+
yearNum: 2015,
|
|
3148
|
+
yearLabel: "2015",
|
|
3149
|
+
precision: "year",
|
|
3150
|
+
domains: ["technology", "science"],
|
|
3151
|
+
impactScore: 0.84,
|
|
3152
|
+
tags: ["tensorflow", "deep-learning", "google", "neural-network", "production", "ml-framework"],
|
|
3153
|
+
wikidataId: "Q22811878"
|
|
3154
|
+
}),
|
|
3155
|
+
ev7({
|
|
3156
|
+
id: "pytorch",
|
|
3157
|
+
title: "PyTorch",
|
|
3158
|
+
description: 'Facebook AI Research open-sourced PyTorch \u2014 dynamic computation graphs ("define-by-run") that feel like normal Python. Researchers loved it: easy to debug, Pythonic, imperative. Became the dominant research framework by 2020 and is now the default for LLM training (GPT-4, LLaMA, Claude were all trained with PyTorch or derivatives).',
|
|
3159
|
+
yearNum: 2016,
|
|
3160
|
+
yearLabel: "2016",
|
|
3161
|
+
precision: "year",
|
|
3162
|
+
domains: ["technology", "science"],
|
|
3163
|
+
impactScore: 0.86,
|
|
3164
|
+
tags: ["pytorch", "deep-learning", "python", "research", "dynamic-graph", "facebook"],
|
|
3165
|
+
wikidataId: "Q39725088"
|
|
3166
|
+
}),
|
|
3167
|
+
ev7({
|
|
3168
|
+
id: "huggingface_hub",
|
|
3169
|
+
title: "Hugging Face Model Hub",
|
|
3170
|
+
description: 'Cl\xE9ment Delangue built the Hugging Face Hub \u2014 the "GitHub for AI models." 500K+ models, 100K+ datasets, public and private. Made sharing pre-trained weights trivial: `from transformers import pipeline`. Became the distribution layer of the open-source AI ecosystem.',
|
|
3171
|
+
yearNum: 2018,
|
|
3172
|
+
yearLabel: "2018",
|
|
3173
|
+
precision: "year",
|
|
3174
|
+
domains: ["technology", "science"],
|
|
3175
|
+
impactScore: 0.8,
|
|
3176
|
+
tags: ["huggingface", "model-hub", "transformers", "open-source", "ai", "nlp"],
|
|
3177
|
+
wikidataId: "Q56337160"
|
|
3178
|
+
}),
|
|
3179
|
+
ev7({
|
|
3180
|
+
id: "transformers_lib",
|
|
3181
|
+
title: "Hugging Face Transformers Library",
|
|
3182
|
+
description: 'Hugging Face\'s `transformers` Python library unified BERT, GPT, T5, and every subsequent model behind one API. `pipeline("sentiment-analysis")` to run state-of-the-art NLP in 3 lines. Lowered the barrier from "paper author" to "any Python developer." The npm of NLP.',
|
|
3183
|
+
yearNum: 2019,
|
|
3184
|
+
yearLabel: "2019",
|
|
3185
|
+
precision: "year",
|
|
3186
|
+
domains: ["technology", "science"],
|
|
3187
|
+
impactScore: 0.78,
|
|
3188
|
+
tags: ["transformers", "huggingface", "nlp", "python", "bert", "gpt", "library"],
|
|
3189
|
+
wikidataId: "Q87133766"
|
|
3190
|
+
}),
|
|
3191
|
+
ev7({
|
|
3192
|
+
id: "openai_api",
|
|
3193
|
+
title: "OpenAI API (GPT-3 API)",
|
|
3194
|
+
description: 'OpenAI released the GPT-3 API in private beta \u2014 the first commercially viable "intelligence as a service." Developers could call LLM intelligence via HTTP without training or hosting models. Created the AI application developer category and triggered a Cambrian explosion of AI-powered products.',
|
|
3195
|
+
yearNum: 2020,
|
|
3196
|
+
yearLabel: "2020",
|
|
3197
|
+
precision: "year",
|
|
3198
|
+
domains: ["technology", "economy"],
|
|
3199
|
+
impactScore: 0.86,
|
|
3200
|
+
tags: ["openai", "gpt-3", "api", "llm", "ai-as-a-service", "nlp"],
|
|
3201
|
+
wikidataId: "Q82069695"
|
|
3202
|
+
}),
|
|
3203
|
+
ev7({
|
|
3204
|
+
id: "stable_diffusion",
|
|
3205
|
+
title: "Stable Diffusion",
|
|
3206
|
+
description: "Stability AI released Stable Diffusion \u2014 an open-source text-to-image diffusion model. First time state-of-the-art image generation ran on a consumer GPU. Triggered an open-source image generation ecosystem (ComfyUI, Automatic1111, LoRA fine-tuning) and forced DALL-E and Midjourney to compete with freely available models.",
|
|
3207
|
+
yearNum: 2022,
|
|
3208
|
+
yearLabel: "2022",
|
|
3209
|
+
precision: "year",
|
|
3210
|
+
domains: ["technology", "culture"],
|
|
3211
|
+
impactScore: 0.8,
|
|
3212
|
+
tags: ["stable-diffusion", "diffusion-model", "image-generation", "open-source", "generative-ai"],
|
|
3213
|
+
wikidataId: "Q114011447"
|
|
3214
|
+
}),
|
|
3215
|
+
ev7({
|
|
3216
|
+
id: "langchain",
|
|
3217
|
+
title: "LangChain",
|
|
3218
|
+
description: "Harrison Chase built LangChain \u2014 the most popular framework for building LLM-powered applications. Chains, agents, tools, memory, retrievers. Defined the vocabulary of AI app development. Despite community criticism for over-abstraction, it onboarded an entire generation of developers to the LLM application paradigm.",
|
|
3219
|
+
yearNum: 2022,
|
|
3220
|
+
yearLabel: "2022",
|
|
3221
|
+
precision: "year",
|
|
3222
|
+
domains: ["technology"],
|
|
3223
|
+
impactScore: 0.74,
|
|
3224
|
+
tags: ["langchain", "llm", "agents", "rag", "framework", "ai-app"],
|
|
3225
|
+
wikidataId: "Q115913573"
|
|
3226
|
+
}),
|
|
3227
|
+
ev7({
|
|
3228
|
+
id: "rag_pattern",
|
|
3229
|
+
title: "RAG (Retrieval-Augmented Generation)",
|
|
3230
|
+
description: "Patrick Lewis at Meta published the RAG paper \u2014 combine a retrieval system with a generator LLM. Fetch relevant documents, feed to LLM as context. Solves hallucination and knowledge cutoff in one pattern. Became the dominant architecture for production LLM applications that need access to private or current data.",
|
|
3231
|
+
yearNum: 2020,
|
|
3232
|
+
yearLabel: "2020",
|
|
3233
|
+
precision: "year",
|
|
3234
|
+
domains: ["technology", "science"],
|
|
3235
|
+
impactScore: 0.8,
|
|
3236
|
+
tags: ["rag", "retrieval-augmented-generation", "llm", "embeddings", "pattern", "grounding"],
|
|
3237
|
+
wikidataId: "Q116956004"
|
|
3238
|
+
}),
|
|
3239
|
+
ev7({
|
|
3240
|
+
id: "wandb",
|
|
3241
|
+
title: "Weights & Biases (W&B)",
|
|
3242
|
+
description: "Lukas Biewald built Weights & Biases \u2014 ML experiment tracking, model versioning, and collaborative visualization. Log hyperparameters, metrics, and model artifacts across training runs. Made reproducibility and collaboration in ML feel like software engineering, not alchemy.",
|
|
3243
|
+
yearNum: 2018,
|
|
3244
|
+
yearLabel: "2018",
|
|
3245
|
+
precision: "year",
|
|
3246
|
+
domains: ["technology"],
|
|
3247
|
+
impactScore: 0.66,
|
|
3248
|
+
tags: ["wandb", "ml-ops", "experiment-tracking", "model-versioning", "mlops"],
|
|
3249
|
+
wikidataId: "Q100213042"
|
|
3250
|
+
}),
|
|
3251
|
+
ev7({
|
|
3252
|
+
id: "mlflow",
|
|
3253
|
+
title: "MLflow",
|
|
3254
|
+
description: "Databricks open-sourced MLflow \u2014 an ML lifecycle management platform. Track experiments, package models, deploy to any platform, manage a model registry. Became the open-source standard for MLOps and was adopted by every major cloud provider as the ML tracking layer.",
|
|
3255
|
+
yearNum: 2018,
|
|
3256
|
+
yearLabel: "2018",
|
|
3257
|
+
precision: "year",
|
|
3258
|
+
domains: ["technology"],
|
|
3259
|
+
impactScore: 0.64,
|
|
3260
|
+
tags: ["mlflow", "mlops", "experiment-tracking", "model-registry", "databricks"],
|
|
3261
|
+
wikidataId: "Q87133521"
|
|
3262
|
+
}),
|
|
3263
|
+
ev7({
|
|
3264
|
+
id: "onnx",
|
|
3265
|
+
title: "ONNX (Open Neural Network Exchange)",
|
|
3266
|
+
description: 'Facebook and Microsoft created ONNX \u2014 an open format for representing ML models. Train in PyTorch, deploy in TensorFlow.js, TensorRT, or CoreML. Solved the "runtime fragmentation" problem: one model format, any inference engine. The interoperability standard for the ML ecosystem.',
|
|
3267
|
+
yearNum: 2017,
|
|
3268
|
+
yearLabel: "2017",
|
|
3269
|
+
precision: "year",
|
|
3270
|
+
domains: ["technology"],
|
|
3271
|
+
impactScore: 0.64,
|
|
3272
|
+
tags: ["onnx", "interoperability", "ml-model", "inference", "export", "standard"],
|
|
3273
|
+
wikidataId: "Q47444991"
|
|
3274
|
+
}),
|
|
3275
|
+
ev7({
|
|
3276
|
+
id: "llama_meta",
|
|
3277
|
+
title: "LLaMA (Meta Open LLM)",
|
|
3278
|
+
description: "Meta released LLaMA \u2014 a family of open-weight large language models. LLaMA 2 was commercially permissive; LLaMA 3 matched GPT-4 class performance in open weights. Triggered the open-source LLM ecosystem: Mistral, Phi, Qwen all followed. Proved competitive open models were achievable.",
|
|
3279
|
+
yearNum: 2023,
|
|
3280
|
+
yearLabel: "2023",
|
|
3281
|
+
precision: "year",
|
|
3282
|
+
domains: ["technology", "science"],
|
|
3283
|
+
impactScore: 0.82,
|
|
3284
|
+
tags: ["llama", "meta", "open-source", "llm", "open-weights", "language-model"],
|
|
3285
|
+
wikidataId: "Q117142038"
|
|
3286
|
+
}),
|
|
3287
|
+
ev7({
|
|
3288
|
+
id: "vllm",
|
|
3289
|
+
title: "vLLM (Fast LLM Inference)",
|
|
3290
|
+
description: "Woosuk Kwon at UC Berkeley built vLLM \u2014 PagedAttention and continuous batching for LLM inference. 24x throughput improvement over naive inference. Made LLM serving economically viable for production workloads. The default serving engine behind most LLM APIs.",
|
|
3291
|
+
yearNum: 2023,
|
|
3292
|
+
yearLabel: "2023",
|
|
3293
|
+
precision: "year",
|
|
3294
|
+
domains: ["technology"],
|
|
3295
|
+
impactScore: 0.72,
|
|
3296
|
+
tags: ["vllm", "inference", "llm-serving", "throughput", "gpu", "paged-attention"],
|
|
3297
|
+
wikidataId: "Q122238505"
|
|
3298
|
+
}),
|
|
3299
|
+
ev7({
|
|
3300
|
+
id: "ollama",
|
|
3301
|
+
title: "Ollama (Local LLM Runner)",
|
|
3302
|
+
description: "Ollama made running LLMs locally as easy as `ollama run llama3`. One command to download and serve any open-weight model. GPU/CPU inference, OpenAI-compatible API, and a library of 100+ models. Brought LLM capability to every developer's laptop without cloud dependencies.",
|
|
3303
|
+
yearNum: 2023,
|
|
3304
|
+
yearLabel: "2023",
|
|
3305
|
+
precision: "year",
|
|
3306
|
+
domains: ["technology"],
|
|
3307
|
+
impactScore: 0.7,
|
|
3308
|
+
tags: ["ollama", "local-llm", "inference", "developer-tools", "privacy", "open-source"],
|
|
3309
|
+
wikidataId: "Q123474793"
|
|
3310
|
+
}),
|
|
3311
|
+
ev7({
|
|
3312
|
+
id: "cursor_ide",
|
|
3313
|
+
title: "Cursor (AI Code Editor)",
|
|
3314
|
+
description: 'Anysphere built Cursor \u2014 the AI-first code editor (VS Code fork with deep LLM integration). Multi-file edit, codebase-aware chat, automatic context retrieval. Grew to $200M ARR in 2 years. Sparked a category of AI-native editors (Windsurf, Zed, Continue.dev) and forced GitHub Copilot to add "Edits" mode.',
|
|
3315
|
+
yearNum: 2023,
|
|
3316
|
+
yearLabel: "2023",
|
|
3317
|
+
precision: "year",
|
|
3318
|
+
domains: ["technology"],
|
|
3319
|
+
impactScore: 0.76,
|
|
3320
|
+
tags: ["cursor", "ai-editor", "llm", "coding-assistant", "vscode", "agentic"],
|
|
3321
|
+
wikidataId: "Q122882773"
|
|
3322
|
+
}),
|
|
3323
|
+
ev7({
|
|
3324
|
+
id: "ray",
|
|
3325
|
+
title: "Ray (Distributed ML)",
|
|
3326
|
+
description: "Robert Nishihara at UC Berkeley built Ray \u2014 a distributed computing framework for ML workloads. Parallelize any Python function across a cluster with one decorator. Powers model training at OpenAI, Spotify, and Instacart. Foundation of the Anyscale platform and the modern ML infrastructure stack.",
|
|
3327
|
+
yearNum: 2017,
|
|
3328
|
+
yearLabel: "2017",
|
|
3329
|
+
precision: "year",
|
|
3330
|
+
domains: ["technology", "science"],
|
|
3331
|
+
impactScore: 0.66,
|
|
3332
|
+
tags: ["ray", "distributed", "ml-infrastructure", "python", "parallel", "training"],
|
|
3333
|
+
wikidataId: "Q59206178"
|
|
3334
|
+
}),
|
|
3335
|
+
ev7({
|
|
3336
|
+
id: "whisper",
|
|
3337
|
+
title: "Whisper (OpenAI ASR)",
|
|
3338
|
+
description: "OpenAI released Whisper \u2014 a general-purpose speech recognition model trained on 680K hours of multilingual audio. Open-sourced weights. Near-human accuracy in English, usable accuracy in 99 languages. Replaced paid ASR APIs for most applications and enabled transcription-as-default in AI applications.",
|
|
3339
|
+
yearNum: 2022,
|
|
3340
|
+
yearLabel: "2022",
|
|
3341
|
+
precision: "year",
|
|
3342
|
+
domains: ["technology"],
|
|
3343
|
+
impactScore: 0.7,
|
|
3344
|
+
tags: ["whisper", "speech-recognition", "asr", "openai", "open-source", "audio"],
|
|
3345
|
+
wikidataId: "Q114726117"
|
|
3346
|
+
})
|
|
3347
|
+
];
|
|
3348
|
+
|
|
3349
|
+
// ../../packages/ckg/dist/seed/links-ai-tooling.js
|
|
3350
|
+
var seed7 = (f, t, rel, ev10, conf) => ({
|
|
3351
|
+
id: `${f}--${rel}-->${t}`,
|
|
3352
|
+
fromEvent: f,
|
|
3353
|
+
toEvent: t,
|
|
3354
|
+
relationship: rel,
|
|
3355
|
+
confidence: conf ?? (rel === "caused" ? 0.9 : 0.8),
|
|
3356
|
+
evidence: ev10,
|
|
3357
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 AI tooling" }],
|
|
3358
|
+
contributedBy: "system",
|
|
3359
|
+
validated: true,
|
|
3360
|
+
scope: "world"
|
|
3361
|
+
});
|
|
3362
|
+
var aiToolingLinks = [
|
|
3363
|
+
// ── GPU computing foundation ──────────────────────────────────────────
|
|
3364
|
+
seed7("cuda", "alexnet", "caused", "AlexNet was trained on two NVIDIA GTX 580 GPUs using CUDA. The 2012 ImageNet win was only possible because CUDA made GPU-accelerated matrix operations available to researchers. No CUDA \u2192 no AlexNet training in weeks, only in years.", 0.95),
|
|
3365
|
+
seed7("cuda", "tensorflow", "enabled", "TensorFlow uses CUDA for GPU acceleration. Every TF operation that runs on GPU invokes CUDA kernels. Without CUDA, TensorFlow runs CPU-only \u2014 orders of magnitude slower.", 0.92),
|
|
3366
|
+
seed7("cuda", "pytorch", "enabled", "PyTorch's entire GPU backend is CUDA. `tensor.cuda()` calls into CUDA kernels. No CUDA \u2192 PyTorch is a slow CPU-only library.", 0.92),
|
|
3367
|
+
seed7("linux", "cuda", "enabled", "CUDA requires Linux for production ML workloads \u2014 NVIDIA's CUDA drivers are Linux-first, NCCL (multi-GPU communication) requires Linux, and all major ML training clusters run Linux.", 0.82),
|
|
3368
|
+
seed7("moores_law", "cuda", "enabled", "CUDA became powerful enough to matter because GPU transistor counts followed Moore's Law. A 2007-era GPU had enough compute to make CUDA useful but not transformative; 2022 GPUs (H100) made it civilization-altering.", 0.78),
|
|
3369
|
+
// ── Framework chain ────────────────────────────────────────────────────
|
|
3370
|
+
seed7("python", "scikit_learn", "caused", "scikit-learn is a Python library \u2014 it requires Python as its host. Python's scientific computing ecosystem (NumPy, SciPy) provided the numerical foundation scikit-learn builds on.", 0.95),
|
|
3371
|
+
seed7("scikit_learn", "keras", "enabled", `scikit-learn established the "fit/transform/predict" API pattern that Keras and PyTorch adopted. The ergonomic ML API design that made DL accessible was informed by scikit-learn's usability work.`, 0.7),
|
|
3372
|
+
seed7("scikit_learn", "tensorflow", "enabled", `TensorFlow's high-level APIs (Estimators, then Keras) were influenced by scikit-learn's unified interface. The goal was "ML accessible to everyone" that scikit-learn proved was achievable.`, 0.65),
|
|
3373
|
+
seed7("tensorflow", "keras", "enabled", "Keras was designed to run on top of TensorFlow (and Theano). TensorFlow is the computation backend; Keras is the ergonomic API layer. In 2019, Keras was merged into TensorFlow 2 as tf.keras.", 0.88),
|
|
3374
|
+
seed7("tensorflow", "pytorch", "inspired", `PyTorch was built as a reaction to TensorFlow's "define-and-run" graph paradigm, which made debugging painful. PyTorch's "define-by-run" dynamic graphs are the anti-TensorFlow design decision.`, 0.82),
|
|
3375
|
+
seed7("pytorch", "tensorflow", "accelerated", "PyTorch's research adoption forced TensorFlow to add eager execution (TF 2.0) and JAX. Competition from PyTorch made TensorFlow significantly better for researchers.", 0.78),
|
|
3376
|
+
seed7("transformer", "tensorflow", "accelerated", "The Transformer paper was implemented in TensorFlow (the dominant 2017 framework). TensorFlow's adoption accelerated the operationalization of Transformer models in production.", 0.72),
|
|
3377
|
+
seed7("transformer", "pytorch", "accelerated", "PyTorch became the dominant framework for Transformer research and LLM training. GPT-2, GPT-3, LLaMA, and most SOTA models were trained in PyTorch. The Transformer era is the PyTorch era.", 0.88),
|
|
3378
|
+
seed7("bert", "huggingface_hub", "caused", `BERT's release as open weights was the founding use case for Hugging Face. The Transformers library started as "easy BERT inference" and expanded from there.`, 0.88),
|
|
3379
|
+
seed7("bert", "transformers_lib", "caused", "Hugging Face's `transformers` library was built to make BERT accessible. BERT was the first Transformer model with a widely used implementation in the HF library.", 0.9),
|
|
3380
|
+
seed7("transformer", "transformers_lib", "enabled", "The Transformers library is named after the architecture. Every model it hosts (BERT, GPT, T5, Llama) is a Transformer variant. The architecture is the library's organizing principle.", 0.92),
|
|
3381
|
+
seed7("huggingface_hub", "transformers_lib", "caused", 'The Hub is the distribution platform for the models that transformers library loads. `model = AutoModel.from_pretrained("bert-base-uncased")` downloads from the Hub. Hub + Library are one ecosystem.', 0.92),
|
|
3382
|
+
// ── LLM API era ───────────────────────────────────────────────────────
|
|
3383
|
+
seed7("gpt3", "openai_api", "caused", "The OpenAI API was built to monetize GPT-3. The API is the commercial interface to the model. No GPT-3 \u2192 no OpenAI API as we know it.", 0.95),
|
|
3384
|
+
seed7("openai_api", "langchain", "caused", "LangChain was created to orchestrate OpenAI API calls. Harrison Chase built it to chain GPT-3 calls with tools and memory. No OpenAI API \u2192 no original LangChain use case.", 0.9),
|
|
3385
|
+
seed7("openai_api", "chatgpt", "enabled", "ChatGPT is a product interface built on top of the same OpenAI API infrastructure. The API capability (GPT-3.5-turbo) became the ChatGPT product.", 0.85),
|
|
3386
|
+
seed7("chatgpt", "langchain", "accelerated", "ChatGPT's December 2022 launch brought millions of developers to LLM application development. LangChain's GitHub stars went from ~1K to 50K in 3 months.", 0.88),
|
|
3387
|
+
seed7("chatgpt", "cursor_ide", "enabled", "ChatGPT demonstrated that LLMs could engage in extended coding conversations. Cursor took that conversation interface and embedded it into the code editor with codebase context.", 0.82),
|
|
3388
|
+
seed7("langchain", "rag_pattern", "accelerated", "LangChain popularized RAG by making it a first-class workflow (RetrievalQA, ConversationalRetrievalChain). The pattern existed in the literature; LangChain made it a 10-line implementation.", 0.82),
|
|
3389
|
+
seed7("transformer", "rag_pattern", "caused", "RAG uses Transformer embeddings for document retrieval and a Transformer LLM for generation. Without the Transformer architecture on both sides, RAG doesn't work.", 0.9),
|
|
3390
|
+
seed7("rag_pattern", "pinecone", "caused", `Pinecone was purpose-built for RAG. The company's pitch was "the vector database for LLM applications" \u2014 retrieval in RAG is the core use case.`, 0.88),
|
|
3391
|
+
seed7("rag_pattern", "langchain", "accelerated", "RAG is LangChain's primary use case. The framework's retriever abstraction and chain composition were designed around the RAG pattern.", 0.82),
|
|
3392
|
+
seed7("openai_api", "stable_diffusion", "inspired", "OpenAI's DALL-E (February 2021) proved text-to-image was a viable API product. Stable Diffusion (open-source) was the community's response: replicate that capability, make it accessible to everyone without an API key.", 0.72),
|
|
3393
|
+
seed7("dalle", "stable_diffusion", "inspired", "DALL-E demonstrated the image generation capability. Stable Diffusion was Stability AI's open-source answer: same quality, runnable on your GPU, no per-image pricing.", 0.82),
|
|
3394
|
+
// ── MLOps chain ───────────────────────────────────────────────────────
|
|
3395
|
+
seed7("kubernetes", "mlflow", "enabled", "MLflow runs well on Kubernetes for multi-user, multi-project ML experiment tracking. K8s provides the isolation and resource management that production MLflow deployments need.", 0.68),
|
|
3396
|
+
seed7("kubernetes", "ray", "enabled", "Ray can run on Kubernetes (KubeRay operator). Kubernetes provides the cluster management; Ray provides the distributed ML scheduler on top.", 0.78),
|
|
3397
|
+
seed7("pytorch", "wandb", "accelerated", "W&B's tightest integration is with PyTorch. `wandb.watch(model)` hooks into PyTorch's autograd to capture gradients and parameter histograms. The PyTorch research community drove W&B adoption.", 0.78),
|
|
3398
|
+
seed7("tensorflow", "mlflow", "enabled", "MLflow's TensorFlow integration automatically logs metrics from tf.keras training loops. The `mlflow.tensorflow.autolog()` function makes MLflow zero-config for TensorFlow users.", 0.72),
|
|
3399
|
+
seed7("pytorch", "mlflow", "enabled", "MLflow's PyTorch integration logs training metrics, saves PyTorch model artifacts, and provides the model registry for deployment. Same enabling relationship as TF \u2192 MLflow.", 0.72),
|
|
3400
|
+
seed7("pytorch", "onnx", "enabled", "PyTorch has native ONNX export (`torch.onnx.export()`). PyTorch is the dominant source format for ONNX models \u2014 most ONNX conversion pipelines start from PyTorch.", 0.88),
|
|
3401
|
+
seed7("onnx", "tensorflow", "enabled", "ONNX enables PyTorch \u2192 TensorFlow model conversion via ONNX as an intermediate format. Teams can train in PyTorch (research) and deploy in TensorFlow Serving (production) via ONNX.", 0.75),
|
|
3402
|
+
// ── Inference & serving chain ─────────────────────────────────────────
|
|
3403
|
+
seed7("pytorch", "vllm", "caused", "vLLM is built on PyTorch and CUDA. Its PagedAttention kernels are CUDA extensions, and the model loading uses PyTorch's weight format. No PyTorch \u2192 no vLLM.", 0.9),
|
|
3404
|
+
seed7("llama_meta", "vllm", "accelerated", "LLaMA's open weights created the demand for efficient open-model inference. vLLM's PagedAttention was specifically developed to serve LLaMA-class models cost-effectively.", 0.82),
|
|
3405
|
+
seed7("llama_meta", "ollama", "caused", "Ollama's library of models is primarily LLaMA variants (Llama 3, Code Llama, Mistral-based). LLaMA's open weights enabled the local inference ecosystem Ollama serves.", 0.88),
|
|
3406
|
+
seed7("chatgpt", "ollama", "inspired", `Ollama's UX ("run a model with one command") mirrors the ChatGPT interface \u2014 except local, private, and free. ChatGPT set the interaction paradigm; Ollama made it self-hostable.`, 0.72),
|
|
3407
|
+
seed7("transformer", "llama_meta", "caused", "LLaMA is a Transformer decoder LLM \u2014 same architecture as GPT. Meta's contribution was scaling the architecture efficiently and releasing the weights openly.", 0.95),
|
|
3408
|
+
seed7("chatgpt", "llama_meta", "accelerated", "ChatGPT's success motivated Meta to release LLaMA \u2014 to ensure the open-source community had competitive weights rather than ceding AI to closed-source providers.", 0.78),
|
|
3409
|
+
// ── AI developer tools ────────────────────────────────────────────────
|
|
3410
|
+
seed7("vscode", "cursor_ide", "caused", "Cursor is a VS Code fork \u2014 it shares VS Code's extension ecosystem, settings, and keybindings. The fork was chosen to inherit VS Code's 70% market share and extension library.", 0.92),
|
|
3411
|
+
seed7("github_copilot", "cursor_ide", "accelerated", `Copilot proved that AI completions in an IDE had real PMF. Cursor raised the ceiling: "what if the whole editor was designed for AI, not just completions?" Copilot's success validated the category.`, 0.82),
|
|
3412
|
+
seed7("openai_api", "cursor_ide", "enabled", "Cursor uses GPT-4 and Claude models via API for multi-file editing and codebase chat. The OpenAI API (and Anthropic API) is what powers Cursor's intelligence.", 0.88),
|
|
3413
|
+
seed7("cursor_ide", "mcp_protocol", "enabled", "Cursor adopted MCP as one of the first IDEs. Cursor's success with tool-augmented coding validated the MCP use case \u2014 agents need structured tool access, not just LLM intelligence.", 0.72),
|
|
3414
|
+
seed7("transformer", "whisper", "caused", "Whisper is a Transformer encoder-decoder model \u2014 Transformer applied to audio spectrograms. The architecture is identical to the text Transformer; the input modality changed.", 0.92),
|
|
3415
|
+
seed7("python", "ray", "caused", "Ray is a Python library. Distributed Python functions with `@ray.remote`. The entire Ray API is Python-first; other language bindings came later as thin wrappers.", 0.88),
|
|
3416
|
+
seed7("kubernetes", "ray", "accelerated", "KubeRay operator made Ray a first-class Kubernetes workload. Production Ray deployments run on K8s; the operator handles scaling, fault recovery, and GPU resource management.", 0.75),
|
|
3417
|
+
seed7("aws", "pytorch", "accelerated", "Amazon SageMaker (2017) adopted PyTorch as its primary framework and made managed GPU training available without cluster administration. AWS's cloud scale drove PyTorch adoption beyond research labs into production.", 0.7),
|
|
3418
|
+
// ── Cross-vertical links ───────────────────────────────────────────────
|
|
3419
|
+
seed7("pytorch", "transformer", "accelerated", "The Transformer architecture's research velocity was enabled by PyTorch's expressiveness for custom attention implementations. BERT, GPT-2, and every subsequent model was developed and iterated on in PyTorch.", 0.82),
|
|
3420
|
+
seed7("huggingface_hub", "mcp_protocol", "enabled", "HuggingFace models are a primary MCP resource \u2014 agents can query model documentation, run inference via Inference API, and access model metadata. The Hub's API is MCP-composable.", 0.6),
|
|
3421
|
+
seed7("rag_pattern", "mcp_protocol", "enabled", "MCP's Resource primitive is architecturally similar to RAG retrieval \u2014 fetch structured context before generation. MCP formalizes the retrieval-then-generate pattern into a protocol standard.", 0.72),
|
|
3422
|
+
seed7("langchain", "mcp_protocol", "inspired", `LangChain's "Tool" abstraction (search tool, calculator tool, API tool) is the predecessor concept to MCP tools. MCP standardizes what LangChain demonstrated: agents need structured tool calls.`, 0.75)
|
|
3423
|
+
];
|
|
3424
|
+
|
|
3425
|
+
// ../../packages/ckg/dist/seed/events-security.js
|
|
3426
|
+
var src6 = { type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 security" };
|
|
3427
|
+
var ev8 = (e) => ({ ...e, scope: "world", sources: [src6] });
|
|
3428
|
+
var securityEvents = [
|
|
3429
|
+
ev8({
|
|
3430
|
+
id: "pgp",
|
|
3431
|
+
title: "PGP (Pretty Good Privacy)",
|
|
3432
|
+
description: `Phil Zimmermann released PGP \u2014 public-key cryptography for email, made accessible. Asymmetric encryption, digital signatures, web of trust. First mass-market cryptography tool; sparked a US government legal battle that became the first "crypto wars." Established the principle that strong encryption belongs in everyone's hands.`,
|
|
3433
|
+
yearNum: 1991,
|
|
3434
|
+
yearLabel: "1991",
|
|
3435
|
+
precision: "year",
|
|
3436
|
+
domains: ["technology", "systems"],
|
|
3437
|
+
impactScore: 0.68,
|
|
3438
|
+
tags: ["pgp", "encryption", "public-key", "email", "privacy", "cryptography"],
|
|
3439
|
+
wikidataId: "Q186675"
|
|
3440
|
+
}),
|
|
3441
|
+
ev8({
|
|
3442
|
+
id: "ssl_tls",
|
|
3443
|
+
title: "SSL/TLS Protocol",
|
|
3444
|
+
description: "Netscape designed SSL (Secure Sockets Layer), later standardized as TLS \u2014 the encryption layer for web traffic. HTTPS = HTTP over TLS. Everything financial, medical, and private on the internet travels over TLS. Made e-commerce and online banking possible by solving authentication and confidentiality in one protocol.",
|
|
3445
|
+
yearNum: 1994,
|
|
3446
|
+
yearLabel: "1994",
|
|
3447
|
+
precision: "year",
|
|
3448
|
+
domains: ["technology", "systems"],
|
|
3449
|
+
impactScore: 0.84,
|
|
3450
|
+
tags: ["tls", "ssl", "https", "encryption", "protocol", "web-security"],
|
|
3451
|
+
wikidataId: "Q214799"
|
|
3452
|
+
}),
|
|
3453
|
+
ev8({
|
|
3454
|
+
id: "owasp",
|
|
3455
|
+
title: "OWASP Top 10",
|
|
3456
|
+
description: "The Open Web Application Security Project published the OWASP Top 10 \u2014 the standard awareness document for web application security. SQL injection, XSS, CSRF, broken auth. Became the universal security checklist: if your pentest doesn't cover OWASP Top 10, it's incomplete. Referenced in PCI-DSS and SOC2 audits.",
|
|
3457
|
+
yearNum: 2003,
|
|
3458
|
+
yearLabel: "2003",
|
|
3459
|
+
precision: "year",
|
|
3460
|
+
domains: ["technology", "systems"],
|
|
3461
|
+
impactScore: 0.72,
|
|
3462
|
+
tags: ["owasp", "security", "web-security", "vulnerability", "checklist", "appsec"],
|
|
3463
|
+
wikidataId: "Q281285"
|
|
3464
|
+
}),
|
|
3465
|
+
ev8({
|
|
3466
|
+
id: "cve_system",
|
|
3467
|
+
title: "CVE System (Common Vulnerabilities)",
|
|
3468
|
+
description: "MITRE launched the CVE (Common Vulnerabilities and Exposures) numbering system \u2014 a universal dictionary for publicly known security flaws. CVE-2021-44228 (Log4Shell) affected every Java app. Without CVE, coordinating patches across an ecosystem is impossible. The DNS of security vulnerabilities.",
|
|
3469
|
+
yearNum: 1999,
|
|
3470
|
+
yearLabel: "1999",
|
|
3471
|
+
precision: "year",
|
|
3472
|
+
domains: ["technology", "systems"],
|
|
3473
|
+
impactScore: 0.7,
|
|
3474
|
+
tags: ["cve", "vulnerability", "security", "mitre", "disclosure", "patching"],
|
|
3475
|
+
wikidataId: "Q1043098"
|
|
3476
|
+
}),
|
|
3477
|
+
ev8({
|
|
3478
|
+
id: "saml",
|
|
3479
|
+
title: "SAML (Enterprise SSO)",
|
|
3480
|
+
description: 'OASIS standardized SAML \u2014 Security Assertion Markup Language for enterprise single sign-on. XML-based identity federation between an Identity Provider (Okta, Azure AD) and Service Providers. Powers SSO at every large enterprise. "Sign in with your company account" is SAML.',
|
|
3481
|
+
yearNum: 2002,
|
|
3482
|
+
yearLabel: "2002",
|
|
3483
|
+
precision: "year",
|
|
3484
|
+
domains: ["technology", "systems"],
|
|
3485
|
+
impactScore: 0.68,
|
|
3486
|
+
tags: ["saml", "sso", "enterprise", "identity", "federation", "authentication"],
|
|
3487
|
+
wikidataId: "Q294811"
|
|
3488
|
+
}),
|
|
3489
|
+
ev8({
|
|
3490
|
+
id: "jwt",
|
|
3491
|
+
title: "JWT (JSON Web Tokens)",
|
|
3492
|
+
description: "IETF standardized JWT \u2014 self-contained, digitally signed tokens for authentication. Stateless auth: the token carries claims (user ID, roles, expiry); the server verifies the signature, no database lookup needed. Became the standard bearer format for OAuth 2.0 access tokens and API authentication.",
|
|
3493
|
+
yearNum: 2010,
|
|
3494
|
+
yearLabel: "2010",
|
|
3495
|
+
precision: "year",
|
|
3496
|
+
domains: ["technology"],
|
|
3497
|
+
impactScore: 0.72,
|
|
3498
|
+
tags: ["jwt", "authentication", "token", "stateless", "api-security", "oauth"],
|
|
3499
|
+
wikidataId: "Q29294906"
|
|
3500
|
+
}),
|
|
3501
|
+
ev8({
|
|
3502
|
+
id: "zero_trust",
|
|
3503
|
+
title: "Zero Trust Security Model",
|
|
3504
|
+
description: 'John Kindervag at Forrester coined "Zero Trust" \u2014 never trust, always verify. No implicit trust based on network location (VPN is not security). Google implemented it as BeyondCorp (2011): employees access apps via identity-aware proxy, not corporate network. Became mandatory framework for cloud-native security.',
|
|
3505
|
+
yearNum: 2010,
|
|
3506
|
+
yearLabel: "2010",
|
|
3507
|
+
precision: "year",
|
|
3508
|
+
domains: ["technology", "systems"],
|
|
3509
|
+
impactScore: 0.76,
|
|
3510
|
+
tags: ["zero-trust", "security", "beyondcorp", "identity", "network-security", "google"],
|
|
3511
|
+
wikidataId: "Q97283052"
|
|
3512
|
+
}),
|
|
3513
|
+
ev8({
|
|
3514
|
+
id: "oidc",
|
|
3515
|
+
title: "OpenID Connect (OIDC)",
|
|
3516
|
+
description: 'OpenID Foundation standardized OIDC \u2014 an identity layer on top of OAuth 2.0. If OAuth gives you authorization ("can this app read your files?"), OIDC gives you authentication ("who is this user?"). "Sign in with Google" is OIDC. Made federated identity the standard for consumer and enterprise apps alike.',
|
|
3517
|
+
yearNum: 2014,
|
|
3518
|
+
yearLabel: "2014",
|
|
3519
|
+
precision: "year",
|
|
3520
|
+
domains: ["technology"],
|
|
3521
|
+
impactScore: 0.7,
|
|
3522
|
+
tags: ["oidc", "openid-connect", "authentication", "oauth", "identity", "sso"],
|
|
3523
|
+
wikidataId: "Q5003939"
|
|
3524
|
+
}),
|
|
3525
|
+
ev8({
|
|
3526
|
+
id: "gdpr",
|
|
3527
|
+
title: "GDPR (Data Privacy Regulation)",
|
|
3528
|
+
description: `The EU's General Data Protection Regulation became enforceable \u2014 the strictest data privacy law in the world. Right to access, right to erasure, consent requirements, \u20AC20M fines. Forced every internet company to build privacy controls. Triggered cookie banners, data deletion workflows, and the "privacy by design" engineering discipline.`,
|
|
3529
|
+
yearNum: 2018,
|
|
3530
|
+
yearLabel: "2018",
|
|
3531
|
+
precision: "year",
|
|
3532
|
+
domains: ["technology", "systems", "economy"],
|
|
3533
|
+
impactScore: 0.8,
|
|
3534
|
+
tags: ["gdpr", "privacy", "regulation", "compliance", "data-protection", "europe"],
|
|
3535
|
+
wikidataId: "Q104202095"
|
|
3536
|
+
}),
|
|
3537
|
+
ev8({
|
|
3538
|
+
id: "soc2",
|
|
3539
|
+
title: "SOC 2 Compliance",
|
|
3540
|
+
description: `AICPA formalized SOC 2 (System and Organization Controls 2) \u2014 the security audit standard for cloud services. Five trust criteria: Security, Availability, Processing Integrity, Confidentiality, Privacy. "We're SOC 2 Type II compliant" became the minimum bar for selling B2B SaaS to enterprises. Shaped how cloud companies build.`,
|
|
3541
|
+
yearNum: 2010,
|
|
3542
|
+
yearLabel: "2010",
|
|
3543
|
+
precision: "year",
|
|
3544
|
+
domains: ["technology", "economy"],
|
|
3545
|
+
impactScore: 0.68,
|
|
3546
|
+
tags: ["soc2", "compliance", "audit", "b2b", "enterprise", "security"],
|
|
3547
|
+
wikidataId: "Q17141313"
|
|
3548
|
+
}),
|
|
3549
|
+
ev8({
|
|
3550
|
+
id: "dependabot",
|
|
3551
|
+
title: "Dependabot (Dependency Security)",
|
|
3552
|
+
description: "GitHub launched Dependabot \u2014 automated pull requests to update vulnerable dependencies. Scans package.json, Gemfile, requirements.txt; detects CVEs; opens PRs automatically. Made dependency security a default practice, not an afterthought. Free for public repos; integrated into every GitHub repository.",
|
|
3553
|
+
yearNum: 2017,
|
|
3554
|
+
yearLabel: "2017",
|
|
3555
|
+
precision: "year",
|
|
3556
|
+
domains: ["technology"],
|
|
3557
|
+
impactScore: 0.66,
|
|
3558
|
+
tags: ["dependabot", "security", "dependency", "cve", "automation", "github"],
|
|
3559
|
+
wikidataId: "Q55638811"
|
|
3560
|
+
}),
|
|
3561
|
+
ev8({
|
|
3562
|
+
id: "snyk",
|
|
3563
|
+
title: "Snyk (Developer Security)",
|
|
3564
|
+
description: 'Guy Podjarny built Snyk \u2014 security scanning built into developer workflows. `npm install --save` triggers a scan; PRs get security comments; CLI runs in CI. Pioneered "shift left security" \u2014 fix vulnerabilities in code review, not production. Reached $8.5B valuation.',
|
|
3565
|
+
yearNum: 2015,
|
|
3566
|
+
yearLabel: "2015",
|
|
3567
|
+
precision: "year",
|
|
3568
|
+
domains: ["technology"],
|
|
3569
|
+
impactScore: 0.66,
|
|
3570
|
+
tags: ["snyk", "security", "sast", "developer-tools", "vulnerability", "shift-left"],
|
|
3571
|
+
wikidataId: "Q59236131"
|
|
3572
|
+
}),
|
|
3573
|
+
ev8({
|
|
3574
|
+
id: "webauthn",
|
|
3575
|
+
title: "WebAuthn / Passkeys",
|
|
3576
|
+
description: 'W3C and FIDO Alliance standardized WebAuthn \u2014 browser API for passwordless authentication via biometrics, security keys, or device authenticators. Apple, Google, and Microsoft adopted the "Passkeys" brand in 2022. The first realistic path to eliminating passwords at internet scale.',
|
|
3577
|
+
yearNum: 2019,
|
|
3578
|
+
yearLabel: "2019",
|
|
3579
|
+
precision: "year",
|
|
3580
|
+
domains: ["technology", "systems"],
|
|
3581
|
+
impactScore: 0.72,
|
|
3582
|
+
tags: ["webauthn", "passkeys", "passwordless", "fido2", "biometrics", "authentication"],
|
|
3583
|
+
wikidataId: "Q64099893"
|
|
3584
|
+
}),
|
|
3585
|
+
ev8({
|
|
3586
|
+
id: "cors",
|
|
3587
|
+
title: "CORS (Cross-Origin Resource Sharing)",
|
|
3588
|
+
description: "W3C standardized CORS \u2014 the browser mechanism that controls which cross-origin HTTP requests are allowed. `Access-Control-Allow-Origin` is the most-Googled HTTP header in frontend development. CORS exists to enforce the Same-Origin Policy that protects users from malicious cross-site requests.",
|
|
3589
|
+
yearNum: 2004,
|
|
3590
|
+
yearLabel: "2004",
|
|
3591
|
+
precision: "year",
|
|
3592
|
+
domains: ["technology"],
|
|
3593
|
+
impactScore: 0.62,
|
|
3594
|
+
tags: ["cors", "browser", "security", "http", "same-origin", "api"],
|
|
3595
|
+
wikidataId: "Q1073546"
|
|
3596
|
+
}),
|
|
3597
|
+
ev8({
|
|
3598
|
+
id: "bug_bounty",
|
|
3599
|
+
title: "Bug Bounty Programs",
|
|
3600
|
+
description: 'Netscape paid the first "bug bounty" in 1995; HackerOne and Bugcrowd formalized the market in 2012. Crowdsourced security research: ethical hackers report vulnerabilities for rewards. Google, Microsoft, and every major tech company now runs bug bounty programs. Turned independent security research into a profession.',
|
|
3601
|
+
yearNum: 2012,
|
|
3602
|
+
yearLabel: "2012",
|
|
3603
|
+
precision: "year",
|
|
3604
|
+
domains: ["technology", "economy"],
|
|
3605
|
+
impactScore: 0.62,
|
|
3606
|
+
tags: ["bug-bounty", "hackerone", "security-research", "crowdsource", "responsible-disclosure"],
|
|
3607
|
+
wikidataId: "Q4998734"
|
|
3608
|
+
}),
|
|
3609
|
+
ev8({
|
|
3610
|
+
id: "supply_chain_security",
|
|
3611
|
+
title: "Software Supply Chain Security",
|
|
3612
|
+
description: 'The SolarWinds attack (2020) and Log4Shell (2021) made software supply chain security a board-level issue. SBOM (Software Bill of Materials), Sigstore, in-toto, SLSA framework \u2014 the industry built infrastructure to answer "what code is actually running in production?" A new discipline born from high-profile failures.',
|
|
3613
|
+
yearNum: 2020,
|
|
3614
|
+
yearLabel: "2020",
|
|
3615
|
+
precision: "year",
|
|
3616
|
+
domains: ["technology", "systems"],
|
|
3617
|
+
impactScore: 0.74,
|
|
3618
|
+
tags: ["supply-chain", "security", "sbom", "sigstore", "slsa", "solarwinds", "log4shell"],
|
|
3619
|
+
wikidataId: "Q106891116"
|
|
3620
|
+
}),
|
|
3621
|
+
ev8({
|
|
3622
|
+
id: "okta",
|
|
3623
|
+
title: "Okta (Identity Platform)",
|
|
3624
|
+
description: `Todd McKinnon built Okta \u2014 cloud identity and access management. Single sign-on, MFA, lifecycle management, API access management. Made enterprise-grade identity a SaaS product. "$8B identity tax" that every enterprise SaaS pays is Okta's market. Forced Azure AD into competing more aggressively.`,
|
|
3625
|
+
yearNum: 2009,
|
|
3626
|
+
yearLabel: "2009",
|
|
3627
|
+
precision: "year",
|
|
3628
|
+
domains: ["technology", "economy"],
|
|
3629
|
+
impactScore: 0.7,
|
|
3630
|
+
tags: ["okta", "identity", "sso", "mfa", "enterprise", "iam"],
|
|
3631
|
+
wikidataId: "Q7079832"
|
|
3632
|
+
}),
|
|
3633
|
+
ev8({
|
|
3634
|
+
id: "hashicorp_sentinel",
|
|
3635
|
+
title: "Policy as Code (OPA / Sentinel)",
|
|
3636
|
+
description: 'HashiCorp Sentinel (2017) and Open Policy Agent (2016) brought policy enforcement into code. "Is this Kubernetes deployment compliant?" \u2014 answer it with a policy file, not a spreadsheet. Shifted compliance from audit-after-deploy to enforce-at-deploy. Now standard in enterprise K8s, Terraform, and CI/CD pipelines.',
|
|
3637
|
+
yearNum: 2017,
|
|
3638
|
+
yearLabel: "2017",
|
|
3639
|
+
precision: "year",
|
|
3640
|
+
domains: ["technology", "systems"],
|
|
3641
|
+
impactScore: 0.62,
|
|
3642
|
+
tags: ["policy-as-code", "opa", "sentinel", "compliance", "kubernetes", "infrastructure"],
|
|
3643
|
+
wikidataId: "Q60336079"
|
|
3644
|
+
})
|
|
3645
|
+
];
|
|
3646
|
+
|
|
3647
|
+
// ../../packages/ckg/dist/seed/links-security.js
|
|
3648
|
+
var seed8 = (f, t, rel, ev10, conf) => ({
|
|
3649
|
+
id: `${f}--${rel}-->${t}`,
|
|
3650
|
+
fromEvent: f,
|
|
3651
|
+
toEvent: t,
|
|
3652
|
+
relationship: rel,
|
|
3653
|
+
confidence: conf ?? (rel === "caused" ? 0.9 : 0.8),
|
|
3654
|
+
evidence: ev10,
|
|
3655
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 security" }],
|
|
3656
|
+
contributedBy: "system",
|
|
3657
|
+
validated: true,
|
|
3658
|
+
scope: "world"
|
|
3659
|
+
});
|
|
3660
|
+
var securityLinks = [
|
|
3661
|
+
// ── Cryptography foundation ────────────────────────────────────────────
|
|
3662
|
+
seed8("pgp", "ssl_tls", "enabled", "PGP demonstrated that public-key cryptography was practically implementable at scale. Netscape designers of SSL built on the same public-key infrastructure concepts PGP popularized.", 0.65),
|
|
3663
|
+
seed8("pgp", "vault", "inspired", "PGP's concept of key-based secrets management \u2014 asymmetric keys for identity, symmetric keys for data \u2014 informs how Vault stores and issues secrets via PKI.", 0.55),
|
|
3664
|
+
seed8("ssl_tls", "web", "enabled", "HTTPS = HTTP over TLS. E-commerce, banking, and healthcare on the web require TLS. The web's commercial success was enabled by SSL/TLS making confidential transactions possible.", 0.9),
|
|
3665
|
+
seed8("ssl_tls", "letsencrypt", "caused", "Let's Encrypt issues TLS certificates. The whole premise is providing SSL/TLS more easily. No TLS protocol \u2192 no Let's Encrypt.", 0.95),
|
|
3666
|
+
seed8("ssl_tls", "oauth", "enabled", "OAuth requires HTTPS \u2014 access tokens transmitted over HTTP would be trivially intercepted. TLS is the security layer that makes OAuth's token-based delegation safe.", 0.88),
|
|
3667
|
+
seed8("ssl_tls", "webauthn", "enabled", "WebAuthn requires HTTPS to function in browsers. The credential API is only available on secure origins. TLS is a prerequisite for the passwordless web.", 0.9),
|
|
3668
|
+
// ── Auth standards chain ───────────────────────────────────────────────
|
|
3669
|
+
seed8("saml", "oauth", "enabled", "SAML (2002) proved enterprise identity federation was possible and valuable. OAuth (2007) solved the same problem for web APIs \u2014 lighter weight, JSON-native, browser-friendly.", 0.72),
|
|
3670
|
+
seed8("saml", "oidc", "inspired", "OIDC was designed to replace SAML for consumer applications \u2014 same SSO capability, but REST/JSON instead of XML/SOAP. Every OIDC concept (IdP, SP/RP, claims) has a SAML predecessor.", 0.82),
|
|
3671
|
+
seed8("oauth", "oidc", "caused", 'OIDC is an identity layer built on top of OAuth 2.0. OAuth handles authorization; OIDC adds the "who is this user?" layer. No OAuth 2.0 \u2192 no OIDC.', 0.95),
|
|
3672
|
+
seed8("oauth", "jwt", "enabled", "JWT became the standard format for OAuth 2.0 access tokens and OIDC ID tokens. OAuth needed a compact, verifiable token format; JWT provided it.", 0.88),
|
|
3673
|
+
seed8("jwt", "oidc", "enabled", "OIDC's ID Token is a JWT. The claims about the authenticated user (sub, email, name) travel in a JWT that the client can verify without a server round-trip.", 0.9),
|
|
3674
|
+
seed8("jwt", "oauth", "accelerated", "JWT made OAuth tokens self-validating \u2014 resource servers verify the signature without calling the authorization server. This enabled stateless microservice authentication at scale.", 0.82),
|
|
3675
|
+
seed8("saml", "okta", "caused", "Okta was built to make SAML SSO manageable. Enterprise apps all required SAML integration; Okta became the hub that handled SAML for every SaaS vendor without individual IT configuration.", 0.85),
|
|
3676
|
+
seed8("oidc", "okta", "caused", "Okta implemented OIDC alongside SAML to serve consumer and modern enterprise apps. OIDC made Okta relevant beyond legacy enterprise into developer-first and SaaS applications.", 0.82),
|
|
3677
|
+
seed8("webauthn", "okta", "accelerated", "Okta added WebAuthn/passkey support to its platform \u2014 hardware security keys and biometrics as MFA factors. WebAuthn made phishing-resistant MFA a first-class Okta feature.", 0.72),
|
|
3678
|
+
// ── Compliance & regulation ────────────────────────────────────────────
|
|
3679
|
+
seed8("internet", "gdpr", "caused", 'GDPR was created because the internet enabled unprecedented collection and processing of personal data at scale. The regulation exists because internet services defaulted to "collect everything."', 0.85),
|
|
3680
|
+
seed8("aws", "soc2", "accelerated", 'AWS becoming the enterprise default for infrastructure raised SOC 2 compliance from a nice-to-have to a requirement. Enterprises asking "is your cloud vendor SOC 2 compliant?" pushed every SaaS to certify.', 0.72),
|
|
3681
|
+
seed8("gdpr", "soc2", "accelerated", "GDPR created organizational awareness of data governance. SOC 2 (US) and GDPR (EU) together became the dual compliance minimum that any SaaS selling to enterprises needed.", 0.68),
|
|
3682
|
+
seed8("soc2", "vault", "enabled", "SOC 2 controls require auditable secrets management (CC6.1-CC6.7 logical access). Vault's dynamic credentials, audit log, and access policies map directly to SOC 2 control requirements.", 0.75),
|
|
3683
|
+
seed8("gdpr", "okta", "accelerated", `GDPR's "right to erasure" and "consent management" requirements made user identity management a compliance challenge. Okta's lifecycle management and audit logging helped enterprises demonstrate GDPR compliance.`, 0.65),
|
|
3684
|
+
seed8("owasp", "snyk", "enabled", "Snyk's vulnerability categories and remediation guidance are organized around OWASP risks. OWASP Top 10 is the standard Snyk references when explaining why a dependency is dangerous.", 0.75),
|
|
3685
|
+
seed8("cve_system", "snyk", "caused", "Snyk's security database is built on CVE data. Snyk scans for CVE-listed vulnerabilities in dependencies. Without the CVE numbering system, Snyk's vulnerability tracking lacks a common identifier.", 0.88),
|
|
3686
|
+
seed8("cve_system", "dependabot", "caused", "Dependabot opens PRs when dependencies have known CVE vulnerabilities. The CVE database is Dependabot's primary signal for what is dangerous. No CVE \u2192 no meaningful Dependabot alerts.", 0.9),
|
|
3687
|
+
seed8("owasp", "cors", "enabled", "CORS was designed to enforce the Same-Origin Policy, which prevents the CSRF and data exfiltration attacks that appear in OWASP Top 10. OWASP's articulation of XSS and CSRF drove CORS specification.", 0.72),
|
|
3688
|
+
// ── Developer security tooling ─────────────────────────────────────────
|
|
3689
|
+
seed8("github", "dependabot", "caused", "Dependabot was a startup (Dependabot.io) acquired by GitHub in 2019. GitHub built it into every repository for free. GitHub's distribution made Dependabot the default dependency scanner.", 0.92),
|
|
3690
|
+
seed8("github", "supply_chain_security", "enabled", "GitHub is where most open-source supply chain attacks surface \u2014 malicious npm packages, typosquatting, compromised maintainer accounts. GitHub Actions workflows can introduce supply chain risks via third-party actions.", 0.82),
|
|
3691
|
+
seed8("cve_system", "supply_chain_security", "enabled", "Supply chain security starts with CVE detection. Log4Shell (CVE-2021-44228) was the event that made boards care about software supply chain. The CVE system is the vocabulary for the entire discipline.", 0.88),
|
|
3692
|
+
seed8("dependabot", "supply_chain_security", "accelerated", "Dependabot automated the first line of supply chain defense \u2014 keeping dependencies up to date. But SolarWinds proved that updates themselves can be compromised, expanding supply chain security beyond just version pinning.", 0.72),
|
|
3693
|
+
seed8("snyk", "supply_chain_security", "accelerated", "Snyk's container scanning and license compliance checks address supply chain integrity beyond CVEs. Snyk positioned itself as the developer-security platform for the supply chain era.", 0.72),
|
|
3694
|
+
seed8("kubernetes", "hashicorp_sentinel", "enabled", "OPA Gatekeeper runs as a Kubernetes admission controller \u2014 it enforces policies on every resource creation request. Kubernetes's admission webhook API is what makes policy-as-code enforceable at the cluster level.", 0.85),
|
|
3695
|
+
seed8("terraform", "hashicorp_sentinel", "caused", "HashiCorp Sentinel is the policy engine for Terraform Enterprise/Cloud. Sentinel policies enforce compliance on Terraform plans before `apply`. HashiCorp built Sentinel specifically for Terraform governance.", 0.9),
|
|
3696
|
+
seed8("vault", "kubernetes", "accelerated", "Vault's Kubernetes auth method made secrets injection into pods the standard pattern. The Vault Agent Injector (sidecar) and Secrets Store CSI driver made Vault-managed secrets native to K8s workloads.", 0.75),
|
|
3697
|
+
// ── Zero trust chain ───────────────────────────────────────────────────
|
|
3698
|
+
seed8("zero_trust", "okta", "accelerated", "Zero Trust requires identity as the control plane \u2014 every access request verified regardless of network. Okta is the identity layer zero trust architectures are built on: no network perimeter, only verified identity.", 0.82),
|
|
3699
|
+
seed8("zero_trust", "vault", "accelerated", "Zero Trust extends to infrastructure secrets \u2014 no implicit trust for service-to-service calls. Vault's dynamic credentials and PKI are the secrets management layer in a zero-trust architecture.", 0.78),
|
|
3700
|
+
seed8("zero_trust", "cloudflare", "accelerated", "Cloudflare Zero Trust (ZTNA) is a commercial zero-trust product. Cloudflare's global network became the access proxy that enforces identity-aware access without a VPN.", 0.78),
|
|
3701
|
+
seed8("aws", "zero_trust", "accelerated", "AWS's IAM model \u2014 fine-grained, role-based access with no implicit trust \u2014 embodies zero trust at the cloud layer. AWS's scale normalized the zero-trust thinking for infrastructure access.", 0.68),
|
|
3702
|
+
// ── Web security chain ────────────────────────────────────────────────
|
|
3703
|
+
seed8("web", "owasp", "caused", "OWASP was created to address web application security. The web's openness (anyone can submit data, anyone can access endpoints) created the attack surface OWASP documents.", 0.9),
|
|
3704
|
+
seed8("web", "cors", "caused", "CORS is a browser mechanism for web cross-origin requests. It exists because the web's same-origin policy needed a controlled relaxation mechanism for legitimate cross-origin APIs.", 0.92),
|
|
3705
|
+
seed8("owasp", "supply_chain_security", "enabled", 'OWASP expanded its scope to include "A06:2021 Vulnerable and Outdated Components" \u2014 the supply chain attack surface. OWASP top 10 entry legitimized supply chain as a web security concern.', 0.72),
|
|
3706
|
+
seed8("bug_bounty", "supply_chain_security", "enabled", "Bug bounty programs created a community of security researchers who now focus on supply chain vulnerabilities. The same researchers who found XSS bugs discovered typosquatting and dependency hijacking.", 0.6),
|
|
3707
|
+
seed8("letsencrypt", "webauthn", "enabled", "WebAuthn requires HTTPS. Let's Encrypt made HTTPS free and ubiquitous, removing the last barrier to deploying WebAuthn on any website. No free TLS \u2192 WebAuthn adoption would lag.", 0.78),
|
|
3708
|
+
seed8("jwt", "mcp_protocol", "enabled", "MCP authentication (OAuth 2.1 for remote servers) uses JWT access tokens. JWT's self-validating stateless nature fits MCP's distributed tool-call model where servers verify tokens without a central auth server call.", 0.72),
|
|
3709
|
+
seed8("oauth", "mcp_protocol", "enabled", "MCP's authorization spec is built on OAuth 2.1. Remote MCP servers that handle sensitive data use OAuth for client authorization. The web's authorization standard became the agent protocol's authorization standard.", 0.82)
|
|
3710
|
+
];
|
|
3711
|
+
|
|
3712
|
+
// ../../packages/ckg/dist/seed/events-mobile.js
|
|
3713
|
+
var src7 = { type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 mobile" };
|
|
3714
|
+
var ev9 = (e) => ({ ...e, scope: "world", sources: [src7] });
|
|
3715
|
+
var mobileEvents = [
|
|
3716
|
+
ev9({
|
|
3717
|
+
id: "android",
|
|
3718
|
+
title: "Android",
|
|
3719
|
+
description: "Google released Android \u2014 an open-source mobile operating system based on Linux. Free for OEMs, built on Java/Kotlin, Google Play for distribution. Runs on 73% of smartphones globally. Created a hardware ecosystem where Apple's iOS couldn't: hundreds of manufacturers, every price point, every market.",
|
|
3720
|
+
yearNum: 2008,
|
|
3721
|
+
yearLabel: "2008",
|
|
3722
|
+
precision: "year",
|
|
3723
|
+
domains: ["technology", "economy"],
|
|
3724
|
+
impactScore: 0.86,
|
|
3725
|
+
tags: ["android", "mobile", "google", "open-source", "smartphone", "linux"],
|
|
3726
|
+
wikidataId: "Q94"
|
|
3727
|
+
}),
|
|
3728
|
+
ev9({
|
|
3729
|
+
id: "app_store",
|
|
3730
|
+
title: "App Store (Apple)",
|
|
3731
|
+
description: 'Apple launched the App Store \u2014 the first large-scale curated mobile app marketplace. Third-party apps on iPhone; 30% commission; review process. Created the "app economy": $1T+ cumulative developer earnings. Established the platform-as-distribution model and sparked the debate over whether 30% is monopolistic.',
|
|
3732
|
+
yearNum: 2008,
|
|
3733
|
+
yearLabel: "2008",
|
|
3734
|
+
precision: "year",
|
|
3735
|
+
domains: ["technology", "economy"],
|
|
3736
|
+
impactScore: 0.82,
|
|
3737
|
+
tags: ["app-store", "apple", "ios", "distribution", "marketplace", "mobile"],
|
|
3738
|
+
wikidataId: "Q368744"
|
|
3739
|
+
}),
|
|
3740
|
+
ev9({
|
|
3741
|
+
id: "swift",
|
|
3742
|
+
title: "Swift (Apple Programming Language)",
|
|
3743
|
+
description: "Chris Lattner at Apple released Swift \u2014 a modern, type-safe replacement for Objective-C. Fast, readable, open-sourced in 2015. Lowered the barrier to iOS development significantly. Swift Playgrounds made it the first language many learned on an iPad. Now extends to server-side (Vapor) and ML (Swift for TensorFlow).",
|
|
3744
|
+
yearNum: 2014,
|
|
3745
|
+
yearLabel: "2014",
|
|
3746
|
+
precision: "year",
|
|
3747
|
+
domains: ["technology"],
|
|
3748
|
+
impactScore: 0.72,
|
|
3749
|
+
tags: ["swift", "ios", "apple", "programming", "language", "type-safe"],
|
|
3750
|
+
wikidataId: "Q17118040"
|
|
3751
|
+
}),
|
|
3752
|
+
ev9({
|
|
3753
|
+
id: "kotlin",
|
|
3754
|
+
title: "Kotlin",
|
|
3755
|
+
description: "JetBrains released Kotlin \u2014 a modern, concise, null-safe JVM language. Google announced Kotlin as the preferred language for Android development in 2017. Interoperable with Java: teams could migrate incrementally. Coroutines for async, data classes for models, extension functions for clean APIs. The language Java should have been.",
|
|
3756
|
+
yearNum: 2016,
|
|
3757
|
+
yearLabel: "2016",
|
|
3758
|
+
precision: "year",
|
|
3759
|
+
domains: ["technology"],
|
|
3760
|
+
impactScore: 0.7,
|
|
3761
|
+
tags: ["kotlin", "android", "jvm", "programming", "coroutines", "google"],
|
|
3762
|
+
wikidataId: "Q3816639"
|
|
3763
|
+
}),
|
|
3764
|
+
ev9({
|
|
3765
|
+
id: "flutter",
|
|
3766
|
+
title: "Flutter",
|
|
3767
|
+
description: "Google released Flutter \u2014 a UI toolkit that compiles Dart to native iOS, Android, web, desktop, and embedded targets from one codebase. No JavaScript bridge: renders its own pixels via Skia/Impeller. Proved that compile-to-native cross-platform was viable and challenged React Native's JS bridge model.",
|
|
3768
|
+
yearNum: 2018,
|
|
3769
|
+
yearLabel: "2018",
|
|
3770
|
+
precision: "year",
|
|
3771
|
+
domains: ["technology"],
|
|
3772
|
+
impactScore: 0.74,
|
|
3773
|
+
tags: ["flutter", "dart", "cross-platform", "mobile", "google", "native-rendering"],
|
|
3774
|
+
wikidataId: "Q56513020"
|
|
3775
|
+
}),
|
|
3776
|
+
ev9({
|
|
3777
|
+
id: "expo",
|
|
3778
|
+
title: "Expo (React Native Platform)",
|
|
3779
|
+
description: "Charlie Cheever built Expo \u2014 the managed React Native platform. `npx create-expo-app` \u2192 build for iOS and Android without Xcode or Android Studio. Over-the-air updates, build service, device testing app. Reduced React Native's setup from days to minutes and became the entry point for most new React Native projects.",
|
|
3780
|
+
yearNum: 2015,
|
|
3781
|
+
yearLabel: "2015",
|
|
3782
|
+
precision: "year",
|
|
3783
|
+
domains: ["technology"],
|
|
3784
|
+
impactScore: 0.66,
|
|
3785
|
+
tags: ["expo", "react-native", "mobile", "cross-platform", "ota-updates"],
|
|
3786
|
+
wikidataId: "Q97520490"
|
|
3787
|
+
}),
|
|
3788
|
+
ev9({
|
|
3789
|
+
id: "firebase",
|
|
3790
|
+
title: "Firebase (Google App Platform)",
|
|
3791
|
+
description: `Google acquired and expanded Firebase into a full app development platform: real-time database, Firestore, authentication, cloud functions, hosting, and analytics. "Your app's backend without a backend." The fastest way to ship a mobile or web app with user auth, data storage, and hosting included.`,
|
|
3792
|
+
yearNum: 2014,
|
|
3793
|
+
yearLabel: "2014",
|
|
3794
|
+
precision: "year",
|
|
3795
|
+
domains: ["technology"],
|
|
3796
|
+
impactScore: 0.74,
|
|
3797
|
+
tags: ["firebase", "google", "baas", "mobile", "realtime", "serverless"],
|
|
3798
|
+
wikidataId: "Q17099233"
|
|
3799
|
+
}),
|
|
3800
|
+
ev9({
|
|
3801
|
+
id: "xcode",
|
|
3802
|
+
title: "Xcode (Apple IDE)",
|
|
3803
|
+
description: "Apple's integrated development environment for macOS, iOS, watchOS, and tvOS development. The only way to compile and submit apps to the App Store. Interface Builder, Instruments profiler, Simulator, and SwiftUI previews. Love-hate relationship: essential monopoly with notoriously slow build times.",
|
|
3804
|
+
yearNum: 2003,
|
|
3805
|
+
yearLabel: "2003",
|
|
3806
|
+
precision: "year",
|
|
3807
|
+
domains: ["technology"],
|
|
3808
|
+
impactScore: 0.62,
|
|
3809
|
+
tags: ["xcode", "apple", "ide", "ios", "macos", "swift"],
|
|
3810
|
+
wikidataId: "Q306518"
|
|
3811
|
+
}),
|
|
3812
|
+
ev9({
|
|
3813
|
+
id: "android_studio",
|
|
3814
|
+
title: "Android Studio",
|
|
3815
|
+
description: "Google launched Android Studio (replacing Eclipse ADT) \u2014 the official Android IDE based on IntelliJ IDEA. Layout Editor, Emulator, ADB, Logcat, Profiler in one. Made Android development significantly more ergonomic. Kotlin-first since 2017, now with Compose previews and Gemini integration.",
|
|
3816
|
+
yearNum: 2013,
|
|
3817
|
+
yearLabel: "2013",
|
|
3818
|
+
precision: "year",
|
|
3819
|
+
domains: ["technology"],
|
|
3820
|
+
impactScore: 0.62,
|
|
3821
|
+
tags: ["android-studio", "android", "ide", "google", "kotlin", "jetbrains"],
|
|
3822
|
+
wikidataId: "Q13218560"
|
|
3823
|
+
}),
|
|
3824
|
+
ev9({
|
|
3825
|
+
id: "fastlane",
|
|
3826
|
+
title: "Fastlane (Mobile CI/CD)",
|
|
3827
|
+
description: 'Felix Krause built Fastlane \u2014 automation tooling for iOS and Android build, test, and release pipelines. Code signing, beta distribution (TestFlight, Google Play), screenshot generation, App Store submission \u2014 all scriptable. The "GitHub Actions for mobile" before mobile CI was a solved problem.',
|
|
3828
|
+
yearNum: 2015,
|
|
3829
|
+
yearLabel: "2015",
|
|
3830
|
+
precision: "year",
|
|
3831
|
+
domains: ["technology"],
|
|
3832
|
+
impactScore: 0.64,
|
|
3833
|
+
tags: ["fastlane", "mobile", "ci-cd", "ios", "android", "automation"],
|
|
3834
|
+
wikidataId: "Q21097087"
|
|
3835
|
+
}),
|
|
3836
|
+
ev9({
|
|
3837
|
+
id: "jetpack_compose",
|
|
3838
|
+
title: "Jetpack Compose",
|
|
3839
|
+
description: "Google released Jetpack Compose \u2014 a declarative UI toolkit for Android in Kotlin. Same component model as React/SwiftUI: composable functions, unidirectional data flow, reactive state. Replaced XML layouts. Made Android UI development feel modern for the first time and triggered complete ecosystem migration.",
|
|
3840
|
+
yearNum: 2021,
|
|
3841
|
+
yearLabel: "2021",
|
|
3842
|
+
precision: "year",
|
|
3843
|
+
domains: ["technology"],
|
|
3844
|
+
impactScore: 0.68,
|
|
3845
|
+
tags: ["jetpack-compose", "android", "kotlin", "declarative-ui", "google", "reactive"],
|
|
3846
|
+
wikidataId: "Q108508867"
|
|
3847
|
+
}),
|
|
3848
|
+
ev9({
|
|
3849
|
+
id: "swiftui",
|
|
3850
|
+
title: "SwiftUI",
|
|
3851
|
+
description: "Apple released SwiftUI \u2014 a declarative UI framework for all Apple platforms. Write UI in Swift code with live previews in Xcode. Replaced UIKit's imperative, delegate-heavy pattern with composable views and state bindings. The Apple ecosystem's answer to React's component model.",
|
|
3852
|
+
yearNum: 2019,
|
|
3853
|
+
yearLabel: "2019",
|
|
3854
|
+
precision: "year",
|
|
3855
|
+
domains: ["technology"],
|
|
3856
|
+
impactScore: 0.68,
|
|
3857
|
+
tags: ["swiftui", "swift", "apple", "declarative-ui", "ios", "macos"],
|
|
3858
|
+
wikidataId: "Q65073619"
|
|
3859
|
+
}),
|
|
3860
|
+
ev9({
|
|
3861
|
+
id: "capacitor",
|
|
3862
|
+
title: "Capacitor (Ionic)",
|
|
3863
|
+
description: "Ionic released Capacitor \u2014 a native bridge for web apps on iOS, Android, and desktop. Modern replacement for Cordova: ES modules, TypeScript first, access native APIs from web code. Enabled teams to ship mobile apps using their existing web tech stack with native plugin access.",
|
|
3864
|
+
yearNum: 2019,
|
|
3865
|
+
yearLabel: "2019",
|
|
3866
|
+
precision: "year",
|
|
3867
|
+
domains: ["technology"],
|
|
3868
|
+
impactScore: 0.6,
|
|
3869
|
+
tags: ["capacitor", "ionic", "hybrid", "mobile", "webview", "cross-platform"],
|
|
3870
|
+
wikidataId: "Q87133781"
|
|
3871
|
+
}),
|
|
3872
|
+
ev9({
|
|
3873
|
+
id: "google_play",
|
|
3874
|
+
title: "Google Play Store",
|
|
3875
|
+
description: "Google launched Android Market (later Play Store) \u2014 the primary distribution channel for Android apps. Lower barrier than App Store (sideloading allowed, faster review). 3.5M+ apps, 2.5B+ active users. Creates the duopoly with Apple App Store that defines mobile software distribution economics.",
|
|
3876
|
+
yearNum: 2008,
|
|
3877
|
+
yearLabel: "2008",
|
|
3878
|
+
precision: "year",
|
|
3879
|
+
domains: ["technology", "economy"],
|
|
3880
|
+
impactScore: 0.78,
|
|
3881
|
+
tags: ["google-play", "android", "distribution", "marketplace", "google", "mobile"],
|
|
3882
|
+
wikidataId: "Q79576"
|
|
3883
|
+
}),
|
|
3884
|
+
ev9({
|
|
3885
|
+
id: "tauri",
|
|
3886
|
+
title: "Tauri (Rust Desktop Apps)",
|
|
3887
|
+
description: `Tauri brought Rust as the backend for cross-platform desktop apps, using the system webview instead of bundling Chromium. 10x smaller bundle sizes than Electron, no Node.js runtime. Showed that web-based desktop apps didn't need to ship a full browser, sparking the "Rust for tooling" trend.`,
|
|
3888
|
+
yearNum: 2020,
|
|
3889
|
+
yearLabel: "2020",
|
|
3890
|
+
precision: "year",
|
|
3891
|
+
domains: ["technology"],
|
|
3892
|
+
impactScore: 0.62,
|
|
3893
|
+
tags: ["tauri", "rust", "desktop", "cross-platform", "electron-alternative", "webview"],
|
|
3894
|
+
wikidataId: "Q108508879"
|
|
3895
|
+
})
|
|
3896
|
+
];
|
|
3897
|
+
|
|
3898
|
+
// ../../packages/ckg/dist/seed/links-mobile.js
|
|
3899
|
+
var seed9 = (f, t, rel, ev10, conf) => ({
|
|
3900
|
+
id: `${f}--${rel}-->${t}`,
|
|
3901
|
+
fromEvent: f,
|
|
3902
|
+
toEvent: t,
|
|
3903
|
+
relationship: rel,
|
|
3904
|
+
confidence: conf ?? (rel === "caused" ? 0.9 : 0.8),
|
|
3905
|
+
evidence: ev10,
|
|
3906
|
+
sources: [{ type: "demo-seed", reliability: 0.9, citation: "Causari curated baseline \u2014 mobile" }],
|
|
3907
|
+
contributedBy: "system",
|
|
3908
|
+
validated: true,
|
|
3909
|
+
scope: "world"
|
|
3910
|
+
});
|
|
3911
|
+
var mobileLinks = [
|
|
3912
|
+
// ── Platform foundation ────────────────────────────────────────────────
|
|
3913
|
+
seed9("iphone", "app_store", "caused", "The App Store was created alongside iPhone OS 2.0. The App Store is the distribution mechanism for iPhone apps \u2014 inseparable from the product.", 0.95),
|
|
3914
|
+
seed9("iphone", "android", "accelerated", "Android existed before iPhone launch but was originally BlackBerry-like. iPhone's touchscreen paradigm forced Android's complete UI redesign. iPhone acceleration of Android's consumer-friendliness is documented by former Google engineers.", 0.82),
|
|
3915
|
+
seed9("iphone", "swift", "enabled", "Swift replaced Objective-C for iOS development. No iPhone/iOS ecosystem \u2192 no need for a modern Apple programming language.", 0.88),
|
|
3916
|
+
seed9("linux", "android", "caused", "Android is built on a modified Linux kernel. Linux provides the hardware abstraction layer, process management, and driver model that Android runs on. No Linux \u2192 no Android.", 0.95),
|
|
3917
|
+
seed9("android", "google_play", "caused", "Google Play is Android's app distribution platform. The Play Store was launched the same day as the first Android device (T-Mobile G1). No Android \u2192 no Google Play.", 0.95),
|
|
3918
|
+
seed9("app_store", "google_play", "accelerated", "Google Play was launched to match Apple's App Store model. The commercial success of the App Store (10M downloads in first weekend) made Google accelerate Android Market's launch.", 0.82),
|
|
3919
|
+
// ── Language & tooling chain ───────────────────────────────────────────
|
|
3920
|
+
seed9("java", "android", "caused", "Android's original development language was Java \u2014 Android apps ran on the Dalvik JVM (later ART). Google chose Java to leverage the massive Java developer community. No Java \u2192 Android would have needed a different language.", 0.88),
|
|
3921
|
+
seed9("java", "kotlin", "caused", "Kotlin is a JVM language \u2014 it compiles to the same bytecode as Java and interoperates with Java libraries. No Java/JVM \u2192 no Kotlin. Kotlin exists to improve Java, not replace the JVM.", 0.88),
|
|
3922
|
+
seed9("kotlin", "android", "accelerated", "Google announced Kotlin as the preferred Android language in 2017. Kotlin's adoption as the official language accelerated Android development quality and reduced boilerplate dramatically.", 0.82),
|
|
3923
|
+
seed9("kotlin", "jetpack_compose", "caused", "Jetpack Compose is written in Kotlin and requires Kotlin \u2014 composable functions use Kotlin's language features (coroutines, DSL builders, extension functions). No Kotlin \u2192 no Compose.", 0.95),
|
|
3924
|
+
seed9("reactjs", "swiftui", "inspired", `SwiftUI's declarative, component-based model directly mirrors React's. Apple studied React's success and built SwiftUI with the same "UI as a function of state" philosophy.`, 0.82),
|
|
3925
|
+
seed9("reactjs", "jetpack_compose", "inspired", "Jetpack Compose follows the same declarative UI paradigm as React \u2014 `@Composable` functions mirror React components, state hoisting mirrors React's lifting state up, and unidirectional data flow is the same pattern.", 0.82),
|
|
3926
|
+
// ── Cross-platform frameworks ──────────────────────────────────────────
|
|
3927
|
+
seed9("reactjs", "react_native", "caused", "React Native is React for native mobile. No React \u2192 no React Native; the component model, JSX, and hooks are shared.", 0.95),
|
|
3928
|
+
seed9("react_native", "expo", "caused", "Expo is a platform built on React Native. No React Native \u2192 no Expo. Expo's entire purpose is to make React Native easier.", 0.95),
|
|
3929
|
+
seed9("react_native", "capacitor", "inspired", `Capacitor provides the same "write once, deploy mobile" promise as React Native but for web tech teams that don't want to learn React Native's native module system. Web + native bridge is the shared concept.`, 0.65),
|
|
3930
|
+
seed9("flutter", "react_native", "inspired", `Flutter was built partly as a reaction to React Native's JavaScript bridge performance bottleneck. Flutter's "compile to native, no bridge" architecture is designed to solve React Native's performance concerns.`, 0.75),
|
|
3931
|
+
seed9("golang", "flutter", "inspired", "Google created both Go and Dart (Flutter's language) as alternatives to incumbent languages for different domains. Go for server infrastructure; Dart for client UI. Both reflect Google's philosophy of purpose-built languages over incumbent compromise.", 0.45),
|
|
3932
|
+
seed9("electron", "tauri", "inspired", "Tauri was built as a reaction to Electron's main criticism: bundled Chromium makes apps 150MB+. Tauri uses the system webview, keeping apps under 15MB. Every Tauri design decision is an Electron anti-decision.", 0.88),
|
|
3933
|
+
seed9("rust_1_0", "tauri", "caused", "Tauri uses Rust for its native backend layer. Rust's memory safety and performance characteristics made it ideal for a secure, lightweight desktop app runtime without the overhead of Node.js.", 0.88),
|
|
3934
|
+
seed9("webassembly", "tauri", "enabled", "Tauri's next-gen architecture (Tauri v2) integrates WASM for cross-platform plugins. WASM enables Tauri plugins to run safely in a sandboxed environment across Windows, macOS, and Linux.", 0.65),
|
|
3935
|
+
// ── Backend for mobile ─────────────────────────────────────────────────
|
|
3936
|
+
seed9("firebase_rtdb", "firebase", "caused", "Firebase Realtime Database was Firebase's original product. Google acquired Firebase (2014) and expanded it, but the RTDB is the founding product.", 0.92),
|
|
3937
|
+
seed9("firebase", "react_native", "accelerated", 'Firebase + React Native became the default "build an MVP mobile app" stack. Firebase handles auth, data, and push notifications without a custom backend; React Native handles the UI.', 0.78),
|
|
3938
|
+
seed9("firebase", "expo", "accelerated", "Expo + Firebase is a common combination \u2014 Expo for the cross-platform build/distribution, Firebase for the backend. Both reduce mobile app development to primarily frontend work.", 0.72),
|
|
3939
|
+
seed9("aws", "firebase", "accelerated", "AWS Amplify (2017) was Amazon's direct response to Firebase \u2014 same BaaS concept for mobile, but on AWS infrastructure. Firebase's success with mobile developers prompted AWS to enter the BaaS market.", 0.68),
|
|
3940
|
+
// ── Dev tooling chain ──────────────────────────────────────────────────
|
|
3941
|
+
seed9("xcode", "swift", "accelerated", "Xcode gained Swift support on day one (2014 WWDC). Xcode's Playgrounds feature made Swift's interactive REPL a learning tool. Xcode's tight integration with Swift drove adoption.", 0.82),
|
|
3942
|
+
seed9("xcode", "swiftui", "accelerated", "Xcode's SwiftUI canvas (live preview of UI components as you type) was a key selling feature of SwiftUI. Without Xcode's preview infrastructure, SwiftUI's DX advantage disappears.", 0.85),
|
|
3943
|
+
seed9("android_studio", "kotlin", "accelerated", "Android Studio added first-class Kotlin support (autocomplete, refactoring, inspection) in 2017, the same year Google announced Kotlin as preferred. IDE support was crucial to adoption.", 0.82),
|
|
3944
|
+
seed9("android_studio", "jetpack_compose", "accelerated", "Compose previews in Android Studio (live rendering of @Composable functions) are the key DX feature of Compose. Without Android Studio's preview, Compose adoption would be slower.", 0.82),
|
|
3945
|
+
seed9("github_actions", "fastlane", "accelerated", "GitHub Actions + Fastlane is the standard mobile CI/CD pipeline. Actions triggers builds; Fastlane handles code signing, building, and distributing to TestFlight/Play Store.", 0.78),
|
|
3946
|
+
seed9("git", "fastlane", "enabled", "Fastlane integrates with Git \u2014 Fastlane lanes are triggered by git events, version tags, and branch strategies. Version management (`increment_build_number`) ties to git history.", 0.72),
|
|
3947
|
+
// ── Mobile → web platform convergence ─────────────────────────────────
|
|
3948
|
+
seed9("pwa", "expo", "enabled", "Expo supports PWA output \u2014 the same Expo project can compile to iOS, Android, and a PWA. PWA's service worker support on mobile browsers reduces the gap between Expo web and native.", 0.65),
|
|
3949
|
+
seed9("react_native", "pwa", "enabled", 'React Native Web (same component code targeting DOM) and PWA together enable "universal apps" \u2014 one React codebase targeting iOS, Android, and progressive web simultaneously.', 0.65),
|
|
3950
|
+
seed9("iphone", "pwa", "accelerated", "Apple's reluctance to support PWA features (push notifications, home screen install) \u2014 and eventual capitulation (iOS 16.4+) \u2014 was driven by iPhone's dominant market position creating PWA adoption pressure.", 0.6)
|
|
3951
|
+
];
|
|
3952
|
+
|
|
3953
|
+
// ../../packages/ckg/dist/seed/index.js
|
|
3954
|
+
function loadSeed() {
|
|
3955
|
+
return {
|
|
3956
|
+
events: [
|
|
3957
|
+
...seedEvents,
|
|
3958
|
+
...aiHistoryEvents,
|
|
3959
|
+
...computingEvents,
|
|
3960
|
+
...webEcosystemEvents,
|
|
3961
|
+
...cloudDevopsEvents,
|
|
3962
|
+
...databaseEvents,
|
|
3963
|
+
...aiToolingEvents,
|
|
3964
|
+
...securityEvents,
|
|
3965
|
+
...mobileEvents
|
|
3966
|
+
],
|
|
3967
|
+
causalLinks: [
|
|
3968
|
+
...seedLinks,
|
|
3969
|
+
...aiHistoryLinks,
|
|
3970
|
+
...computingLinks,
|
|
3971
|
+
...webEcosystemLinks,
|
|
3972
|
+
...cloudDevopsLinks,
|
|
3973
|
+
...databaseLinks,
|
|
3974
|
+
...aiToolingLinks,
|
|
3975
|
+
...securityLinks,
|
|
3976
|
+
...mobileLinks
|
|
3977
|
+
],
|
|
3978
|
+
insights: seedInsights
|
|
3979
|
+
};
|
|
3980
|
+
}
|
|
3981
|
+
|
|
3982
|
+
// ../../packages/ckg/dist/query.js
|
|
3983
|
+
function queryEvents(store, params) {
|
|
3984
|
+
const limit = params.limit ?? 20;
|
|
3985
|
+
const scope = params.scope ?? "world";
|
|
3986
|
+
const q = params.query?.toLowerCase().trim();
|
|
3987
|
+
const scored = [];
|
|
3988
|
+
for (const e of store.allEvents()) {
|
|
3989
|
+
if (e.scope !== scope)
|
|
3990
|
+
continue;
|
|
3991
|
+
if (params.yearFrom !== void 0 && e.yearNum < params.yearFrom)
|
|
3992
|
+
continue;
|
|
3993
|
+
if (params.yearTo !== void 0 && e.yearNum > params.yearTo)
|
|
3994
|
+
continue;
|
|
3995
|
+
if (params.minImpact !== void 0 && e.impactScore < params.minImpact)
|
|
3996
|
+
continue;
|
|
3997
|
+
if (params.domains && params.domains.length > 0) {
|
|
3998
|
+
if (!e.domains.some((d) => params.domains.includes(d)))
|
|
3999
|
+
continue;
|
|
4000
|
+
}
|
|
4001
|
+
let relevance = 0;
|
|
4002
|
+
if (q) {
|
|
4003
|
+
const titleLc = e.title.toLowerCase();
|
|
4004
|
+
const tagMatch = e.tags.some((t) => t.toLowerCase().includes(q));
|
|
4005
|
+
const descMatch = e.description.toLowerCase().includes(q);
|
|
4006
|
+
const idMatch = e.id.toLowerCase() === q;
|
|
4007
|
+
const titleStarts = titleLc.startsWith(q);
|
|
4008
|
+
const titleHas = titleLc.includes(q);
|
|
4009
|
+
if (idMatch)
|
|
4010
|
+
relevance = 1;
|
|
4011
|
+
else if (titleStarts)
|
|
4012
|
+
relevance = 0.9;
|
|
4013
|
+
else if (titleHas)
|
|
4014
|
+
relevance = 0.75;
|
|
4015
|
+
else if (tagMatch)
|
|
4016
|
+
relevance = 0.6;
|
|
4017
|
+
else if (descMatch)
|
|
4018
|
+
relevance = 0.4;
|
|
4019
|
+
else
|
|
4020
|
+
continue;
|
|
4021
|
+
} else {
|
|
4022
|
+
relevance = 0;
|
|
4023
|
+
}
|
|
4024
|
+
scored.push({ event: e, relevance });
|
|
4025
|
+
}
|
|
4026
|
+
scored.sort((a, b) => {
|
|
4027
|
+
if (q && a.relevance !== b.relevance)
|
|
4028
|
+
return b.relevance - a.relevance;
|
|
4029
|
+
if (b.event.impactScore !== a.event.impactScore)
|
|
4030
|
+
return b.event.impactScore - a.event.impactScore;
|
|
4031
|
+
return a.event.yearNum - b.event.yearNum;
|
|
4032
|
+
});
|
|
4033
|
+
const matched = scored.map((s) => s.event);
|
|
4034
|
+
return {
|
|
4035
|
+
events: matched.slice(0, limit),
|
|
4036
|
+
totalMatched: matched.length,
|
|
4037
|
+
truncated: matched.length > limit
|
|
4038
|
+
};
|
|
4039
|
+
}
|
|
4040
|
+
function causalChain(store, params) {
|
|
4041
|
+
const direction = params.direction ?? "both";
|
|
4042
|
+
const depth = Math.min(Math.max(params.depth ?? 2, 1), 5);
|
|
4043
|
+
const minConf = params.minConfidence ?? 0;
|
|
4044
|
+
let root = store.getEvent(params.event);
|
|
4045
|
+
if (!root) {
|
|
4046
|
+
const needle = params.event.toLowerCase();
|
|
4047
|
+
root = store.allEvents().find((e) => e.title.toLowerCase().includes(needle));
|
|
4048
|
+
}
|
|
4049
|
+
if (!root)
|
|
4050
|
+
return { notFound: params.event };
|
|
4051
|
+
const visited = /* @__PURE__ */ new Set([root.id]);
|
|
4052
|
+
const nodes = [{ event: root, hop: 0, direction: "root" }];
|
|
4053
|
+
const links = [];
|
|
4054
|
+
if (direction === "causes" || direction === "both") {
|
|
4055
|
+
let frontier = [root.id];
|
|
4056
|
+
for (let hop = 1; hop <= depth; hop++) {
|
|
4057
|
+
const next = [];
|
|
4058
|
+
for (const id of frontier) {
|
|
4059
|
+
for (const link of store.incomingTo(id, minConf)) {
|
|
4060
|
+
if (!visited.has(link.fromEvent)) {
|
|
4061
|
+
visited.add(link.fromEvent);
|
|
4062
|
+
const ev10 = store.getEvent(link.fromEvent);
|
|
4063
|
+
if (ev10) {
|
|
4064
|
+
nodes.push({ event: ev10, hop, direction: "cause", via: link });
|
|
4065
|
+
links.push(link);
|
|
4066
|
+
next.push(ev10.id);
|
|
4067
|
+
}
|
|
4068
|
+
} else if (!links.find((l) => l.id === link.id)) {
|
|
4069
|
+
links.push(link);
|
|
4070
|
+
}
|
|
4071
|
+
}
|
|
4072
|
+
}
|
|
4073
|
+
frontier = next;
|
|
4074
|
+
if (frontier.length === 0)
|
|
4075
|
+
break;
|
|
4076
|
+
}
|
|
4077
|
+
}
|
|
4078
|
+
if (direction === "effects" || direction === "both") {
|
|
4079
|
+
let frontier = [root.id];
|
|
4080
|
+
const downVisited = /* @__PURE__ */ new Set([root.id]);
|
|
4081
|
+
for (let hop = 1; hop <= depth; hop++) {
|
|
4082
|
+
const next = [];
|
|
4083
|
+
for (const id of frontier) {
|
|
4084
|
+
for (const link of store.outgoingFrom(id, minConf)) {
|
|
4085
|
+
if (!downVisited.has(link.toEvent)) {
|
|
4086
|
+
downVisited.add(link.toEvent);
|
|
4087
|
+
const ev10 = store.getEvent(link.toEvent);
|
|
4088
|
+
if (ev10) {
|
|
4089
|
+
if (!nodes.find((n) => n.event.id === ev10.id)) {
|
|
4090
|
+
nodes.push({ event: ev10, hop, direction: "effect", via: link });
|
|
4091
|
+
}
|
|
4092
|
+
if (!links.find((l) => l.id === link.id))
|
|
4093
|
+
links.push(link);
|
|
4094
|
+
next.push(ev10.id);
|
|
4095
|
+
}
|
|
4096
|
+
} else if (!links.find((l) => l.id === link.id)) {
|
|
4097
|
+
links.push(link);
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
}
|
|
4101
|
+
frontier = next;
|
|
4102
|
+
if (frontier.length === 0)
|
|
4103
|
+
break;
|
|
4104
|
+
}
|
|
4105
|
+
}
|
|
4106
|
+
const linkIds = new Set(links.map((l) => l.id));
|
|
4107
|
+
const relatedInsights = store.allInsights().filter((i) => i.instances.some((linkId) => linkIds.has(linkId)));
|
|
4108
|
+
return { root, nodes, links, relatedInsights };
|
|
4109
|
+
}
|
|
4110
|
+
function historicalResonance(store, params) {
|
|
4111
|
+
const max = params.maxResults ?? 3;
|
|
4112
|
+
const tokens = tokenize(params.situation);
|
|
4113
|
+
const candidates = store.allInsights().map((insight) => {
|
|
4114
|
+
const haystack = tokenize(`${insight.pattern} ${insight.description}`);
|
|
4115
|
+
const overlap = countOverlap(tokens, haystack);
|
|
4116
|
+
let score = overlap / Math.max(tokens.length, 1);
|
|
4117
|
+
if (params.domains && params.domains.length > 0) {
|
|
4118
|
+
const domainOverlap = insight.domains.filter((d) => params.domains.includes(d)).length;
|
|
4119
|
+
score += domainOverlap * 0.15;
|
|
4120
|
+
}
|
|
4121
|
+
score += insight.predictiveValue * 0.2;
|
|
4122
|
+
const exemplarEventIds = /* @__PURE__ */ new Set();
|
|
4123
|
+
for (const linkId of insight.instances) {
|
|
4124
|
+
const link = store.getLink(linkId);
|
|
4125
|
+
if (link) {
|
|
4126
|
+
exemplarEventIds.add(link.fromEvent);
|
|
4127
|
+
exemplarEventIds.add(link.toEvent);
|
|
4128
|
+
}
|
|
4129
|
+
}
|
|
4130
|
+
const exemplarEvents = Array.from(exemplarEventIds).map((id) => store.getEvent(id)).filter((e) => e !== void 0).sort((a, b) => a.yearNum - b.yearNum).slice(0, 4);
|
|
4131
|
+
const reasoning = buildResonanceReasoning(insight, overlap, tokens.length, params.situation);
|
|
4132
|
+
return { insight, matchScore: Math.min(score, 1), exemplarEvents, reasoning };
|
|
4133
|
+
});
|
|
4134
|
+
candidates.sort((a, b) => b.matchScore - a.matchScore);
|
|
4135
|
+
return { matches: candidates.filter((c) => c.matchScore > 0.05).slice(0, max) };
|
|
4136
|
+
}
|
|
4137
|
+
function tokenize(s) {
|
|
4138
|
+
return s.toLowerCase().replace(/[^\w\s]/g, " ").split(/\s+/).filter((t) => t.length >= 3 && !STOP_WORDS.has(t));
|
|
4139
|
+
}
|
|
4140
|
+
var STOP_WORDS = /* @__PURE__ */ new Set([
|
|
4141
|
+
"the",
|
|
4142
|
+
"and",
|
|
4143
|
+
"for",
|
|
4144
|
+
"are",
|
|
4145
|
+
"was",
|
|
4146
|
+
"were",
|
|
4147
|
+
"has",
|
|
4148
|
+
"had",
|
|
4149
|
+
"have",
|
|
4150
|
+
"this",
|
|
4151
|
+
"that",
|
|
4152
|
+
"with",
|
|
4153
|
+
"from",
|
|
4154
|
+
"they",
|
|
4155
|
+
"their",
|
|
4156
|
+
"will",
|
|
4157
|
+
"would",
|
|
4158
|
+
"should",
|
|
4159
|
+
"could",
|
|
4160
|
+
"about",
|
|
4161
|
+
"into",
|
|
4162
|
+
"than",
|
|
4163
|
+
"them",
|
|
4164
|
+
"these",
|
|
4165
|
+
"those",
|
|
4166
|
+
"when",
|
|
4167
|
+
"where",
|
|
4168
|
+
"while",
|
|
4169
|
+
"because",
|
|
4170
|
+
"after",
|
|
4171
|
+
"before"
|
|
4172
|
+
]);
|
|
4173
|
+
function countOverlap(a, b) {
|
|
4174
|
+
const setB = new Set(b);
|
|
4175
|
+
let count = 0;
|
|
4176
|
+
const seen = /* @__PURE__ */ new Set();
|
|
4177
|
+
for (const tok of a) {
|
|
4178
|
+
if (setB.has(tok) && !seen.has(tok)) {
|
|
4179
|
+
count++;
|
|
4180
|
+
seen.add(tok);
|
|
4181
|
+
}
|
|
4182
|
+
}
|
|
4183
|
+
return count;
|
|
4184
|
+
}
|
|
4185
|
+
function buildResonanceReasoning(insight, overlap, total, situation) {
|
|
4186
|
+
const overlapPct = Math.round(overlap / Math.max(total, 1) * 100);
|
|
4187
|
+
return `Pattern "${insight.pattern}" matches your situation on ${overlap}/${total} keywords (${overlapPct}%). The insight's predictive value is ${Math.round(insight.predictiveValue * 100)}%. Apply with caution \u2014 historical patterns inform but do not determine outcomes.`;
|
|
4188
|
+
}
|
|
4189
|
+
function orgKnowledge(store, params) {
|
|
4190
|
+
const events = store.allEvents().filter((e) => e.scope === "org" && e.orgId === params.orgId);
|
|
4191
|
+
if (events.length === 0) {
|
|
4192
|
+
return {
|
|
4193
|
+
events: [],
|
|
4194
|
+
causalContext: [],
|
|
4195
|
+
available: false,
|
|
4196
|
+
message: "No org-scoped knowledge graph configured for this org. Private org knowledge is a Causari Enterprise feature."
|
|
4197
|
+
};
|
|
4198
|
+
}
|
|
4199
|
+
const result = queryEvents(store, {
|
|
4200
|
+
query: params.query,
|
|
4201
|
+
yearFrom: params.yearFrom,
|
|
4202
|
+
yearTo: params.yearTo,
|
|
4203
|
+
scope: "org"
|
|
4204
|
+
});
|
|
4205
|
+
const matchedIds = new Set(result.events.map((e) => e.id));
|
|
4206
|
+
const causalContext = store.allLinks().filter((l) => l.scope === "org" && l.orgId === params.orgId && (matchedIds.has(l.fromEvent) || matchedIds.has(l.toEvent)));
|
|
4207
|
+
return { events: result.events, causalContext, available: true };
|
|
4208
|
+
}
|
|
4209
|
+
function predictScenarios(store, params) {
|
|
4210
|
+
const horizon = params.horizon ?? 2040;
|
|
4211
|
+
const maxScenarios = params.maxScenarios ?? 3;
|
|
4212
|
+
const situationText = params.conditions.join(" ");
|
|
4213
|
+
const resonance = historicalResonance(store, {
|
|
4214
|
+
situation: situationText,
|
|
4215
|
+
domains: params.domains,
|
|
4216
|
+
maxResults: 5
|
|
4217
|
+
});
|
|
4218
|
+
const forecastEvents = store.allEvents().filter((e) => {
|
|
4219
|
+
if (e.forecastConfidence === void 0)
|
|
4220
|
+
return false;
|
|
4221
|
+
if (e.yearNum > horizon + 10)
|
|
4222
|
+
return false;
|
|
4223
|
+
if (params.domains && params.domains.length > 0) {
|
|
4224
|
+
if (!e.domains.some((d) => params.domains.includes(d)))
|
|
4225
|
+
return false;
|
|
4226
|
+
}
|
|
4227
|
+
const txt = `${e.title} ${e.description} ${e.tags.join(" ")}`.toLowerCase();
|
|
4228
|
+
const tokens = tokenize(situationText);
|
|
4229
|
+
return tokens.some((t) => txt.includes(t)) || tokens.length === 0;
|
|
4230
|
+
});
|
|
4231
|
+
const scenarios = [];
|
|
4232
|
+
const optimistic = forecastEvents.filter((e) => (e.forecastConfidence ?? 0) >= 0.6 && e.impactScore >= 0.7).sort((a, b) => b.impactScore - a.impactScore).slice(0, 4);
|
|
4233
|
+
if (optimistic.length > 0) {
|
|
4234
|
+
scenarios.push({
|
|
4235
|
+
name: "Convergent Acceleration",
|
|
4236
|
+
probability: avg(optimistic.map((e) => e.forecastConfidence)),
|
|
4237
|
+
reasoning: `High-confidence forecasts in this domain cluster reinforce each other. Conditions (${params.conditions.join("; ")}) align with the upper-confidence band of CKG forecasts.`,
|
|
4238
|
+
historicalBasis: resonance.matches.slice(0, 2).map((m) => m.insight.pattern),
|
|
4239
|
+
events: optimistic
|
|
4240
|
+
});
|
|
4241
|
+
}
|
|
4242
|
+
const cautious = forecastEvents.filter((e) => (e.forecastConfidence ?? 0) >= 0.4 && (e.forecastConfidence ?? 0) < 0.7).sort((a, b) => b.impactScore - a.impactScore).slice(0, 4);
|
|
4243
|
+
if (cautious.length > 0) {
|
|
4244
|
+
scenarios.push({
|
|
4245
|
+
name: "Constrained Progress",
|
|
4246
|
+
probability: avg(cautious.map((e) => e.forecastConfidence)),
|
|
4247
|
+
reasoning: "Mid-confidence forecasts dominate this branch. Progress is real but subject to bottlenecks (regulatory, technical, economic) that historical patterns suggest cluster around tech transitions.",
|
|
4248
|
+
historicalBasis: resonance.matches.slice(0, 2).map((m) => m.insight.pattern),
|
|
4249
|
+
events: cautious
|
|
4250
|
+
});
|
|
4251
|
+
}
|
|
4252
|
+
const disrupted = forecastEvents.filter((e) => (e.forecastConfidence ?? 0) < 0.5).sort((a, b) => b.impactScore - a.impactScore).slice(0, 3);
|
|
4253
|
+
if (disrupted.length > 0) {
|
|
4254
|
+
scenarios.push({
|
|
4255
|
+
name: "Discontinuous Shift",
|
|
4256
|
+
probability: 1 - avg(forecastEvents.map((e) => e.forecastConfidence) || [0.5]),
|
|
4257
|
+
reasoning: "Low individual-confidence events with high impact, if realized, produce non-linear outcomes. Historically, such events (printing press, transformer architecture) were under-predicted by mainstream forecasts.",
|
|
4258
|
+
historicalBasis: resonance.matches.map((m) => m.insight.pattern).slice(0, 3),
|
|
4259
|
+
events: disrupted
|
|
4260
|
+
});
|
|
4261
|
+
}
|
|
4262
|
+
return {
|
|
4263
|
+
scenarios: scenarios.slice(0, maxScenarios),
|
|
4264
|
+
basedOn: {
|
|
4265
|
+
matchedInsights: resonance.matches.length,
|
|
4266
|
+
forecastEventsConsidered: forecastEvents.length
|
|
4267
|
+
}
|
|
4268
|
+
};
|
|
4269
|
+
}
|
|
4270
|
+
function avg(nums) {
|
|
4271
|
+
if (nums.length === 0)
|
|
4272
|
+
return 0;
|
|
4273
|
+
return nums.reduce((a, b) => a + b, 0) / nums.length;
|
|
4274
|
+
}
|
|
4275
|
+
|
|
4276
|
+
// src/tools.ts
|
|
4277
|
+
var yearRangeSchema = {
|
|
4278
|
+
yearFrom: {
|
|
4279
|
+
type: "number",
|
|
4280
|
+
description: "Inclusive start year. Negative = BCE. Example: -3500 for 3500 BCE, 1900 for 1900 CE."
|
|
4281
|
+
},
|
|
4282
|
+
yearTo: {
|
|
4283
|
+
type: "number",
|
|
4284
|
+
description: "Inclusive end year. Negative = BCE."
|
|
4285
|
+
}
|
|
4286
|
+
};
|
|
4287
|
+
var domainsSchema = {
|
|
4288
|
+
type: "array",
|
|
4289
|
+
items: {
|
|
4290
|
+
type: "string",
|
|
4291
|
+
enum: ["technology", "humanities", "systems", "science", "economy", "geopolitics", "philosophy", "environment", "culture", "health", "other"]
|
|
4292
|
+
},
|
|
4293
|
+
description: "Filter to events in these knowledge domains."
|
|
4294
|
+
};
|
|
4295
|
+
var queryEventsT = {
|
|
4296
|
+
name: "query_events",
|
|
4297
|
+
description: "Search the Causari causal knowledge graph for historical events matching given criteria. Returns structured event records with title, description, year, domains, impact score, and tags. Use this when you need historical context for a topic, time period, or domain.",
|
|
4298
|
+
inputSchema: {
|
|
4299
|
+
type: "object",
|
|
4300
|
+
properties: {
|
|
4301
|
+
...yearRangeSchema,
|
|
4302
|
+
domains: domainsSchema,
|
|
4303
|
+
minImpact: {
|
|
4304
|
+
type: "number",
|
|
4305
|
+
minimum: 0,
|
|
4306
|
+
maximum: 1,
|
|
4307
|
+
description: "Filter to events with impact score >= this. Use 0.7+ for major events only."
|
|
4308
|
+
},
|
|
4309
|
+
query: {
|
|
4310
|
+
type: "string",
|
|
4311
|
+
description: "Free-text search across title, description, and tags. Case-insensitive."
|
|
4312
|
+
},
|
|
4313
|
+
limit: { type: "number", description: "Max events to return. Default 20.", default: 20 }
|
|
4314
|
+
}
|
|
4315
|
+
},
|
|
4316
|
+
handler: (args, store) => {
|
|
4317
|
+
const result = queryEvents(store, {
|
|
4318
|
+
yearFrom: args.yearFrom,
|
|
4319
|
+
yearTo: args.yearTo,
|
|
4320
|
+
domains: args.domains,
|
|
4321
|
+
minImpact: args.minImpact,
|
|
4322
|
+
query: args.query,
|
|
4323
|
+
limit: args.limit
|
|
4324
|
+
});
|
|
4325
|
+
return {
|
|
4326
|
+
events: result.events.map((e) => ({
|
|
4327
|
+
id: e.id,
|
|
4328
|
+
title: e.title,
|
|
4329
|
+
year: e.yearLabel,
|
|
4330
|
+
yearNum: e.yearNum,
|
|
4331
|
+
description: e.description,
|
|
4332
|
+
domains: e.domains,
|
|
4333
|
+
impactScore: e.impactScore,
|
|
4334
|
+
tags: e.tags,
|
|
4335
|
+
...e.forecastConfidence !== void 0 && {
|
|
4336
|
+
forecast: { confidence: e.forecastConfidence, reasoning: e.forecastReasoning }
|
|
4337
|
+
}
|
|
4338
|
+
})),
|
|
4339
|
+
totalMatched: result.totalMatched,
|
|
4340
|
+
truncated: result.truncated,
|
|
4341
|
+
...result.truncated && {
|
|
4342
|
+
hint: `${result.totalMatched} events matched but only ${result.events.length} returned. Use minImpact or domains to narrow.`
|
|
4343
|
+
}
|
|
4344
|
+
};
|
|
4345
|
+
}
|
|
4346
|
+
};
|
|
4347
|
+
var causalChainT = {
|
|
4348
|
+
name: "causal_chain",
|
|
4349
|
+
description: "Trace cause-effect chains from a historical event. Returns structured causal graph showing what led to the event (causes) and/or what it enabled (effects), with evidence and confidence scores. This is the most powerful Causari tool for understanding WHY something happened or what consequences flow from a development. Example: causal_chain('printing press', direction='effects', depth=2) returns the cascade from Gutenberg through Renaissance to Industrial Revolution.",
|
|
4350
|
+
inputSchema: {
|
|
4351
|
+
type: "object",
|
|
4352
|
+
properties: {
|
|
4353
|
+
event: {
|
|
4354
|
+
type: "string",
|
|
4355
|
+
description: 'Event ID (e.g. "printing", "internet") or title substring (e.g. "industrial").'
|
|
4356
|
+
},
|
|
4357
|
+
direction: {
|
|
4358
|
+
type: "string",
|
|
4359
|
+
enum: ["causes", "effects", "both"],
|
|
4360
|
+
description: "causes = what led to this event. effects = what flowed from it. both = full chain.",
|
|
4361
|
+
default: "both"
|
|
4362
|
+
},
|
|
4363
|
+
depth: {
|
|
4364
|
+
type: "number",
|
|
4365
|
+
minimum: 1,
|
|
4366
|
+
maximum: 5,
|
|
4367
|
+
description: "Hops to traverse from the root event. Default 2.",
|
|
4368
|
+
default: 2
|
|
4369
|
+
},
|
|
4370
|
+
minConfidence: {
|
|
4371
|
+
type: "number",
|
|
4372
|
+
minimum: 0,
|
|
4373
|
+
maximum: 1,
|
|
4374
|
+
description: "Filter out causal links below this confidence. Default 0 (include all)."
|
|
4375
|
+
}
|
|
4376
|
+
},
|
|
4377
|
+
required: ["event"]
|
|
4378
|
+
},
|
|
4379
|
+
handler: (args, store) => {
|
|
4380
|
+
const result = causalChain(store, {
|
|
4381
|
+
event: args.event,
|
|
4382
|
+
direction: args.direction,
|
|
4383
|
+
depth: args.depth,
|
|
4384
|
+
minConfidence: args.minConfidence
|
|
4385
|
+
});
|
|
4386
|
+
if ("notFound" in result && result.notFound) {
|
|
4387
|
+
return {
|
|
4388
|
+
error: `No event found matching "${result.notFound}". Try query_events first to find the right ID.`
|
|
4389
|
+
};
|
|
4390
|
+
}
|
|
4391
|
+
const r = result;
|
|
4392
|
+
return {
|
|
4393
|
+
root: {
|
|
4394
|
+
id: r.root.id,
|
|
4395
|
+
title: r.root.title,
|
|
4396
|
+
year: r.root.yearLabel,
|
|
4397
|
+
description: r.root.description
|
|
4398
|
+
},
|
|
4399
|
+
causes: r.nodes.filter((n) => n.direction === "cause").map((n) => ({
|
|
4400
|
+
id: n.event.id,
|
|
4401
|
+
title: n.event.title,
|
|
4402
|
+
year: n.event.yearLabel,
|
|
4403
|
+
hop: n.hop,
|
|
4404
|
+
relationship: n.via?.relationship,
|
|
4405
|
+
confidence: n.via?.confidence,
|
|
4406
|
+
evidence: n.via?.evidence
|
|
4407
|
+
})),
|
|
4408
|
+
effects: r.nodes.filter((n) => n.direction === "effect").map((n) => ({
|
|
4409
|
+
id: n.event.id,
|
|
4410
|
+
title: n.event.title,
|
|
4411
|
+
year: n.event.yearLabel,
|
|
4412
|
+
hop: n.hop,
|
|
4413
|
+
relationship: n.via?.relationship,
|
|
4414
|
+
confidence: n.via?.confidence,
|
|
4415
|
+
evidence: n.via?.evidence
|
|
4416
|
+
})),
|
|
4417
|
+
relatedPatterns: r.relatedInsights.map((i) => ({
|
|
4418
|
+
pattern: i.pattern,
|
|
4419
|
+
description: i.description,
|
|
4420
|
+
predictiveValue: i.predictiveValue
|
|
4421
|
+
})),
|
|
4422
|
+
meta: {
|
|
4423
|
+
totalNodes: r.nodes.length,
|
|
4424
|
+
totalLinks: r.links.length
|
|
4425
|
+
}
|
|
4426
|
+
};
|
|
4427
|
+
}
|
|
4428
|
+
};
|
|
4429
|
+
var historicalResonanceT = {
|
|
4430
|
+
name: "historical_resonance",
|
|
4431
|
+
description: 'Find historical patterns similar to a current situation. Useful for understanding contemporary events through historical parallels \u2014 e.g., "rapid AI adoption displacing knowledge workers" might resonate with the printing press disrupting clergy. Returns matched patterns with exemplar historical events and predictive value scores.',
|
|
4432
|
+
inputSchema: {
|
|
4433
|
+
type: "object",
|
|
4434
|
+
properties: {
|
|
4435
|
+
situation: {
|
|
4436
|
+
type: "string",
|
|
4437
|
+
description: "Free-text description of the current situation, technology shift, or social pattern you want to find historical parallels for."
|
|
4438
|
+
},
|
|
4439
|
+
domains: domainsSchema,
|
|
4440
|
+
maxResults: { type: "number", default: 3 }
|
|
4441
|
+
},
|
|
4442
|
+
required: ["situation"]
|
|
4443
|
+
},
|
|
4444
|
+
handler: (args, store) => {
|
|
4445
|
+
const result = historicalResonance(store, {
|
|
4446
|
+
situation: args.situation,
|
|
4447
|
+
domains: args.domains,
|
|
4448
|
+
maxResults: args.maxResults
|
|
4449
|
+
});
|
|
4450
|
+
return {
|
|
4451
|
+
matches: result.matches.map((m) => ({
|
|
4452
|
+
pattern: m.insight.pattern,
|
|
4453
|
+
description: m.insight.description,
|
|
4454
|
+
matchScore: Number(m.matchScore.toFixed(2)),
|
|
4455
|
+
predictiveValue: m.insight.predictiveValue,
|
|
4456
|
+
reasoning: m.reasoning,
|
|
4457
|
+
exemplars: m.exemplarEvents.map((e) => ({
|
|
4458
|
+
title: e.title,
|
|
4459
|
+
year: e.yearLabel,
|
|
4460
|
+
why: e.description.slice(0, 160)
|
|
4461
|
+
}))
|
|
4462
|
+
})),
|
|
4463
|
+
...result.matches.length === 0 && {
|
|
4464
|
+
hint: "No strong matches. Try adding more keywords or removing domain filters."
|
|
4465
|
+
}
|
|
4466
|
+
};
|
|
4467
|
+
}
|
|
4468
|
+
};
|
|
4469
|
+
var orgKnowledgeT = {
|
|
4470
|
+
name: "org_knowledge",
|
|
4471
|
+
description: "[Enterprise tier] Query the organization's internal causal knowledge graph \u2014 decisions, events, technical milestones, and their consequences. Returns events scoped to the org and the causal context linking them. Note: requires enterprise tier API key with org scope; returns empty result + message if no org graph configured.",
|
|
4472
|
+
inputSchema: {
|
|
4473
|
+
type: "object",
|
|
4474
|
+
properties: {
|
|
4475
|
+
query: { type: "string", description: "Free-text query for org-internal events." },
|
|
4476
|
+
orgId: { type: "string", description: "Organization identifier (provisioned by enterprise admin)." },
|
|
4477
|
+
team: { type: "string", description: "Optional team/department filter." },
|
|
4478
|
+
...yearRangeSchema
|
|
4479
|
+
},
|
|
4480
|
+
required: ["query", "orgId"]
|
|
4481
|
+
},
|
|
4482
|
+
handler: (args, store) => {
|
|
4483
|
+
return orgKnowledge(store, {
|
|
4484
|
+
query: args.query,
|
|
4485
|
+
orgId: args.orgId,
|
|
4486
|
+
team: args.team,
|
|
4487
|
+
yearFrom: args.yearFrom,
|
|
4488
|
+
yearTo: args.yearTo
|
|
4489
|
+
});
|
|
4490
|
+
}
|
|
4491
|
+
};
|
|
4492
|
+
var predictScenariosT = {
|
|
4493
|
+
name: "predict_scenarios",
|
|
4494
|
+
description: "Generate plausible future scenarios based on historical causal patterns and current conditions. Returns multiple scenario branches (optimistic / cautious / discontinuous) with probability estimates, reasoning, and historical basis. Useful for strategic planning, risk assessment, and stress-testing assumptions.",
|
|
4495
|
+
inputSchema: {
|
|
4496
|
+
type: "object",
|
|
4497
|
+
properties: {
|
|
4498
|
+
conditions: {
|
|
4499
|
+
type: "array",
|
|
4500
|
+
items: { type: "string" },
|
|
4501
|
+
description: 'List of current conditions or trends. e.g., ["AI capability accelerating", "open-source LLMs improving"].'
|
|
4502
|
+
},
|
|
4503
|
+
horizon: {
|
|
4504
|
+
type: "number",
|
|
4505
|
+
description: "Year horizon for scenarios. Default 2040.",
|
|
4506
|
+
default: 2040
|
|
4507
|
+
},
|
|
4508
|
+
domains: domainsSchema,
|
|
4509
|
+
maxScenarios: { type: "number", default: 3 }
|
|
4510
|
+
},
|
|
4511
|
+
required: ["conditions"]
|
|
4512
|
+
},
|
|
4513
|
+
handler: (args, store) => {
|
|
4514
|
+
const result = predictScenarios(store, {
|
|
4515
|
+
conditions: args.conditions,
|
|
4516
|
+
horizon: args.horizon,
|
|
4517
|
+
domains: args.domains,
|
|
4518
|
+
maxScenarios: args.maxScenarios
|
|
4519
|
+
});
|
|
4520
|
+
return {
|
|
4521
|
+
scenarios: result.scenarios.map((s) => ({
|
|
4522
|
+
name: s.name,
|
|
4523
|
+
probability: Number(s.probability.toFixed(2)),
|
|
4524
|
+
reasoning: s.reasoning,
|
|
4525
|
+
historicalBasis: s.historicalBasis,
|
|
4526
|
+
keyEvents: s.events.map((e) => ({
|
|
4527
|
+
title: e.title,
|
|
4528
|
+
year: e.yearLabel,
|
|
4529
|
+
forecastConfidence: e.forecastConfidence,
|
|
4530
|
+
description: e.description
|
|
4531
|
+
}))
|
|
4532
|
+
})),
|
|
4533
|
+
meta: {
|
|
4534
|
+
...result.basedOn,
|
|
4535
|
+
disclaimer: "Scenarios are derived from historical pattern matching, not guaranteed forecasts. Confidence reflects internal CKG calibration only."
|
|
4536
|
+
}
|
|
4537
|
+
};
|
|
4538
|
+
}
|
|
4539
|
+
};
|
|
4540
|
+
var ALL_TOOLS = [
|
|
4541
|
+
queryEventsT,
|
|
4542
|
+
causalChainT,
|
|
4543
|
+
historicalResonanceT,
|
|
4544
|
+
orgKnowledgeT,
|
|
4545
|
+
predictScenariosT
|
|
4546
|
+
];
|
|
4547
|
+
|
|
4548
|
+
export {
|
|
4549
|
+
CKGStore,
|
|
4550
|
+
loadSeed,
|
|
4551
|
+
ALL_TOOLS
|
|
4552
|
+
};
|