@instruments/taxonomy 1.9.0 → 1.10.0

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.
@@ -1,5 +1,5 @@
1
1
  export declare const RETRIEVAL_LEXICON_SOURCE = "colour-material lexicon in a materials-retrieval system (src-05)";
2
- export declare const COLORSCOPE_CROSSOVER_SOURCE = "materialinstruments/colorscope@c0662caabe7cd8604241a8a7b2608fa5bc71de51:packages/core/data/reference/v1/taxonomy.json";
2
+ export declare const COLORSCOPE_CROSSOVER_SOURCE = "materialinstruments/colorscope@5feb29b267a7954c135976ede8039f37121afd27:packages/core/data/reference/v1/taxonomy.json";
3
3
  export declare const BRASS_MATERIAL_SOURCE = "https://archive.copper.org/applications/industrial/DesignGuide/terms.php";
4
4
  export declare const BRASS_FINISH_SOURCE = "https://nickelinstitute.org/media/lxxh1zwr/2023-nickelplatinghandbooka5_printablepdf.pdf section 5";
5
5
  export declare const NICKEL_MATERIAL_SOURCE = "https://nickelinstitute.org/en/nickel-applications/";
package/dist/index.js CHANGED
@@ -1396,7 +1396,7 @@ var ELEMENT_TERMS = [
1396
1396
 
1397
1397
  // src/crossover-sources.ts
1398
1398
  var RETRIEVAL_LEXICON_SOURCE = "colour-material lexicon in a materials-retrieval system (src-05)";
1399
- var COLORSCOPE_CROSSOVER_SOURCE = "materialinstruments/colorscope@c0662caabe7cd8604241a8a7b2608fa5bc71de51:packages/core/data/reference/v1/taxonomy.json";
1399
+ var COLORSCOPE_CROSSOVER_SOURCE = "materialinstruments/colorscope@5feb29b267a7954c135976ede8039f37121afd27:packages/core/data/reference/v1/taxonomy.json";
1400
1400
  var BRASS_MATERIAL_SOURCE = "https://archive.copper.org/applications/industrial/DesignGuide/terms.php";
1401
1401
  var BRASS_FINISH_SOURCE = "https://nickelinstitute.org/media/lxxh1zwr/2023-nickelplatinghandbooka5_printablepdf.pdf section 5";
1402
1402
  var NICKEL_MATERIAL_SOURCE = "https://nickelinstitute.org/en/nickel-applications/";
@@ -11756,8 +11756,8 @@ var resolveReference = (reference) => INDEX.byKey.get(canonicalKey(reference));
11756
11756
 
11757
11757
  // src/v1.ts
11758
11758
  var TAXONOMY_BASE_URI = "https://taxonomy.materialinstruments.com";
11759
- var TAXONOMY_SNAPSHOT = "2026-09-27";
11760
- var TAXONOMY_VERSION = "1.9.0";
11759
+ var TAXONOMY_SNAPSHOT = "2026-09-28";
11760
+ var TAXONOMY_VERSION = "1.10.0";
11761
11761
  var PUBLISHED_V1_BASELINE = "2026-08-30";
11762
11762
  var TAX45_REVIEW_SNAPSHOT = "2026-08-31";
11763
11763
  var LIMESTONE_INTRODUCED = "2026-09-01";
@@ -12037,7 +12037,7 @@ var WALNUT_MATERIAL = {
12037
12037
  uri: `${TAXONOMY_BASE_URI}/id/material/walnut`
12038
12038
  };
12039
12039
  var WALNUT_COLOUR = {
12040
- ...colorScope("brown-grayish-walnut", NAMED_COLOR_REFERENCE_KIND),
12040
+ ...colorScope("walnut", NAMED_COLOR_REFERENCE_KIND),
12041
12041
  role: "secondary"
12042
12042
  };
12043
12043
  var ordered = (path, role) => ({
@@ -12061,9 +12061,10 @@ var HIERARCHY_REVIEW_LIFECYCLE = {
12061
12061
  };
12062
12062
  var AMBIGUITY_GOVERNANCE = "Taxonomy preserves the governed readings without assigning a default, role, contextual preference, or consumer route.";
12063
12063
  var ORDERED_READING_GOVERNANCE = "The two readings are deliberately separate; the default records trade usage and does not merge the concepts.";
12064
+ var TAX_1_9_0_DATE = "2026-09-27";
12064
12065
  var TAXONOMY_SNAPSHOT_LIFECYCLE = {
12065
- introducedAt: TAXONOMY_SNAPSHOT,
12066
- reviewedAt: TAXONOMY_SNAPSHOT,
12066
+ introducedAt: TAX_1_9_0_DATE,
12067
+ reviewedAt: TAX_1_9_0_DATE,
12067
12068
  status: "active"
12068
12069
  };
12069
12070
  var TAX57_DATE4 = "2026-09-26";
@@ -12081,7 +12082,7 @@ var REVIEW_LIFECYCLE = {
12081
12082
  status: "active"
12082
12083
  };
12083
12084
  var REVIEW_SOURCE9 = "everyday-interiors vocabulary review";
12084
- var COLORSCOPE_INSTALLED = "@instruments/colorscope 7.6.0 data/reference/v1/taxonomy.json";
12085
+ var COLORSCOPE_INSTALLED = "@instruments/colorscope 9.4.0 data/reference/v1/taxonomy.json";
12085
12086
  var reviewedTaxonomy = (path) => ({
12086
12087
  authority: "taxonomy",
12087
12088
  uri: `${TAXONOMY_BASE_URI}/id/${path}`
@@ -12105,6 +12106,30 @@ var referencedCrossover = (phrase, taxonomyPath, colorScopeIdentifier, explanati
12105
12106
  ...additionalReadings
12106
12107
  ]
12107
12108
  });
12109
+ var WOOD_HANDBOOK5 = "USDA Wood Handbook (2021), chapter 2";
12110
+ var colorscope940Crossover = (phrase, taxonomyPath, colorScopeIdentifier, explanation, definitionSource, additionalReadings = []) => ({
12111
+ explanation,
12112
+ governance: lexicalGovernance(
12113
+ AMBIGUITY_GOVERNANCE,
12114
+ {
12115
+ basis: "referenced",
12116
+ snapshot: TAXONOMY_SNAPSHOT,
12117
+ source: `${definitionSource}; ${COLORSCOPE_INSTALLED} concept ${colorScopeIdentifier}`
12118
+ },
12119
+ {
12120
+ introducedAt: TAXONOMY_SNAPSHOT,
12121
+ reviewedAt: TAXONOMY_SNAPSHOT,
12122
+ status: "active"
12123
+ }
12124
+ ),
12125
+ outcome: "ambiguous",
12126
+ phrase,
12127
+ readings: [
12128
+ reviewedTaxonomy(taxonomyPath),
12129
+ colorScope(colorScopeIdentifier, NAMED_COLOR_REFERENCE_KIND),
12130
+ ...additionalReadings
12131
+ ]
12132
+ });
12108
12133
  var crossoverAmbiguity = (phrase, taxonomyUri, colorScopeIdentifier, explanation, source, additionalTaxonomyUris = []) => ({
12109
12134
  explanation,
12110
12135
  governance: lexicalGovernance(
@@ -12227,14 +12252,14 @@ var AUTHORED_LEXICAL_ENTRIES = [
12227
12252
  crossoverAmbiguity(
12228
12253
  "alabaster",
12229
12254
  `${TAXONOMY_BASE_URI}/id/material/alabaster`,
12230
- "cream-soft-cream-white",
12231
- "Alabaster can name decorative gypsum stone or an explicit ColorScope alias for Cream White; neither reading establishes the other.",
12232
- crossoverSource("alabaster")
12255
+ "alabaster",
12256
+ "Alabaster can name decorative gypsum stone or the ColorScope named colour Alabaster; neither reading establishes the other.",
12257
+ `${crossoverSource("alabaster")}; @instruments/colorscope 9.4.0 id "alabaster", family cream, matching the retired "cream-soft-cream-white" reading's cream family`
12233
12258
  ),
12234
12259
  crossoverAmbiguity(
12235
12260
  "brass",
12236
12261
  `${TAXONOMY_BASE_URI}/id/material/brass`,
12237
- "yellow-warm-brass",
12262
+ "brass",
12238
12263
  "Brass can name a copper-zinc alloy, an exposed applied brass finish, or a ColorScope named colour; none establishes either of the others.",
12239
12264
  crossoverSource("brass"),
12240
12265
  [`${TAXONOMY_BASE_URI}/id/finish/treatment/brass`]
@@ -12242,105 +12267,105 @@ var AUTHORED_LEXICAL_ENTRIES = [
12242
12267
  crossoverAmbiguity(
12243
12268
  "bronze",
12244
12269
  `${TAXONOMY_BASE_URI}/id/material/bronze`,
12245
- "brown-mid-bronze",
12270
+ "bronze",
12246
12271
  "Bronze can name a copper-alloy family or a ColorScope named colour; the unmodified word does not identify a specific composition.",
12247
12272
  crossoverSource("bronze")
12248
12273
  ),
12249
12274
  crossoverAmbiguity(
12250
12275
  "chrome",
12251
12276
  `${TAXONOMY_BASE_URI}/id/finish/treatment/chrome`,
12252
- "gray-pale-chrome",
12277
+ "chrome",
12253
12278
  "Chrome can name a metallic chromium coating or a ColorScope named colour; it is not silently normalized to chromium as a material.",
12254
12279
  crossoverSource("chrome")
12255
12280
  ),
12256
12281
  crossoverAmbiguity(
12257
12282
  "cherry",
12258
12283
  `${TAXONOMY_BASE_URI}/id/material/cherry`,
12259
- "red-warm-cherry-red",
12260
- "Cherry can name timber or an explicit ColorScope alias for Cherry Red; the common name does not prove species or colour.",
12261
- crossoverSource("cherry")
12284
+ "cherry",
12285
+ "Cherry can name timber or the ColorScope named colour Cherry; the common name does not prove species or colour.",
12286
+ `${crossoverSource("cherry")}; @instruments/colorscope 9.4.0 id "cherry", family red, matching the retired "red-warm-cherry-red" reading's red family`
12262
12287
  ),
12263
12288
  crossoverAmbiguity(
12264
12289
  "chestnut",
12265
12290
  `${TAXONOMY_BASE_URI}/id/material/chestnut`,
12266
- "brown-warm-chestnut",
12291
+ "chestnut",
12267
12292
  "Chestnut can name timber or a ColorScope named colour; neither reading proves species, construction, or appearance.",
12268
12293
  crossoverSource("chestnut")
12269
12294
  ),
12270
12295
  crossoverAmbiguity(
12271
12296
  "clay",
12272
12297
  `${TAXONOMY_BASE_URI}/id/material/clay`,
12273
- "orange-warm-clay",
12298
+ "clay",
12274
12299
  "Clay can name a fine-grained earthy material or a ColorScope named colour; the word alone proves neither firing nor appearance.",
12275
12300
  crossoverSource("clay")
12276
12301
  ),
12277
12302
  crossoverAmbiguity(
12278
12303
  "copper",
12279
12304
  `${TAXONOMY_BASE_URI}/id/material/copper`,
12280
- "brown-mid-copper",
12305
+ "copper",
12281
12306
  "Copper can name a metal or a ColorScope named colour; colour resemblance does not establish copper content.",
12282
12307
  crossoverSource("copper")
12283
12308
  ),
12284
12309
  crossoverAmbiguity(
12285
12310
  "denim",
12286
12311
  `${TAXONOMY_BASE_URI}/id/material/denim`,
12287
- "blue-vivid-denim",
12312
+ "denim",
12288
12313
  "Denim can name a woven fabric construction or a ColorScope named colour; denim need not be blue.",
12289
12314
  crossoverSource("denim")
12290
12315
  ),
12291
12316
  crossoverAmbiguity(
12292
12317
  "ebony",
12293
12318
  `${TAXONOMY_BASE_URI}/id/material/ebony`,
12294
- "black-warm-ebony",
12319
+ "ebony",
12295
12320
  "Ebony can name traded timber or a ColorScope named colour; the trade name does not prove botanical identity or black colour.",
12296
12321
  crossoverSource("ebony")
12297
12322
  ),
12298
12323
  crossoverAmbiguity(
12299
12324
  "gold",
12300
12325
  `${TAXONOMY_BASE_URI}/id/material/gold`,
12301
- "yellow-bright-gold",
12326
+ "gold",
12302
12327
  "Gold can name the metallic element or a ColorScope named colour; appearance does not establish composition or coating.",
12303
12328
  crossoverSource("gold")
12304
12329
  ),
12305
12330
  crossoverAmbiguity(
12306
12331
  "gunmetal",
12307
12332
  `${TAXONOMY_BASE_URI}/id/material/gunmetal`,
12308
- "gray-muted-gunmetal",
12333
+ "gunmetal",
12309
12334
  "Gunmetal can name a casting-alloy family or a ColorScope named colour; grade and appearance remain separate claims.",
12310
12335
  crossoverSource("gunmetal")
12311
12336
  ),
12312
12337
  crossoverAmbiguity(
12313
12338
  "iron",
12314
12339
  `${TAXONOMY_BASE_URI}/id/material/iron`,
12315
- "gray-dark-iron",
12340
+ "iron",
12316
12341
  "Iron can name the metallic element or a ColorScope named colour; the bare word does not settle material form or appearance.",
12317
12342
  crossoverSource("iron")
12318
12343
  ),
12319
12344
  crossoverAmbiguity(
12320
12345
  "jade",
12321
12346
  `${TAXONOMY_BASE_URI}/id/material/jade`,
12322
- "green-mid-jade",
12347
+ "jade",
12323
12348
  "Jade can name an umbrella gem material or a ColorScope named colour; jade is not one mineral and need not be green.",
12324
12349
  crossoverSource("jade")
12325
12350
  ),
12326
12351
  crossoverAmbiguity(
12327
12352
  "linen",
12328
12353
  `${TAXONOMY_BASE_URI}/id/material/linen`,
12329
- "cream-pale-linen",
12354
+ "linen",
12330
12355
  "Linen can name a flax-derived material or a ColorScope named colour; colour does not establish fibre composition.",
12331
12356
  crossoverSource("linen")
12332
12357
  ),
12333
12358
  crossoverAmbiguity(
12334
12359
  "mahogany",
12335
12360
  `${TAXONOMY_BASE_URI}/id/material/mahogany`,
12336
- "brown-dark-mahogany",
12361
+ "mahogany",
12337
12362
  "Mahogany can name commercially grouped timber or a ColorScope named colour; neither reading proves species or appearance.",
12338
12363
  crossoverSource("mahogany")
12339
12364
  ),
12340
12365
  crossoverAmbiguity(
12341
12366
  "nickel",
12342
12367
  `${TAXONOMY_BASE_URI}/id/material/nickel`,
12343
- "gray-muted-nickel",
12368
+ "nickel",
12344
12369
  "Nickel can name a bulk metallic material, an electrodeposited finish, or a ColorScope named colour; the bare word does not select among them.",
12345
12370
  crossoverSource("nickel"),
12346
12371
  [`${TAXONOMY_BASE_URI}/id/finish/treatment/nickel`]
@@ -12348,63 +12373,63 @@ var AUTHORED_LEXICAL_ENTRIES = [
12348
12373
  crossoverAmbiguity(
12349
12374
  "obsidian",
12350
12375
  `${TAXONOMY_BASE_URI}/id/material/obsidian`,
12351
- "black-cool-obsidian",
12376
+ "obsidian",
12352
12377
  "Obsidian can name volcanic glass or a ColorScope named colour; the material is not necessarily black.",
12353
12378
  crossoverSource("obsidian")
12354
12379
  ),
12355
12380
  crossoverAmbiguity(
12356
12381
  "onyx",
12357
12382
  `${TAXONOMY_BASE_URI}/id/material/onyx`,
12358
- "black-warm-onyx",
12383
+ "onyx",
12359
12384
  "Onyx can name commercial architectural stone or a ColorScope named colour; architectural onyx is not necessarily black.",
12360
12385
  crossoverSource("onyx")
12361
12386
  ),
12362
12387
  crossoverAmbiguity(
12363
12388
  "pewter",
12364
12389
  `${TAXONOMY_BASE_URI}/id/material/pewter`,
12365
- "gray-soft-pewter",
12390
+ "pewter",
12366
12391
  "Pewter can name a variable tin-alloy family or a ColorScope named colour; composition and appearance remain separate.",
12367
12392
  crossoverSource("pewter")
12368
12393
  ),
12369
12394
  crossoverAmbiguity(
12370
12395
  "platinum",
12371
12396
  `${TAXONOMY_BASE_URI}/id/material/platinum`,
12372
- "gray-light-platinum",
12397
+ "platinum",
12373
12398
  "Platinum can name a metal or a ColorScope named colour; solid metal, plating, and appearance require separate evidence.",
12374
12399
  crossoverSource("platinum")
12375
12400
  ),
12376
12401
  crossoverAmbiguity(
12377
12402
  "rosewood",
12378
12403
  `${TAXONOMY_BASE_URI}/id/material/rosewood`,
12379
- "red-dark-rosewood",
12404
+ "rosewood",
12380
12405
  "Rosewood can name traded timber or a ColorScope named colour; species and appearance remain separate claims.",
12381
12406
  crossoverSource("rosewood")
12382
12407
  ),
12383
12408
  crossoverAmbiguity(
12384
12409
  "silver",
12385
12410
  `${TAXONOMY_BASE_URI}/id/material/silver`,
12386
- "gray-light-silver",
12411
+ "silver",
12387
12412
  "Silver can name the metallic element or a ColorScope named colour; appearance does not establish elemental silver.",
12388
12413
  crossoverSource("silver")
12389
12414
  ),
12390
12415
  crossoverAmbiguity(
12391
12416
  "slate",
12392
12417
  `${TAXONOMY_BASE_URI}/id/material/slate`,
12393
- "gray-muted-slate",
12394
- "Slate can name dimension stone or a ColorScope named colour; neither reading implies the other.",
12395
- crossoverSource("slate")
12418
+ "slate-gray",
12419
+ "Slate can name dimension stone or the ColorScope named colour Slate Gray; neither reading implies the other.",
12420
+ `${crossoverSource("slate")}; @instruments/colorscope 9.4.0 offers "slate-blue" (family blue) and "slate-gray" (family gray); "slate-gray" decided, matching the retired "gray-muted-slate" reading's gray family`
12396
12421
  ),
12397
12422
  crossoverAmbiguity(
12398
12423
  "steel",
12399
12424
  `${TAXONOMY_BASE_URI}/id/material/steel`,
12400
- "gray-cool-steel",
12425
+ "steel",
12401
12426
  "Steel can name an iron-carbon alloy family or a ColorScope named colour; appearance does not identify a steel grade.",
12402
12427
  crossoverSource("steel")
12403
12428
  ),
12404
12429
  crossoverAmbiguity(
12405
12430
  "stone",
12406
12431
  `${TAXONOMY_BASE_URI}/id/material/stone`,
12407
- "taupe-warm-stone",
12432
+ "stone",
12408
12433
  "Stone can name a specific building material, a retrieval-oriented material family, or a ColorScope named colour; none is a consumer route.",
12409
12434
  crossoverSource("stone"),
12410
12435
  [`${TAXONOMY_BASE_URI}/id/material-family/stone`]
@@ -12412,7 +12437,7 @@ var AUTHORED_LEXICAL_ENTRIES = [
12412
12437
  crossoverAmbiguity(
12413
12438
  "terracotta",
12414
12439
  `${TAXONOMY_BASE_URI}/id/material/terracotta`,
12415
- "orange-mid-terracotta",
12440
+ "terracotta",
12416
12441
  "Terracotta can name a fired-clay material or a ColorScope named colour; firing and composition do not establish orange appearance.",
12417
12442
  crossoverSource("terracotta")
12418
12443
  ),
@@ -12423,7 +12448,7 @@ var AUTHORED_LEXICAL_ENTRIES = [
12423
12448
  {
12424
12449
  basis: "referenced",
12425
12450
  snapshot: REVIEW_DATE12,
12426
- source: `Wikidata Q40089 brick, https://www.wikidata.org/wiki/Q40089; ${COLORSCOPE_INSTALLED} concept red-mid-brick`
12451
+ source: `Wikidata Q40089 brick, https://www.wikidata.org/wiki/Q40089; ${COLORSCOPE_INSTALLED} concept brick`
12427
12452
  },
12428
12453
  REVIEW_LIFECYCLE
12429
12454
  ),
@@ -12431,7 +12456,7 @@ var AUTHORED_LEXICAL_ENTRIES = [
12431
12456
  phrase: "brick",
12432
12457
  readings: [
12433
12458
  reviewedTaxonomy("material/brick"),
12434
- colorScope("red-mid-brick", NAMED_COLOR_REFERENCE_KIND)
12459
+ colorScope("brick", NAMED_COLOR_REFERENCE_KIND)
12435
12460
  ]
12436
12461
  },
12437
12462
  // Colour-material crossovers found by comparing every material label with the installed
@@ -12440,7 +12465,7 @@ var AUTHORED_LEXICAL_ENTRIES = [
12440
12465
  referencedCrossover(
12441
12466
  "porcelain",
12442
12467
  "material/porcelain",
12443
- "white-off-porcelain",
12468
+ "porcelain",
12444
12469
  "Porcelain can name a vitrified ceramic body or a ColorScope named colour; the colour does not establish the body.",
12445
12470
  "ISO 13006:2018; ANSI A137.1",
12446
12471
  PUBLISHED_V1_BASELINE
@@ -12448,7 +12473,7 @@ var AUTHORED_LEXICAL_ENTRIES = [
12448
12473
  referencedCrossover(
12449
12474
  "sand",
12450
12475
  "material/sand",
12451
- "beige-muted-sand",
12476
+ "sand",
12452
12477
  "Sand can name loose mineral grains, a ColorScope named colour, or the beige colour family ColorScope lists it under; none implies another.",
12453
12478
  "ISO 14688-1:2017",
12454
12479
  PUBLISHED_V1_BASELINE,
@@ -12457,30 +12482,173 @@ var AUTHORED_LEXICAL_ENTRIES = [
12457
12482
  referencedCrossover(
12458
12483
  "camel",
12459
12484
  "material/camel-hair",
12460
- "beige-cream-camel",
12485
+ "camel",
12461
12486
  "Camel can name hair from a camel or a ColorScope named colour; the fibre need not be that colour.",
12462
12487
  "Regulation (EU) No 1007/2011 Annex I row 2"
12463
12488
  ),
12464
12489
  referencedCrossover(
12465
12490
  "ash",
12466
12491
  "material/ash",
12467
- "gray-light-ash-gray",
12468
- "Ash can name timber of the genus Fraxinus or an alias of the ColorScope named colour Ash Gray; neither reading implies the other.",
12469
- "USDA Wood Handbook (2021), chapter 2"
12492
+ "ash",
12493
+ "Ash can name timber of the genus Fraxinus or the ColorScope named colour Ash; neither reading implies the other.",
12494
+ `USDA Wood Handbook (2021), chapter 2; @instruments/colorscope 9.4.0 id "ash", family gray, matching the retired "gray-light-ash-gray" reading's gray family`
12470
12495
  ),
12471
12496
  referencedCrossover(
12472
12497
  "eucalyptus",
12473
12498
  "material/eucalyptus",
12474
- "green-grayish-eucalyptus",
12499
+ "eucalyptus",
12475
12500
  "Eucalyptus can name timber of the genus Eucalyptus or a ColorScope named colour; neither reading implies the other.",
12476
12501
  "EN 13556:2003"
12477
12502
  ),
12478
12503
  referencedCrossover(
12479
12504
  "pine",
12480
12505
  "material/pine",
12481
- "green-deep-pine",
12482
- "Pine can name timber of the genus Pinus or a ColorScope named colour; neither reading implies the other.",
12483
- "USDA Wood Handbook (2021), chapter 2"
12506
+ "pine-green",
12507
+ "Pine can name timber of the genus Pinus or the ColorScope named colour Pine Green; neither reading implies the other.",
12508
+ `USDA Wood Handbook (2021), chapter 2; @instruments/colorscope 9.4.0 has no flat "pine" id, so id "pine-green" (family green), matching the retired "green-deep-pine" reading's green family`
12509
+ ),
12510
+ // ColorScope 9.4.0 crossovers, found by re-running the 2026-09-22 comparison against the
12511
+ // installed 9.4.0 release. `chromium` reads against ColorScope's own alias, not a separate
12512
+ // colour: 9.4.0's `chrome` colour carries the alias "Chromium", so the material label collides
12513
+ // with `chrome`'s identity, not with a colour named `chromium`. It is a different phrase from
12514
+ // `chrome` itself, whose two taxonomy readings (a finish and a material) are unrelated to
12515
+ // `material/chromium`.
12516
+ colorscope940Crossover(
12517
+ "granite",
12518
+ "material/granite",
12519
+ "granite",
12520
+ "Granite can name the quarried igneous rock or the ColorScope named colour Granite; neither reading implies the other.",
12521
+ "Wikidata Q41177 granite, https://www.wikidata.org/wiki/Q41177"
12522
+ ),
12523
+ colorscope940Crossover(
12524
+ "sandstone",
12525
+ "material/sandstone",
12526
+ "sandstone",
12527
+ "Sandstone can name the quarried sedimentary rock or the ColorScope named colour Sandstone; neither reading implies the other.",
12528
+ "Wikidata Q13085 sandstone, https://www.wikidata.org/wiki/Q13085"
12529
+ ),
12530
+ colorscope940Crossover(
12531
+ "basalt",
12532
+ "material/basalt",
12533
+ "basalt",
12534
+ "Basalt can name the quarried volcanic rock or the ColorScope named colour Basalt; neither reading implies the other.",
12535
+ "Wikidata Q43338 basalt, https://www.wikidata.org/wiki/Q43338"
12536
+ ),
12537
+ colorscope940Crossover(
12538
+ "soapstone",
12539
+ "material/soapstone",
12540
+ "soapstone",
12541
+ "Soapstone can name the quarried talc-rich rock or the ColorScope named colour Soapstone; neither reading implies the other.",
12542
+ "Wikidata Q707896 soapstone, https://www.wikidata.org/wiki/Q707896"
12543
+ ),
12544
+ colorscope940Crossover(
12545
+ "hemp",
12546
+ "material/hemp",
12547
+ "hemp",
12548
+ "Hemp can name the Cannabis sativa bast fibre or the ColorScope named colour Hemp; neither reading implies the other.",
12549
+ "Wikidata Q13414920 hemp fiber, https://www.wikidata.org/wiki/Q13414920"
12550
+ ),
12551
+ colorscope940Crossover(
12552
+ "rattan",
12553
+ "material/rattan",
12554
+ "rattan",
12555
+ "Rattan can name the climbing-palm stem material or the ColorScope named colour Rattan; neither reading implies the other.",
12556
+ "Wikidata Q323021 rattan, https://www.wikidata.org/wiki/Q323021"
12557
+ ),
12558
+ colorscope940Crossover(
12559
+ "gypsum",
12560
+ "material/gypsum",
12561
+ "gypsum",
12562
+ "Gypsum can name the mineral calcium sulfate dihydrate or the ColorScope named colour Gypsum; neither reading implies the other.",
12563
+ "EN 13279-1:2008"
12564
+ ),
12565
+ colorscope940Crossover(
12566
+ "cement",
12567
+ "material/cement",
12568
+ "cement",
12569
+ "Cement can name the hydraulic binder or the ColorScope named colour Cement; neither reading implies the other.",
12570
+ "EN 197-1:2011"
12571
+ ),
12572
+ colorscope940Crossover(
12573
+ "carbon black",
12574
+ "material/carbon-black",
12575
+ "carbon-black",
12576
+ "Carbon black can name the pigment and reinforcing filler or the ColorScope named colour Carbon Black; neither reading implies the other.",
12577
+ "CAS Registry 1333-86-4"
12578
+ ),
12579
+ colorscope940Crossover(
12580
+ "titanium white",
12581
+ "material/titanium-dioxide",
12582
+ "titanium-white",
12583
+ "Titanium white can name the titanium dioxide pigment or the ColorScope named colour Titanium White; neither reading implies the other.",
12584
+ "CAS Registry 13463-67-7"
12585
+ ),
12586
+ colorscope940Crossover(
12587
+ "chromium",
12588
+ "material/chromium",
12589
+ "chrome",
12590
+ 'Chromium can name the metallic element or the ColorScope named colour Chrome, of which "Chromium" is an alias; neither reading implies the other.',
12591
+ "CAS Registry 7440-47-3"
12592
+ ),
12593
+ // `shell` and `seashell` are one material term (`material/shell`) with two label forms, and
12594
+ // 9.4.0 gives each its own, different colour: `shell` collides with Shell Pink, `seashell` with
12595
+ // the separate colour Seashell. Two phrases, not one, because the two labels now resolve to two
12596
+ // different colours.
12597
+ colorscope940Crossover(
12598
+ "shell",
12599
+ "material/shell",
12600
+ "shell-pink",
12601
+ "Shell can name the mollusc-shell material or the ColorScope named colour Shell Pink; neither reading implies the other.",
12602
+ "Wikidata Q213096 seashell, https://www.wikidata.org/wiki/Q213096"
12603
+ ),
12604
+ colorscope940Crossover(
12605
+ "seashell",
12606
+ "material/shell",
12607
+ "seashell",
12608
+ "Seashell can name the mollusc-shell material or the ColorScope named colour Seashell; neither reading implies the other.",
12609
+ "Wikidata Q213096 seashell, https://www.wikidata.org/wiki/Q213096"
12610
+ ),
12611
+ colorscope940Crossover(
12612
+ "cashmere",
12613
+ "material/cashmere",
12614
+ "cashmere",
12615
+ "Cashmere can name the goat-hair fibre or the ColorScope named colour Cashmere; neither reading implies the other.",
12616
+ "Regulation (EU) No 1007/2011 Annex I row 2"
12617
+ ),
12618
+ colorscope940Crossover(
12619
+ "hickory",
12620
+ "material/hickory",
12621
+ "hickory",
12622
+ "Hickory can name timber of the genus Carya or the ColorScope named colour Hickory; neither reading implies the other.",
12623
+ WOOD_HANDBOOK5
12624
+ ),
12625
+ colorscope940Crossover(
12626
+ "pear",
12627
+ "material/pear",
12628
+ "pear",
12629
+ "Pear can name timber of Pyrus communis or the ColorScope named colour Pear; neither reading implies the other.",
12630
+ WOOD_HANDBOOK5
12631
+ ),
12632
+ colorscope940Crossover(
12633
+ "pecan",
12634
+ "material/carya-illinoinensis",
12635
+ "pecan",
12636
+ "Pecan can name timber of Carya illinoinensis or the ColorScope named colour Pecan; neither reading implies the other.",
12637
+ WOOD_HANDBOOK5
12638
+ ),
12639
+ colorscope940Crossover(
12640
+ "cedar",
12641
+ "material/cedar",
12642
+ "cedar",
12643
+ "Cedar can name softwood traded as cedar or the ColorScope named colour Cedar; neither reading implies the other.",
12644
+ WOOD_HANDBOOK5
12645
+ ),
12646
+ colorscope940Crossover(
12647
+ "redwood",
12648
+ "material/redwood",
12649
+ "redwood",
12650
+ "Redwood can name timber of Sequoia sempervirens or the ColorScope named colour Redwood; neither reading implies the other.",
12651
+ WOOD_HANDBOOK5
12484
12652
  ),
12485
12653
  // Quartz and melamine each name two materials in one word, and the trade uses the word for one
12486
12654
  // of them first: `quartz` is the engineered surfacing before the mineral, `melamine` the faced
@@ -12543,10 +12711,11 @@ var AUTHORED_LEXICAL_ENTRIES = [
12543
12711
  phrase: "plaster",
12544
12712
  target: reviewedTaxonomy("material/plaster")
12545
12713
  },
12546
- crossoverEquivalent(
12714
+ crossoverAmbiguity(
12547
12715
  "cotton",
12548
12716
  `${TAXONOMY_BASE_URI}/id/material/cotton`,
12549
- "Cotton has one governed material reading in this corpus; fibre identity does not establish weave, blend, dye, or finish, and ColorScope 7.3 has no exact named-colour identity.",
12717
+ "cotton",
12718
+ "Cotton can name the plant fibre or the ColorScope named colour Cotton; fibre identity does not establish weave, blend, dye, or finish, and neither reading implies the other.",
12550
12719
  crossoverSource("cotton")
12551
12720
  ),
12552
12721
  crossoverTaxonomyAmbiguity(
@@ -12567,16 +12736,18 @@ var AUTHORED_LEXICAL_ENTRIES = [
12567
12736
  "Wood names both a retrieval-oriented material family and a specific lignocellulosic material; neither reading establishes species, construction, stain, oil, or coating, and ColorScope 7.3 has no exact named-colour identity.",
12568
12737
  crossoverSource("wood")
12569
12738
  ),
12570
- crossoverEquivalent(
12739
+ crossoverAmbiguity(
12571
12740
  "jute",
12572
12741
  `${TAXONOMY_BASE_URI}/id/material/jute`,
12573
- "Jute has one governed material reading in this corpus; construction, blend, treatment, and colour remain unspecified, and ColorScope 7.3 has no exact named-colour identity.",
12742
+ "jute",
12743
+ "Jute can name the plant bast fibre or the ColorScope named colour Jute; construction, blend, treatment, and colour remain unspecified, and neither reading implies the other.",
12574
12744
  crossoverSource("jute")
12575
12745
  ),
12576
- crossoverEquivalent(
12746
+ crossoverAmbiguity(
12577
12747
  "sisal",
12578
12748
  `${TAXONOMY_BASE_URI}/id/material/sisal`,
12579
- "Sisal has one governed material reading in this corpus; fibre and products made from it remain distinct, and ColorScope 7.3 has no exact named-colour identity.",
12749
+ "sisal",
12750
+ "Sisal can name the plant fibre or the ColorScope named colour Sisal; fibre and products made from it remain distinct, and neither reading implies the other.",
12580
12751
  crossoverSource("sisal")
12581
12752
  ),
12582
12753
  crossoverEquivalent(
@@ -12597,19 +12768,19 @@ var AUTHORED_LEXICAL_ENTRIES = [
12597
12768
  "Suede has one governed leather-material reading in this corpus; it does not establish a suede-look finish on another substrate, and ColorScope 7.3 has no exact named-colour identity.",
12598
12769
  crossoverSource("suede")
12599
12770
  ),
12600
- crossoverTaxonomyAmbiguity(
12771
+ crossoverAmbiguity(
12601
12772
  "concrete",
12602
- [
12603
- `${TAXONOMY_BASE_URI}/id/material-family/concrete`,
12604
- `${TAXONOMY_BASE_URI}/id/material/concrete`
12605
- ],
12606
- "Concrete names both a retrieval-oriented material family and a specific cement-and-aggregate composite; neither reading establishes mix, reinforcement, coating, polish, or imitation, and ColorScope 7.3 has no exact named-colour identity.",
12607
- crossoverSource("concrete")
12773
+ `${TAXONOMY_BASE_URI}/id/material-family/concrete`,
12774
+ "concrete",
12775
+ "Concrete names both a retrieval-oriented material family and a specific cement-and-aggregate composite, or the ColorScope named colour Concrete; neither reading establishes mix, reinforcement, coating, polish, or imitation, and none implies another.",
12776
+ crossoverSource("concrete"),
12777
+ [`${TAXONOMY_BASE_URI}/id/material/concrete`]
12608
12778
  ),
12609
- crossoverEquivalent(
12779
+ crossoverAmbiguity(
12610
12780
  "travertine",
12611
12781
  `${TAXONOMY_BASE_URI}/id/material/travertine`,
12612
- "Travertine has one governed dimension-stone reading in this corpus; quarry, grade, fill, cut, and surface treatment remain unspecified, and ColorScope 7.3 has no exact named-colour identity.",
12782
+ "travertine",
12783
+ "Travertine can name the dimension stone or the ColorScope named colour Travertine; quarry, grade, fill, cut, and surface treatment remain unspecified, and neither reading implies the other.",
12613
12784
  crossoverSource("travertine")
12614
12785
  ),
12615
12786
  crossoverEquivalent(
@@ -12618,28 +12789,46 @@ var AUTHORED_LEXICAL_ENTRIES = [
12618
12789
  "Marble has one governed commercial dimension-stone reading in this corpus; its scientific and commercial boundaries remain explicit, and ColorScope 7.3 has no exact named-colour identity.",
12619
12790
  crossoverSource("marble")
12620
12791
  ),
12621
- crossoverEquivalent(
12622
- "limestone",
12623
- `${TAXONOMY_BASE_URI}/id/material/limestone`,
12624
- "Limestone has one governed carbonate-stone reading in this corpus; formation, quarry, grade, cut, finish, and similarly named paint identities remain separate, and ColorScope 7.3 has no exact named-colour identity.",
12625
- crossoverSource("limestone"),
12626
- LIMESTONE_INTRODUCED,
12627
- {
12628
- introducedAt: LIMESTONE_INTRODUCED,
12629
- reviewedAt: LIMESTONE_INTRODUCED,
12630
- status: "active"
12631
- }
12632
- ),
12633
- crossoverEquivalent(
12792
+ {
12793
+ // Written inline rather than through `crossoverAmbiguity`, which stamps a fixed evidenced
12794
+ // snapshot: limestone was introduced later than the rest of this batch (2026-09-01, ADR-dated)
12795
+ // and keeps that date now that ColorScope 9.4.0 gives it a colour reading too.
12796
+ explanation: "Limestone can name the carbonate stone or the ColorScope named colour Limestone; formation, quarry, grade, cut, finish, and similarly named paint identities remain separate, and neither reading implies the other.",
12797
+ governance: lexicalGovernance(
12798
+ "Taxonomy preserves the evidenced readings without assigning a default, role, contextual preference, or consumer route.",
12799
+ {
12800
+ basis: "evidenced",
12801
+ snapshot: LIMESTONE_INTRODUCED,
12802
+ source: crossoverSource("limestone")
12803
+ },
12804
+ {
12805
+ introducedAt: LIMESTONE_INTRODUCED,
12806
+ reviewedAt: LIMESTONE_INTRODUCED,
12807
+ status: "active"
12808
+ }
12809
+ ),
12810
+ outcome: "ambiguous",
12811
+ phrase: "limestone",
12812
+ readings: [
12813
+ {
12814
+ authority: "taxonomy",
12815
+ uri: `${TAXONOMY_BASE_URI}/id/material/limestone`
12816
+ },
12817
+ colorScope("limestone", NAMED_COLOR_REFERENCE_KIND)
12818
+ ]
12819
+ },
12820
+ crossoverAmbiguity(
12634
12821
  "oak",
12635
12822
  `${TAXONOMY_BASE_URI}/id/material/oak`,
12636
- "Oak has one governed timber reading in this corpus; species group, cut, stain, coating, and appearance remain distinct, and ColorScope 7.3 has no exact named-colour identity.",
12823
+ "oak",
12824
+ "Oak can name the timber species group or the ColorScope named colour Oak; species group, cut, stain, coating, and appearance remain distinct, and neither reading implies the other.",
12637
12825
  crossoverSource("oak")
12638
12826
  ),
12639
- crossoverEquivalent(
12827
+ crossoverAmbiguity(
12640
12828
  "teak",
12641
12829
  `${TAXONOMY_BASE_URI}/id/material/teak`,
12642
- "Teak has one governed timber reading in this corpus; timber, finish, and colour remain distinct, and ColorScope 7.3 has no exact named-colour identity.",
12830
+ "teak",
12831
+ "Teak can name the timber or the ColorScope named colour Teak; timber, finish, and colour remain distinct, and neither reading implies the other.",
12643
12832
  crossoverSource("teak")
12644
12833
  ),
12645
12834
  {
package/dist/v1.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { ElementPlacement, ExternalMapping, ExternalScheme, PeriodSpan, RelationPredicate, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld } from "./term.js";
2
2
  export declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
3
- export declare const TAXONOMY_SNAPSHOT: "2026-09-27";
4
- export declare const TAXONOMY_VERSION: "1.9.0";
3
+ export declare const TAXONOMY_SNAPSHOT: "2026-09-28";
4
+ export declare const TAXONOMY_VERSION: "1.10.0";
5
5
  export type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
6
6
  export type LifecycleStatus = "active" | "deprecated";
7
7
  export interface Lifecycle {
@@ -135,7 +135,7 @@ export declare const TAXONOMY_CORPUS_METADATA: {
135
135
  readonly lexicalEntryCount: number;
136
136
  readonly nodeCount: number;
137
137
  readonly revision: string;
138
- readonly snapshot: "2026-09-27";
139
- readonly version: "1.9.0";
138
+ readonly snapshot: "2026-09-28";
139
+ readonly version: "1.10.0";
140
140
  };
141
141
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/taxonomy",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "Canonical data-only interiors and architecture knowledge graph and lexical corpus.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@howells/lint": "^3.5.1",
28
- "@instruments/colorscope": "7.8.0",
28
+ "@instruments/colorscope": "9.4.0",
29
29
  "@taxonomy/lint-policy": "npm:@howells/lint@1.0.0",
30
30
  "@types/node": "^26.6.2",
31
31
  "tsup": "^8.5.1",