ScoringWeights

Struct ScoringWeights 

Source
pub struct ScoringWeights {
    pub vector: f32,
    pub warmth: f32,
    pub recency: f32,
    pub abstraction: f32,
    pub graph: f32,
    pub keyword: f32,
    pub causal: f32,
}
Expand description

Weights for deterministic scoring formula.

Seven orthogonal factors, each weight ∈ [0, 1], summing to 1.0 (±ε).

score = w_v·S_vector + w_w·S_warmth + w_r·S_recency
      + w_a·S_abstraction + w_g·S_graph + w_k·S_keyword
      + w_c·S_causal

The causal factor scores entities by their proximity to recent events in the Event DAG. When no Event DAG data is available, adaptive weight renormalization zeros causal and redistributes its budget to the remaining factors.

Fields§

§vector: f32

Cosine similarity between query embedding and entity embedding

§warmth: f32

Access frequency with temporal decay

§recency: f32

Creation time decay (newer = higher)

§abstraction: f32

Abstraction level (Principle > Summary > Raw)

§graph: f32

Graph proximity via edge traversal (degrees of separation)

§keyword: f32

Keyword/substring match score

§causal: f32

Event DAG causal proximity (how recently events reference this entity)

Implementations§

Source§

impl ScoringWeights

Source

pub fn validate(&self) -> bool

Validate that all weights sum to 1.0 within epsilon tolerance.

The tolerance matches the PostgreSQL weights_sum_to_one CHECK constraint: ABS(sum - 1.0) < 0.001.

Source

pub fn normalize(&mut self)

Normalize weights so they sum to exactly 1.0, preserving ratios.

§Mathematical Properties
  • Idempotent: normalize(normalize(w)) = normalize(w)
  • Ratio-preserving: wᵢ/wⱼ is invariant under normalization
  • No-op on zero: if all weights are 0, remains all zeros
Source

pub fn legacy_six_factor() -> Self

Legacy 6-factor weights for backward compatibility.

Returns weights with causal = 0.0 and the original 6-factor defaults. Useful when Event DAG is not available.

Source

fn sum(&self) -> f32

Sum of all weights.

Source

pub fn score(&self, factors: &ScoringFactors) -> f32

Compute the weighted score given per-factor raw scores.

Each raw score should be in [0, 1]. The result is in [0, 1] when weights are valid (sum to 1.0).

Non-finite factor values (NaN, ±Inf) are clamped to [0, 1] to prevent silent propagation through downstream scoring.

Trait Implementations§

Source§

impl Clone for ScoringWeights

Source§

fn clone(&self) -> ScoringWeights

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl ComposeSchema for ScoringWeights

Source§

fn compose(generics: Vec<RefOr<Schema>>) -> RefOr<Schema>

Source§

impl Debug for ScoringWeights

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ScoringWeights

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ScoringWeights

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for ScoringWeights

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToSchema for ScoringWeights

Source§

fn name() -> Cow<'static, str>

Return name of the schema. Read more
Source§

fn schemas(schemas: &mut Vec<(String, RefOr<Schema>)>)

Implement reference [utoipa::openapi::schema::Schema]s for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> PartialSchema for T
where T: ComposeSchema + ?Sized,

§

fn schema() -> RefOr<Schema>

Return ref or schema of implementing type that can then be used to construct combined schemas.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,