AL, As It Currently Exists

AL has recently accumulated a lot of features due to trying to meet the demand of its users. It is clear that some of this must be technical debt. Now it is important to iterate upon the design- we must re-evaluate everything and leave no stone unturned. We must begin with a set of axioms as to what AL is.

AL is designed to solve the general problem:

How do I as any given actor navigate the world and propagate my intents in as easy a fashion as possible?

For this it hopes to provides prototypical models and specifications that concern how to build such a system.

In order to manage this, AL is split into two parts:

AL Proper

An ongoing specification of the semantics by which commands propagate, from anywhere in the system, throughout the system, and via well-defined distributed protocols, through to the systems of others.

Here are its core axioms: That we’ve settled on so far:

  • A Monotonic Command Log. An append only store of every command ever inputted into the system- or at least, meaningful snapshots.
  • Relational Core. Each command is hydrated into a relation in a live database.
  • Transactional Logical Resolution as Metaobject Protocol
  • Self-Propagating Semantics

Some of the elements of this core design may seem different to what currently exists, but it pulls from many different design traditions in software engineering, that have been battle-tested over decades of practice. Any issues with the core design, as a consequence, must be considered as existential.

Prototypical AL, Or in Current Form: AL/Ex

Our literature review uncovered no previous work of any kind which had yet encountered the problem of formalising SLD resolution as a metaobject protocol.

This is the first thing that we set out to prove the efficacy of with AL, because propagation requires that the interpretation of an intent not be fixed in advance. It must remain open to relational extension by the computational context in which it is interpreted. Consequently, SLD resolution must be valid for any given transactional context. In other words, I should be able to operate about arbitrary transactional contexts, supposing that I can be adequately assured that the information I’m given about my context is correct, and supposing that the aspects of my work are expressed relationally.

Therefore, once we have established SLD as a suitable semantic basis of a transactional metaobject protocol, we have shown that given a sufficiently accurate relational description of a work context, AL should be capable of deriving the consequences of an intent automatically through logical resolution. This is where the essential work begins.

We are happy to say that insofar as SLD resolution goes, research so far has been a big success. We feel confident from our prototypes that we’ve established that the model is appropriate within the parameters we’ve tested it under. We’ve also demonstrated that users-in-practice can make meaningful work of AL, though it obviously currently lends itself to certain types of work (logical reasoning under live systems) more than others (raw calculation power and performance). The demands of its users definitely outgrow its current capabilities.

The common stories we see in user-applications of AL we’ve tried are:

  • In the case of aspirational work, it was wonderful for prototyping ideas, but quickly found too many basic features missing (expected).

  • In the case of pure logic work, it worked very well as a PROLOG with live semantics, but the user spent more time than we would have liked entering down into the VM to do performance optimisations.

  • In the case of more mundane computations, it performed well and has come to do its job, and is quite terse syntactically to boot.

This is the gap that remains that we aim to reduce in the future. In order to continue to iterate on AL, we feel the next best path is to head down to constraint propagation research, which we’re hoping will yield new discoveries and avenues for AL, and hopefully bring back new savvy ways to make AL cleaner and more performant.

I aim to release the newest up-to-date models on Fridays/Saturdays. Here is the latest version.

1 Like