@instruments/taxonomy 0.2.0 → 1.0.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.
- package/README.md +33 -140
- package/dist/index.d.ts +311 -194
- package/dist/index.js +3418 -2803
- package/package.json +3 -18
- package/dist/chunk-C2ZPDTOU.js +0 -151
- package/dist/chunk-CTKOLWGS.js +0 -23
- package/dist/chunk-XLUE3IC2.js +0 -94
- package/dist/crosswalks/designshop.d.ts +0 -41
- package/dist/crosswalks/designshop.js +0 -281
- package/dist/crosswalks/miu.d.ts +0 -18
- package/dist/crosswalks/miu.js +0 -400
- package/dist/estate/index.d.ts +0 -233
- package/dist/estate/index.js +0 -1715
- package/dist/match-BDI6Evro.d.ts +0 -367
- package/dist/taste.d.ts +0 -144
- package/dist/taste.js +0 -14
package/dist/crosswalks/miu.js
DELETED
|
@@ -1,400 +0,0 @@
|
|
|
1
|
-
// src/crosswalks/miu.ts
|
|
2
|
-
var MIU_MATERIAL_FAMILIES = [
|
|
3
|
-
"wood",
|
|
4
|
-
"wood_veneer",
|
|
5
|
-
"engineered_wood",
|
|
6
|
-
"bamboo",
|
|
7
|
-
"cork",
|
|
8
|
-
"natural_stone",
|
|
9
|
-
"terrazzo",
|
|
10
|
-
"ceramic_porcelain",
|
|
11
|
-
"glass",
|
|
12
|
-
"metal",
|
|
13
|
-
"concrete",
|
|
14
|
-
"plaster",
|
|
15
|
-
"clay",
|
|
16
|
-
"brick",
|
|
17
|
-
"paint_coating",
|
|
18
|
-
"wallcovering",
|
|
19
|
-
"laminate",
|
|
20
|
-
"solid_surface",
|
|
21
|
-
"mineral_composite",
|
|
22
|
-
"resin",
|
|
23
|
-
"linoleum",
|
|
24
|
-
"vinyl",
|
|
25
|
-
"rubber",
|
|
26
|
-
"carpet",
|
|
27
|
-
"rug",
|
|
28
|
-
"textile",
|
|
29
|
-
"leather",
|
|
30
|
-
"acoustic_felt",
|
|
31
|
-
"acoustic_composite",
|
|
32
|
-
"recycled_composite",
|
|
33
|
-
"paper_cardboard",
|
|
34
|
-
"biobased_composite",
|
|
35
|
-
"greenery_planting",
|
|
36
|
-
"lighting",
|
|
37
|
-
"hardware",
|
|
38
|
-
"digital_media",
|
|
39
|
-
"water_feature",
|
|
40
|
-
"mixed_material",
|
|
41
|
-
"color_palette_only",
|
|
42
|
-
"unknown"
|
|
43
|
-
];
|
|
44
|
-
var MIU_FAMILY_TO_CANONICAL = {
|
|
45
|
-
wood: "wood",
|
|
46
|
-
// Veneer and engineered constructions are wood at family grain; construction is sub-family detail.
|
|
47
|
-
wood_veneer: "wood",
|
|
48
|
-
engineered_wood: "wood",
|
|
49
|
-
// Botanically a grass, but sold, specified, and finished as wood (flooring, ply, veneer).
|
|
50
|
-
bamboo: "wood",
|
|
51
|
-
// Trade classification: cork is a canonical resilient flooring type alongside linoleum and rubber.
|
|
52
|
-
cork: "resilient_flooring",
|
|
53
|
-
natural_stone: "stone",
|
|
54
|
-
terrazzo: "terrazzo",
|
|
55
|
-
// MS has no ceramic family; in interiors ceramic/porcelain IS the tile family (materialgraph's
|
|
56
|
-
// own tile_material_family dictionary leads with ceramic and porcelain).
|
|
57
|
-
ceramic_porcelain: "tile",
|
|
58
|
-
glass: "glass",
|
|
59
|
-
metal: "metal",
|
|
60
|
-
concrete: "concrete",
|
|
61
|
-
// Plaster, venetian plaster, and limewash are the archetypal MS wall finishes.
|
|
62
|
-
plaster: "wall_finish",
|
|
63
|
-
// With ceramic_porcelain and brick as separate MIU families, clay denotes unfired clay finishes
|
|
64
|
-
// (clay plaster and kin) — wall finish.
|
|
65
|
-
clay: "wall_finish",
|
|
66
|
-
// Real masonry material with no canonical family (no masonry term; fired clay is not `stone`).
|
|
67
|
-
brick: "other",
|
|
68
|
-
paint_coating: "paint",
|
|
69
|
-
wallcovering: "wallcovering",
|
|
70
|
-
// HPL is a paper/resin layered composite; worksurface/wall are roles, not the material family.
|
|
71
|
-
laminate: "composite",
|
|
72
|
-
// Acrylic + mineral-filler blend — the definition of an engineered composite.
|
|
73
|
-
solid_surface: "composite",
|
|
74
|
-
mineral_composite: "composite",
|
|
75
|
-
// Architectural resin panels (ecoresin, encapsulated-layer) are composites in practice.
|
|
76
|
-
resin: "composite",
|
|
77
|
-
linoleum: "resilient_flooring",
|
|
78
|
-
// In a list where textile and wallcovering are separate families, MIU vinyl means sheet/LVT flooring.
|
|
79
|
-
vinyl: "resilient_flooring",
|
|
80
|
-
// Rubber flooring is trade-canonical resilient flooring.
|
|
81
|
-
rubber: "resilient_flooring",
|
|
82
|
-
carpet: "carpet",
|
|
83
|
-
// A rug is loose-laid carpet; installation is not family.
|
|
84
|
-
rug: "carpet",
|
|
85
|
-
textile: "textile",
|
|
86
|
-
leather: "leather",
|
|
87
|
-
// PET felt is a nonwoven textile; "acoustic" is the role (MATERIAL_ROLES), not the family.
|
|
88
|
-
acoustic_felt: "textile",
|
|
89
|
-
// Layered/engineered acoustic panels; composite is the material-truth home.
|
|
90
|
-
acoustic_composite: "composite",
|
|
91
|
-
recycled_composite: "composite",
|
|
92
|
-
// Genuine architectural material (paper wall finishes, cardboard construction) with no canonical
|
|
93
|
-
// family; not textile, not composite.
|
|
94
|
-
paper_cardboard: "other",
|
|
95
|
-
biobased_composite: "composite",
|
|
96
|
-
// Living matter, not a material family; even `other` would falsely assert material-hood.
|
|
97
|
-
greenery_planting: null,
|
|
98
|
-
// FF&E product category; classifying the fixture's constituent materials would be a guess.
|
|
99
|
-
lighting: null,
|
|
100
|
-
// FF&E product category; usually metal, but asserting `metal` is a guess — never guess.
|
|
101
|
-
hardware: null,
|
|
102
|
-
// Screens/projected content — an experience layer, not a material.
|
|
103
|
-
digital_media: null,
|
|
104
|
-
// An assembly/element, not a material family.
|
|
105
|
-
water_feature: null,
|
|
106
|
-
// Spans multiple families; materialgraph models families as a multi-valued array, so a
|
|
107
|
-
// single-valued crosswalk cannot honestly pick one.
|
|
108
|
-
mixed_material: null,
|
|
109
|
-
// Granularity sentinel (it also appears in MATERIAL_GRANULARITIES), not a material identity.
|
|
110
|
-
color_palette_only: null,
|
|
111
|
-
// Epistemic sentinel — explicitly NOT `other` (unidentified is not identified-but-unclassifiable).
|
|
112
|
-
unknown: null
|
|
113
|
-
};
|
|
114
|
-
var MIU_PROJECT_SECTORS = [
|
|
115
|
-
"hospitality",
|
|
116
|
-
"food_and_beverage",
|
|
117
|
-
"workplace",
|
|
118
|
-
"residential",
|
|
119
|
-
"multifamily",
|
|
120
|
-
"retail_and_showroom",
|
|
121
|
-
"healthcare",
|
|
122
|
-
"wellness",
|
|
123
|
-
"education",
|
|
124
|
-
"civic",
|
|
125
|
-
"cultural",
|
|
126
|
-
"community",
|
|
127
|
-
"sports_recreation",
|
|
128
|
-
"entertainment",
|
|
129
|
-
"industrial",
|
|
130
|
-
"logistics",
|
|
131
|
-
"maker",
|
|
132
|
-
"transportation",
|
|
133
|
-
"landscape_public_realm",
|
|
134
|
-
"mixed_use",
|
|
135
|
-
"master_planning",
|
|
136
|
-
"temporary_exhibition",
|
|
137
|
-
"religious",
|
|
138
|
-
"senior_living",
|
|
139
|
-
"student_housing",
|
|
140
|
-
"unknown"
|
|
141
|
-
];
|
|
142
|
-
var MIU_SECTOR_TO_CANONICAL = {
|
|
143
|
-
hospitality: "hospitality",
|
|
144
|
-
// Restaurants and F&B venues are the hospitality sector at MG grain (MB's own analytics files
|
|
145
|
-
// "Hospitality: Restaurant").
|
|
146
|
-
food_and_beverage: "hospitality",
|
|
147
|
-
workplace: "workplace",
|
|
148
|
-
residential: "residential",
|
|
149
|
-
// Multi-unit housing is residential; MG mixed_use means mixed-use developments, not multifamily.
|
|
150
|
-
multifamily: "residential",
|
|
151
|
-
// Showrooms are retail environments.
|
|
152
|
-
retail_and_showroom: "retail",
|
|
153
|
-
healthcare: "healthcare",
|
|
154
|
-
// Spans hospitality spas, healthcare clinics, and fitness; no honest single sector term.
|
|
155
|
-
wellness: "other",
|
|
156
|
-
education: "education",
|
|
157
|
-
civic: "civic",
|
|
158
|
-
// Museums, galleries, and theatres are civic-cultural institutions at MG grain.
|
|
159
|
-
cultural: "civic",
|
|
160
|
-
// Community centres are civic infrastructure.
|
|
161
|
-
community: "civic",
|
|
162
|
-
// No sports sector; spans civic recreation and commercial venues.
|
|
163
|
-
sports_recreation: "other",
|
|
164
|
-
// Cinemas and venues; no canonical term.
|
|
165
|
-
entertainment: "other",
|
|
166
|
-
// Real sector with no canonical term.
|
|
167
|
-
industrial: "other",
|
|
168
|
-
// Real sector with no canonical term.
|
|
169
|
-
logistics: "other",
|
|
170
|
-
// Fabrication studios and workshops; nearer industrial than office workplace.
|
|
171
|
-
maker: "other",
|
|
172
|
-
transportation: "transportation",
|
|
173
|
-
// Parks and plazas are civic public realm.
|
|
174
|
-
landscape_public_realm: "civic",
|
|
175
|
-
mixed_use: "mixed_use",
|
|
176
|
-
// Spans sectors by definition — a single-valued crosswalk cannot honestly pick one (mirrors
|
|
177
|
-
// mixed_material in the family crosswalk).
|
|
178
|
-
master_planning: null,
|
|
179
|
-
// Exhibitions and installations; no canonical term.
|
|
180
|
-
temporary_exhibition: "other",
|
|
181
|
-
// Religious buildings are not civic government; real sector, no term.
|
|
182
|
-
religious: "other",
|
|
183
|
-
// A housing typology; the healthcare-adjacent bleed is accepted.
|
|
184
|
-
senior_living: "residential",
|
|
185
|
-
// A housing typology.
|
|
186
|
-
student_housing: "residential",
|
|
187
|
-
// Epistemic sentinel — explicitly NOT `other` (unidentified is not identified-but-unclassifiable).
|
|
188
|
-
unknown: null
|
|
189
|
-
};
|
|
190
|
-
var MIU_SURFACE_APPLICATIONS = [
|
|
191
|
-
"flooring",
|
|
192
|
-
"floor_inlay",
|
|
193
|
-
"stair_tread",
|
|
194
|
-
"stair_riser",
|
|
195
|
-
"wall_finish",
|
|
196
|
-
"wall_panel",
|
|
197
|
-
"wainscot",
|
|
198
|
-
"baseboard",
|
|
199
|
-
"trim",
|
|
200
|
-
"ceiling_finish",
|
|
201
|
-
"ceiling_cloud",
|
|
202
|
-
"column_wrap",
|
|
203
|
-
"door_finish",
|
|
204
|
-
"frame_finish",
|
|
205
|
-
"shower_wall",
|
|
206
|
-
"shower_floor",
|
|
207
|
-
"backsplash",
|
|
208
|
-
"vanity_top",
|
|
209
|
-
"toilet_partition",
|
|
210
|
-
"commercial_kitchen_floor",
|
|
211
|
-
"kitchen_wall",
|
|
212
|
-
"food_service_counter",
|
|
213
|
-
"laundry_floor",
|
|
214
|
-
"pool_deck_surface",
|
|
215
|
-
"reception_desk",
|
|
216
|
-
"bar_front",
|
|
217
|
-
"bar_top",
|
|
218
|
-
"back_bar",
|
|
219
|
-
"banquette_base",
|
|
220
|
-
"cabinet_front",
|
|
221
|
-
"shelving",
|
|
222
|
-
"display_fixture",
|
|
223
|
-
"closet_system",
|
|
224
|
-
"workstation_casework",
|
|
225
|
-
"checkout_counter",
|
|
226
|
-
"upholstery",
|
|
227
|
-
"loose_furniture",
|
|
228
|
-
"built_in_seating",
|
|
229
|
-
"banquette_upholstery",
|
|
230
|
-
"drapery",
|
|
231
|
-
"window_treatment",
|
|
232
|
-
"rug",
|
|
233
|
-
"carpet_tile",
|
|
234
|
-
"bedding",
|
|
235
|
-
"privacy_curtain",
|
|
236
|
-
"acoustic_fabric_panel",
|
|
237
|
-
"lighting_fixture",
|
|
238
|
-
"acoustic_treatment",
|
|
239
|
-
"partition",
|
|
240
|
-
"operable_wall",
|
|
241
|
-
"signage",
|
|
242
|
-
"wayfinding",
|
|
243
|
-
"hardware",
|
|
244
|
-
"plumbing_fixture",
|
|
245
|
-
"decorative_screen",
|
|
246
|
-
"art_installation",
|
|
247
|
-
"green_wall",
|
|
248
|
-
"facade_cladding",
|
|
249
|
-
"soffit",
|
|
250
|
-
"exterior_screen",
|
|
251
|
-
"paving",
|
|
252
|
-
"decking",
|
|
253
|
-
"outdoor_furniture",
|
|
254
|
-
"planter",
|
|
255
|
-
"pool_coping",
|
|
256
|
-
"shade_structure",
|
|
257
|
-
"railing",
|
|
258
|
-
"fence_screen",
|
|
259
|
-
"unknown"
|
|
260
|
-
];
|
|
261
|
-
var MIU_SURFACE_APPLICATION_TO_CANONICAL = {
|
|
262
|
-
flooring: "flooring",
|
|
263
|
-
// A decorative flooring detail.
|
|
264
|
-
floor_inlay: "flooring",
|
|
265
|
-
stair_tread: "stair_tread",
|
|
266
|
-
stair_riser: "stair_riser",
|
|
267
|
-
wall_finish: "wall",
|
|
268
|
-
// Panelised wall surface; still the wall zone.
|
|
269
|
-
wall_panel: "wall",
|
|
270
|
-
// Lower-wall treatment.
|
|
271
|
-
wainscot: "wall",
|
|
272
|
-
// Wall-base trim reads as the wall zone, not flooring.
|
|
273
|
-
baseboard: "wall",
|
|
274
|
-
// Architectural trim is millwork/joinery.
|
|
275
|
-
trim: "millwork",
|
|
276
|
-
ceiling_finish: "ceiling",
|
|
277
|
-
// A suspended ceiling element.
|
|
278
|
-
ceiling_cloud: "ceiling",
|
|
279
|
-
// Vertical surface cladding.
|
|
280
|
-
column_wrap: "wall",
|
|
281
|
-
door_finish: "door",
|
|
282
|
-
// Spans door, window, and facade frames; no honest single term.
|
|
283
|
-
frame_finish: null,
|
|
284
|
-
shower_wall: "wall_wet_shower",
|
|
285
|
-
// Wet-area flooring.
|
|
286
|
-
shower_floor: "flooring_wet_area",
|
|
287
|
-
backsplash: "wall_backsplash",
|
|
288
|
-
// A bathroom counter.
|
|
289
|
-
vanity_top: "countertop",
|
|
290
|
-
toilet_partition: "partition_toilet",
|
|
291
|
-
// Kitchen-zone application; MG's oil/wet flooring leaves would over-assume the condition.
|
|
292
|
-
commercial_kitchen_floor: "kitchen",
|
|
293
|
-
// Kitchen-zone application.
|
|
294
|
-
kitchen_wall: "kitchen",
|
|
295
|
-
// A service counter.
|
|
296
|
-
food_service_counter: "countertop",
|
|
297
|
-
// Wet-area flooring.
|
|
298
|
-
laundry_floor: "flooring_wet_area",
|
|
299
|
-
pool_deck_surface: "pool_decking",
|
|
300
|
-
// Reception desks are casework.
|
|
301
|
-
reception_desk: "millwork",
|
|
302
|
-
// The bar zone.
|
|
303
|
-
bar_front: "bar",
|
|
304
|
-
// The bar zone term is more specific than countertop.
|
|
305
|
-
bar_top: "bar",
|
|
306
|
-
// The bar zone.
|
|
307
|
-
back_bar: "bar",
|
|
308
|
-
// Built-in joinery base.
|
|
309
|
-
banquette_base: "millwork",
|
|
310
|
-
cabinet_front: "cabinetry",
|
|
311
|
-
// Built-in shelving is millwork.
|
|
312
|
-
shelving: "millwork",
|
|
313
|
-
// Retail display fixtures are casework.
|
|
314
|
-
display_fixture: "millwork",
|
|
315
|
-
// Closet systems are cabinetry.
|
|
316
|
-
closet_system: "cabinetry",
|
|
317
|
-
// Office systems furniture.
|
|
318
|
-
workstation_casework: "furniture_systems",
|
|
319
|
-
// A service counter.
|
|
320
|
-
checkout_counter: "countertop",
|
|
321
|
-
// Seating upholstery; upholstered walls have their own MIU entries.
|
|
322
|
-
upholstery: "furniture_seating",
|
|
323
|
-
loose_furniture: "furniture",
|
|
324
|
-
// Built-in seating.
|
|
325
|
-
built_in_seating: "furniture_seating",
|
|
326
|
-
// Banquette seating upholstery.
|
|
327
|
-
banquette_upholstery: "furniture_seating",
|
|
328
|
-
drapery: "vh_drapery",
|
|
329
|
-
// Generic; the shade/curtain leaves would over-assume the type.
|
|
330
|
-
window_treatment: "vertically_hanging",
|
|
331
|
-
// Loose floor covering.
|
|
332
|
-
rug: "flooring",
|
|
333
|
-
// Modular floor covering.
|
|
334
|
-
carpet_tile: "flooring",
|
|
335
|
-
bedding: "bedding",
|
|
336
|
-
privacy_curtain: "vh_privacy_curtain",
|
|
337
|
-
// An upholstered wall panel.
|
|
338
|
-
acoustic_fabric_panel: "wall_upholstered",
|
|
339
|
-
lighting_fixture: "lighting",
|
|
340
|
-
// Spans wall, ceiling, and baffle treatments; no honest single term.
|
|
341
|
-
acoustic_treatment: null,
|
|
342
|
-
partition: "partition",
|
|
343
|
-
// A movable partition.
|
|
344
|
-
operable_wall: "partition",
|
|
345
|
-
// No signage term; decor or ornamentation would be false.
|
|
346
|
-
signage: null,
|
|
347
|
-
// No wayfinding term.
|
|
348
|
-
wayfinding: null,
|
|
349
|
-
// Spans door, cabinet, and bath hardware — never guess.
|
|
350
|
-
hardware: null,
|
|
351
|
-
// Predominantly sanitary fixtures; the kitchen-sink bleed is accepted.
|
|
352
|
-
plumbing_fixture: "bath",
|
|
353
|
-
// A freestanding room divider.
|
|
354
|
-
decorative_screen: "partition",
|
|
355
|
-
// Artwork is decor at MG grain.
|
|
356
|
-
art_installation: "decor",
|
|
357
|
-
// A planted wall system is still a wall application.
|
|
358
|
-
green_wall: "wall",
|
|
359
|
-
facade_cladding: "facade",
|
|
360
|
-
// The underside plane; exterior soffits accepted as bleed.
|
|
361
|
-
soffit: "ceiling",
|
|
362
|
-
// Envelope screening.
|
|
363
|
-
exterior_screen: "facade",
|
|
364
|
-
paving: "paving_deck",
|
|
365
|
-
// General decking; pool decking has its own MIU entry.
|
|
366
|
-
decking: "paving_deck",
|
|
367
|
-
// The application vocabulary has no outdoor bucket.
|
|
368
|
-
outdoor_furniture: "furniture",
|
|
369
|
-
// Pots and planters are decor.
|
|
370
|
-
planter: "decor",
|
|
371
|
-
pool_coping: "pool_coping",
|
|
372
|
-
// Awning/tensile family; a specific leaf would over-assume.
|
|
373
|
-
shade_structure: "awning_umbrella",
|
|
374
|
-
// Railings and balustrades live under stair & elevator.
|
|
375
|
-
railing: "stair_railing",
|
|
376
|
-
// Exterior fencing; no canonical term.
|
|
377
|
-
fence_screen: null,
|
|
378
|
-
// Epistemic sentinel.
|
|
379
|
-
unknown: null
|
|
380
|
-
};
|
|
381
|
-
var MIU_MATERIAL_FAMILY_SET = new Set(MIU_MATERIAL_FAMILIES);
|
|
382
|
-
var MIU_PROJECT_SECTOR_SET = new Set(MIU_PROJECT_SECTORS);
|
|
383
|
-
var MIU_SURFACE_APPLICATION_SET = new Set(MIU_SURFACE_APPLICATIONS);
|
|
384
|
-
var isMiuMaterialFamily = (value) => MIU_MATERIAL_FAMILY_SET.has(value);
|
|
385
|
-
var isMiuProjectSector = (value) => MIU_PROJECT_SECTOR_SET.has(value);
|
|
386
|
-
var isMiuSurfaceApplication = (value) => MIU_SURFACE_APPLICATION_SET.has(value);
|
|
387
|
-
var miuFamilyToCanonical = (value) => isMiuMaterialFamily(value) ? MIU_FAMILY_TO_CANONICAL[value] : null;
|
|
388
|
-
var miuSectorToCanonical = (value) => isMiuProjectSector(value) ? MIU_SECTOR_TO_CANONICAL[value] : null;
|
|
389
|
-
var miuSurfaceApplicationToCanonical = (value) => isMiuSurfaceApplication(value) ? MIU_SURFACE_APPLICATION_TO_CANONICAL[value] : null;
|
|
390
|
-
export {
|
|
391
|
-
MIU_FAMILY_TO_CANONICAL,
|
|
392
|
-
MIU_MATERIAL_FAMILIES,
|
|
393
|
-
MIU_PROJECT_SECTORS,
|
|
394
|
-
MIU_SECTOR_TO_CANONICAL,
|
|
395
|
-
MIU_SURFACE_APPLICATIONS,
|
|
396
|
-
MIU_SURFACE_APPLICATION_TO_CANONICAL,
|
|
397
|
-
miuFamilyToCanonical,
|
|
398
|
-
miuSectorToCanonical,
|
|
399
|
-
miuSurfaceApplicationToCanonical
|
|
400
|
-
};
|
package/dist/estate/index.d.ts
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
import { C as CanonicalAlternatives } from '../match-BDI6Evro.js';
|
|
2
|
-
|
|
3
|
-
declare const DECOMPOSITION: readonly Row[];
|
|
4
|
-
|
|
5
|
-
type Verdict =
|
|
6
|
-
/** Maps faithfully onto one or more canonical terms. Nothing is lost. */
|
|
7
|
-
"decomposed"
|
|
8
|
-
/** Decomposes, but the compound carries meaning the parts do not. Needs an anchor as well. */
|
|
9
|
-
| "lossy"
|
|
10
|
-
/** The canon can express both readings; the source cannot be safely mapped to one. Declines. */
|
|
11
|
-
| "ambiguous"
|
|
12
|
-
/** A real term, but answering a question outside the interiors aesthetic axes. */
|
|
13
|
-
| "out-of-axis"
|
|
14
|
-
/** Resists decomposition. Must be carried as an anchor, not a concept. */
|
|
15
|
-
| "residue";
|
|
16
|
-
/** Why an `out-of-axis` term is out of axis. */
|
|
17
|
-
type OutOfAxisReason =
|
|
18
|
-
/** Describes a material, not a room. Belongs on the material half of the canon. */
|
|
19
|
-
"material-property"
|
|
20
|
-
/** A query-router marker with no descriptive content at all. */
|
|
21
|
-
| "query-marker"
|
|
22
|
-
/** Answers an axis that already exists here (sector, space, typology). */
|
|
23
|
-
| "other-canonical-axis"
|
|
24
|
-
/** A real question no axis here answers yet, and the gap is declared rather than absorbed. */
|
|
25
|
-
| "axis-not-authored";
|
|
26
|
-
interface Row {
|
|
27
|
-
/** The vocabulary id from `./sources.ts`. */
|
|
28
|
-
source: string;
|
|
29
|
-
/** The source term, verbatim. */
|
|
30
|
-
term: string;
|
|
31
|
-
verdict: Verdict;
|
|
32
|
-
/** Canonical targets asserted together. `evokes(...)` marks a relation rather than a term. */
|
|
33
|
-
onto: readonly string[];
|
|
34
|
-
/** Typed disjunction when the source is known to mean one of several bundles but cannot say which. */
|
|
35
|
-
alternatives?: CanonicalAlternatives;
|
|
36
|
-
/** Canonical terms that had to be minted on an EXISTING axis to hold this source term. */
|
|
37
|
-
mintedTerm?: readonly string[];
|
|
38
|
-
/** Canonical terms that only exist because a WHOLE AXIS had to be created. */
|
|
39
|
-
mintedAxis?: readonly string[];
|
|
40
|
-
reason?: OutOfAxisReason;
|
|
41
|
-
note?: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
declare const ESTATE_REPOS: readonly ["materia", "architizer", "designround", "designshop", "materialgraph", "samplize"];
|
|
45
|
-
type EstateRepo = (typeof ESTATE_REPOS)[number];
|
|
46
|
-
interface ConceptCell {
|
|
47
|
-
source: string;
|
|
48
|
-
repo: EstateRepo;
|
|
49
|
-
/** The source's own spelling, verbatim. This is the thing the page exists to show. */
|
|
50
|
-
term: string;
|
|
51
|
-
row: Row;
|
|
52
|
-
}
|
|
53
|
-
interface Concept {
|
|
54
|
-
/** The canonical head term, fully qualified. `evokes(...)` wrappers are stripped. */
|
|
55
|
-
canonical: string;
|
|
56
|
-
/** True when the canon reaches this concept by a relation rather than by assertion. */
|
|
57
|
-
viaEvokes: boolean;
|
|
58
|
-
/** Distinct repositories carrying a term that heads here. The row's sort key. */
|
|
59
|
-
reach: number;
|
|
60
|
-
/**
|
|
61
|
-
* How many repositories could plausibly have reached this concept: those carrying any vocabulary
|
|
62
|
-
* on the same axis.
|
|
63
|
-
*
|
|
64
|
-
* NOT the repository count, and the difference started mattering the moment samplize joined the
|
|
65
|
-
* census. Samplize's vocabulary is colour and nothing else, so it can never reach `style.rustic`
|
|
66
|
-
* and counting it against that row would report a disagreement where there is only a different
|
|
67
|
-
* subject. Six repositories, but only five of them have anything to say about style, and only
|
|
68
|
-
* three about colour.
|
|
69
|
-
*/
|
|
70
|
-
couldReach: number;
|
|
71
|
-
cells: readonly ConceptCell[];
|
|
72
|
-
/** Rows whose crosswalk declines, and rows carried as anchors. The page marks both. */
|
|
73
|
-
declines: number;
|
|
74
|
-
anchors: number;
|
|
75
|
-
/**
|
|
76
|
-
* How many distinct WORDINGS the sources use, after folding case and separators.
|
|
77
|
-
*
|
|
78
|
-
* The number that says whether a row is a real disagreement. `reach` of 5 with one wording means
|
|
79
|
-
* five repositories writing the same word five ways, which a crosswalk fixes trivially. `reach`
|
|
80
|
-
* of 5 with five wordings means five different ideas about what to call the thing, which it does
|
|
81
|
-
* not. Measured across the whole corpus, only one of the twenty shared concepts is spelling-only,
|
|
82
|
-
* so casing turns out to be a rounding error rather than the story - but a reader looking at
|
|
83
|
-
* `rustic / Rustic / Rustic & Artisan` cannot tell that without being told.
|
|
84
|
-
*/
|
|
85
|
-
wordings: number;
|
|
86
|
-
}
|
|
87
|
-
declare const concepts: () => readonly Concept[];
|
|
88
|
-
/** One axis's worth of the matrix: its concepts, and only the repositories that speak about it. */
|
|
89
|
-
interface AxisDisagreement {
|
|
90
|
-
axis: string;
|
|
91
|
-
concepts: readonly Concept[];
|
|
92
|
-
repos: readonly EstateRepo[];
|
|
93
|
-
/** Concepts on this axis that more than one repository reaches. */
|
|
94
|
-
shared: number;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* The disagreement matrix, split one table per axis.
|
|
98
|
-
*
|
|
99
|
-
* ONE TABLE MIXING AXES IS SPARSE BY CONSTRUCTION, and the sparseness is not a finding. Each
|
|
100
|
-
* repository speaks about some axes and not others: samplize's vocabulary is colour and nothing
|
|
101
|
-
* else, so against every style concept it is a column of dashes. Rendered as one table that reads
|
|
102
|
-
* as six repositories disagreeing when it is really six repositories talking about different
|
|
103
|
-
* subjects, and it costs enough width to break the canonical identifiers across three lines.
|
|
104
|
-
*
|
|
105
|
-
* Split by axis, every table is dense and each makes its own point. Style is the argument, at five
|
|
106
|
-
* repositories and twenty-three concepts. Place is the sharpest, because every repository reaches
|
|
107
|
-
* it and every concept on it is shared - which is the axis the design review said was the gap.
|
|
108
|
-
*
|
|
109
|
-
* An axis is only worth a table if more than one repository speaks about it and there is more than
|
|
110
|
-
* a handful to show; the rest are reported as a count rather than drawn.
|
|
111
|
-
*/
|
|
112
|
-
declare const disagreementsByAxis: ({ minConcepts, }?: {
|
|
113
|
-
minConcepts?: number;
|
|
114
|
-
}) => readonly AxisDisagreement[];
|
|
115
|
-
/** The dictionaries as columns, in the order the matrix renders them. */
|
|
116
|
-
declare const MATRIX_COLUMNS: readonly {
|
|
117
|
-
id: string;
|
|
118
|
-
repo: EstateRepo;
|
|
119
|
-
label: string;
|
|
120
|
-
}[];
|
|
121
|
-
/** The headline the disagreement page opens with, computed rather than asserted. */
|
|
122
|
-
declare const agreementSummary: () => {
|
|
123
|
-
concepts: number;
|
|
124
|
-
reachedByAll: number;
|
|
125
|
-
reachedByFourOrMore: number;
|
|
126
|
-
distinctSpellings: number;
|
|
127
|
-
exactStringMatchesAcrossRepos: number;
|
|
128
|
-
/** Concepts more than one repository reaches. */
|
|
129
|
-
shared: number;
|
|
130
|
-
/** Repositories in the census. Not every one speaks about every axis. */
|
|
131
|
-
repos: number;
|
|
132
|
-
/** Of those, the ones where every source uses the same word and differs only in spelling. */
|
|
133
|
-
spellingOnly: number;
|
|
134
|
-
};
|
|
135
|
-
/**
|
|
136
|
-
* The share of the DesignShop corpus the two ambiguous style values account for, as a percentage.
|
|
137
|
-
*
|
|
138
|
-
* A SHARE AND NOT A COUNT, and the distinction is the whole reason this function exists rather than
|
|
139
|
-
* a consumer reading `DESIGNSHOP_SCHEME_STYLE_COUNTS` directly. The underlying figures are a third
|
|
140
|
-
* party's catalogue volumes and are not ours to publish. The claim anything downstream actually
|
|
141
|
-
* needs is that `Modern` and `Contemporary` sit at comparable volume and together account for a
|
|
142
|
-
* large slice of the corpus - which a percentage carries exactly as well and a count carries no
|
|
143
|
-
* better.
|
|
144
|
-
*
|
|
145
|
-
* Exported so no page has to hand-type the number. A figure typed by hand is a figure that drifts
|
|
146
|
-
* from its data, and one derived from counts nobody may publish is the same disclosure a layer
|
|
147
|
-
* down.
|
|
148
|
-
*/
|
|
149
|
-
declare const ambiguousStyleShare: () => number;
|
|
150
|
-
|
|
151
|
-
interface ResidueReport {
|
|
152
|
-
/** Every term across all seven estate vocabularies. */
|
|
153
|
-
total: number;
|
|
154
|
-
/** Terms that were never aesthetic vocabulary: query markers and material properties. */
|
|
155
|
-
excluded: number;
|
|
156
|
-
/** The denominator the headline is quoted against. */
|
|
157
|
-
aesthetic: number;
|
|
158
|
-
decomposed: number;
|
|
159
|
-
lossy: number;
|
|
160
|
-
ambiguous: number;
|
|
161
|
-
/** Terms that resist decomposition entirely and can only be carried as anchors. */
|
|
162
|
-
residue: number;
|
|
163
|
-
outOfAxis: number;
|
|
164
|
-
/** `decomposed` as a share of `aesthetic`. TAX-14's threshold was 80 per cent. */
|
|
165
|
-
cleanRate: number;
|
|
166
|
-
/**
|
|
167
|
-
* The circularity guard. The axes here were authored after reading these terms, so the headline
|
|
168
|
-
* rate is partly fitted to its own inputs. This is the share that decomposes onto canon that
|
|
169
|
-
* existed BEFORE the test - vendored from materialgraph, colorscope and architizer, or already
|
|
170
|
-
* published in this package. It is the floor the design would have reached with no new authoring
|
|
171
|
-
* at all, and it is the number to argue with.
|
|
172
|
-
*/
|
|
173
|
-
preExistingRate: number;
|
|
174
|
-
preExisting: number;
|
|
175
|
-
/** Source terms that needed a term minted on an axis that already existed. */
|
|
176
|
-
neededMintedTerm: number;
|
|
177
|
-
/** Source terms that needed a whole axis that did not exist. */
|
|
178
|
-
neededMintedAxis: number;
|
|
179
|
-
}
|
|
180
|
-
declare const residueReport: () => ResidueReport;
|
|
181
|
-
declare const mintingDemand: () => {
|
|
182
|
-
onExistingAxes: readonly (readonly [string, number])[];
|
|
183
|
-
onNewAxes: readonly (readonly [string, number])[];
|
|
184
|
-
};
|
|
185
|
-
/** Per-source decomposition rate, over the aesthetic subset. */
|
|
186
|
-
declare const rateBySource: () => readonly {
|
|
187
|
-
source: string;
|
|
188
|
-
decomposed: number;
|
|
189
|
-
terms: number;
|
|
190
|
-
}[];
|
|
191
|
-
/** Every row the canon could not take cleanly. The site publishes this list in full. */
|
|
192
|
-
declare const unresolved: () => readonly Row[];
|
|
193
|
-
/** Real questions the estate asks that no axis here answers yet. Declared, never absorbed. */
|
|
194
|
-
declare const declaredGaps: () => readonly Row[];
|
|
195
|
-
|
|
196
|
-
type VocabularyKind =
|
|
197
|
-
/** A closed enum a writer must choose from. */
|
|
198
|
-
"enum"
|
|
199
|
-
/** A keyword set matched against free text. */
|
|
200
|
-
| "keyword-set"
|
|
201
|
-
/** Free-text prose used as an embedding anchor; the label is a handle, not a value. */
|
|
202
|
-
| "embedding-anchor"
|
|
203
|
-
/** Uncontrolled free text captured from a third party's index. */
|
|
204
|
-
| "captured-free-text";
|
|
205
|
-
interface EstateVocabulary {
|
|
206
|
-
id: string;
|
|
207
|
-
name: string;
|
|
208
|
-
repo: string;
|
|
209
|
-
file: string;
|
|
210
|
-
snapshot: string;
|
|
211
|
-
kind: VocabularyKind;
|
|
212
|
-
/** What question the vocabulary was built to answer, in the authors' own framing. */
|
|
213
|
-
purpose: string;
|
|
214
|
-
terms: readonly string[];
|
|
215
|
-
}
|
|
216
|
-
declare const MATERIA_SCENE_MOOD: EstateVocabulary;
|
|
217
|
-
declare const MATERIA_INTENT_KEYWORDS: EstateVocabulary;
|
|
218
|
-
declare const ARCHITIZER_STYLES: EstateVocabulary;
|
|
219
|
-
declare const DESIGNROUND_STYLE_ANCHORS: EstateVocabulary;
|
|
220
|
-
declare const DESIGNSHOP_SCHEME_STYLES: EstateVocabulary;
|
|
221
|
-
/**
|
|
222
|
-
* Scheme counts over the 1,922 schemes carrying at least one product. Bands, not counts, are what
|
|
223
|
-
* gets published (see `Term.usage`); the raw figures live here because the decomposition test has
|
|
224
|
-
* to weight by usage and cannot do that from a band.
|
|
225
|
-
*/
|
|
226
|
-
declare const DESIGNSHOP_SCHEME_STYLE_COUNTS: Readonly<Record<string, number>>;
|
|
227
|
-
declare const DESIGNSHOP_PRODUCT_STYLES: EstateVocabulary;
|
|
228
|
-
declare const MATERIALGRAPH_MS_STYLE: EstateVocabulary;
|
|
229
|
-
declare const MATERIALGRAPH_MS_MOOD: EstateVocabulary;
|
|
230
|
-
declare const MATERIALGRAPH_MS_CHARACTER: EstateVocabulary;
|
|
231
|
-
declare const ESTATE_VOCABULARIES: readonly EstateVocabulary[];
|
|
232
|
-
|
|
233
|
-
export { ARCHITIZER_STYLES, type AxisDisagreement, type Concept, type ConceptCell, DECOMPOSITION, DESIGNROUND_STYLE_ANCHORS, DESIGNSHOP_PRODUCT_STYLES, DESIGNSHOP_SCHEME_STYLES, DESIGNSHOP_SCHEME_STYLE_COUNTS, ESTATE_REPOS, ESTATE_VOCABULARIES, type EstateRepo, type EstateVocabulary, MATERIALGRAPH_MS_CHARACTER, MATERIALGRAPH_MS_MOOD, MATERIALGRAPH_MS_STYLE, MATERIA_INTENT_KEYWORDS, MATERIA_SCENE_MOOD, MATRIX_COLUMNS, type OutOfAxisReason, type ResidueReport, type Row, type Verdict, type VocabularyKind, agreementSummary, ambiguousStyleShare, concepts, declaredGaps, disagreementsByAxis, mintingDemand, rateBySource, residueReport, unresolved };
|