pub trait Scorer {
// Required methods
fn score(&self, head: usize, relation: usize, tail: usize) -> f32;
fn num_entities(&self) -> usize;
// Provided methods
fn score_all_tails(&self, head: usize, relation: usize) -> Vec<f32> { ... }
fn score_all_heads(&self, relation: usize, tail: usize) -> Vec<f32> { ... }
fn top_k_tails(
&self,
head: usize,
relation: usize,
k: usize,
) -> Vec<(usize, f32)> { ... }
fn top_k_heads(
&self,
relation: usize,
tail: usize,
k: usize,
) -> Vec<(usize, f32)> { ... }
fn score_all_relations(
&self,
head: usize,
tail: usize,
num_relations: usize,
) -> Vec<f32> { ... }
fn top_k_relations(
&self,
head: usize,
tail: usize,
num_relations: usize,
k: usize,
) -> Vec<(usize, f32)> { ... }
}Expand description
Trait for scoring knowledge graph triples.
Scores are distances or negative similarities: lower values indicate more likely triples.
Required Methods§
Sourcefn score(&self, head: usize, relation: usize, tail: usize) -> f32
fn score(&self, head: usize, relation: usize, tail: usize) -> f32
Score a triple (head, relation, tail). Lower = more likely.
Sourcefn num_entities(&self) -> usize
fn num_entities(&self) -> usize
Number of entities in the model.
Provided Methods§
Sourcefn score_all_tails(&self, head: usize, relation: usize) -> Vec<f32>
fn score_all_tails(&self, head: usize, relation: usize) -> Vec<f32>
Score all entities as tail replacements for (head, relation, ?).
Returns a vec of length num_entities() where index t holds
score(head, relation, t).
Sourcefn score_all_heads(&self, relation: usize, tail: usize) -> Vec<f32>
fn score_all_heads(&self, relation: usize, tail: usize) -> Vec<f32>
Score all entities as head replacements for (?, relation, tail).
Sourcefn top_k_tails(
&self,
head: usize,
relation: usize,
k: usize,
) -> Vec<(usize, f32)>
fn top_k_tails( &self, head: usize, relation: usize, k: usize, ) -> Vec<(usize, f32)>
Return the top-k entities by score for (head, relation, ?).
Returns (entity_id, score) pairs sorted by score ascending
(best first, since lower = more likely).
Sourcefn top_k_heads(
&self,
relation: usize,
tail: usize,
k: usize,
) -> Vec<(usize, f32)>
fn top_k_heads( &self, relation: usize, tail: usize, k: usize, ) -> Vec<(usize, f32)>
Return the top-k entities by score for (?, relation, tail).