Skip to content

Instantly share code, notes, and snippets.


ontouchstart/ Secret

Last active Jan 30, 2019
What would you like to do?
What we are doing

Three things

What we are doing

For my part, what I am doing now is to figure out what the community of Future Text Connect (which I am going to call the FTC) 2019 is by collecting data on

  • Public profiles that are related to the community (web sites, blogs, etc)
  • Digital artifacts created and maintained by the members (images, videos, code repositories)
  • Community groups and communication channels (skype, slack, github, gitlab, Google Docs, Google colab, etc)

I am interested in specific digital artifacts instead of philosophical principles. My own work, however, is platform independent and data driven.


This comment has been minimized.

Copy link
Owner Author

@ontouchstart ontouchstart commented Jan 22, 2019


Marc-Antoine Parent

What we're trying to do, and how: a new definition.

Collectively, we're exploring ways of working together, and I hope building something larger than what we can each build. The goal as I understand it is an ecosystem of tools to support collective intelligence, i.e. an ecosystem of common thought.

I'm personally interested in two problems:

  1. collaborative building of a shared concept graph with multiple perspectives (including all the negotiation aspects)
  2. An infrastructure to allow above: Federation of information across platforms, and a unified ecosystem of tools that can contribute to the federated information graph.

I think that, as a group, we would want:
At the technical level: to be able to show seamless information flow between our various platforms (all the way from cross-reference through embedding through shadowing nodes.)
At the human level: To show how we can build on one another's work, enrich it, and come up with rich inclusive perspective documents as a result of that work.
At the meso level: We need a way to collaborate in large numbers that allow both synthesis and multiple perspectives to co-exist. (Collaboration without edit wars through choral perspectives and an underlying broad graph.)

Let me go further: We're trying to model new ways to work with information, both at the individual and collective level. Because of the scope of information, we need to be able to focus on partial views; because of its complexity and interrelatedness, we want to be able to envision global views. As individuals, we sometimes want to express an individual vision that diverges from the collective; as a group we want those views to be woven back into a more global perspective. So we need perspective documents that remain connected to a global information space. The global view attempts to present a synoptic synthesis across multiple perspectives, but also across the evolution of the community. If a group is discussing an issue, there is a lot of conversation (flow) that feeds into building the synoptic documents.

There are many perspectives on a global information space:

  1. Global: all the information there is, fully interconnected in a graph, but nearly impossible to apprehend as whole. Still useful for exploration.
  2. Computational: Data mining tools give us partial views of the global information space.
  3. Personal: We create a perspective document to organize a part of the global information into a chunk that can be understood. (This can be text, subgraphs, tables, simulation tools, or any combination thereof. In particular, it can include snapshots of computational views.)
  4. Conversational: Group conversations about the information space (which itself becomes part of that information space.)
  5. Communal: A group negotiates how to weave personal perspective documents into a common perspective, which involves decision making, merging, etc.
  6. Historical: A kind of computational view that focuses on the evolution of the information space (a kind of computational view that is especially important as an anchor to conversations in the building of communal documents.)

The tools we are building have to do all of this, and interrelate it. A user story must explain how an individual moves between those views. Usually, a person starts with a personal perspective, uses a computational agent to branch from the personal to a computed local neighbourhood view, may dip into the global view to find new leads, interpret those leads in a historical-conversational view, gets pulled into an ongoing conversation about different perspectives, tries to affect the communal view... This is the user story I want to elaborate on in time.

How will we work together, concretely?

There are two approaches, starting from the abstract and starting from the concrete. (I think we'll have to do both.) We all have build tools, which have made certain assumptions regarding data models, whether those tools are document-centric, concept-centric, representation-centric, or some combination of the above. We need to share our existing, concretely realized data models and identify anchoring points, where our models can refer to one another, be translated into one another. From the abstract side, we probably need to define a data model that is generic enough to express what each of us is doing. Sometimes, it will be unify by expressing what each of us tries to do, but hopefully we can find simple generic units that can express a lot of different things like the URL.

One of my own efforts,, is a specification to describe operations on concept graphs, with an emphasis on data sharing between different data repositories. The underlying graph model is based on topic maps, and allows hypergraphs, i.e. N-ary relationships, relationships as relationship targets, etc. To allow data sharing, we model remote references, embeddings, local forks and merges of individual data objects.

One particular aspect of hyperknowledge is an enriched view of URLs: URLs do not always uniquely determine a resource. All meaning is contextual. When two agents speak about a resource, they both have a different dataset about this resource; hence the knowledge object is different though it uses the same name and may refer to the same abstract entity. So I distinguish local names, and a dataset is uniquely determined by a combination of local name, realm (identity of the dataset holder) and timestamp. External references, or provenance information for local copies, should keep all three.

Those graphs are mostly accessed as event streams. I'm hugely committed to event sourcing. This makes it easier to merge concepts between different representations in different realms, using a model not unlike git. I think this is very important to social knowledge. Operations are decomposed into micro-operations dynamically, which makes it possible to add operation processors for new operation types dynamically. The aim is to use those micro-operations to allow a fork and merge model of whole concept graphs.

Hyperknowledge aims explicitly to be a lingua franca between our various efforts; but it's still work in progress, and there is still work to be done to model composite documents and view specifications using that model.

My other, earlier effort is; it connects a much simpler concept graph model with conversation streams. It is based on the belief that formal structure is the result of a conversation, and will be refined through conversation. That basic assumption also reflects how I think we should work together.


This comment has been minimized.

Copy link
Owner Author

@ontouchstart ontouchstart commented Jan 22, 2019



Dear Frode and company,

What am I working on?

I am building (code): secure task management software with a bevy of unique features, designed to enable large numbers of participants and projects to join forces -- especially activists trying to change the world.

I imagine a world in which anyone, anywhere can create a highly productive, volunteer-driven, 100-person organization -- in 1 hour. screenshot

Its features and benefits are centered around making groups of humans radically more effective and secure:

  • Speed, Coordination, & Semi-automation => Global Superorganism
    • Assign tasks from one project to another project
    • Auto-assign tasks to users by skill set (coming soon)
    • Self-healing: auto-reassign idle tasks to users with the appropriate skill set (coming soon)
    • Assign tasks to always-on automated chat bots (coming soon)
    • Mass invite users by skill set (coming soon)
    • Auto-estimated due dates for tasks whose parent tasks (or above) have been given a due date
  • Structure & Efficiency
    • Each project contains a hierarchy of tasks
      • Easily express which tasks depend upon others
    • Each task has its own end-to-end encrypted chat room for discussing or getting help with that task
      • Attach files and links to tasks (coming soon)
    • Per-user unified task list, thus answering the most critical question that task management software answer, and one that basically never is: "what should I work on right now?"
  • Security, Privacy, & Anonymity
    • End-to-end encrypted tasks (coming soon)
    • Tor integration by default; access server as an Onion Service
    • Ability to invite people not yet on the system via URL without them needing to specify their email to join
    • Open source & self-hostable

How do we want to collaborate?

  1. Orientation via demo | For starters, Duke and I were thinking that it would be great for our next meeting to give each participant the opportunity to spend 1-3 minutes doing a very quick demo of what they're building. Now that I think about it, after this next meeting it would also be cool to have each subsequent meeting's new people perform such a demo for us. All of this will help make it clearer which people in particular should be talking to/collaboritng with the demoer.

  2. Extra-meeting working groups | Outside of the existing Tuesday meetings, which I suppose can be focused on on-boarding new people, the aforementioned very-brief demos, and reporting relevant project progress to one another, we should also have more serious work-oriented sessions of some sort, perhaps once a week. Addition specifics will depend on the nature of the integration, so let us first answer "what do we want to achieve?" -- specifically what we want to present in November -- then answer "how should we work together to achieve X?"

(In general, if you're building something exciting and new, send me a link to your demo or app! I am happy to try it out and give you feedback, provided that I can run it on Linux, either natively or in a web browser.)

What do we want to achieve?

Some combination of the following:

  1. Agreement upon open specs that enable cross-app integrations or interactions of various sorts could be hugely valuable. If the debates become too trivial or laborious, I say we ask Frode to make the final decision as to what each spec says.

  2. If #1 enables us to, say, pass JSON between apps in order to trigger various behavior, I am interested in building functionality exposed as APIs and/or chat bots that is meant to augment various tools relevant to the future of text and beyond.

  3. Let's do #1 and #2 so that we have something epic to demo for this year's Future of Text Symposium. We should figure out what we want this to be as soon as possible, and we should each do a gut check to make sure it's something we are sufficiently serious about and excited about the goal we set!


This comment has been minimized.

Copy link
Owner Author

@ontouchstart ontouchstart commented Jan 22, 2019


Shane Gibson

What I am doing?

I am working in concert with Frode and Chris⋮ to bring an improved set of authoring and reading tools to the WordPress platform which adhere to “Englebartian” principles.

It is my intention to carve out some time to work on a new tool that will enable two-way linking of text in a browser. In essence, when a backlink to content is created, I would like to enable a method for the original author of the content that is being linked to to be notified and be able to avow or disavow the link to create a more interconnected network of content which is known among authors and readers. Currently, some level of disavowal is available from certain search engines, but there is no method of explicitly endorsing certain links

How I want to collaborate

I am available to provide user testing and feedback on the different projects other members of the working group are engaged in. I would like to have the same available for me!

What do I want to achieve?

In an ideal world, it would be fantastic if my “backlink 2.0” idea were able to be included in the specification for the HTML tag. Allowing for these deeper connections would enable true decentralization of content and the ability for people to craft their own social and content networks without having to resort to the walled gardens of the current gatekeepers whose motivations may be suspect (Facebook, Twitter, etc).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.