pub struct BaseModel {
pub config: ModelConfig,
pub model_id: Uuid,
pub entity_to_id: HashMap<String, usize>,
pub id_to_entity: HashMap<usize, String>,
pub relation_to_id: HashMap<String, usize>,
pub id_to_relation: HashMap<usize, String>,
pub triples: Vec<(usize, usize, usize)>,
pub positive_triples: HashSet<(usize, usize, usize)>,
pub is_trained: bool,
pub creation_time: DateTime<Utc>,
pub last_training_time: Option<DateTime<Utc>>,
}Expand description
Core data structures and functionality shared by all embedding models
Fields§
§config: ModelConfigModel configuration
model_id: UuidUnique model identifier
entity_to_id: HashMap<String, usize>Entity to index mapping
id_to_entity: HashMap<usize, String>Index to entity mapping
relation_to_id: HashMap<String, usize>Relation to index mapping
id_to_relation: HashMap<usize, String>Index to relation mapping
triples: Vec<(usize, usize, usize)>Training triples (subject_id, predicate_id, object_id)
positive_triples: HashSet<(usize, usize, usize)>Set of all positive triples for fast lookup
is_trained: boolWhether the model has been trained
creation_time: DateTime<Utc>Model creation time
last_training_time: Option<DateTime<Utc>>Last training time
Implementations§
Source§impl BaseModel
impl BaseModel
Sourcepub fn new(config: ModelConfig) -> Self
pub fn new(config: ModelConfig) -> Self
Create a new base model
Sourcepub fn add_triple(&mut self, triple: Triple) -> Result<()>
pub fn add_triple(&mut self, triple: Triple) -> Result<()>
Add a triple to the model
Sourcepub fn get_entity_id(&self, entity: &str) -> Option<usize>
pub fn get_entity_id(&self, entity: &str) -> Option<usize>
Get entity ID
Sourcepub fn get_relation_id(&self, relation: &str) -> Option<usize>
pub fn get_relation_id(&self, relation: &str) -> Option<usize>
Get relation ID
Sourcepub fn get_entity(&self, id: usize) -> Option<&String>
pub fn get_entity(&self, id: usize) -> Option<&String>
Get entity string from ID
Sourcepub fn get_relation(&self, id: usize) -> Option<&String>
pub fn get_relation(&self, id: usize) -> Option<&String>
Get relation string from ID
Sourcepub fn num_entities(&self) -> usize
pub fn num_entities(&self) -> usize
Get number of entities
Sourcepub fn num_relations(&self) -> usize
pub fn num_relations(&self) -> usize
Get number of relations
Sourcepub fn num_triples(&self) -> usize
pub fn num_triples(&self) -> usize
Get number of triples
Sourcepub fn get_entities(&self) -> Vec<String>
pub fn get_entities(&self) -> Vec<String>
Get all entity strings
Sourcepub fn get_relations(&self) -> Vec<String>
pub fn get_relations(&self) -> Vec<String>
Get all relation strings
Sourcepub fn has_triple(
&self,
subject_id: usize,
predicate_id: usize,
object_id: usize,
) -> bool
pub fn has_triple( &self, subject_id: usize, predicate_id: usize, object_id: usize, ) -> bool
Check if a triple exists in the knowledge base
Sourcepub fn generate_negative_samples<R>(
&self,
num_samples: usize,
rng: &mut Random<R>,
) -> Vec<(usize, usize, usize)>where
R: RngCore,
pub fn generate_negative_samples<R>(
&self,
num_samples: usize,
rng: &mut Random<R>,
) -> Vec<(usize, usize, usize)>where
R: RngCore,
Generate negative samples for training
Sourcepub fn get_stats(&self, model_type: &str) -> ModelStats
pub fn get_stats(&self, model_type: &str) -> ModelStats
Get model statistics
Sourcepub fn mark_trained(&mut self)
pub fn mark_trained(&mut self)
Mark model as trained
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BaseModel
impl RefUnwindSafe for BaseModel
impl Send for BaseModel
impl Sync for BaseModel
impl Unpin for BaseModel
impl UnwindSafe for BaseModel
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
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 moreSource§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Casts the value.
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.