ASTRA Programming Language
1. Getting Started
Quick Start
1.1 What you’ll need
1.2 Create your first project
1.3 Run it
1.4 ASTRA and IDE Integration
1.5 Where next?
Building & Deploying ASTRA Programs
Creating a project from scratch
How ASTRA builds work
Understanding the Hello World program
Running a “non-default” Agent Program
Summary
See Also
Testing ASTRA Programs
Setting up a project
Writing a test
Assertions
Testing multi-agent behaviour
Running the tests
Using IntelliJ with ASTRA
What you’ll do
What you’ll need
Creating an ASTRA Project
Supplementary Notes
Quick Tour of the Project
Running the Project
Summary
2. ASTRA Concepts
AgentSpeak(L) and ASTRA
2.1 Introduction to AgentSpeak(L)
2.2 Translating AgentSpeak(L) into ASTRA
2.3 Rewriting AgentSpeak(L) Programs in ASTRA
Designing Agent Programs
Variables, Choice and Repetition
Variables in ASTRA
Choice in ASTRA
Repetition in ASTRA
Beliefs and Inference
How to model some knowledge as a belief
Logical Expressions
Inference Rules
Test Goals
How a test goal is evaluated
Writing test goal plans
Example
Test goals compared with other checks
Things to know
Failure Handling
What counts as a failure
try / recover
Goal failure events
Which handler is used?
Unhandled failures
Choosing between them
Encapsulated Goals
Syntax
How an encapsulated goal runs
Example: stopping a long-running activity
Example: a goal that reacts to events
Example: succeed or give up
Ending a goal
References
Multiple Inheritance
Single Inheritance
Multiple Inheritance
Agent Communication
Messages as actions
The parts of a message
Performatives
Sending messages
Receiving messages
Example: asking for prices
Things to know
Interaction Protocols
An Authentication Agent
Integrating Timeouts into Conversations
Prewritten Protocols
Practical Reasoning Programming Style
Why “Practical Reasoning”?
The plan types at a glance
The running example
Principle 1: Deliberation Plans
Principle 2: Means-End Reasoning Plans
Principle 3: Repair Plans
Principle 4: Keep goals and actions apart
Principle 5: Recovery Plans
Principle 6: Reactive Plans
Principle 7: Domain Modelling
Example 1: Light Switch
Example 2: Towerworld
Checklist
References
3. Tutorials
Overview
3.1 The Basics
3.2 ASTRA By Example
3.3 Video Tutorial
3.4 Going Further
Creating Multiple Agents
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Learn what you can do with ASTRA
Create a Replicator agent
Create a Main agent
Run the application
Summary
See Also
Multi-Agent Communication
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Learn what you can do with ASTRA
Create a Replicator agent
Create a Main agent
Run the application
Creating a ReplicatorCommon agent
Summary
See Also
Working with Lists
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Declaring Lists
Iterating through Lists
A Larger Example
Shuffle and Sort Example
Summary
Basic ASTRA Examples
Hello World
Terminal Hello World
Distributed Systems Examples
Bully Election Algorithm
Token Ring Election Algorithm (UNDER REVIEW)
4. Modules and APIs
Overview & API Library
4.1 Using a module
4.2 astra.lang modules
4.3 Creating your own ASTRA Modules
4.4 Working with EIS Environments
4.5 Managing Docker Deployments with ASTRA
Creating your own Actions
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Source Code
Declaring a Custom module
Modelling a Light Switch
Creating an Action
Using the Module
Summary
Adding a Sensor
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Source Code
Starting Point
Using the Module
Summary
Implementing your own Events
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Source Code
Starting Point
Defining a Custom Event
Implementing an EventUnifier
Linking the event to the module
Using the Module
Summary
Custom Terms and Formulae
What you’ll build
What you’ll need
Creating a project from scratch
Creating a project from an archetype
Source Code
Starting Point
Creating a Custom Term
Creating a Custom Formula
Summary
Example: Calculator
Declaring a Module
Creating an Action
Creating a Term
Creating a Formula
Creating a Sensor
Creating a Custom Event
Example: GUI Support
Overview
Agent-First GUIs
EIS Environments
What is EIS?
Launching an EIS Environment
Note: EIS and Maven
Management Functionality
Docker Deployments
Getting started
Docker Domain Model
The credentials file
Overloading the secure pull behaviour
5. Publications
Publications
5.1 Core Publications
5.2 AgentSpeak(ER)
5.3 Multi-Agent Microservices (MAMS)
5.4 Applications
Report a Bug
ASTRA Programming Language
Index
Edit on GitLab
Index