@instruments/taxonomy 1.10.0 → 1.11.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.
@@ -6,8 +6,16 @@ export interface AxisGovernance {
6
6
  provenance: NonNullable<Term["provenance"]>;
7
7
  reviewedAt: string;
8
8
  }
9
+ /** How many terms one described thing may carry from a facet. */
10
+ export type FacetHolds = "one" | "several";
9
11
  export interface AxisFacet {
10
12
  governance?: AxisGovernance;
13
+ /**
14
+ * `one` means a thing has a single reading of this facet. `several` means each stated term is a
15
+ * separate reading, never a span between two of them. Optional: a facet that has not been decided
16
+ * says nothing, and a consumer must not read silence as either answer.
17
+ */
18
+ holds?: FacetHolds;
11
19
  label: string;
12
20
  slug: string;
13
21
  terms: readonly Term[];
@@ -1,7 +1,7 @@
1
1
  import type { Term } from "../term.js";
2
2
  import type { Axis, AxisSlug } from "./axis.js";
3
3
  export declare const AXES: readonly Axis[];
4
- export { type Axis, type AxisFacet, AXIS_SLUGS, type AxisGovernance, type AxisSlug, } from "./axis.js";
4
+ export { type Axis, type AxisFacet, AXIS_SLUGS, type AxisGovernance, type AxisSlug, type FacetHolds, } from "./axis.js";
5
5
  export declare const axisBySlug: (slug: AxisSlug) => Axis | undefined;
6
6
  /** Every term on an axis, across all its facets. */
7
7
  export declare const axisTerms: (axis: Axis) => readonly Term[];
package/dist/index.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  * Identity is always a canonical HTTPS URI. The package exports declarative data and the types
5
5
  * needed to consume it; resolution, traversal, ranking, and search policy live in adapters.
6
6
  */
7
- export { type AxisNode, type CanonicalConceptUri, COLOR_SCOPE_REFERENCE_KINDS, type ColorScopeReferenceKind, type ColorScopeTarget, type ConceptNode, type ExternalReference, type FacetNode, type Governance, type GraphPredicate, type KnowledgeGraph, type KnowledgeGraphEdge, type KnowledgeGraphNode, KNOWLEDGE_GRAPH, type LexicalEntry, type LexicalContext, LEXICAL_ENTRIES, type Lifecycle, type LifecycleStatus, type LexicalTarget, TAXONOMY_BASE_URI, TAXONOMY_CORPUS_METADATA, TAXONOMY_CORPUS_REVISION, TAXONOMY_SNAPSHOT, TAXONOMY_VERSION, type TaxonomyTarget, } from "./v1.js";
7
+ export { type AxisNode, type CanonicalConceptUri, COLOR_SCOPE_REFERENCE_KINDS, type ColorScopeReferenceKind, type ColorScopeTarget, type ConceptNode, type ExternalReference, type FacetHolds, type FacetNode, type Governance, type GraphPredicate, type KnowledgeGraph, type KnowledgeGraphEdge, type KnowledgeGraphNode, KNOWLEDGE_GRAPH, type LexicalEntry, type LexicalContext, LEXICAL_ENTRIES, type Lifecycle, type LifecycleStatus, type LexicalTarget, TAXONOMY_BASE_URI, TAXONOMY_CORPUS_METADATA, TAXONOMY_CORPUS_REVISION, TAXONOMY_SNAPSHOT, TAXONOMY_VERSION, type TaxonomyTarget, } from "./v1.js";
8
8
  export type { ElementPlacement, PeriodSpan, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld, } from "./term.js";
package/dist/index.js CHANGED
@@ -7140,7 +7140,10 @@ var PRODUCT_CATEGORY_TERMS = [
7140
7140
  "textile",
7141
7141
  "Textile",
7142
7142
  "A woven, knitted or non-woven fabric supplied by the length or hide for upholstery, drapery or acoustic use.",
7143
- { external: [uniclass2("Pr_35_57_88", "Textiles", "exact")] }
7143
+ {
7144
+ altLabels: ["fabric"],
7145
+ external: [uniclass2("Pr_35_57_88", "Textiles", "exact")]
7146
+ }
7144
7147
  ),
7145
7148
  fromCorpus(
7146
7149
  "coating",
@@ -11463,20 +11466,42 @@ var AXES = [
11463
11466
  {
11464
11467
  boundary: "Pattern is the visible organisation or motif on a surface. It is independent of material: porcelain can be plain, geometric or stone-effect, and carpet and wallcovering use the same pattern semantics.",
11465
11468
  facets: [
11466
- { label: "Type", slug: "type", terms: PATTERN_TYPE_TERMS },
11467
- { label: "Scale", slug: "scale", terms: PATTERN_SCALE_TERMS },
11468
- { label: "Density", slug: "density", terms: PATTERN_DENSITY_TERMS },
11469
11469
  {
11470
+ holds: "several",
11471
+ label: "Type",
11472
+ slug: "type",
11473
+ terms: PATTERN_TYPE_TERMS
11474
+ },
11475
+ {
11476
+ holds: "several",
11477
+ label: "Scale",
11478
+ slug: "scale",
11479
+ terms: PATTERN_SCALE_TERMS
11480
+ },
11481
+ {
11482
+ holds: "one",
11483
+ label: "Density",
11484
+ slug: "density",
11485
+ terms: PATTERN_DENSITY_TERMS
11486
+ },
11487
+ {
11488
+ holds: "one",
11470
11489
  label: "Regularity",
11471
11490
  slug: "regularity",
11472
11491
  terms: PATTERN_REGULARITY_TERMS
11473
11492
  },
11474
11493
  {
11494
+ holds: "one",
11475
11495
  label: "Directionality",
11476
11496
  slug: "directionality",
11477
11497
  terms: PATTERN_DIRECTIONALITY_TERMS
11478
11498
  },
11479
- { label: "Figure", slug: "figure", terms: PATTERN_FIGURE_TERMS }
11499
+ {
11500
+ holds: "several",
11501
+ label: "Figure",
11502
+ slug: "figure",
11503
+ terms: PATTERN_FIGURE_TERMS
11504
+ }
11480
11505
  ],
11481
11506
  label: "Pattern",
11482
11507
  question: "What motif or surface organisation does it carry?",
@@ -11756,8 +11781,8 @@ var resolveReference = (reference) => INDEX.byKey.get(canonicalKey(reference));
11756
11781
 
11757
11782
  // src/v1.ts
11758
11783
  var TAXONOMY_BASE_URI = "https://taxonomy.materialinstruments.com";
11759
- var TAXONOMY_SNAPSHOT = "2026-09-28";
11760
- var TAXONOMY_VERSION = "1.10.0";
11784
+ var TAXONOMY_SNAPSHOT = "2026-10-02";
11785
+ var TAXONOMY_VERSION = "1.11.0";
11761
11786
  var PUBLISHED_V1_BASELINE = "2026-08-30";
11762
11787
  var TAX45_REVIEW_SNAPSHOT = "2026-08-31";
11763
11788
  var LIMESTONE_INTRODUCED = "2026-09-01";
@@ -11853,6 +11878,7 @@ var addTermNodes = (assembly, axis, axisUri) => {
11853
11878
  assembly.nodes.push({
11854
11879
  axis: axisUri,
11855
11880
  governance: facetGovernance,
11881
+ ...facet.holds === void 0 ? {} : { holds: facet.holds },
11856
11882
  kind: "facet",
11857
11883
  label: facet.label,
11858
11884
  lifecycle: facetGovernance.lifecycle,
package/dist/v1.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ import type { FacetHolds } from "./axes/index.js";
1
2
  import type { ElementPlacement, ExternalMapping, ExternalScheme, PeriodSpan, RelationPredicate, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld } from "./term.js";
3
+ export type { FacetHolds } from "./axes/index.js";
2
4
  export declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
3
- export declare const TAXONOMY_SNAPSHOT: "2026-09-28";
4
- export declare const TAXONOMY_VERSION: "1.10.0";
5
+ export declare const TAXONOMY_SNAPSHOT: "2026-10-02";
6
+ export declare const TAXONOMY_VERSION: "1.11.0";
5
7
  export type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
6
8
  export type LifecycleStatus = "active" | "deprecated";
7
9
  export interface Lifecycle {
@@ -33,6 +35,8 @@ export interface AxisNode {
33
35
  export interface FacetNode {
34
36
  axis: string;
35
37
  governance: Governance;
38
+ /** How many terms one thing may carry from this facet. Absent when the facet has not declared it. */
39
+ holds?: FacetHolds;
36
40
  kind: "facet";
37
41
  label: string;
38
42
  lifecycle: Lifecycle;
@@ -135,7 +139,6 @@ export declare const TAXONOMY_CORPUS_METADATA: {
135
139
  readonly lexicalEntryCount: number;
136
140
  readonly nodeCount: number;
137
141
  readonly revision: string;
138
- readonly snapshot: "2026-09-28";
139
- readonly version: "1.10.0";
142
+ readonly snapshot: "2026-10-02";
143
+ readonly version: "1.11.0";
140
144
  };
141
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/taxonomy",
3
- "version": "1.10.0",
3
+ "version": "1.11.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": {