Skip to main content

PyramidMeta

Struct PyramidMeta 

Source
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

Source

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.

Source

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).

Source

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.

Source

pub fn with_char_sets(self, char_sets: Vec<CharSet>) -> PyramidMeta

Attach the characteristic sets / entity shapes (consuming builder).

Source

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).

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.

Source

pub fn encode(&self) -> Vec<u8> ⓘ

Source

pub fn decode(bytes: &[u8]) -> Result<PyramidMeta, MetaError>

Trait Implementations§

Source§

impl Clone for PyramidMeta

Source§

fn clone(&self) -> PyramidMeta

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PyramidMeta

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl PartialEq for PyramidMeta

Source§

fn eq(&self, other: &PyramidMeta) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PyramidMeta

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V