pub struct PyramidMeta {Show 13 fields
pub round: u32,
pub summary: Vec<SuperEdge>,
pub tiles: Vec<(u32, Vec<u8>)>,
pub class_hierarchy: Vec<ClassNode>,
pub level_rollups: Vec<LevelRollup>,
pub level_links: Vec<LevelLinks>,
pub descriptors: Vec<CommunityDescriptor>,
pub subclass_cycles: Vec<Vec<String>>,
pub disjoint_pairs: Vec<(String, String)>,
pub equivalent_pairs: Vec<(String, String)>,
pub predicate_stats: Vec<PredStat>,
pub char_sets: Vec<CharSet>,
pub label_index: Vec<LabelEntry>,
}Expand description
Decoded pyramid metadata.
Fields§
§round: u32§summary: Vec<SuperEdge>§tiles: Vec<(u32, Vec<u8>)>(community, encoded SPO triple block) per tile.
class_hierarchy: Vec<ClassNode>§level_rollups: Vec<LevelRollup>§level_links: Vec<LevelLinks>Per-level lateral class-relation graph (the non-is-a connections).
descriptors: Vec<CommunityDescriptor>§subclass_cycles: Vec<Vec<String>>subClassOf cycles — each a sorted class set (SCC > 1, or a self-loop).
disjoint_pairs: Vec<(String, String)>owl:disjointWith class pairs (canonical (min, max)).
equivalent_pairs: Vec<(String, String)>owl:equivalentClass class pairs (canonical (min, max)).
predicate_stats: Vec<PredStat>Per-predicate cardinality for the planner; see PredStat.
char_sets: Vec<CharSet>The distinct entity shapes (top-N by subject count); see CharSet.
label_index: Vec<LabelEntry>Label-sorted (label, subject) table for prefix search; see LabelEntry.
Implementations§
Source§impl PyramidMeta
impl PyramidMeta
Sourcepub fn new(round: u32, summary: Vec<SuperEdge>, tiles: &[Tile]) -> PyramidMeta
pub fn new(round: u32, summary: Vec<SuperEdge>, tiles: &[Tile]) -> PyramidMeta
Build from a chosen round, the summary superedges, and the tiles — with an
empty schema pyramid (v1 shape). Use with_schema to
attach the v2 schema pyramid.
Sourcepub fn with_schema(
self,
class_hierarchy: Vec<ClassNode>,
level_rollups: Vec<LevelRollup>,
level_links: Vec<LevelLinks>,
descriptors: Vec<CommunityDescriptor>,
subclass_cycles: Vec<Vec<String>>,
disjoint_pairs: Vec<(String, String)>,
equivalent_pairs: Vec<(String, String)>,
) -> PyramidMeta
pub fn with_schema( self, class_hierarchy: Vec<ClassNode>, level_rollups: Vec<LevelRollup>, level_links: Vec<LevelLinks>, descriptors: Vec<CommunityDescriptor>, subclass_cycles: Vec<Vec<String>>, disjoint_pairs: Vec<(String, String)>, equivalent_pairs: Vec<(String, String)>, ) -> PyramidMeta
Attach the v2 schema pyramid (consuming builder).
Sourcepub fn with_predicate_stats(self, predicate_stats: Vec<PredStat>) -> PyramidMeta
pub fn with_predicate_stats(self, predicate_stats: Vec<PredStat>) -> PyramidMeta
Attach per-predicate query stats (consuming builder). Independent of the schema pyramid — a typeless graph can still carry stats.
Sourcepub fn with_char_sets(self, char_sets: Vec<CharSet>) -> PyramidMeta
pub fn with_char_sets(self, char_sets: Vec<CharSet>) -> PyramidMeta
Attach the characteristic sets / entity shapes (consuming builder).
Sourcepub fn with_label_index(self, label_index: Vec<LabelEntry>) -> PyramidMeta
pub fn with_label_index(self, label_index: Vec<LabelEntry>) -> PyramidMeta
Attach the label index (consuming builder). Independent of the schema —
any graph with label literals can carry it. The entries should already be
sorted by the label’s lowercased form (see Self::prefix_search).
Sourcepub fn prefix_search(&self, prefix: &str, limit: usize) -> Vec<&LabelEntry>
pub fn prefix_search(&self, prefix: &str, limit: usize) -> Vec<&LabelEntry>
All entries whose label, compared case-insensitively, starts with
prefix, capped at limit. The index is stored sorted by the lowercased
label, so this is a binary search for the lower bound followed by a linear
walk while the prefix still matches — no literal scan. An empty prefix
returns the first limit entries.
pub fn encode(&self) -> Vec<u8> ⓘ
pub fn decode(bytes: &[u8]) -> Result<PyramidMeta, MetaError>
Trait Implementations§
Source§impl Clone for PyramidMeta
impl Clone for PyramidMeta
Source§fn clone(&self) -> PyramidMeta
fn clone(&self) -> PyramidMeta
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more