An Overview of ALF
ALF is a collection of interrelated open source components. Each component stands alone, but they are designed to work together. Developers may limit their focus to one component. Each component is characterized by a high risk high payoff strategy that leverages revolutionary rather than evolutionary concepts. We expect that some components may not result in revolutions, but the likelihood is high that some will, and in any case the territory is worth exploring as the payoffs are so great. Problems being addressed and enabling concepts are noted below.
In the large, ALF is a system that creates and manages complex agent systems. Components are broken into three major groups:
Each major group has applicability in contexts that do not include the others. That is, some partners working on one area may not be at all concerned with, or even believe in the possibilities of the others.
Sponsorship and Development Strategy
ALF is an open source project covered by a BSD-style license. This allows embedding of ALF components in commercial products, but ensures that the open source elements will always remain free and with the source available for no more than distribution costs.
Participants in the ALF projects are either core sponsors, regular developers, developer-users or users.
Core elements of ALF will be developed in several languages. The system itself will be largely Haskell. Other open source languages (probably PHP) will be employed in such a way that strikes a balance between revolutionary capability and accessible usability.
Some core sponsors are Fusecap, Inc. And the Advanced Enterprise Research Office (AERO) at Old Dominion University.
AERO intends to apply ALF to the domain of Agile Virtual Enterprise infrastructure for opportunistic aggregations of small high-value entities. ALF is intended to address a much wider domain of emergent, multilevel, problems in many sectors, but the initial focus is the VE, hence the ALF (VE) designation.
The Problems Being Addressed
ALF addresses some grand challenges. The idea is to exploit some novel enabling concepts to resolve or avoid these common persistent barriers:
The ability to represent processes literally as agents in a useful agent system, which also has the following properties:
Similar clever techniques which provide for human access of the processes in context, including:
In recognition that any one of these capabilities overcomes a major limiter, and that a workable solution in any one would be enormously useful, the architecture addresses these problems in as independent a fashion as possible. A useful result in one area is not restricted in being applied widely by difficulties in another area.
Some Philosophies and Enabling Concepts
General development tenets are:
General development notions are:
Specific novelties are: