Object.MetaDSL (object v0.1.2)
Self-Reflective Meta-DSL implementation based on AAOS specification.
Provides primitives and constructs for objects to reason about and modify their own learning process, enabling "learning to learn" capabilities.
Core constructs include:
- DEFINE: Define new attributes, methods, or sub-objects
- GOAL: Query or modify the object's goal function
- BELIEF: Update or query the object's beliefs about the environment
- INFER: Perform probabilistic inference using the world model
- DECIDE: Make decisions based on current state and goals
- LEARN: Update learning parameters or strategies
- REFINE: Meta-learning to improve learning efficiency
Summary
Functions
BELIEF construct: Update or query the object's beliefs about the environment.
DECIDE construct: Make decisions based on current state and goals.
DEFINE construct: Defines new attributes, methods, or sub-objects.
Evaluates adaptation triggers and executes automatic adaptations.
Executes a meta-DSL construct with the given arguments.
GOAL construct: Query or modify the object's goal function.
INFER construct: Perform probabilistic inference using the world model.
LEARN construct: Update learning parameters or strategies.
Creates a new Meta-DSL instance with default constructs and parameters.
REFINE construct: Meta-learning to improve learning efficiency.
Types
@type modification_record() :: %{ timestamp: DateTime.t(), construct: atom(), modification: any(), success: boolean(), impact_score: float() }
Functions
BELIEF construct: Update or query the object's beliefs about the environment.
Parameters
meta_dsl
: Meta-DSL system structobject
: Object to operate onoperation
::query
,{:update, key, value}
, or{:uncertainty, key, uncertainty}
Returns
{:ok, result, updated_meta_dsl}
with beliefs or updated object
DECIDE construct: Make decisions based on current state and goals.
Parameters
meta_dsl
- Meta-DSL system structobject
- Object making the decisiondecision_context
- Decision context:{:action_selection, available_actions}
- Choose optimal action{:resource_allocation, resources, tasks}
- Allocate resources{:coalition_formation, potential_partners}
- Form coalitions
Returns
{:ok, decision_result, updated_meta_dsl}
with decision outcome
DEFINE construct: Defines new attributes, methods, or sub-objects.
Parameters
meta_dsl
: Meta-DSL system structobject
: Object to modifydefinition
: Definition tuple like{:attribute, name, value}
or{:method, name, impl}
Returns
{:ok, updated_object, updated_meta_dsl}
on success
Evaluates adaptation triggers and executes automatic adaptations.
Parameters
meta_dsl
: Meta-DSL system structobject
: Object to evaluate triggers forperformance_metrics
: Current performance data
Returns
{:ok, updated_object, updated_meta_dsl}
with any triggered adaptations applied
Executes a meta-DSL construct with the given arguments.
Parameters
meta_dsl
: Meta-DSL system structconstruct
: Construct to execute (:define
,:goal
,:belief
,:infer
,:decide
,:learn
,:refine
)object
: Object to apply construct toargs
: Arguments for the construct
Returns
{:ok, result, updated_meta_dsl}
on success, {:error, reason}
on failure
GOAL construct: Query or modify the object's goal function.
Parameters
meta_dsl
: Meta-DSL system structobject
: Object to operate onoperation
::query
,{:modify, new_goal}
, or{:compose, goal_functions}
Returns
{:ok, result, updated_meta_dsl}
where result depends on operation
INFER construct: Perform probabilistic inference using the world model.
Parameters
meta_dsl
- Meta-DSL system structobject
- Object to perform inference oninference_query
- Query specification:{:bayesian_update, evidence}
- Bayesian belief update{:predict, state, horizon}
- State prediction{:causal, cause, effect}
- Causal inference
Returns
{:ok, inference_result, updated_meta_dsl}
with inference results
LEARN construct: Update learning parameters or strategies.
Parameters
meta_dsl
- Meta-DSL system structobject
- Object updating learninglearning_operation
- Learning operation:{:update_parameters, new_params}
- Update learning parameters{:adapt_strategy, performance_feedback}
- Adapt learning strategy{:transfer_knowledge, source_domain, target_domain}
- Transfer knowledge
Returns
{:ok, learning_result, updated_meta_dsl}
with learning updates
Creates a new Meta-DSL instance with default constructs and parameters.
Parameters
opts
: Optional configuration with:constructs
,:execution_context
,:learning_parameters
Returns
New Meta-DSL struct with initialized constructs
Examples
iex> Object.MetaDSL.new()
%Object.MetaDSL{constructs: [:define, :goal, :belief, :infer, ...], ...}
REFINE construct: Meta-learning to improve learning efficiency.
Parameters
meta_dsl
- Meta-DSL system structobject
- Object being refinedrefinement_target
- Target for refinement::exploration_strategy
- Improve exploration approach:reward_function
- Refine reward function:world_model
- Improve world model accuracy:meta_parameters
- Adjust meta-learning parameters
Returns
{:ok, refinement_result, updated_meta_dsl}
with refinement updates