COMPO · 29.00 · SIMILARITY FEATURE SCHEMA

Keep channels separate.
Compare later.

29.00 создаёт canonical schema для similarity features по независимым каналам: shape, size, color, tone, orientation и texture/style. Он фиксирует owner-qualified payload lineage и availability, но ещё не вычисляет ни одного feature distance, similarity relation или cluster.

Module29.00
Progress1/5 local
Channels6 independent
Pair generationnone
Metricsnone
Next29.01 only

29.00 owns the feature vocabulary

Objects and feature payloads remain foreign-owned. This module only binds them into a deterministic, auditable similarity-feature schema.

00 / schema only
explicit SimilaritySubjectDeclaration[] + explicit SimilarityFeatureDeclaration[] + bounded SimilarityFeatureSchemaPolicy → exact subject identity → exact channel + featureSlot identity → owner-qualified payload lineage → availability matrix → SimilarityFeatureSchema → SimilarityFeatureSet → external SimilarityFeatureAttachment NO feature extraction NO feature comparison NO pair Cartesian product NO feature distances NO SimilarityRelation NO clustering NO scoring

Six independent similarity channels

The schema preserves the source of similarity evidence instead of collapsing everything into one opaque vector.

01 / channel taxonomy
SHAPE

Shape

Contours, shape descriptors or owner-defined representations.

SIZE

Size

Scalar or vector scale features.

COLOR

Color

Color vectors or owner-defined color payloads.

TONE

Tone

Luminance/value descriptors, separate from chromatic color.

ORIENTATION

Orientation

Angles or directional representations.

TEXTURE_STYLE

Texture / style

May use multiple explicit slots without losing source identity.

Feature identity includes the slot

One subject can legitimately have several features in the same channel. `featureSlotRef` prevents them from being silently overwritten.

02 / feature key

subjectRef + channel + featureSlotRef

subject AsubjectOwnerRef TEXTURE_STYLEslot=texture TEXTURE_STYLEslot=style two valid keysA::TEXTURE_STYLE::textureA::TEXTURE_STYLE::style

Payload is opaque until its comparison owner consumes it

29.00 records `payloadRef`, representation kind and owner lineage. It does not interpret whether a vector is Lab color, shape embedding or texture descriptor.

03 / lineage
foreign feature owner

creates payloadRef

→
29.00 declaration

channel + slot + representation

→
29.01–29.03

channel-specific comparison

Representation ≠ comparison formula`VECTOR` does not authorize Euclidean distance automatically; `ANGLE` does not authorize a specific wrap rule automatically.

Missing feature stays N_A

The availability matrix reports which channels exist for every declared subject. Absence is never imputed and never encoded as zero.

04 / availability matrix

Example feature availability

SUBJECTSHAPESIZECOLORTONEORIENT.TEX/STYLE ABC OKOKOKOKOKOK OKOKOKN_AN_AN_A OKN_AN_AN_AN_AN_A

Channel independence is explicit

Shape, size and color can disagree. 29.00 keeps those facts separate instead of creating one accidental global similarity.

05 / no aggregation

Shape channel

same-like shape evidence?

Size channel

different size evidence?

29.00 result

keep channelsseparateno combined similarity yet

Similarity is not proximity

Topic 28 grouped by spatial closeness. Topic 29 will group by feature resemblance. Near objects can be dissimilar; far objects can repeat visually.

06 / Topic28 firewall

Near but dissimilar

proximity may be high · similarity may be low

Far but repeated

far apart · same feature channel can still match

Topic 29 stays staged

29.00 defines feature identities. Channel-specific distances arrive in 29.01–29.03; clustering and multi-channel logic belong only to 29.04.

07 / roadmap
29.00

feature schema

→
29.01

shape / size

→
29.02

color / tone

→
29.03

orientation / texture / style

→
29.04

multi-channel groups

29.00 regression suite

Tests cover six-channel taxonomy, representation kinds, feature-slot identity, owner-qualified payload lineage, missing-feature N_A, deterministic serialization, duplicate rejection, bounds and strict absence of comparison, pair generation, distances, clustering and scoring.

08 / runtime
Tests not run yet.

DATA FOR LAYOUT ENGINE

Canonical machine contract for Topic29 feature-schema layer.

09 / machine
{
  "module": "Compo 29.00",
  "name": "similarity_feature_schema",
  "version": "1.0-canonical",
  "canonical_main_title": "Similarity feature schema",
  "topic": "29_СХОДСТВО_И_ПОВТОРЯЕМОСТЬ",
  "scope": "EXPLICIT_SUBJECT_AND_OWNER_QUALIFIED_MULTI_CHANNEL_SIMILARITY_FEATURE_SCHEMA_ONLY_WITHOUT_DISTANCE_RELATIONS_GROUPING_OR_SCORING",
  "main_topic_contract": {
    "topic_title": "Сходство и повторяемость",
    "topic_goal": "Измеряет сходство по независимым каналам — shape, size, color, tone, orientation, texture/style — и формирует similarity groups без потери источника сигнала.",
    "expected_output": "SimilarityRelation[], feature distances, similarity clusters",
    "planned_files": [
      "29.00 Similarity feature schema",
      "29.01 Shape/size similarity",
      "29.02 Color/tone similarity",
      "29.03 Orientation/texture/style similarity",
      "29.04 Multi-channel groups and tests"
    ]
  },
  "ownership": {
    "owner": "Compo29.00",
    "owns": [
      "SimilarityFeatureChannel taxonomy",
      "SimilarityFeatureRepresentationKind taxonomy",
      "SimilaritySubjectDeclaration",
      "SimilarityFeatureDeclaration",
      "SimilarityFeatureKey identity",
      "SimilarityFeatureSchemaPolicy",
      "SimilarityFeatureSchema",
      "SimilarityFeatureSet",
      "SimilarityFeatureAvailabilityDescriptor",
      "SimilarityFeatureAttachment",
      "exact owner-qualified subject identity",
      "exact owner-qualified feature payload lineage",
      "feature-slot identity within a channel",
      "channel-preserving deterministic serialization",
      "missing-channel applicability semantics",
      "bounded explicit feature declaration resolution",
      "non-mutating feature correction request"
    ],
    "does_not_own": [
      "shape comparison / shape distance — Compo29.01",
      "size comparison / size distance — Compo29.01",
      "color comparison / color distance — Compo29.02",
      "tone comparison / tone distance — Compo29.02",
      "orientation comparison / angular distance — Compo29.03",
      "texture/style comparison — Compo29.03",
      "multi-channel weighting / aggregation — Compo29.04",
      "SimilarityRelation generation — Compo29.01–29.04",
      "similarity clustering — Compo29.04",
      "automatic feature extraction from pixels",
      "automatic channel inference",
      "automatic missing-feature imputation",
      "automatic pair enumeration",
      "proximity grouping — Topic28",
      "attention flow — Topic27",
      "universal beautyScore"
    ]
  },
  "feature_channels": [
    "SHAPE",
    "SIZE",
    "COLOR",
    "TONE",
    "ORIENTATION",
    "TEXTURE_STYLE"
  ],
  "representation_kinds": [
    "SCALAR",
    "VECTOR",
    "CATEGORICAL",
    "ANGLE",
    "COLOR_VECTOR",
    "SHAPE_DESCRIPTOR",
    "TEXTURE_DESCRIPTOR",
    "STYLE_DESCRIPTOR",
    "OWNER_DEFINED"
  ],
  "feature_semantics": {
    "subject_identity": "explicit subjectRef + subjectOwnerRef within exact scopeRef/snapshotRef",
    "feature_identity": "subjectRef + channel + featureSlotRef",
    "feature_payload": "opaque owner-qualified payloadRef; 29.00 does not interpret numeric/categorical meaning",
    "channel_independence": "each declaration belongs to exactly one channel",
    "multiple_slots_per_channel": "allowed when featureSlotRef differs",
    "duplicate_exact_feature_key": "INVALID",
    "missing_channel": "N_A availability; no synthetic zero/default",
    "serialization": "channel order then subjectRef then featureSlotRef; serialization carries no similarity claim",
    "comparison_formula": "DEFERRED",
    "distance": "DEFERRED",
    "pair_generation": "DEFERRED",
    "clustering": "DEFERRED"
  },
  "policy": {
    "max_subjects": [
      1,
      4096
    ],
    "max_feature_declarations": [
      1,
      262144
    ],
    "overflow": "N_A_NO_TRUNCATION",
    "duplicate_subject_ref": "INVALID",
    "duplicate_feature_ref": "INVALID",
    "duplicate_feature_key": "INVALID",
    "auto_feature_extraction": false,
    "auto_channel_inference": false,
    "auto_representation_inference": false,
    "auto_missing_feature_imputation": false,
    "auto_pair_cartesian": false,
    "auto_distance_computation": false,
    "auto_cross_channel_aggregation": false,
    "auto_clustering": false,
    "auto_scoring": false
  },
  "attachment_semantics": {
    "foreign_subject_mutation": false,
    "foreign_feature_payload_mutation": false,
    "feature_owner_mutation": false,
    "external_attachment_only": true
  },
  "status_semantics": {
    "OK": "explicit subjects and feature declarations resolve with exact owner/scope/snapshot/channel/slot lineage",
    "N_A": "feature channel or slot is absent, referenced subject is unavailable, scope/snapshot lineage mismatches, or bounds overflow",
    "INVALID": "malformed schema, unsupported channel/representation, duplicate identity, empty owner/payload refs, or invalid policy",
    "zero": "a downstream payload may legitimately encode numeric zero; schema-level missing feature remains N_A and is never replaced by zero"
  },
  "firewalls": [
    "feature presence != similarity",
    "feature representation != comparison formula",
    "feature payload != feature distance",
    "feature distance != similarity score",
    "similarity feature != similarity relation",
    "similarity relation != similarity cluster",
    "same channel != same feature value",
    "same representation kind != same feature meaning",
    "multiple feature slots != multiple independent votes",
    "channel independence != cross-channel averaging",
    "missing feature != zero feature",
    "missing channel != empty categorical token",
    "serialization order != similarity rank",
    "feature schema != automatic pair generation",
    "Topic29 similarity != Topic28 proximity",
    "Topic29 similarity group != Topic28 proximity group",
    "Topic29 similarity != Topic27 attention flow",
    "N_A != 0",
    "INVALID != 0",
    "descriptor != score",
    "local != global",
    "geometry != interpretation",
    "heuristic != law",
    "no universal similarity threshold",
    "no universal beautyScore"
  ],
  "owns_metrics": [],
  "independent_numeric_votes": 0,
  "topic29ProgressAfterThisModule": "1/5 local",
  "next_module": "Compo 29.01 — Shape/size similarity",
  "topic30_started": false,
  "publication": "NOT_VERIFIED"
}
VISITS / ...