XALGORITHMS

XALGORITHMS FOUNDATION

Oughtomation

Oughtomation is any simple, factual, general-purpose computational method that gives effect to MUST, MAY and SHOULD assertions amongst individual and organizational agents.

A general-purpose method,
a reference implementation,
and an extensible suite of use cases.

event or status change

social or institutional agent

rule taker
component

data processor
network service

Rule maker
component

is facts

rule documents

ought facts

rule patterns

event or status change

social or institutional agent

Internet 3.0

Tomorrow’s Internet will separate prerogative for data control, application control and network control.

Internet Society, 2019

"The ability of small numbers of huge organisations to be benevolent rule-makers while everyone else is a rule-taker could concentrate power on or over the Internet."
—Internet Society, “Internet Society: Global Internet Report\2019 (Consolidation in the Internet Economy).” Internet Society, 2019.

Web 3.0

Tomorrow’s Web will enable each agent’s prerogative for autonomous data control.

Ruben Verborgh, Inrupt, 2019

"End users are data owners: 
People choose where they store their data. Apps become views:
 Break the tight coupling between data and applications. Interfaces become queries: Decentralized Web applications use only declarative queries to view and update data." —R. Verborgh, “Re-decentralizing the Web, for good this time”, In Seneviratne, O. and J. Hendler (Eds.), Linking the World’s Information: Tim Berners-Lee’s Invention of the World Wide Web. ACM. Accepted for publication., 2019.

must may should

PREROGATIVE

PROPOSITION

DECISION

Contextual

A system of rules

About a
system of rules

These facts elicit all of these rules

Practical

A practical rule

About a
practical rule

These facts elicit this practical rule

Ethical

An ethical rule

about an
ethical rule

These facts elicit this ethical rule

MUST, MAY and SHOULD

A normative rule expresses a relation between ‘is’ and ‘ought,’ based on agreement or authority.

Our contribution is the design of a general-purpose method to enable anyone to publish, discover, fetch, test and triage declarative information about normative rules which are ‘in effect’ for given dates/times, identities and jurisdictions, and that are ‘applicable’ when certain facts exhibit.

When normative rules can be discovered and transmitted on-demand in response to specified events or status changes, many types of operations become greatly simplified, and each party’s control of their data is strengthened.

This approach to ‘oughtomation’ reflects core virtues of the Internet, as sumarized below.

Tabular Declarative Style

Tabular declarative programming enables extremely fast, on-demand, event-driven, scalable computing.

Computationally-intensive IF-THEN-ELSE procedures are pre-generated as input/output tables. Then during run-time, results can be obtained with simple table look-ups, naïve filtering and minor data transformations. This enables extremely fast GIVEN-WHEN-THEN computing:

GIVEN

a context (dates/times, jurisdictions) 'in effect'

WHEN

certain facts are ‘applicable’

THEN

the specified outputs are determined.

The example above is from a 30 row, 60 column table published 70 years ago, for use with contracts, regulations, fiscal instruments, logistics planning, engineering load calculations, pricing, and other uses.* The algorithm takes two pages to explain, but a quick look-up to the table of results replaces having to re-run the algorithm each time it is required.

* Taylor, R. B. (1951). Musson’s Improved Ready Reckoner: Form and Log Book (Revised and Enlarged). Musson Book Company.

A Reference Implementation

  1. Function View

    When practical or ethical obligations or permissions appear in law, contracts, specifications, policies or treaties, a RULE MAKER component can be used to publish to the internet, tabular declarative propositions about these rules. Independently, whenever data about some event or status change is supplied to a RULE TAKER component, it sends a simple ‘is’ request message to the Internet. A DATA PROCESSOR uses these supplied facts to filter for rules currently ‘in effect’ and ‘applicable’ to those facts. It tests and organizes the selected rules into an ‘ought’ response message that is sent back to the RULE TAKER component.

    event or status change

    social or institutional agent

    rule taker
    component

    data processor
    network service

    rule maker
    component

    is facts

    rule documents

    ought facts

    rule patterns

    event or status change

    social or institutional agent

  2. Component View

    INTERLIBR is a high-volume low-latency request-response processor. XALGO-RT is a client-side auxiliary app that assembles and sends IS.XALGO requests to INTERLIBR, and then receives and stores OUGHT.XALGO responses. XALGO-RM is an auxiliary app for writing and managing RULE.XALGO propositions, and TABLE.XALGO reference data. To facilitate authoring XALGO-RM can be used to find and retrieve reusable PATTERN.XALGO files.

    external data

    external perogative

    xalgo rt
    component

    interlibr
    network service

    xalgo rm
    component

    is.xalgo

    rule.xalgo

    ought.xalgo

    rule.xalgo

    external data

    external perogative

  3. Implementation View

    Our reference implementation for the network service, INTERLIBR, is built in Scala, with Cassandra for queries, MongoDB for history, Kafka for message streaming and logs; and Kubernetes for orchestration. XALGO-RT and XALGO-RM are lightweight auxiliary Ruby applications. One or more of these three components can be substituted with alternative implementations designed to perform the same functions. A reference implementation is a minimal viable working version of a specification to demonstrate its purpose and workability, to test its performance and usability, and to serve as a benchmark for other implementations.

    Any End user application

    any rules repository

    Ruby
    component

    Cassandra kafka docker Kubernetes
    Scala service

    ruby
    component

    JSON or CBOR

    JSON or CBOR

    JSON or CBOR

    JSON or CBOR

    Any End user application

    any rules repository

Smart Edges, Simple Core

The future internet will require a general-purpose method to give effect to MUST, MAY and SHOULD asserted at the edge. Data control and processing complexity belong at the edges of the Internet, on the computers of individuals, organizations, and their chosen speciality service providers. Data control includes choice in data routing. Two or more parties may prefer to communicate on the Internet solely via routers that implement particular neutrality, privacy or other normative rule sets.

Uncoupled Networks

The oughtomation method implements “rules-as-data” with simple input/output control-tables that work with any programming language, when accompanied with a suitable parsing library. Loose coupling of components and data means interchangeable alternative implementations, to avoid misplaced restrictions relating to platform, programming language, operating system or supplier, which clash with edge-based prerogative. This avoids “rules as code” lock-in where algorithms are expressed in various incompatible procedural programming languages.

User Freedom

The user’s intellectual and tangible faculty of action—their agency—is extended by the use of computer programs. This is a ‘demand-side’ concern. When a society is premised upon consent, every user retains freedom of agency to run software for any purpose, to not run it, to study how the program works, to adapt it to specific needs, to copy the program and to redistribute copies, to improve the program, and to release any modified versions.

Open Source Construction

The programmer’s intellectual and tangible faculty of action—their agency—is enable through the authoring and deployment of computer programs. This is a ‘supply-side’ concern. The market value proposition for open source methods is that coopetition enables participating individuals and organizations to significantly augment benefits, better manage risk, and reduce costs through collaborative provisioning, learning, transparency, innovation and interoperability.

Xalgorithms Foundation

From its inception five years ago, Xalgorithms has been 100% developer-resourced. Team members came together organically to create the oughtomation method, each committing effort and funds based upon a shared perception of this meso-level problem, a kernel of understanding about how to solve it, and an instinct to make this free/libre/open. Our plan for 2020-2025 builds upon this tradition. We invite other developer-oriented free/libre/open initiatives to contribute effort and funds to help advance the oughtomation specification, the reference implementation, and service deployment. We invite commercial, government, scientific, and civil society collaboration and support for particular use-case working groups. Please feel free to contact Joseph Potvin, Executive Director [email protected]