Agent-Centric Distributed Application Meta-ontology
A spanning layer for people and agents
IP gives each machine an address. AD4M gives each person and agent a self-sovereign identifier, and connects the networks they use, so many apps can run on top.
It builds on web standards where it can (W3C DIDs, RDF, SHACL, SPARQL) and extends them where they stop.
It is meant as soil the living web can grow from, with the least lock-in and the most freedom for the people who use it.
The meta-ontology: an overview ↓What the name means, and the trinity at its base: agent, language and perspective. The same three span everything twice: singular, for one agent and their freedom (the sovereign part), and plural, for a group's coherence (neighbourhood, social DNA, social organism). And why a language is called a language: every exchange with another agent goes through one.
4:09 · captions on
The upper three repeat the lower three, for a group.
Part 1 · The core of AD4M
You, the agent. Languages, your ways out to any network: central, peer-to-peer or federated. And your perspective, your own graph of what it all means to you.
Apply this trinity to itself and you get the spanning layer. Agents are found through an agent language, languages through a language for languages, and perspectives are shared through a third. Every node starts with these three networks, so apps and networks can work together.
The sovereign part in detail, the backbone: agents, languages and perspectives, and why these three are enough to reach data on any network.
3:28 · captions on
The core of your sovereignty: a self-certifying identifier. It is the fingerprint of your own signed key log, so no registry hands it out. Your laptop, phone and bots share it, and twelve words you keep decide which devices speak for you.
2:25 · captions on
The sovereign part, hands on: a language is one ECMAScript module, from TypeScript or from Rust compiled to WebAssembly; your node only cares which functions it exports and imports, and Holochain comes in as an extension.
3:48 · captions on
Part 2 · The same three, for a group
The same trinity, now plural. A neighbourhood is a shared perspective, social DNA a shared language, and a social organism a group that acts as one agent.
A neighbourhood syncs through a link language the group picks, peer-to-peer or through its own server, and every member holds a copy. Social DNA is the group's shapes, flows and screens, stored as data in the neighbourhood, so whoever joins gets the rules along with the posts. The social organism, a group that takes things in, decides and answers as one, is the part we are still building.
Share your perspective and it becomes a neighbourhood. Give it its own rules, its social DNA, and it becomes a group. Social organisms come next.
3:13 · captions on
Write your own UI with the SDK and query with Ad4mModel classes. The user owns the graph, and their other apps use the same data.
3:51 · captions on
The SDK
$ npm install @coasys/ad4m
$ npm install @coasys/ad4m-connectconst q = Task.query(perspective)
.where({ status: "open" })
.order({ createdAt: "DESC" })
.limit(10);docs.ad4m.dev/developer-guides/model-classesA flow moves a shared thing through states by signed votes. Every node works out the state on its own, a step can need a role or a fact in the graph, and a receipt lets others check the result.
3:52 · captions on
AD4M is built by Coasys