pub struct UncertainBox {
pub box_embedding: BoxEmbedding,
pub source_trust: f32,
}Expand description
An uncertainty-aware box embedding (UKGE-style).
Based on UKGE (Chen et al., 2021), box volume represents confidence:
- Small box = high confidence (precise, trusted fact)
- Large box = low confidence (vague, uncertain, or dubious claim)
This enables conflict detection: if two high-confidence boxes are disjoint, they represent contradictory claims.
§Example
ⓘ
use anno::backends::box_embeddings::{BoxEmbedding, UncertainBox};
// High-confidence claim: "Trump is in NY" (small, precise box)
let claim_a = UncertainBox::new(
BoxEmbedding::new(vec![0.0, 0.0], vec![0.1, 0.1]), // Small = high confidence
0.95, // Source trust
);
// Contradictory claim: "Trump is in FL" (also high confidence, but disjoint)
let claim_b = UncertainBox::new(
BoxEmbedding::new(vec![5.0, 5.0], vec![5.1, 5.1]), // Disjoint from claim_a
0.90,
);
// Should detect conflict
assert!(claim_a.detect_conflict(&claim_b).is_some());Fields§
§box_embedding: BoxEmbeddingThe underlying box embedding
source_trust: f32Source trustworthiness (0.0-1.0)
Implementations§
Source§impl UncertainBox
impl UncertainBox
Sourcepub fn new(box_embedding: BoxEmbedding, source_trust: f32) -> Self
pub fn new(box_embedding: BoxEmbedding, source_trust: f32) -> Self
Create a new uncertainty-aware box.
Confidence is derived from box volume (smaller = higher confidence).
Sourcepub fn confidence(&self) -> f32
pub fn confidence(&self) -> f32
Get confidence derived from box volume.
Smaller boxes = higher confidence. This is a heuristic: confidence ≈ 1.0 / (1.0 + volume)
Sourcepub fn detect_conflict(&self, other: &Self) -> Option<Conflict>
pub fn detect_conflict(&self, other: &Self) -> Option<Conflict>
Detect conflict with another uncertain box.
Returns Some(Conflict) if both boxes are high-confidence but disjoint, indicating contradictory claims.
Trait Implementations§
Source§impl Clone for UncertainBox
impl Clone for UncertainBox
Source§fn clone(&self) -> UncertainBox
fn clone(&self) -> UncertainBox
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UncertainBox
impl Debug for UncertainBox
Source§impl PartialEq for UncertainBox
impl PartialEq for UncertainBox
impl StructuralPartialEq for UncertainBox
Auto Trait Implementations§
impl Freeze for UncertainBox
impl RefUnwindSafe for UncertainBox
impl Send for UncertainBox
impl Sync for UncertainBox
impl Unpin for UncertainBox
impl UnsafeUnpin for UncertainBox
impl UnwindSafe for UncertainBox
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more