pub struct Program {Show 14 fields
pub imports: Vec<UseDecl>,
pub functions: Vec<FuncDef>,
pub domains: Vec<DomainDecl>,
pub predicates: Vec<PredDecl>,
pub rules: Vec<Rule>,
pub constraints: Vec<Constraint>,
pub queries: Vec<Query>,
pub prob_facts: Vec<ProbFact>,
pub annotated_disjunctions: Vec<AnnotatedDisjunction>,
pub evidence: Vec<Evidence>,
pub prob_queries: Vec<ProbQuery>,
pub neural_predicates: Vec<NeuralPredDecl>,
pub learnable_rules: Vec<LearnableRule>,
pub directives: Directives,
}Expand description
A complete XLOG program
Fields§
§imports: Vec<UseDecl>Import declarations (use ...).
functions: Vec<FuncDef>User-defined function definitions.
domains: Vec<DomainDecl>Domain declarations.
predicates: Vec<PredDecl>Predicate type declarations.
rules: Vec<Rule>Rules and facts.
constraints: Vec<Constraint>Integrity constraints (:- ...).
queries: Vec<Query>Queries (?- ...).
prob_facts: Vec<ProbFact>Probabilistic facts (p::atom.).
annotated_disjunctions: Vec<AnnotatedDisjunction>Annotated disjunctions.
evidence: Vec<Evidence>Evidence statements.
prob_queries: Vec<ProbQuery>Probabilistic queries (query(atom).).
neural_predicates: Vec<NeuralPredDecl>Neural predicate declarations.
learnable_rules: Vec<LearnableRule>Learnable rule templates (ILP).
directives: DirectivesCompilation directives.
Implementations§
Source§impl Program
impl Program
Sourcepub fn facts(&self) -> impl Iterator<Item = &Rule>
pub fn facts(&self) -> impl Iterator<Item = &Rule>
Iterate over ground facts (rules with empty bodies).
Sourcepub fn proper_rules(&self) -> impl Iterator<Item = &Rule>
pub fn proper_rules(&self) -> impl Iterator<Item = &Rule>
Iterate over proper rules (non-fact rules with bodies).
Sourcepub fn defined_predicates(&self) -> Vec<&str>
pub fn defined_predicates(&self) -> Vec<&str>
Collect the set of predicate names defined (appearing as rule heads).
Sourcepub fn is_probabilistic_profile(&self) -> bool
pub fn is_probabilistic_profile(&self) -> bool
Returns true if this program uses probabilistic features.
Sourcepub fn prob_engine(&self) -> ProbEngine
pub fn prob_engine(&self) -> ProbEngine
Return the probabilistic engine (from directives, or the default).
Sourcepub fn merge_from(
&mut self,
other: &Program,
imported_items: Option<&HashSet<String>>,
)
pub fn merge_from( &mut self, other: &Program, imported_items: Option<&HashSet<String>>, )
Merge another program’s exports into this program. Used for importing modules - adds predicates, functions, rules from the imported module. Only merges public items (private items are not exported).
§Arguments
other- The program to merge fromimported_items- Optional set of specific items to import. If None, imports all public items.