weavatrix_semantic/linker/
mod.rs1mod edge;
2mod execute;
3pub(crate) mod math;
4mod report;
5
6use crate::LinkConfig;
7use weavatrix_graph::{Edge, EdgeKind};
8
9pub const SEMANTIC_EDGE_KIND: &str = "semantic_similarity";
11
12pub const SEMANTIC_EXTRACTOR: &str = "weavatrix-semantic";
14
15#[derive(Debug, Clone, Copy, PartialEq, Eq)]
17pub enum CandidateBackend {
18 Exact,
20 WeavatrixVector,
22}
23
24#[derive(Debug, Clone, Copy, PartialEq)]
25pub(crate) struct Candidate {
26 pub(crate) target: usize,
27 pub(crate) score: f64,
28}
29
30#[derive(Debug, Clone, PartialEq, Eq)]
32pub struct SemanticLinkReport {
33 vector_count: usize,
34 dimension: usize,
35 comparisons: u64,
36 pair_count: usize,
37 candidate_backend: CandidateBackend,
38 policy_id: String,
39 edges: Vec<Edge>,
40}
41
42#[derive(Debug, Clone)]
44pub struct SemanticLinker {
45 config: LinkConfig,
46 edge_kind: EdgeKind,
47}