Skip to main content

oxirs_embed/models/
mod.rs

1//! Embedding model implementations
2//!
3//! This module provides various knowledge graph embedding models including:
4//! - TransE: Translation-based embeddings
5//! - ComplEx: Complex number embeddings for asymmetric relations
6//! - DistMult: Bilinear diagonal model
7//! - RotatE: Rotation-based embeddings
8//! - HolE: Holographic embeddings using circular correlation
9//! - ConvE: Convolutional embeddings with 2D CNNs (optional)
10//! - TuckER: Tucker decomposition based embeddings (optional)
11//! - TransformerEmbedding: Transformer-based embeddings (BERT, RoBERTa, etc.)
12//! - GNNEmbedding: Graph Neural Network embeddings (GCN, GraphSAGE, GAT, etc.)
13//! - OntologyAwareEmbedding: Embeddings that respect RDF/OWL ontology constraints
14
15pub mod complex;
16pub mod distmult;
17pub mod gnn;
18pub mod hole;
19pub mod ontology;
20pub mod rotate;
21pub mod transe;
22pub mod transformer;
23
24#[cfg(feature = "conve")]
25pub mod conve;
26
27#[cfg(feature = "tucker")]
28pub mod tucker;
29
30#[cfg(feature = "quatd")]
31pub mod quatd;
32
33pub mod advanced_models;
34pub mod base;
35pub mod common;
36pub mod scirs_neural;
37
38// Re-export all models
39pub use complex::ComplEx;
40pub use distmult::DistMult;
41pub use gnn::{AggregationType, GNNConfig, GNNEmbedding, GNNType};
42pub use hole::{HoLE, HoLEConfig};
43pub use ontology::{
44    OntologyAwareConfig, OntologyAwareEmbedding, OntologyConstraints, OntologyRelation,
45};
46pub use rotate::RotatE;
47pub use transe::TransE;
48pub use transformer::{PoolingStrategy, TransformerConfig, TransformerEmbedding, TransformerType};
49
50#[cfg(feature = "conve")]
51pub use conve::{ConvE, ConvEConfig};
52
53#[cfg(feature = "tucker")]
54pub use tucker::TuckER;
55
56#[cfg(feature = "quatd")]
57pub use quatd::QuatD;
58
59pub use advanced_models::{Lcg as AdvancedLcg, PairRE, Rescal, RotatEPlus};
60pub use base::*;
61pub use common::*;
62pub use scirs_neural::{ActivationType, OptimizerType, SciRS2NeuralConfig, SciRS2NeuralEmbedding};
63
64// GraphSAGE and GAT basic implementations
65pub mod gat_basic;
66pub mod graphsage;
67
68// Re-exports for GraphSAGE
69pub use graphsage::{
70    AggregatorType, GraphData, GraphSage, GraphSageConfig, GraphSageEmbeddings,
71    GraphSageTrainingMetrics, SimpleLcg,
72};
73
74// Re-exports for GAT
75pub use gat_basic::{Gat, GatConfig, GatEmbeddings};
76
77// Knowledge Graph Embedding algorithms (TransE, DistMult, RotatE)
78pub mod kg_embeddings;
79pub use kg_embeddings::{
80    deserialize_embeddings, serialize_embeddings, DistMult as KgDistMult, KgEmbeddingConfig,
81    KgEmbeddings, KgError, KgModel, KgResult, KgTriple, LinkPredictionEvaluator,
82    RotatE as KgRotatE, TrainingHistory, TransE as KgTransE,
83};