πŸ“š node [[agora plan]]

Agora Plan

Introduction

The [[Agora]] is a project with a large [[scope]], so it takes a minute to explain what it's all about, and what the vision this plan tries to advance is.

If you'd like a quick introduction to the Agora as of mid 2021, please check out [[go/agora-slides]].

You can also refer to [[go/agora]], that is the documentation in the [[root repository]] currently hosted on [[github]].

What this node is for

This node is used as a project planning page for the [[Agora]] implementation you're likely reading this in now: https://anagora.org .

As you might know by now, an Agora is a beast with multiple legs:

This node might deal with development of any and all of them. We will try to list past major developments below, but this node will try to also be [[future focused]].

Next

Previously

  • On [[2021-11-06]]:
    • Lots have happened. I gave up trying to maintain this for a while, instead using my journals and a transitive subset of the [[Agora]] to document the development process.
    • See [[flancia collective]], [[agora discuss]], [[journals]].
  • On [[2021-01-30]]
  • On [[2020-01-02]] I implemented [[jump]]
    • I said: "I'll implement the action and a 'jump'/ dialog always available in the Agora, perhaps replacing search in the [[toolbar]]."
    • Done!
    • Q: is 'go to' better than jump? I don't think so, and it could be confusing due to go links. But unsure.
  • On [[2020-01-01]] I fixed node titles.
  • On [[2020-12-29]] I pushed a quick patch that upranks all my subnodes, as some top subnodes in relatively popular nodes had formatting issues / were distracting. I intend this to be temporary; better ranking and formatting fixes are coming.
  • On [[2020-12-27]] I released [[agora 0.5.6]] with [[pull]] support, better db code, caching... quite a bit :)
  • On [[2020-12-20]] I worked [[agora 0.5.5]], which adds simple [[hypothes.is]] integration.
    • Fixed the fact that [[back]] [[links]] didn't work in non-existent nodes (even when there are backlinks, that is).
    • Prepared CSS/html for pull, push, forward links.
  • On [[2020-12-04]] I released [[agora 0.5.4]], with some improvements:
    • New data model (digital gardens are not subtree'd in the main [[agora repository]] anymore, stay wholly independent)
    • Index page is now just another node, subnodes can be contributed by users.
  • On [[2020-11-29]] I integrated the first community contribution ever.
  • On [[2020-11-27]] I fixed some bugs, like wikilinks with periods on their names not working.
  • On [[2020-11-22]] implemented count of subnodes in user pages.
  • On [[2020-11-17]] implemented [[latest]].
  • On [[2020-11-16]] I implemented [[agora fuzzy matching]] and full text search, adopted a div based layout, improved the CSS, improved user pages.
  • On [[2020-11-15]] I implemented dark mode (press on 'theme' on the top right corner to switch dark <-> light).
  • On [[2020-11-14]] I released [[agora 0.5.1]].

Signups

Integrations

Next

  • all http mentions should be auto linked, not only some: https://twitter.com/notverapetrova/status/1346258737204400128
    • Worked around this, but I should probably send an upstream PR to [[bleach]]
  • try rendering notes with [[marko]], see if it's a bit more forgiving with list indentation and other kinks that seem common.
  • add support for org mode gardens
  • I should make node [[0.5.6]] work
  • graph the whole Agora -- sounds fun!
  • Implement pull and push.
    • Define divs for 'pulled' and 'pushed' sections
    • Write functions that return [[pull]] and [[push]] entities in each subnode
  • Make more links default to node instead of subnode.
    • For example those in latest, those in user pages.
    • Might require 'upranking'.
  • set up [[agora]] hot spare in [[dorcas]], this is an experiment but I already find it very useful so I don't want to not have it available for a while if there's a server failure
  • add monitoring -- [[munin]] or something more modern? [[prometheus]]?
  • Implement /node/foo/selector as more resilient/uniform alternative to /subnode.
  • Implement user upranking/pinning.
    • Perhaps nodes visited from a user scope uprank subnodes by that user?
  • https://twitter.com/s5bug/status/1334686375275163652 ?s=09
  • Provide a link (GET) for the search for '[ ]', useful for [[do]].
  • Add better backlinks, showing some context.
  • Make the site header be marked as an actual header (div with a class, etc.); Google seems to think it's part of the site text (it's showing up in results).
  • Fix markdown list formatting issue with different tab widths.
  • add footer.
  • Implement preview-on-hover?
  • Implement "around the Agora".
  • add /latest or some other chronological view
  • User profiles: perhaps just note [[flancian]] as written by user [[flancian]]? Unsure.
    • [[s5bug]] suggested using [[README]] in gardens for this. Makes sense.
  • Make the index be just another note [[ding-levery]].
  • Improve backlinks: show snippets as well as just the link.
  • Improve pull loop to also support arbitrary hooks, like that needed to implement [[agora go links integration]].
  • Multi user improvements:
    • Better sorting (right now all my notes show up at the top, doesn't make sense).
    • Ability to "zoom into" a user, to navigate just their garden for a while.
    • Perhaps ability to "uprank" users, pinning their notes to the top of any sorting order.
    • Perhaps sort+uprank can be integrated?
    • usernames could have a 'pin' emoji that upranks all their posts?
  • Implement search (full text).
  • Add support for media serving (useful for pictures of [[ocell]]).
    • assets/foo end up at node/assets/foo; just adding a handler for node/assets/ seems like it could be enough.
    • It would conflict with a node named 'assets' though, so perhaps it's not ideal.
    • Perhaps it'd be better to just serve images/media as subnodes?
  • Add monitoring/alerting.

Some day:

Feature requests

History

  • fix bug: backlinks should be shown even in yet non-existent nodes, such as [[deceased]].
  • Clean up stale journal pages which don't follow [[iso 8601]].
  • Add config.py file with things such as paths.
  • Add user handler: /u
    • /u/flancian -> all nodes by flancian
    • /node/flancia/u/flancian -> flancia by flancian
    • Also added @flancian. Shorter is better, and it's a common convention.
    • perhaps /g/ for groups later? or /s/ for stoa.
  • Add 'link to this note'.
    • Now called subnode.
    • Subnode rendering is ready, just need to add links.
    • Perhaps I need to fix subnode paths; right now they are the actual filename. It'd be better if there was at least possible to specify the filename base (no extension) and have the right file be resolve, a la nodes.
  • add some search support -- a simple textbox + GET?
  • better css
  • Improve the [[index]].
  • Implement [[agora fuzzy matching]].
    • Done
    • but backlinks don't work in some cases, like http://dev.anagora.org/node/abstract%20fairy .
    • Probably not worth fixing that right now as it only triggers for nodes that are not canonical, perhaps better to just redirect to a canonical node.
    • could help with disambiguation and acronym expansion
  • [[push]] [[agora plan]]
    • I should finally implement [[auto push]] and [[auto pull]] inferred from list structure
    • parse all subnodes through lxml?
    • derive heterarchy of [[wikilinks]]
    • try auto pushing and pulling through all heterarchies
  • [[push]] [[agora plan]]
    • I should finally implement [[auto push]] and [[auto pull]] inferred from list structure
    • parse all subnodes through lxml?
    • derive heterarchy of [[wikilinks]]
    • try auto pushing and pulling through all heterarchies
  • #push [[agora plan]]
    • The [[agora]] should support [[rss]] / [[atom]] feeds in two ways:
      • As a [[consumer]], to easily allow any feed producer to volunteer subnodes in an [[agora]].
      • As a [[producer]], to easily allow users and other systems to consume [[agora]] updates.
        • As of [[2022]] this exists:
β₯… node [[agora]] pulled by user

Welcome to [[boris mann]]'s section of the agora!

We're experimenting with [[Connecting to the Agora]], and what some of the configurations and conventions are. The [[Anagora]] page has my notes and feature requests.

Status

  • This document was mostly written in 2018. The Agora was then just a thought experiment. It has since grown to be a living project.
  • As late as 2020-10-17, the Agora barely existed as a concrete implementation -- it was not a single tool but rather many which you could use in tandem following a convention, which I provisionally named Agora Protocol.
  • As of 2022-01-02, a reference Agora is online on https://anagora.org . Using terminology gained and derived in the last three years (with the help of the Agora community!), I can now describe it as a [[knowledge commons]].

Regardless of implementation details, an Agora can be assembled out of off-the-shelf parts available on the internet, mostly for free:

  • Knowledge management tools used for the purpose of building a distributed knowledge graph, following the aforementioned convention based on lazily evaluated [[wikilinks]]. See https://anagora.org/agora-editor for a review of some of the tools in this space, or Roam Likes for an older take.
  • Social networks and the constructive bits of the internet as we have them, annotated and enriched using open tools and standards.
  • An explicit constructive social contract. For reference you can consult the anagora.org default.

If you are interested in collaborating on building Agoras or similar constructive spaces, please reach out or peruse the Git repository.

See also: https://flancia.org/go/agora-howto , https://threadreaderapp.com/thread/1322619094563258370.html.

Head

You can think of the Agora as a convention based social network; an optional, user-controlled annotation layer that can be applied over any internet platform which supports user-generated content.

I think one of the best possible uses for such a network would be to use it to pro-socially maintain a distributed knowledge graph tailored specifically to the goal of solving problems: those of its users and society at large.

Its users, as a cooperative group, could by default take a naive but rational approach to problem solving:

  • For each problem in the set P of all problems:
    • Describe it as thoroughly as possible.
    • Maintain a set of known or argued possible solutions, S(P).
  • For each solution in S(P):
    • Describe it as thoroughly as possible.
    • Maintain a set of resources (people, time, attention, money) needed to implement it, R(S).

Individual users could also declare their views on the state of the world explicitly: they define which subsets of P, S and R they agree with, in the sense that they believe they are feasible, true, interesting.

Users that agree on their defined subsets can then efficiently collaborate on solutions as they become available by pooling of resources.

We apply some good old recursivity and seed the Agora with the problem of how to build itself. That is, how to build a system that allows participating users and entities to collaborate optimally in the face of adversity (such as biases, irrationality and even actual ill intent)1.

The Agora should be built on a federated protocol to limit the harmfulness of diasporas. Groups might temporarily diverge in their views enough to want to run separate Agoras, but different Agoras should be able to cooperate on problems and solutions for which there is enough ideological alignment, and eventually merge.

Tail

I have a more focused and detailed unpublished document which will probably replace or complement this chapter soon.

I know the premise sounds almost like a joke: what the world needs is a new social network. The internet and social networks are technologies we are just barely learning to live with, and the recent cause of a lot of polarization and political escalation and Trump Being President2. It doesn't sound at first like we should add another stick to that particular dumpster fire. But hear me out.

We need a designated place in the internet where we can discuss ideas in a constructive way. In particular, where we can discuss possible strategies to face the problems that humanity is facing. This is already happening, for sure; but is it happening somewhere on the internet where everybody can contribute? I don't think so. If the Agora exists already, please point the way -- I'd like to get there, and building it from scratch would be hard. The network of universities and institutes are the closest we have and I love them, but the Agora should be fully open and available to all over the internet, so every participating individual can contribute work and thought. Of course the whole internet could be an Agora; but the internet as a whole is chaotic and disorganized and thus its implicit Agora is entangled with places that are not constructive and not safe. There must be a better way.

Nick Bostrom has a paper on existential risk where he talks about a kind of lottery of ideas; humanity is constantly playing this game, the metaphor goes, and drawing ideas out of big lottery wheels of Science and Technology and Culture. Some of the balls in this wheel are colored white; these are good ideas. They contribute to human good, and we're glad we found them.

There are also black balls, though. These are bad3. They are things that, on the whole, produce enough bad to be existential risks to humanity. Nuclear power seemed to be this for a while; perhaps mutually assured destruction could have resulted in an apocalypse. But it didn't! Aren't we lucky? If (and it's a big if) things stay this way, we got away with playing with something dangerous. Perhaps we can use the idea for whatever good it holds (cheap and relatively safe energy), or perhaps we decide to bury it underground in a big vault of ideas (this one doesn't have to ever spin again) that says Do Not Go There, Trust Us. For now, though, the idea might still turn out to be black; we could, perhaps, represent this situation as a grey ball of whatever shade we deem most likely.

We need a social network for discussing ideas. For talking about Bostrom's lottery urn, and what it has in it for us. In the Agora, we discuss ideas and their shades and merit; we discuss, first and foremost, ethics. We talk openly and clearly about how to best move forward as a society of humans, with the knowledge we've gotten and the resources we have.

What if social networks are grey? How dark is their shade? The high modernist in me wants to believe that the structured flow of information is more of a good thing than a bad thing. But we need to be cautious, and this is why I wrote this and you are reading it now.

I need your help.

In Flancia there is no poverty.

  1. To start with, discussion in the Agora should follow the tried and tested Principle of Charity.↩

  2. what if Twitter is already a decent Agora, and Trump just woke up to the fact that it's a superior meme transfer device sooner than others?↩

  3. White = good and black = bad is in the original paper. Now, an apology: I don't like the fact that our culture encodes bad things as black, it's associated with death, etc. I think associating black with badness is a bit trite in a world that puts so much stock on being a particular kind of yellow.↩

Agora

An agora, in its broadest sense, is a conceptual space where people attempt to bring an increased level of intentionality, explicitness, and mutual agreement to the principles and protocols for interacting in that space. A further aspect of the idea of an Agora is that it is a space which enables collaboration. In particular, it is a space that allows for collaboration guided by specific shared interests, without requiring the co-consitutients of the agora to be aligned more fully or generally in terms of their intentions, values, etc.

Some topics that the idea of an Agora is related to: [[transparency]] [[decentralized structures]] [[egalitarian principles]] [[judgement]] [[algorithms of interaction]] [[communication]] [[collaboration]] [[knowledge sharing]]

There are (infinitely) many possible variants of how this idea might be implemented in concrete, real-world situations. For example, an agora could be a space that is opened up inside a conversation between two people. Or it could be a collaborative project that is accompanied by specified rules. Or it could be a collective agreement about how to handle certain types of situations.

One variant of the idea of an Agora is a place where personal notes are shared, with the common goal of pooling information and sharing knowledge. One implementation of this idea is https://anagora.org . See also https://flancia.org/go/agora .

The term "Agora" and the basic idea come from [[Flancia]].

img side { lapin 77 {My visual take}}

Agora is a β€˜wiki like experimental social network and distributed knowledge graph’, so they said. I would say it's an aggregator of digital gardens and a community around it. Anagora is the first and biggest instance of it. [[Flancian]] was the one who created it and the software behind, but there were other good contributors. Thank you!

=> https://anagora.org

I'm part of it:. I also frequent the associated video conferences.

=> https://anagora.org/@melanocarpa | Melanocarpa in Agora => https://anagora.org/@bouncepaw-betula | My recent bookmarks in Agora

Agora makes a big emphasis on graphs and links. Their analogue of hyphae is called a node, nodes are generated from contents from multiple sites. There is also a cool notion of push/pull and go links!

//I was inspired by Agora's go links and implemented something very similar in [[Betula]].//

2022-01-18 I wrote the author an email about the possibilities of making Agora and [[Mycorrhiza]] compatible. 2022-03-06 Melanocarpa was added to Anagora, along with Mycorrhiza support. Furthermore, in 2023 proper support of [[Mycomarkup]] was added.

=> https://github.com/flancian/agora-server/commit/7783430aa33986186e9fd66ee858250b115e0d7e | Commit that adds Mycorrhiza support.

The Agorans also seem to be using [[git]]-based [[markdown]]-driven digital gardens mostly. It is the default choice for many, but luckily support for more formats was added. Mycorrhiza, for example, is supported! There is also [[Betula in Agora]].

= See also => Wiki => Social network => Digital garden => https://mycorrhiza.wiki/help/en/hypha => https://anagora.org/node => https://anagora.org/go => Flancia

You can't really talk about Agora without Flancia.

Agora

This looks like a really cool way of aggregating digital gardens into one place. To produce a community garden (or, an agora). Interesting to contrast with how a solely P2P way of connecting gardens might work, no central aggregator.

An Agora is a distributed, goal-oriented social network centered around a cooperatively built and maintained [[knowledge graph]]. The implementation you are currently looking at tries to assemble such a graph out of a collection of digital gardens.

– GitHub - flancian/agora

See also [[sister sites]].

See: [[What do I think about the Agora?]]

pull color="#b51f08"> <title>500 Internal Error wtf.
<link rel="stylesheet" href="https://doc.anagora.org/css/center.css"> <button class="pull-url" value="https://doc.anagora.org/css/center.css">">pull</button>
<div class="container-fluid text-center">
    <div class="vertical-center-row">
        <h1>500 Internal Error <small>wtf.</small></h1>
    </div>
</div>
β₯… node [[feature-requests]] pulled by user

Feature Requests

[[codex]]

[[polycultic]]

[[dan whaley]]

  • Subnodes should show date created, date last updated.

[[dr-kvj]]

  • Would like to be able to sync [[remnote]] notes.

[[luciana]]

  • [[foam]] Los tΓ­tulos de las notas en espaΓ±ol deberΓ­an usar minΓΊsculas (siguiendo la convenciΓ³n apropiada para el espaΓ±ol).

[[vaughn tan]]

  • It would be nice to have a way to export rendered gardens as static html, with data such as calculated backlinks baked in.

[[metasj]]

[[eismanholmes]]

  • Got an [[agora]] [[feature request]]: have http://anagora.org detect "dangling links" in gardens, that is, wikilinks that have no target note. Good for people that want to notice and tie up "loose ends" in their garden.

[[abstractfairy]]

  • Abstract Fairy: I. Agora sequences The main value I find in a book is structure. A well written book shows you how an idea came to be, related ideas, its limitations, and how you can play around with it. I think the Agora should have smth like that. Smth similar to LW sequences. It can be implemented through having a node of links

  • Abstract Fairy: II. Abstracts If possible, I think it would be nice for nodes to have previews / abstracts to make it easy to skim through a large amount fo them for searching. Naturally, I think there should be a word count for this to make it easy to digest

  • Abstract Fairy: III. Twitter and QT as block references. Agora as a social network I think QT is effectively using a block refrence. so, I think the Agora (if modified into a social network) could operate on a similar basis Abstracts would be important to get a quick overview of a node (pls no 20+ tabs like LW)

  • Maybe somewhere down the line, the Agora could work like that. We could have an online editor for people to quickly dump their thoughts into the Agora. And we could have a feed, here are the new nodes your friends made, here are the new blocks they've written / edited significantly

  • I actually really like how everyone's nodes are displayed, it can really put stuff into perspective :)

[[titushora]]

β₯… node [[push]] pulled by user
  • An [[action]].
    • It 'means' that a certain context is relevant for the target node and should perhaps be included in it ([[transclusion]]):
    • Here's how you use it: you start a block with the [[push]] action, passing a target node as an argument. Then you attach as many sub blocks (indented list items) to the block; they will be included in the target as a subnode.
    • [[push]] [[agora twitter integration]]
      • Push probably has good interactions with [[twitter]] and the [[fediverse]].
      • If you tell an [[agora]] to [[push]] and you are a [[friend]], it'll push with you.
  • See also: [[pull]].
πŸ“– stoas
β₯± context