├── .gitignore ├── history.md ├── images ├── IPMM_overview_by_Ly.jpeg ├── abstraction_timeline.png └── abstractions-map.drawio ├── interplanetary-text.md └── readme.md /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/universal-meaning-map/docs/2306b334a0968eacbb0c03918a101da0e8e1f9ce/.gitignore -------------------------------------------------------------------------------- /history.md: -------------------------------------------------------------------------------- 1 | # Interplanetary mind-map history 2 | ### `2015` 3 | 4 | - Listening [Epicenter Bitcoin interview to Juan Benet](https://www.youtube.com/watch?v=erB7i6Uc4DM), Xavi becomes aware of the idea of content-addressing. It blows his mind that there was a way to connect any piece of information with any other. 5 | 6 | ### `2016` 7 | - [Dani](https://armengol-altayo.com/202103150041) and Xavi start a remote interaction around the dynamics of digital information. Original conversations revolve around how computers could assist us better if privacy was guaranteed and information was not siloed, as we would be able to expose much more information to our "digital assistant". Originally we referred to the project as "Samantha" referencing the [artificial intelligence assistance in the movie Her(2013)](https://www.youtube.com/watch?v=GV01B5kVsC0) 8 | - There is a constant ironic frustration in our conversations, where we feel overwhelmed by the complexity of information dynamics and limited by the existing tools in order to think about how new tools should be like 9 | 10 | ### `2017` 11 | 12 | ### `2018` 13 | - Dani and Xavi move together and decide to formalize the project a little bit. The focus is a mix of research of previous initiatives and ideas of the early web combined with new crypto technologies and a strong intuition that serving particular minds should be the driving vector. The [old site](https://interplanetarymindmap.github.io/oldSite/) reflects part of the ideas of that time. 14 | 15 | - As a result of October 1th 2017 censorship in Catalonia, Xavi co-founds [Vocdoni](https://github.com/vocdoni), a decentralized, censorship-resistant voting system. 16 | 17 | - The [Mind-map prototype](http://www.youtube.com/watch?v=R4D8xT_KNP8) materializes some of the early ideas behind. 18 | [![Interplanetary Mind Map demo](https://img.youtube.com/vi/R4D8xT_KNP8/0.jpg)](http://www.youtube.com/watch?v=R4D8xT_KNP8) 19 | 20 | ### `2019` 21 | 22 | - [Presentation of Interplanetary Mind Map at IPFS meetup](https://www.youtube.com/watch?v=OY22uTUaL2Q) 23 | [![Interplanetary Mind Map at IPFS meetup (2019)](https://img.youtube.com/vi/OY22uTUaL2Q/0.jpg)](https://www.youtube.com/watch?v=OY22uTUaL2Q) 24 | 25 | - At [IPFS Camp 2019](https://camp.ipfs.io/) we host a deconf session around "decentralized personal knowledge graphs" and became to know many projects working on similar ideas. 26 | 27 | - As [Vocdoni](https://github.com/vocdoni) grows and requires more and more attention, Xavi halts its involvement with `Interplanetary mind-map` and conversations are just kept in the background. 28 | 29 | 30 | ### `2020` 31 | 32 | - The rise of "note-taking" projects such as[ Roam Reasearch](https://roamresearch.com/), [Obsidian](https://obsidian.md/) as well as methods such as [Zettelkasten](https://en.wikipedia.org/wiki/Zettelkasten) offer new perspectives around the organization of information were natural language has a lot more presence. In particular, we start emulating some of those constructs on top of [Foam](https://foambubble.github.io/foam/) which allows us to start experimenting with much more complex forms of data. This leads to a much deeper exploration into [linguistics](https://en.wikipedia.org/wiki/Linguistics) and [semiotics](https://en.wikipedia.org/wiki/Semiotics) 33 | 34 | ### `2021` 35 | 36 | - Early in the year [Vocdoni](https://github.com/vocdoni) is acquired by [ Aragon Association](https://aragon.org/aragon-association). Significant differences in perspective force the departure of Xavi from Vocdoni. Xavi goes back to put all his attention into `Interplanetary mind-map` 37 | 38 | - The adoption of [Foam](https://foambubble.github.io/foam/) combined with early understandings of `self-describing minformation` has become a powerful tool to think around complex information and it becomes the engine that powers the conceptual development of `Interplanetary mind-map`. A big chunk of the frustrations for dealing with complexity is faded away. The main ideas for how an intended system of information should be are somewhat clear and starting to fall into place. 39 | - The development of `Pseudo Interplanetary mind-map` takes place in parallel to the conceptual development. Its goal is to be able to create a playground using note-taking repositories as a data source. 40 | 41 | ### `2022` 42 | 43 | - The first version of `Pseudo Interplanetary mind-map` enables early experimentation around browsing and inline transclusions. 44 | - [Github repositories and documentation](https://github.com/interplanetarymindmap) are updated to allow onboarding of new collaborators as well as to start looking for financial support for the project 45 | -------------------------------------------------------------------------------- /images/IPMM_overview_by_Ly.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/universal-meaning-map/docs/2306b334a0968eacbb0c03918a101da0e8e1f9ce/images/IPMM_overview_by_Ly.jpeg -------------------------------------------------------------------------------- /images/abstraction_timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/universal-meaning-map/docs/2306b334a0968eacbb0c03918a101da0e8e1f9ce/images/abstraction_timeline.png -------------------------------------------------------------------------------- /images/abstractions-map.drawio: -------------------------------------------------------------------------------- 1 | 7Zpbb5swGIZ/DZebwIckXBbabJPW7aIXq3YzucEBa4AROEvaXz8TDAmYnrQGR+4aqYLXYPDzHfgMdmCY7T6VpEiueURTB7jRzoGXDgCLBZb/a+G+ETBaNEJcsqiRvINwwx6oEl2lblhEq96BgvNUsKIvrnie05XoaaQs+bZ/2Jqn/asWJKaacLMiqa7+YJFI1LDA/KB/pixO2it7M79pyUh7sBpJlZCIb48keOXAsORcNFvZLqRpza7l0py3fKS1u7GS5uIlJ2y/k29h+jOsgmx9e31LvS9ff33wUNPNH5Ju1IjV3Yr7FoHsRtKWO8E2YYLeFGRVt2ylvaWWiCyVe57cJFXRmGDNdlReNVizNA15ykup5Tyvu6hEyX/TVnQAXC59+de1tJChVNSt0VLQ3aOD9jqU0gUpz6go7+Uh6gTkKf9T7gf8WbO/PRhzpgyUHNmx1Yhyn7jr+UBYbijIrwE+txs48MHHAXKENeSei3Xmnfj20O1mDrHbJ956b4/4GPAT8QaW80Z93tA1zBtazhsM/Ns3zNvyhyZcnJl/Y7t5YxcOn5ltFWmK+Mxu4gid2RPT8qoQYdjPKNAw74XlvJE3yODILG/fct6gn78hMJy/247tBX5mCdyzfI6JwdnVKJ7lZSHyBj6OdB/HI8DxyYBbXhVC1+8Dn+tPzWmBW16mYHcw0QSGszgwXqeEoe8vlydLKf7zKWXS1+HQeJ1yWuDaq0LTEx9ovE6Z1sPhiIdPC3yyl4V6up4ukbef1bq8Yni+CfVS5ZrlkVQuNPpy2GKAOWVxLrdTuq5bajRsRdILJWcsiuqTg5JW7IHc7Tty5X7BWS72Q8GBgy/rnjaCV81HbU8zi4qQkaB5A5PMhjOkF1aP4GQmmewdl55kJks/WiCMlJDTBoJeQqpACN5rIMxNB4LxIjPY/6aKAeiOLQCYMAaQXmRe3Mmhk5VgPH+nYTD2UW8xZRgg8LRV6iVdgrCc5XF9+f8GG5k6AHdSi72glI1LvikeHb1apaeIO92tvia5eIP3kBB2ynGC8UcSjH8qMMYXYPxrRn/C3ropjGE2PnedFHM7ox34Oxrz9rd5nMrdw3rUfdvRol549Rc=7VnRcqIwFP0aHrsDBFQeK61tZ3a7O2Nntn3MQoTsBuKEWLVfvwkEEKLF1lLbjjrDmJPkhtxzz71BDOAnqysG5/EPGiJi2Ga4MsCFYduO7YirBNYFYA9AAUQMhwVk1cAUPyEFmgpd4BBljYGcUsLxvAkGNE1RwBsYZIwum8NmlDRXncMIacA0gERHf+OQxwU6soc1fo1wFJcrWwOv6ElgOVjtJIthSJcbELg0gM8o5cWvZOUjIn1X+cWanSWr63v/NrhbOuv4DF/Nzgpjk5dMqbbAUMrf2LTa7CMkC+UwtVm+Lj3I6CINkbRiGWC8jDFH0zkMZO9ShIzAYp4Q1Z1xRv8hnxLK8tnA83x/Mql6Sg7k2BkmpByZ0lQYHIcwi6ulZjTl2yypW0aMo1WL5A4PWRVtItwRTRBnazFPWQEjxbQKdeCp9rIOHFdB8WbMlBECVaxGlemaD/FDUfICekA3OygNz6VMRCsgMMtw0EHIZOKJj+gJFuyx8nVhF4WamF7n0Q6PlRhDBHL82FxzmxfVCr8oFndTEWY7TcIcr0VERhcsQGrWpjZahhzTfd4QhyxCXDOUk1pt+/U8OxrPdzhBhoyribjecMSEn2iaafQLCfAm4ZDgKJXRIIhDgvOxFAoWCfFcdSQ4DOX0MUMZfoJ/clOmaM/l9vINu2PDvZC2FpxmRUrXY0lJdouKW8KtIk7iqkJYZo9CtsGOuNgIS29LWPamY1eXrVDaVDUp4zGNaArJZY025VkP+U7pXIF/Eedr5U/JVDMO0Arze8nsN1e1HjZ6LlaK9LyxLht1MqEiGAtkgkl3Mnnj/HFoYmhlcsd8ZWLoNNRzYhhoicG/EVfT+pSJYGTKb5/Ct1t53N2vgvcm/OEO/vQ6fuJPnrhM52PxZ7k7CAQnAvc5Qh+dQFvPlP2X3vY5Z9d5SD+738U43afqjsFgcGjVFU7Jq+Bz41T9KapcV506oIwfJlK9St7kIj3/3CKVN/tTPGljLtXkvuuJ2dR167yrbp2Tbg/Q7XBP3Q6Pqlv9dHTS7UsPTN4H0+0xHnW/jm5He+q2OJceTbijrync/k7FrcfSo6vU1Ai8FbL4jORVbwXe689FMGo+o4Jhb2SKZv16qfhLqX5HBy7/Aw== -------------------------------------------------------------------------------- /interplanetary-text.md: -------------------------------------------------------------------------------- 1 | # Interplanetary text 2 | 3 | `Interplanetary text` is one of the infinite constructs that are possible with `IPMM` and responds to: 4 | > What does text look like under `IPMM` assumptions of `self-describing` `minformation`? 5 | 6 | Within `IPMM`'s jargon, words are `meaning unit pointers`. They lead our minds into a pre-existing idea of what that the word conveys, different for each of us. 7 | In a digital context though, the author could point the word to the exact `meaning unit projections` that is referring to. In other words... we can embed meaning and context within the word itself. 8 | 9 | This enables: 10 | - Transclusion: We can embed text inside text recursively without loosing meaning 11 | - Single source of truth / non-duplication of information. There is no longer need for "copy-paste" 12 | - Traceability: Each `note` has a `mind` behind, therefore each word or text element is "owned" by someone 13 | - Progressively non-ambiguous: We can keep adding resolution to make the text less and less ambiguous over time as each word can carry context. 14 | - Text history: We can navigate through time 15 | 16 | ## Example 17 | 18 | Imagine I express the following: 19 | ``` 20 | The car is blue. 21 | ``` 22 | 23 | To add resolution for what I'm talking about I could generate `notes` that represent my `abstraction` of "car" and my `abstraction` of "blue". 24 | 25 | In this case, the `notes` are made of two predicates that use the following `properties` (The properties live on their respective `notes` but to make it easier here we just use their `intent-identifier`): 26 | 27 | 28 | ### The "name" property 29 | `IID`: 12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cqz3qlkca 30 | 31 | Represents the idea of "name". A human-readable identifier that can be used as abstraction-reference in inline text. 32 | 33 | ### The "view" property 34 | `IID`: 12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cnwyia5xq 35 | 36 | Represents the idea of "view" or "perspective" about something. 37 | 38 | 39 | ### The "car" note 40 | 41 | `IID`: 12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3civpeskra 42 | 43 | ```JSON 44 | { 45 | "12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cqz3qlkca": "car", 46 | "12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cnwyia5xq": [ 47 | "A Renault Scenic that my dad purchased.\nMy dad gave it to me. It was my first car\nIt learned to drive with that car." 48 | ], 49 | } 50 | ``` 51 | 52 | ### The "blue" note 53 | `IID`: 12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c4snxjotq 54 | ```json 55 | { 56 | "12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cqz3qlkca": "Blue", 57 | "12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cnwyia5xq": [ 58 | "A sky blue\n#0CE1F4" 59 | ], 60 | } 61 | ``` 62 | 63 | ### The `interplanetary-text` expression of "The car is blue.": 64 | 65 | ```JSON 66 | [ 67 | "The ", 68 | "[\"12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3civpeskra/12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cqz3qlkca\"]", 69 | " is ", 70 | "[\"12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c4snxjotq/12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cqz3qlkca\"]", 71 | "." 72 | ] 73 | ``` 74 | 75 | ## Implementation and execution 76 | 77 | Currently `interplanetary-text` is represented as a JSON array that combines `abstraction-references` (`aref`) with normal text to make it easy to parse. 78 | In the example, there are two `arefs`. The first one points to the "name" property of the "car" note. The second one points to the "name" property of the "blue" note. 79 | The `view` property, where we give the extra context of what "car" and "blue" mean to me is not in "use" in the `interplanetary text` itself, but they are also none-separable from it. This means that the context is there and is up to the renderer and the user to decide how to "inspect" each note. 80 | 81 | For the runtime to render the expression in the example it will go through the following steps: 82 | 1. Parse the `interplanetary-text` expression and obtain the `abstraction-references` 83 | 2. Parse the `abstraction-references` and obtain the `MID` and `LIID` of the transcluded notes ("car" and "blue") as well as for the transcluded properties ("name" and "view") 84 | 3. For each note reference; request to its respective `MID` the `CID` for the corresponding `IID` 85 | 4. Once the `CID` is received we can request its content to the IPFS network or to the MID itself 86 | 5. With the content received we can look up the `properties` that the `aref` is pointing at. 87 | 6. The runtime can now render the text by replacing each `abstraction-reference` with its respective transcluded text. 88 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Interplanetary mind-map (IPMM) 2 | 3 | - [Interplanetary mind-map (IPMM)](#interplanetary-mind-map-ipmm) 4 | - [Overview](#overview) 5 | - [Abstract](#abstract) 6 | - [Current stage](#current-stage) 7 | - [On terminology](#on-terminology) 8 | - [Meaning is subjective](#meaning-is-subjective) 9 | - [Meaning overview](#meaning-overview) 10 | - [Meaning in communication](#meaning-in-communication) 11 | - [Meaning in reasoning](#meaning-in-reasoning) 12 | - [Capturing meaning](#capturing-meaning) 13 | - [Everything is an abstraction](#everything-is-an-abstraction) 14 | - [Perceptual abstractions](#perceptual-abstractions) 15 | - [Language as system of abstractions](#language-as-system-of-abstractions) 16 | - [Computation as abstraction](#computation-as-abstraction) 17 | - [Encapsulating meaning into abstractions](#encapsulating-meaning-into-abstractions) 18 | - [Information should aim to be self-describing](#information-should-aim-to-be-self-describing) 19 | - [Self-describing data structure](#self-describing-data-structure) 20 | - [Instances of self-description](#instances-of-self-description) 21 | - [A different paradigm](#a-different-paradigm) 22 | - [Conflicts with language](#conflicts-with-language) 23 | - [Use-cases](#use-cases) 24 | - [Technical mapping](#technical-mapping) 25 | - [Node](#node) 26 | - [MID - Mind identifier](#mid---mind-identifier) 27 | - [Note](#note) 28 | - [Property](#property) 29 | - [CID - Content identifier](#cid---content-identifier) 30 | - [IID - Intent identifier](#iid---intent-identifier) 31 | - [AREF - Abstraction reference](#aref---abstraction-reference) 32 | - [FAQ](#faq) 33 | - [Comparison with the Semantic Web](#comparison-with-the-semantic-web) 34 | - [Project philosophy](#project-philosophy) 35 | - [Pseudo Interplanetary mind-map (PIPMM)](#pseudo-interplanetary-mind-map-pipmm) 36 | - [Overview](#overview-1) 37 | - [Compromises](#compromises) 38 | - [Repositories](#repositories) 39 | - [Installation](#installation) 40 | - [Get in touch](#get-in-touch) 41 | - [Follow](#follow) 42 | 43 | ## Overview 44 | 45 | [![Interplanetary mind-map. Transcending language](https://img.youtube.com/vi/H9TudZ_fC3o/maxresdefault.jpg)](https://youtu.be/H9TudZ_fC3o) 46 | [▶️ View on Youtube](https://youtu.be/H9TudZ_fC3o) 47 | 48 | ### Abstract 49 | 50 | The `Interplanetary mind-map` (`IPMM`) is a [long term project](history.md) that aims to build a system of information that enables our limited cognitive capacities to deal with much larger levels of complexity, unattainable with current software, and consequently maximize our reasoning and communication potential at individual and collective levels. 51 | 52 | `IPMM` endorses 3 fundamental assumptions: 53 | 54 | 1. [Meaning is subjective](#meaning-is-subjective) 55 | The `meaning` given to specific `information` set is unique to each mind, as it is the product of an extremely complex cloud of associations. We need a system that aligns to each subject's `meaning`. 56 | 2. [Everything is an abstraction](#everything-is-an-abstraction) 57 | The single most fundamental form to manage complexity are `abstractions`. `Abstraction malleability` (facilitating their access, creation, re-use, maintenance and evolution) is fundamental to maximize their quality (enhance the signal-to-noise ratio in relation to its specific purpose). 58 | 3. [Information should aim to be self-describing](#information-should-aim-to-be-self-describing) 59 | To maximize interoperability, composability and understanding of information, there can't be external dependencies, `information` should not require external context to be used, computed or understood. 60 | 61 | > `IPMM` is a distributed system of coherent `abstraction` composition around `self-describing` `meaning-units`. 62 | 63 | These assumptions force digital `information` to be structured connected and nested in a different way. It enables a new paradigm for reasoning, communication and potentially computation where the entire system of `information` revolves around the subject's `meaning`, the `abstractions` of its mind, its personal language... allowing to adapt to each person needs, as opposed to subordinating people to the pre-assumptions, bias and incentives of software creators. 64 | 65 | ### Current stage 66 | 67 | Currently, `Interplanetary mind-map` its defining a conceptual framework that is representative of the nature of `meaning` and the flow of `information` that can be mapped in a technical implementation that can maximize its utility across most software domains. 68 | 69 | [Pseudo-Interplanetary mind-map](#pseudo-interplanetary-mind-map-pipmm) is a working prototype where the system fundamental assumptions and constructs are being explored. 70 | 71 | A first protocol implementation and a tool for reasoning as a first MVP is on the works and looking for collaborations. [Get in touch](#get-in-touch). 72 | 73 | ### On terminology 74 | 75 | `IPMM` uses a lot of unique terminology and a particular narrowed meaning in certain words, this is necessary in order to make explicit certain subtleties within the framework. For a new reader, it may be confusing to read. In the future, likely, the terminology can be simplified, but at the current stage, while developing the conceptual, framework is necessary to optimize for the semantic-clarity of those who work with it. 76 | 77 | Many references of this documentation are pointing to [my personal instance](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22]]]&) (Xavi's) of `PIPMM`, where more up-to-date and extensive definitions can be found. 78 | 79 | ## Meaning is subjective 80 | 81 | ### Meaning overview 82 | 83 | Each word carries `meaning`. While a dictionary may define a word based on how its used within a culture, each of us gives a significant different meaning to them. Every experience that we have around an object/word/concept shapes its meaning. 84 | 85 | While the grammar of a language allow us to represent it in a "standardized" way (information), its interpretation will always be subjective due to our differing associations (minformation). 86 | 87 | - [information](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3czsjxwj5q%22]]]&): `Data` that is aimed to be interpreted. 88 | 89 | - [minformation](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cxhm6fu5a%22]]]&): The product of `data` that has been interpreted by a particular subject. A completely subjective experience. 90 | 91 | - [meaning](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3chp6gtfwq%22]]]&): Is all the `minformation` that a given subject needs to relate and to create certainty around a given object. Is complex and fuzzy, only exists inside a subject's body-mind system and can't be communicated in a lossless form, as its the product of the subject life experience. 92 | 93 | Example: 94 | > An article on a newspaper is `information`. It is `data` sitting there awaiting to be read. 95 | > When someone reads the text, the `information` becomes subjective based on the subject's political views, preexisting knowledge, current emotional state, authorship of the article, all the associations with each word in the text... The `data` is now `minformation` instead. The product of the `minformation` with all the associations that had conditioned its interpretation conforms the `meaning` that subject gives to that article. 96 | 97 | ### Meaning in communication 98 | 99 | Natural language requires to have a significant degree of [shared meaning](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cgwyycz5q%22]]]&) between its users, otherwise communication wouldn't be possible. 100 | 101 | Reading the same words may have the effect of seeming that two subjects will understand the same thing. This [fallacy of shared meaning](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cgpk6ijkq%22]]]&) is the root cause of most communication issues. 102 | 103 | `Interplanetary mind-map` enables to make explicit the difference in `meaning` between subjects, minimizing miscommunication and conflict by providing tools to map each-other's `meaning`. 104 | 105 | ### Meaning in reasoning 106 | 107 | Having `shared meaning` is a virtue for communication but its a huge drawback for thinking. 108 | 109 | The quality of our reasoning is directly tight to the quality of our `abstractions`. The use of "common language" `abstractions` constrains the creation and evolution of our own unique `abstractions` that can better fullfil our particular needs. 110 | 111 | With a system that supports us in expressing our particular `meaning` around a concept, we become in in full control of our own particular `abstractions`, better capturing our reality and enhancing our reasoning. 112 | 113 | Similarly, any piece of software uses the same set of `abstractions` for all its user base (user interface, functions, options, visualizations...). This translates into only allowing its users to transform, compute, visualize and make sense of information based on the scenarios and needs that the software creators have considered. To maximize good reasoning users must be able to shape and render `information` in a way that is natural to them. 114 | 115 | `Interplanetary mind-map` recognizes that humans operate with `minformation` and not `information`, and to maximize our particular virtues, the system should be build around our particular `meaning`. 116 | 117 | ### Capturing meaning 118 | 119 | `IPMM` can be understood as a "best effort" to maximize the digital caption of `meaning`. The following are what `IPMM` considered its "primitives", and aims to recreate digitally. 120 | 121 | - [meaning unit](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3chp6gtfwq%22]]]&): It is meaning of a given object at a given time by a given subject. 122 | - [meaning unit projection](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdeplwy4q%22]]]&): Is a representation attempt of a `meaning unit`, it is inherently incomplete and distorted, usually expressed in the form of language. A `meaning unit` can have an infintie number of `meaning unit projections` that represent different aspects of it. 123 | - [intended meaning](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cz6zpqnbq%22]]]&): It is the `meaning unit` that a `meaning projection` aims to express. 124 | - [meaning unit pointer](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c6ardl2ma%22]]]&): A sign, a word, a set of data that when interpreted makes the subject recall a specific `meaning-unit`. 125 | - [meaning unit continuity essence](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cqkp7a4ja%22]]]&): The `minformation` set of a `meaning-unit` that does not change and allows for the `meaning-unit` to evolve while keep being referred by its `meaning unit pointers`. 126 | 127 | Example: 128 | 129 | > Each person has a different `meaning` for what car is. While a lot of this `meaning` is shared, there is a cloud of experiences, associations, emotions, knowledge, understandings... that conforms to our particular understanding of a car. This cloud, in a particular moment, for a particular mind is a `meaning unit`. 130 | > 131 | > If I try to explain what a car means to me, I will aim to express its `intended meaning` although I only will be able to express part of the cloud that I have in my head, there are things that I don't remember, there are associations of the car that I have that I'm not aware of, I'm limited on time for what I can express, and even if I could do the above the limits of the language will only be able to communicate part of it. That's why any expression of what a car means to me is just an `meaning unit projection`. 132 | > 133 | > Despite a `meaning unit` not being representable and constantly evolving we still can refer to a "car". There is an essential set of `minformation` of what constitutes a car that does not change, the `meaning unit continuity essence`. 134 | > 135 | > When we see a car or read the word "car", we recall the `meaning unit` of a car. Both, the image of a car and the word "car" are `meaning unit pointers`. 136 | 137 | If we're able to connect each `meaning unit` with all its related `meaning unit`s that conform it, we end up with a `map of meaning` that reassembles how our mind is structured. Our personal digital ontology, our "mind-map". 138 | 139 | ## Everything is an abstraction 140 | 141 | ### Perceptual abstractions 142 | 143 | We can't directly perceive reality. Our sensory receptors filter specific ranges of light, sound, touch... corresponding organs may do further processing, up until we can interpret information with our conscious and unconscious minds. At every step in that path, `minformation` is reduced and transformed in the form of `abstractions`. 144 | 145 | - [Abstraction](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cnnjsotia%22]]]&): An `abstraction` is the expression of a pattern of information that captures the essence that allows it to better serve in the specific context where is used. An `abstraction` is the product of computation, where input information is reduced, transformed and re-grouped to increase the signal-to-noise, reducing entropy and enabling to to deal with greater complexity. 146 | 147 | Example: 148 | > We are constantly sensing light and sound, but not all of its is perceived equal. We ignore some signals and enhance others (improving signal-to-noise ratio). We can isolate the visual shape and the sound of a "car" within it surroundings recognizing it as a 3D object (improving signal-to-noise ratio). Each signal-to-noise ratio improvement produces an abstraction. 149 | 150 | ### Language as system of abstractions 151 | 152 | Humans are unique in their capacity to create `abstractions` that are not only perceptual and 153 | natural language is its higher form. 154 | 155 | A `word` is short and simple but its pointing to huge amounts of `meaning` without having to directly handle the complexity that they represent. 156 | 157 | By composing clauses made of `words` we can capture even larger amount of complexity that better describe the meaningful elements of reality . We can wrap these clauses as new `abstractions` to further compress complexity (new words, categories, ideas, models, frameworks...). This nesting process can continue indefinitely, creating higher level `abstractions` without no upper bound. 158 | 159 | Language can be understood as a formal system of `abstraction` composition, that produces higher-level `abstractions` as a result. 160 | 161 | Example: 162 | > A "car" is a 3D object with specific shape and sound, composed of many parts, that uses complex physics and technology to function. By using the word "car" we can relate to it without having to relate to its complexity. 163 | > A clause like "An electric-car", is in itself a higher level abstraction, representing more complexity than the word "car" on its own. 164 | 165 | Language and words are not the only systems we have to generate `abstractions`. Anything that we can conceive and have some "boundaries" can be understood as an `abstraction`. 166 | 167 | ### Computation as abstraction 168 | 169 | A computation is essentially the process of generating better `abstractions`, simplifying an aspect of reality to facilitate our relationship with it. But the computation in itself can also be conceive as `abstraction` that transforms `abstractions`, making code, functions, apps or machine learning models `abstractions` as well. 170 | 171 | ### Encapsulating meaning into abstractions 172 | 173 | In `IPMM` anything that has `meaning` can be expressed as multiple `meaning unit projection` and understood as an `abstraction`, which means that everything can have its digital representation. The result is our personal language, a map of `meaning` of our particular mind. 174 | 175 | Example: 176 | > The idea of "My car" is a `meaning unit` and it can be represented as an arbitrary list of `meaning unit projections`: 177 | > Its name, a description, pictures, its documentation... Each of them may be composed of words or other `meaning unit projections` that are in themselves other `meaning unit projections`. 178 | 179 | Example: 180 | > The idea of "filter" is a `meaning unit`, as `meaning unit projections` may have a "definition" and a "pure function" that takes other `meaning unit projections` as arguments an it renders a filtered result. 181 | 182 | Facilitating a coherent creation, evolution, re-use, and maintenance of `abstractions`, that map into how we think, is what enables better reasoning and communication, and the goal of `IPMM` is to support this process. A [different methodology](#new-methodology) is necessary to support this process. 183 | 184 | ## Information should aim to be self-describing 185 | 186 | Because `meaning` is intrinsically subjective and only part of it is shared, there will always be a gap where the consumer of a given `information` would not be able to assign the same `meaning` as its author. For the consumer to approximate its understanding to the `intended meaning` it needs more `contextual information`. 187 | 188 | What we can do to minimize this "gap" is to attempt to make `contextual information` part of the `information`. 189 | 190 | - [Self-describing](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cclw35kma%22]]]&): Is the quality of `information` of not needing external `information`/context to be used or understood. This definition should not be read in absolute terms, but as a platonic attribute that any `abstraction` should aim for. 191 | 192 | `Self-describing` can be understood as a spectrum, where the more `self-describing` an `abstraction` of a `meaning unit projection` is, the more capacity to be interoperable used and understood is (does not have contextual dependencies). 193 | 194 | `IPMM` architecture is designed so that the `meaning unit pointer` (mostly but not exclusively "words") can't be separated from the `meaning` or `computation` that a the particular `mind` that created it intended for them. Every piece of `information` in the system carries all what is necessary to be computed or understood within itself. 195 | 196 | ### Self-describing data structure 197 | 198 | An instance of a `meaning unit projection` within the `IPMM` framework is called a `note`. 199 | 200 | The main mechanism used to achieve `self-description` is by nesting `notes` within `notes`. This means that any element of a `note` can in itself be a `note` allowing for extremely complex nested objects. [`IPLD`](https://ipld.io/docs/) is used to represent this data structures. 201 | 202 | The reason the word "nesting" is used as opposed to "linking" is because the references in a `note` are assumed to be part of the `note` and not an outside thing. The nested `notes` are necessary to contribute to the `meaning` for the super-`note` to be understood . This is very different from the hyperlink pointing to a "web page". 203 | 204 | > A simple analogy that may help to understand the data representation of the `self-describing` quality would be to imagine it as a "[Merkle Tree](https://en.wikipedia.org/wiki/Merkle_tree)" of `meaning`, where each node is a `meaning unit projection` made of other `meaning units projection`s. The parent nodes are a product of the children nodes as oppose to something just referenced. 205 | 206 | ### Instances of self-description 207 | 208 | The `self-describing` quality is manifested in multiple ways in the system: 209 | 210 | - `Self-describing note`: This is a quality that the author of a `note` should aim for, and is what allows the overall ontology to grow and be coherent. It can't be enforced by the system, but it can be incentivized. 211 | - `Self-describing type`: The "key" of each `note` `property` is nothing but a `meaning unit pointer` to the `type note`. A `type note` is a `note` that contains all the information to be processed by a computer (classic type system), but also the information to be semantically understood by a `mind`. The development of this type-system is one of the critical aspects of the development of the project. [Interested in helping?]((#get-in-touch)) 212 | - `Self-describing transforms`: `Transforms` are `notes` that can compute other `notes`. They can be filters, renders, parsers, functions... Being `self-describing` means that they don't have "dependencies". Any code they need must be within the `note`, either directly or as a nested `note`. 213 | - `Self-describing text`: We can enable a system of [transclusions](https://en.wikipedia.org/wiki/Transclusion) where words, paragraphs and other text structures are nothing but the transcluded `properties` of a `note` and at the same time are pointers to that `note`. By having a semantic interface we can guarantee that the transclusion will still make sense in the future. This enables the capacity for each word to be `self-describing` which means that we do not need to rely on the ambiguous definitions of a global dictionary and instead we can create extremely explicit text where a resolution to its meaning can be added progressively. It also means that when writing (an article for example) the context required to make the point is extremely minimized, as each concept/word can be self-explanatory. This type of text format is currently referred to as [interplanetary-text](interplanetary-text.md) and is the main focus of exploration of the project as is where semantics meet the classical type system or where the `mind` meets the computer. 214 | 215 | ## A different paradigm 216 | 217 | ### Conflicts with language 218 | 219 | Many of the ideas described here (an others not captured in the /docs yet), require a different way to relate to language. It requires to break grammar and social norms and "force" language out of its ambiguity. That may seem antagonistic to the idea of mapping `information` like your `mind`, and in a way it is. I'll argue that it does not change its structure but it sharpens the boundaries of `meaning` instead. It is in this process where insights, connections, and better `abstractions` emerge. The `mind` is retrofitted with the product of the system gaining structure and clarity out of it. 220 | 221 | One of the conflicts is in using language for communication vs language for reasoning/meaning making. We're used to do everything with the former, and using it for reasoning and creating meaning for one-self seems artificial and the product of it makes it unnatural to use for communication. 222 | 223 | Example: 224 | > I've been [publishing my `abstractions` as a newsletter](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3ck45ed5ca%22]]]&), and while they're extremely clear and accurate to me, they take a lot of effort for a reader not familiar with my `meaning units`, they need to map them into their mind. In a "normal" text you just "assume" your own meaning. 225 | 226 | Because of the `abstraction malleability` of the system, I'm certain that new constructs can emerge that enable a fine balance between communication and reasoning. 227 | 228 | Example: 229 | > A simple approach to that will be for example an article written with "communication style" but all its words map to a more "reasoning style". 230 | 231 | Another tension between communication vs reasoning is that the system forces self-consistency over shared consensus. This is not how most people work, the needs for belonging, acceptance, validation... are extremely powerful forces and shape most social interactions. 232 | 233 | Example: 234 | > Take [my own idea of abstraction](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cnnjsotia%22]]]&) . Redefining what "abstraction" means can be viewed as a grandiose statement. [The wikipedia page on "abstraction"](https://en.wikipedia.org/wiki/Abstraction) is quite extensive and mentions 11 different disciplines where is used, and here I go defining it in my own terms. Sharing my meaning makes me quite vulnerable. Nevertheless each of give a particular meaning to the idea of "abstraction", and we use it everywhere but never being explicit about it. What it is like to communicate exposing your own meaning? 235 | 236 | Learning to identify `meaning unit`s and wrap them in `self-describing` `notes` requires some training. It is quite analogous to [code refactoring](https://en.wikipedia.org/wiki/Code_refactoring#techniques), where if you don't take care of your repo, it can rapidly become a useless mess. Tooling can make a world of difference, but it can't replace the skill. 237 | 238 | With all the above, I'm certain that `IPMM` won't be "plug & play" tool. It needs training, its benefits are compounding over time and multiplied by the number of domains its used. If anything it will be a different way to understand language and information. 239 | 240 | ### Use-cases 241 | 242 | A system that embraces the above primitives is hard to imagine. The following are a set of use-cases and ideals it pursues that may help to further understand and materialize `IPMM` proposal. 243 | 244 | The use-cases are biased towards "semantic" domains. In the current software paradigm it translates to social networks, chat apps, forums, articles, news, productivity tools, note-taking... In the `IPMM` paradigm all of those are the same thing, a system of creating, maintaining and sharing `meaning units` with adaptable user interfaces that require little specialized computation (filtering, sorting, rendering, timers). While `IPMM` aims to eventually be used in any software category its too early to evaluate how far this framework can be pushed. 245 | 246 | - **Perfect traceability**. `Minformation` is born in a specific mind and its expression in the system can't be separated from its source. The evolution of each `note` can be traced and referenced all the way back to its origin. 247 | 248 | - **Explicit communication**. Because each word can carry its full `meaning` and does not rely on the pre-assumed ambiguous definition of a dictionary, the semantic field of a word is narrowed, and the [semantic clarity](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cnp2s7dqa%22]]]&) increased. 249 | 250 | - **Atomic access control**. Anything can be encapsulated as a `note` and therefore can have its own logic for to whom or how can be shared. The granularity of control is maximized as we can keep redefining the atomic pieces of `information` by re-abstracting. 251 | > E: In a text there may be words that are not accessible to specific requester, so neither the word or its definition can't be shown based on what its author have decided. 252 | 253 | > E: A curated list of X is only accessed if the requester attaches a signature with a key that corresponds to a payment of at least Y crypto amount. 254 | 255 | - **No copy & paste**. Information is never duplicated, it is referenced and transcluded, which means that double-source of truths are not possible. 256 | > E: In a documentation you can rename a property and is update all across. Even outside the documentation itself. 257 | 258 | - **Inline [transclusion](https://en.wikipedia.org/wiki/Transclusion)**. Inline transclusion in text fails because is very hard to future-proof it. If either the text surrounding the transclusion or the transclusion itself change it may break its semantic or grammatical consistency. The "break" happens because either the transcluded or the surrounding text make assumptions about the the other, they have contextual dependencies, they're not `self-describing`. `IPMM`'s `self-describing` methodology prevents this from happening. 259 | 260 | - **Multiple resolutions**. Any information can be expressed with multiple levels of detail/abstraction, adapting to what the reader already knows and therefore maximizing efficiency. It's a maximized organic version of [StretchText](https://en.wikipedia.org/wiki/StretchText) 261 | 262 | - **Never write the same thing twice**. The system foundation forces the user to iterate over what it wrote (about a given topic) already as oppose to re-writing it again. The result is the addition of more resolution and subtleties, making the text more precise and coherent instead of re-writting it. 263 | 264 | - **Nothing is too complex**. If a piece of information (a text, a user-interface, a filter) gets too complex or detailed. Just wrap the complexity into a new `note` that captures the relevant elements necessary to relate to it with ease. 265 | 266 | - **Compounding sense making**. We are constantly re-thinking stuff because our current systems can't capture our reasoning and past conclusions easily enough, nor can't they make them easily accessible when needed. Because in `IPMM` information is connected mimicking how the user thinks, the user can just retrieve a conclusion with its reasoning and iterate over, compounding over its sense making as oppose to start over. 267 | 268 | - **Intrinsic [literate programming](https://en.wikipedia.org/wiki/Literatle_programming)**. Computations carry with them their `meaning` as well. 269 | 270 | - **No more unnecessary intros**: Most of text books only carry a small percentage of new relevant information to the user because they're filled with context that the user may or may not know, but is necessary to understand "the point" the author is making. Because context its attached to each `meaning unit` the user can "browse" it as it needs as oppose to have to read it all beforehand. 271 | 272 | - **Always find it**: Because information is is structured in the same way you think, you will find in the same way you retrieve stuff from your memory, you jump through semantic associations. Same goes for figuring out where to write something. 273 | 274 | - **No Google**. Browse and search within the minds of your trusted people with your own algorithms. 275 | > E: If I'm looking for a specific stuff about "nutrition", I just search and filter through the people I curated around that topic, and not through the noise of the entire internet and an algorithm distorted with monetary incentives. 276 | 277 | - **Multi-threaded format-agnostic chat**. Anyone with access to a `note` can "reply" to it with another `note`. And a `note` can be anything. Therefore, a chat or a social network becomes a matter of how do you render a set of filtered `notes` 278 | 279 | - **Collaborative sense making**. `IPMM` can basically be used as a "personal thesaurus", allowing to map two subject's meaning and progressively generate better `abstractions` that better encapsulate their `shared meaning`. 280 | 281 | - **Accountable organization**. An organization that runs all its communications and decision making on `IPMM` now has the capacity to trace back all its reasoning. 282 | 283 | - **Everything has an API endpoint**: Each `note` is behind a `mind`, and a `mind` is represented as a P2P node. This means that either by its `CID` or by its `IID`, and with the right access, a `note` can be reached. 284 | 285 | - **Interconnected life domains**. Currently our tooling for personal/professional/social stuff is separated. Mostly for privacy and legal concerns, but also because `information` is siloed in different systems. The compartamentalization of those domains prevents cross-pollination of abstractions. In `IPMM`, because we have full control of the privacy of `information` and we can create our own UI, we can work within a unified system. 286 | 287 | - **[Zettelkasten](https://en.wikipedia.org/wiki/Zettelkasten) on asteroids**. `IPMM` can be understood as a hyper-generalization of Zettelkasten, where connectivity and atomicity of information is maximized. 288 | 289 | - **Brain-computer interface**. If [Semantic reconstruction of continuous language from non-invasive brain recordings](https://www.biorxiv.org/content/10.1101/2022.09.29.509744v1.full) becomes accessible, I'll rather map it to my own `meaning units` as oppose to an ambiguous mapping with common language. Doing so allows me to map it to explicit meaning or computations. 290 | 291 | - **Web of trust**. The intrinsic P2P flow of `information` added to the capacity of curating and filtering your peers `meaning units` could enable a new type of web based on trust. 292 | 293 | - **Minimizes confirmation bias**. The bottom-up approach makes ideas emergent, as oppose to a top-down approach, where the idea is pre-conceived and then written down. 294 | 295 | ## Technical mapping 296 | 297 | > `IPMM` is still consolidating its conceptual framework, attempting to mimic the "analog" flow of `minformation` in a digital form The following are references to help to better illustrate how the theory maps into a technical system. These references in particular are representative of how [`PIPMM`](#pseudo-interplanetary-mind-map-pipmm) has been architected, but are not definitive in any way, and some approaches still being constantly iterated. 298 | 299 | ### Node 300 | 301 | - The origin of `minformation` is on each mind. 302 | - A `mind` is represented in the system as `node` in a peer-to-peer network. 303 | - A `mind` is the author of a `meaning unit projection`s, referred to as `notes`. 304 | - Is not possible for a `note` to not have a `mind` behind. 305 | - A `node` is the end-point to target in order to get updates of anything that is not our own `mind`. 306 | 307 | ### MID - Mind identifier 308 | 309 | - The `MID` or `mind identifier` is a unique identifier derived from a private key and used to identify any given `mind`/`node`. 310 | - Any request concerning a given `mind` will have to be handled by its respective `node` and to uniquely identify the `node` in the network we use the `MID`. 311 | - `MID`s allow for global absolute references to any `note` 312 | - A `MID` looks like this: `QmXPTSJee8a4uy61vhAs35tM5bXDomSmo1BbTMUVAVbAGJ` 313 | 314 | ### Note 315 | 316 | - An instance of a `meaning unit projection`. 317 | - A `note` is made of a list of arbitrary lengths of `predicates` . A `predicate` being another `meaning unit projection` representing quality or attribute of the `meaning unit`. 318 | - A `predicate` has the form of a key-value pair. The "key" is the `property` that can be understood as the how/verb/relationship/type... 319 | - A `note` is an [`IPLD`](https://ipld.io/docs/) object. 320 | 321 | ### Property 322 | 323 | - A `property` (key) defines "how" the `note` relates to any other information (value) 324 | - The `property` in itself is a pointer to another `note`, that describes the semantic and type attributes of that `property`. This means that the meaning of how `notes` relate to other `notes` is always given by the users. 325 | - This also means that `properties` can be understood as "global" variables, but the "global" scope is not within a project but truly global. 326 | `Properties` are `self-describing` types that include a semantic and typing interface. 327 | 328 | ### CID - Content identifier 329 | 330 | - At any given time, a `note` is represented by a [`CID`](https://github.com/multiformats/cid). 331 | - A `CID` is a cryptographic hash of the `IPLD` object of a `note`. 332 | - A `CID`is an immutable reference to an `meaning unit projection` as that `meaning unit projection` existed only in that particular moment in time. 333 | - A CID looks like this: `baguqeeragkrzqs7df67d2qiwedqw56glsmwrssjhsp25mujxx5vdbu5yqbzq` 334 | 335 | ### IID - Intent identifier 336 | 337 | - While the `CID` allows us to reference a snapshot of a `meaning unit`, we still need a way to reference the current and evolving idea of the ever-changing `intended meaning`. 338 | - The `IID`is the identifier of the current `intended meaning`. 339 | - An `IID` is always mapped to the latest `CID` of a given `meaning unit`. 340 | - An `IID`is composed of a `MID` and the `LIID` (`Local Intent identifier`)`. 341 | - An `IID` looks like this: `QmXPTSJee8a4uy61vhAs35tM5bXDomSmo1BbTMUVAVbAGJsdqwz4ea`, the 46 first characters representing the `MID` and the latest 8 representing the `LIID` 342 | ![Intent identifier mapping timeline](images/abstraction_timeline.png) 343 | 344 | ### AREF - Abstraction reference 345 | 346 | - The `AREF` is a text expression that allows us to point to any element of the system. 347 | - Is the equivalent of what `hyperlink` is to the `hypertext` 348 | - It can have several forms depending on if is pointing to an `IID`, a `CID`, a specific property or object within a `note`, or other more advance constructs: `IID/PID/IPLD_path` or `CID/PID/IPLD_path` 349 | - If the `AREF` is pointing to an `IID` the corresponding `node` will resolve it to latest `CID`, and then we can resolve to its matching `note` 350 | - A `AREF`may look like that `QmXPTSJee8a4uy61vhAs35tM5bXDomSmo1BbTMUVAVbAGJz6zpqnbq/QmXPTSJee8a4uy61vhAs35tM5bXDomSmo1BbTMUVAVbAGJqz3qlkca` 351 | 352 | ## FAQ 353 | 354 | ### Comparison with the Semantic Web 355 | 356 | Certain elements may seem similar to the `Semantic web` (and other similar protocols), but there are very significant differences: 357 | 358 | - It does not assume that is possible to find a consensus on all the categories in which information can be related and instead gives the privilege to do so to the user. 359 | - It does not want to be built on top of the existing web technologies, since for the end purpose of the project they are unsafe and inherit too much technical and conceptual debt. 360 | - The system is fundamentally a peer-to-peer or mind-to-mind network, and by embracing it into its protocol design it expects to prevent the actual predominant client-server architecture of the web and generate very different dynamics, such as a strong reputation system, as each mind can be understood as an identity. 361 | - The system has represented many more layers of `minformation` such as the `intended meaning` or `time` which also create very different dynamics. 362 | 363 | ### Project philosophy 364 | 365 | - The system should aim to serve the particular `minds` of each individual and to enable them to reach the maximum potential as opposed to subordinate people to the system. 366 | - Because of its goals around recreating a fundamental information system, the project has an almost religious relationship around the use of information and therefore should be particularly aware of potentially misaligned incentives E.g. funding, corporate use, mindsets with "current web paradigm", token mechanisms, partnerships... 367 | - To maximize its potential it can't optimize for compatibility (at core level) with existing technologies, paradigms, formats... 368 | 369 | # Pseudo Interplanetary mind-map (PIPMM) 370 | 371 | ## Overview 372 | 373 | `Pseudo Interplanetary mind-map` is a proof of concept to play, understand and validate the current assumptions. While the technical part is complex, there are a lesser amount of unknowns than its conceptual counterpart. That means that currently the challenge does not reside in its implementation but understanding and generating a conceptual framework to help to operate with the aforementioned assumptions. `PIPMM` aims to help to generate this conceptual framework by providing a playground to play with. 374 | 375 | A big handicap at the current stage is to be able to play with complex information without having to build a special editor for it. `PIPMM` makes use of existing tools to work around that. 376 | 377 | `PIPMM` can be thought as a translator or compiler. It takes a set of markdown files with wikilinks as a source and converts them into interconnected [`IPLD`](https://ipld.io/docs/) objects and `AREF`s 378 | 379 | The source files currently take the form of Markdowns with YAML Front Matter linked with wikilinks. This approach has been chosen in order to be as compatible as possible and therefore leverage the power of existing tools and personal knowledge repositories such as VS Code or [Obsidian](https://obsidian.md/). 380 | 381 | ## Compromises 382 | 383 | > This software is for experimental purposes and is not meant for production or a general audience but for people that already have a significant pre-understanding of the project and want to explore its possibilities. 384 | 385 | `PIPMM` is optimized for: 386 | - Replicating the desired information architecture 387 | - Be able to demo and publish what can be done with it 388 | - Experiment with fast iterations focusing on the biggest unknowns 389 | - Live preview of the content produced, specially around [Interplanetary-text](interplanetary-text.md) and `transclusions` 390 | 391 | It is **NOT** optimized for: 392 | 393 | - Performance 394 | - Security 395 | - Beauty 396 | 397 | Therefore there are many compromises: 398 | - There are no security checks, the software is quite vulnerable, it is meant to be used in trusted circles. 399 | - Can't reference `Notes` via its `CID`, only `IID`, which means is not possible to point to old versions of an abstraction 400 | - Is not possible to reference other people's `notes` only your own (to change soon) 401 | - `Transforms` or `Renders` are hard-coded as oppose to defined in their own `notes`. 402 | - Many cryptographic operations are just emulated. 403 | - Nothing is encrypted. The server stores the `notes` in plain text 404 | - There is no server authentication 405 | - The typing system is extremely simplified and just partially enforced with [IPLD Schemas](https://ipld.io/docs/schemas/) and hard-coded references. 406 | - No support for images or media 407 | - Web stack is used for fast development 408 | 409 | ## Repositories 410 | 411 | The following repositories compose the project: 412 | 413 | - [abstractions-template](https://github.com/interplanetarymindmap/abstractions-template): This is a template that users can use to play around and generate content using VSCode or similar editor 414 | - [pipmm-cli](https://github.com/interplanetarymindmap/pipmm-cli): An NPM package that helps to manipulate and compile the `abstractions` repo into the newly defined format, as well as to upload, serve and visualize them. 415 | - [pipmm-client](https://github.com/interplanetarymindmap/pipmm-client): A Flutter web-app to render the contents. `pipmm-cli` uses it 416 | - [pipmm-server](https://github.com/interplanetarymindmap/pipmm-server): A simple Node server that plays the role of a node in the system. `pipmm-cli` uses it 417 | - [docs](https://github.com/interplanetarymindmap/docs) (this repo): Current conceptual development its been done using PIPMM` itself and partially accessible on the [prototype site](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cdzbeskxq%22]]]&). Since the system is currently too unstable to serve as documentation source, the purpose of [docs](https://github.com/interplanetarymindmap/docs) is to be a stable documentation reference (although highly incomplete) in the meantime. 418 | 419 | ## Installation 420 | 421 | Pre-requirements: 422 | - [Node.js](https://nodejs.dev/) 423 | - [VSCodium](https://vscodium.com/) or [Visual Studio Code](https://code.visualstudio.com/) or [Obsidian](https://obsidian.md/) 424 | 425 | Install: 426 | 427 | 1. `git clone git@github.com:interplanetarymindmap/abstractions-template.git` 428 | 2. Open `abstractions-template` in VSCode and install the recommended extensions ([Markdown Memo](https://marketplace.visualstudio.com/items?itemName=svsool.markdown-memo) and [Markdown Links](https://marketplace.visualstudio.com/items?itemName=tchayen.markdown-links) ) 429 | 3. `cd`abstractions`-template` 430 | 4. `npm install pipmm -g` 431 | 5. `pipmm init` 432 | 6. `pipmm watch` 433 | 7. Open `http://localhost:56565/#?websocketsPort=34343&localServerPort=45454&expr=%5B%2212D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,%5B%5B%2212D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%2212D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cl5uz4zaq%22%5D%5D%5D` 434 | 435 | # Get in touch 436 | 437 | Reasons [I would love to talk to you](https://xavivives.com/#?expr=[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3clzfmhs7a%22,[[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cwx4lcc2a%22],[%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3c2lf4dbua%22,%22i12D3KooWBSEYV1cK821KKdfVTHZc3gKaGkCQXjgoQotUDVYAxr3cbeeppy5a%22]]]&): 438 | 439 | - `Interplanetary mind-map` is in constant evolution and requires input from many disciplines. 440 | If you found it technically or conceptually interesting or have any ideas I invite your to get in touch. 441 | 442 | - Similarly, my current interest is in making the conceptual framework as understandable and accessible as possible. While I know there still a lot of work to do, if you have suggestions or struggle to understand something I'll be very happy to hear them or iterate over it. 443 | 444 | - While the "conceptual framework" its being more defined, I'm starting to develop the first version of the protocol and editor/tool for thinking as a first MVP so I'm very much looking for developers that can help. (Rust, WASM LibP2P, IPLD, low level graphics and text-editor stuff...) 445 | 446 | # Follow 447 | 448 | I'm aiming to share **meaningful** progress of IPMM in a newsletter. [Subscribe here](https://airtable.com/shrOSoLOYFW7pztMo) 449 | 450 | Alternatively I'm also doing an [experimental newsletter](https://buttondown.email/xavivives) and [Telegram channel](https://t.me/xavisabstractions) around language, communication, complexity and other stuff. I'm using `PIPMM` for it. It is dense and deep, and a lot of noise if you just want to get general project updates... but if that's your thing you may find it interesting. 451 | --------------------------------------------------------------------------------