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.
Six independent similarity channels
The schema preserves the source of similarity evidence instead of collapsing everything into one opaque vector.
Shape
Contours, shape descriptors or owner-defined representations.
Size
Scalar or vector scale features.
Color
Color vectors or owner-defined color payloads.
Tone
Luminance/value descriptors, separate from chromatic color.
Orientation
Angles or directional representations.
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.
subjectRef + channel + featureSlotRef
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.
creates payloadRef
channel + slot + representation
channel-specific comparison
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.
Example feature availability
Channel independence is explicit
Shape, size and color can disagree. 29.00 keeps those facts separate instead of creating one accidental global similarity.
Shape channel
Size channel
29.00 result
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.
Near but dissimilar
Far but repeated
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.
feature schema
shape / size
color / tone
orientation / texture / style
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.
DATA FOR LAYOUT ENGINE
Canonical machine contract for Topic29 feature-schema layer.
{
"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"
}