@instruments/taxonomy 1.11.0 → 1.12.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.
@@ -23,7 +23,7 @@ export { KNOWLEDGE_GRAPH, LEXICAL_ENTRIES, TAXONOMY_BASE_URI, type AxisNode, typ
23
23
  export declare const MATERIAL_FAMILIES: readonly ["paint", "wall-finish", "wallcovering", "textile", "upholstery", "carpet", "wood", "stone", "tile", "terrazzo", "metal", "glass", "resilient-flooring", "composite", "concrete", "leather", "other"];
24
24
  export type MaterialFamily = (typeof MATERIAL_FAMILIES)[number];
25
25
  export declare const isMaterialFamily: (value: string) => value is MaterialFamily;
26
- export declare const SECTORS: readonly ["hospitality", "healthcare", "workplace", "residential", "retail", "education", "civic", "mixed-use", "transportation", "other", "commercial", "industrial", "senior-living", "government", "science-technology", "cultural", "sports-recreation", "marine"];
26
+ export declare const SECTORS: readonly ["hospitality", "healthcare", "workplace", "residential", "retail", "education", "civic", "mixed-use", "transportation", "other", "commercial", "industrial", "senior-living", "government", "science-technology", "cultural", "sports-recreation", "marine", "urban-design-planning", "energy-utilities", "mission-critical-data-centres"];
27
27
  export type Sector = (typeof SECTORS)[number];
28
28
  export declare const isSector: (value: string) => value is Sector;
29
29
  export declare const APPLICATIONS: readonly ["wall", "flooring", "ceiling", "bath", "kitchen", "furniture", "lighting", "door", "window", "facade", "countertop", "fireplace", "stair-elevator", "bedding", "decor", "vertically-hanging", "transportation", "pool-fountain", "paving-deck", "partition", "millwork", "cabinetry", "masonry", "roof", "garage", "bar", "awning-umbrella", "recreation-sport", "ornamentation", "aquatic-environments", "upholstery", "trim", "wall-backsplash", "wall-upholstered", "wall-wet-shower", "flooring-wet-area", "flooring-entrance", "flooring-radiant-heat", "flooring-or-lab", "flooring-anti-fatigue", "flooring-esd", "flooring-safety-slip", "flooring-raised-access", "flooring-rigid-core", "flooring-dining-area", "flooring-subject-oil", "flooring-walk-in-freezer", "flooring-ramps-inclines", "furniture-seating", "furniture-headboard", "furniture-slipcover", "furniture-systems", "furniture-tackboard", "furniture-throw-pillow", "fireplace-firebox", "fireplace-hearth", "fireplace-mantel", "fireplace-surround", "bedding-bed-scarf", "bedding-sheets", "bedding-skirt", "bedding-bedspread", "bedding-box-spring-cover", "stair-riser", "stair-tread", "stair-railing", "stair-elevator-cladding", "vh-drapery", "vh-privacy-curtain", "vh-shower-curtain", "vh-theatrical-curtain", "vh-window-shade", "transportation-automotive", "transportation-aviation", "transportation-marine", "pool-coping", "pool-decking", "pool-lining", "paving-covered-areas", "paving-patio", "partition-toilet", "masonry-structural", "masonry-veneer", "recreation-gymnasium", "recreation-playground", "recreation-weightlifting", "awning", "tensile-structure", "umbrella", "countertop-chemical-resistant"];
@@ -40,4 +40,4 @@ export interface Axis {
40
40
  /** Why the axis has no terms yet. Present only when status is "declared". */
41
41
  gap?: string;
42
42
  }
43
- export declare const single: (slug: string, label: string, terms: readonly Term[], governance?: AxisGovernance) => readonly AxisFacet[];
43
+ export declare const single: (slug: string, label: string, terms: readonly Term[], governance?: AxisGovernance, holds?: FacetHolds) => readonly AxisFacet[];
package/dist/index.js CHANGED
@@ -16,6 +16,11 @@ var MARKETPLACE_SECTOR = {
16
16
  source: "the industry_sector column in a materials-marketplace catalogue (src-04)"
17
17
  };
18
18
  var MARKETPLACE_SECTOR_REVIEW = "2026-09-23";
19
+ var MARKETPLACE_SECTOR_OCTOBER_REVIEW = "2026-10-02";
20
+ var MARKETPLACE_SECTOR_OCTOBER = {
21
+ ...MARKETPLACE_SECTOR,
22
+ snapshot: MARKETPLACE_SECTOR_OCTOBER_REVIEW
23
+ };
19
24
  var MATERIAL_FAMILY_TERMS = [
20
25
  { label: "Paint", slug: "paint" },
21
26
  {
@@ -160,6 +165,40 @@ var SECTOR_TERMS = [
160
165
  reviewedAt: MARKETPLACE_SECTOR_REVIEW,
161
166
  seenAs: ["Marine"],
162
167
  slug: "marine"
168
+ },
169
+ {
170
+ // EVIDENCED, and a ROOT rather than a child of `civic`, because the client is not always public.
171
+ definition: "A project shaping the public realm between buildings: streets, squares, parks, waterfronts and the masterplans that set them out.",
172
+ introducedAt: MARKETPLACE_SECTOR_OCTOBER_REVIEW,
173
+ label: "Urban Design & Planning",
174
+ note: "Not beneath `civic`. A privately developed estate's streets and squares are urban design with no public body as client, so the edge would be false of part of the market. The outdoor terms on the space axis are the places; this is the market that commissions them.",
175
+ provenance: MARKETPLACE_SECTOR_OCTOBER,
176
+ reviewedAt: MARKETPLACE_SECTOR_OCTOBER_REVIEW,
177
+ seenAs: ["Urban Design + Planning"],
178
+ slug: "urban-design-planning"
179
+ },
180
+ {
181
+ // EVIDENCED, and a ROOT rather than a child of `industrial`, because the premises are not always
182
+ // let or run for revenue.
183
+ definition: "A project whose premises generate, treat or distribute power, water, gas or waste: power stations, substations, treatment works and pumping stations.",
184
+ introducedAt: MARKETPLACE_SECTOR_OCTOBER_REVIEW,
185
+ label: "Energy & Utilities",
186
+ note: "Not beneath `industrial`, which is the production, storage and distribution of goods and sits under `commercial`. A municipal waterworks is not let or run as revenue-earning premises, so that edge would be false of publicly owned utilities.",
187
+ provenance: MARKETPLACE_SECTOR_OCTOBER,
188
+ reviewedAt: MARKETPLACE_SECTOR_OCTOBER_REVIEW,
189
+ seenAs: ["Energy + Utilities"],
190
+ slug: "energy-utilities"
191
+ },
192
+ {
193
+ // EVIDENCED, and a ROOT, because its two ends share no parent.
194
+ definition: "A project whose premises must run without interruption: data centres, network and control rooms, and emergency operations centres.",
195
+ introducedAt: MARKETPLACE_SECTOR_OCTOBER_REVIEW,
196
+ label: "Mission Critical & Data Centres",
197
+ note: "Not beneath `science-technology`, which is research, nor `industrial`. A public emergency control room and a commercial data hall are both this and share no parent, so it is a root.",
198
+ provenance: MARKETPLACE_SECTOR_OCTOBER,
199
+ reviewedAt: MARKETPLACE_SECTOR_OCTOBER_REVIEW,
200
+ seenAs: ["Mission Critical + Data Centers"],
201
+ slug: "mission-critical-data-centres"
163
202
  }
164
203
  ];
165
204
  var APPLICATION_TERMS = [
@@ -441,9 +480,10 @@ var APPLICATION_TERMS = [
441
480
  ];
442
481
 
443
482
  // src/axes/axis.ts
444
- var single = (slug, label, terms, governance) => [
483
+ var single = (slug, label, terms, governance, holds) => [
445
484
  {
446
485
  ...governance === void 0 ? {} : { governance },
486
+ ...holds === void 0 ? {} : { holds },
447
487
  label,
448
488
  slug,
449
489
  terms
@@ -1459,10 +1499,15 @@ var RETRIEVAL_SNAPSHOT = "2026-08-27";
1459
1499
  var CORPUS = "the surface_texture column in a materials-marketplace catalogue (src-04)";
1460
1500
  var CORPUS_SNAPSHOT = "2026-08-27";
1461
1501
  var DROPPED = "Restored 2026-08-27. Dropped in normalisation.";
1502
+ var TEXTURED = "textured";
1503
+ var TEXTURED_DATE = "2026-10-02";
1504
+ var TEXTURED_CORPUS = "the surface_sheen column in a materials-marketplace catalogue (src-04)";
1462
1505
  var REVIEW_DATE3 = "2026-09-11";
1463
1506
  var REVIEW_SOURCE2 = "everyday-interiors vocabulary review";
1464
1507
  var TAX57_DATE2 = "2026-09-26";
1465
1508
  var TAX57_SOURCE = "Linear TAX-57 visual-vocabulary review";
1509
+ var MG2435_DATE = "2026-10-02";
1510
+ var MG2435_SOURCE = "Linear MG-2435 feed-loss review";
1466
1511
  var wikidata2 = (id, label) => `Wikidata ${id} ${label}, https://www.wikidata.org/wiki/${id}`;
1467
1512
  var reviewed2 = (slug, label, definition, source, extra = {}) => ({
1468
1513
  definition,
@@ -1482,6 +1527,20 @@ var authored2 = (slug, label, definition, extra = {}) => ({
1482
1527
  slug,
1483
1528
  ...extra
1484
1529
  });
1530
+ var mg2435 = (slug, label, definition, extra = {}) => ({
1531
+ definition,
1532
+ introducedAt: MG2435_DATE,
1533
+ label,
1534
+ provenance: { basis: "authored", source: MG2435_SOURCE },
1535
+ reviewedAt: MG2435_DATE,
1536
+ slug,
1537
+ ...extra
1538
+ });
1539
+ var mg2435Referenced = (id, label) => ({
1540
+ basis: "referenced",
1541
+ snapshot: MG2435_DATE,
1542
+ source: wikidata2(id, label)
1543
+ });
1485
1544
  var term3 = (slug, label, definition) => ({
1486
1545
  definition,
1487
1546
  label,
@@ -1577,6 +1636,80 @@ var FINISH_TREATMENT_TERMS = [
1577
1636
  "Venetian plaster",
1578
1637
  "A lime-and-marble-dust plaster applied in thin burnished layers to a smooth surface with depth and sheen; it names the treatment, not the plaster material.",
1579
1638
  { altLabels: ["polished plaster", "marmorino"] }
1639
+ ),
1640
+ // MG-2435: stone and tile faces stated in the marketplace catalogue's finish column, measured 2026-10-02.
1641
+ mg2435(
1642
+ "tumbled",
1643
+ "Tumbled",
1644
+ "Worn in a drum with abrasive media until the edges round and the face softens to an aged, matte surface.",
1645
+ { provenance: mg2435Referenced("Q925936", "tumble finishing") }
1646
+ ),
1647
+ mg2435(
1648
+ "sandblasted",
1649
+ "Sandblasted",
1650
+ "Abraded by grit driven under pressure, leaving an even, matte, finely pitted surface.",
1651
+ {
1652
+ altLabels: ["sand blasted"],
1653
+ provenance: mg2435Referenced("Q917273", "abrasive blasting")
1654
+ }
1655
+ ),
1656
+ // AUTHORED. No Wikidata item for chiselling as a surface finish on the review date; the nearest is
1657
+ // an engraving technique.
1658
+ mg2435(
1659
+ "chiselled",
1660
+ "Chiselled",
1661
+ "Worked with a chisel, by hand or machine, leaving an irregular tooled face or a broken edge.",
1662
+ { altLabels: ["chiseled"] }
1663
+ ),
1664
+ // AUTHORED. No Wikidata item for bush-hammering as a surface finish on the review date; the
1665
+ // nearest is the tool.
1666
+ mg2435(
1667
+ "bush-hammered",
1668
+ "Bush-hammered",
1669
+ "Struck with a multi-pointed hammer to leave a uniformly pitted, non-reflective surface.",
1670
+ { altLabels: ["bush hammered", "bushhammered"] }
1671
+ ),
1672
+ // AUTHORED. No Wikidata item for flaming as a stone finish on the review date; the nearest is a
1673
+ // polymer adhesion treatment.
1674
+ mg2435(
1675
+ "flamed",
1676
+ "Flamed",
1677
+ "Passed under a high-temperature flame so that surface crystals fracture, leaving a rough, non-reflective face.",
1678
+ { altLabels: ["flame finished", "thermal finish"] }
1679
+ ),
1680
+ // AUTHORED. No Wikidata item for split face as a surface finish on the review date.
1681
+ mg2435(
1682
+ "split-face",
1683
+ "Split face",
1684
+ "Cleaved or broken and left as it breaks, with a rough, uneven face.",
1685
+ { altLabels: ["split"] }
1686
+ ),
1687
+ // AUTHORED. No Wikidata item for leathered as a surface finish on the review date.
1688
+ mg2435(
1689
+ "leathered",
1690
+ "Leathered",
1691
+ "Brushed with abrasive pads after honing to a soft sheen and a faintly undulating face that follows the stone's hard and soft grains."
1692
+ ),
1693
+ // AUTHORED. No Wikidata item for lappato as a surface finish on the review date; the nearest is
1694
+ // the machining process lapping.
1695
+ mg2435(
1696
+ "lappato",
1697
+ "Lappato",
1698
+ "Lightly polished so that the high points of the face take a sheen while the hollows stay matte; between honed and polished.",
1699
+ { altLabels: ["semi-polished"] }
1700
+ ),
1701
+ // AUTHORED. Wikidata files antiquing as an alias of distressing (Q5283100), which `distressed`
1702
+ // references. This canon keeps the result, antiqued, apart from the damage it may imitate.
1703
+ mg2435(
1704
+ "antiqued",
1705
+ "Antiqued",
1706
+ "Worked by brushing, acid, tumbling or patination to give a new surface the worn look of age; the term names the result, not one process."
1707
+ ),
1708
+ mg2435(
1709
+ "distressed",
1710
+ "Distressed",
1711
+ "Deliberately marked, scraped, dented or worn to imitate the damage of long use.",
1712
+ { provenance: mg2435Referenced("Q5283100", "distressing") }
1580
1713
  )
1581
1714
  ];
1582
1715
  var FINISH_SHEEN_TERMS = [
@@ -1644,6 +1777,25 @@ var FINISH_TEXTURE_TERMS = [
1644
1777
  "dominant",
1645
1778
  "Restored 2026-08-27. The most frequent value in the source column, and absent from the normalisation that consumed it."
1646
1779
  ),
1780
+ {
1781
+ altLabels: ["structured"],
1782
+ definition: "Perceptible relief or tooth, to the hand or under a raking light, stated without saying what kind.",
1783
+ introducedAt: TEXTURED_DATE,
1784
+ label: "Textured",
1785
+ note: "The broad term for a source that says only that a surface is not smooth. Use a narrower term wherever the source names the relief. Brushed, grained, woven, napped, velvety, sanded and fine are not beneath it: a source states each of them of surfaces it would not call textured.",
1786
+ provenance: {
1787
+ basis: "evidenced",
1788
+ snapshot: TEXTURED_DATE,
1789
+ source: TEXTURED_CORPUS
1790
+ },
1791
+ reviewedAt: TEXTURED_DATE,
1792
+ slug: TEXTURED,
1793
+ usage: {
1794
+ band: "occasional",
1795
+ corpus: TEXTURED_CORPUS,
1796
+ snapshot: TEXTURED_DATE
1797
+ }
1798
+ },
1647
1799
  vendored(
1648
1800
  RETRIEVAL_TEXTURE,
1649
1801
  "fine",
@@ -1674,31 +1826,39 @@ var FINISH_TEXTURE_TERMS = [
1674
1826
  "Napped",
1675
1827
  "A raised pile that shades differently with direction."
1676
1828
  ),
1677
- vendored(
1678
- RETRIEVAL_TEXTURE,
1679
- "ribbed",
1680
- "Ribbed",
1681
- "Regular parallel relief across the surface."
1682
- ),
1829
+ {
1830
+ ...vendored(
1831
+ RETRIEVAL_TEXTURE,
1832
+ "ribbed",
1833
+ "Ribbed",
1834
+ "Regular parallel relief across the surface."
1835
+ ),
1836
+ broaderSlug: TEXTURED
1837
+ },
1683
1838
  reviewed2(
1684
1839
  "fluted",
1685
1840
  "Fluted",
1686
1841
  "Regular parallel concave grooves cut or formed into the surface; the flutes are the hollows.",
1687
- wikidata2("Q99552008", "fluting")
1842
+ wikidata2("Q99552008", "fluting"),
1843
+ { broaderSlug: TEXTURED }
1688
1844
  ),
1689
1845
  reviewed2(
1690
1846
  "reeded",
1691
1847
  "Reeded",
1692
1848
  "Regular parallel convex half-round ridges standing from the surface; the reeds are the raised parts, the inverse of fluted.",
1693
- wikidata2("Q4152515", "reeding")
1694
- ),
1695
- repaired(
1696
- "embossed",
1697
- "Embossed",
1698
- "Relief pressed into the surface as a repeating figure.",
1699
- "common",
1700
- DROPPED
1849
+ wikidata2("Q4152515", "reeding"),
1850
+ { broaderSlug: TEXTURED }
1701
1851
  ),
1852
+ {
1853
+ ...repaired(
1854
+ "embossed",
1855
+ "Embossed",
1856
+ "Relief pressed into the surface as a repeating figure.",
1857
+ "common",
1858
+ DROPPED
1859
+ ),
1860
+ broaderSlug: TEXTURED
1861
+ },
1702
1862
  repaired(
1703
1863
  "velvety",
1704
1864
  "Velvety",
@@ -1713,18 +1873,24 @@ var FINISH_TEXTURE_TERMS = [
1713
1873
  "rare",
1714
1874
  DROPPED
1715
1875
  ),
1716
- vendored(
1717
- RETRIEVAL_TEXTURE,
1718
- "hand-worked",
1719
- "Hand-worked",
1720
- "Irregular relief left by hand tooling."
1721
- ),
1722
- vendored(
1723
- RETRIEVAL_TEXTURE,
1724
- "heavily-reliefed",
1725
- "Heavily reliefed",
1726
- "Deep, strongly modelled relief."
1727
- ),
1876
+ {
1877
+ ...vendored(
1878
+ RETRIEVAL_TEXTURE,
1879
+ "hand-worked",
1880
+ "Hand-worked",
1881
+ "Irregular relief left by hand tooling."
1882
+ ),
1883
+ broaderSlug: TEXTURED
1884
+ },
1885
+ {
1886
+ ...vendored(
1887
+ RETRIEVAL_TEXTURE,
1888
+ "heavily-reliefed",
1889
+ "Heavily reliefed",
1890
+ "Deep, strongly modelled relief."
1891
+ ),
1892
+ broaderSlug: TEXTURED
1893
+ },
1728
1894
  // TAX-57: Material Bank PIM leather-finish textures, non-Samplize SKUs, measured 2026-09-26.
1729
1895
  {
1730
1896
  broaderSlug: "embossed",
@@ -11511,9 +11677,24 @@ var AXES = [
11511
11677
  {
11512
11678
  boundary: "Finish is the deliberately produced state of the exposed surface. It is not material, pattern or construction: polished stone and matte stone share material while differing here. Three facets, because a flat list put treatment beside sheen and could not say honed matte.",
11513
11679
  facets: [
11514
- { label: "Treatment", slug: "treatment", terms: FINISH_TREATMENT_TERMS },
11515
- { label: "Sheen", slug: "sheen", terms: FINISH_SHEEN_TERMS },
11516
- { label: "Texture", slug: "texture", terms: FINISH_TEXTURE_TERMS }
11680
+ {
11681
+ holds: "several",
11682
+ label: "Treatment",
11683
+ slug: "treatment",
11684
+ terms: FINISH_TREATMENT_TERMS
11685
+ },
11686
+ {
11687
+ holds: "several",
11688
+ label: "Sheen",
11689
+ slug: "sheen",
11690
+ terms: FINISH_SHEEN_TERMS
11691
+ },
11692
+ {
11693
+ holds: "several",
11694
+ label: "Texture",
11695
+ slug: "texture",
11696
+ terms: FINISH_TEXTURE_TERMS
11697
+ }
11517
11698
  ],
11518
11699
  label: "Finish",
11519
11700
  question: "How is the exposed surface finished?",
@@ -11534,7 +11715,8 @@ var AXES = [
11534
11715
  "unit-shape",
11535
11716
  "Unit shape",
11536
11717
  UNIT_SHAPE_TERMS,
11537
- TAX45_GEOMETRY_GOVERNANCE
11718
+ TAX45_GEOMETRY_GOVERNANCE,
11719
+ "several"
11538
11720
  ),
11539
11721
  governance: TAX45_GEOMETRY_GOVERNANCE,
11540
11722
  label: "Unit shape",
@@ -11782,7 +11964,7 @@ var resolveReference = (reference) => INDEX.byKey.get(canonicalKey(reference));
11782
11964
  // src/v1.ts
11783
11965
  var TAXONOMY_BASE_URI = "https://taxonomy.materialinstruments.com";
11784
11966
  var TAXONOMY_SNAPSHOT = "2026-10-02";
11785
- var TAXONOMY_VERSION = "1.11.0";
11967
+ var TAXONOMY_VERSION = "1.12.0";
11786
11968
  var PUBLISHED_V1_BASELINE = "2026-08-30";
11787
11969
  var TAX45_REVIEW_SNAPSHOT = "2026-08-31";
11788
11970
  var LIMESTONE_INTRODUCED = "2026-09-01";
package/dist/v1.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { ElementPlacement, ExternalMapping, ExternalScheme, PeriodSpan, Rel
3
3
  export type { FacetHolds } from "./axes/index.js";
4
4
  export declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
5
5
  export declare const TAXONOMY_SNAPSHOT: "2026-10-02";
6
- export declare const TAXONOMY_VERSION: "1.11.0";
6
+ export declare const TAXONOMY_VERSION: "1.12.0";
7
7
  export type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
8
8
  export type LifecycleStatus = "active" | "deprecated";
9
9
  export interface Lifecycle {
@@ -140,5 +140,5 @@ export declare const TAXONOMY_CORPUS_METADATA: {
140
140
  readonly nodeCount: number;
141
141
  readonly revision: string;
142
142
  readonly snapshot: "2026-10-02";
143
- readonly version: "1.11.0";
143
+ readonly version: "1.12.0";
144
144
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/taxonomy",
3
- "version": "1.11.0",
3
+ "version": "1.12.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": {