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 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.
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
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.
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.
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
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
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
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.
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.
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.
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.
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]