1. Communication Protocols
The internet functions through various communication protocols that define procedures for information exchange. Those protocols do the job of transmitting the information, but there is a lack of interconnectedness between data. Different protocols are needed for actual handling of those disjointed bits and pieces of information, to ensure that there is a way to recognize relations both within any message and also among the messages themselves. This approach would allow to abstract transmissions as graphs of relations that are themselves related, resulting in bi-partite network, which can then be used to store, share, and evolve knowledge.
The most basic approach to communication is to think in terms of the sender, the message, and the receiver. TCP/IP protocol, the backbone of the internet, treats information in this way, adding a rule that requests the nodes in the network to pass on the message further until it reaches the receiver. This is what made the internet global, but it is also a huge impediment to its further growth. A recent article in IEEE on cognitive protocols suggests that the ever-increasing number of connected devices will boost the traffic so much, that TCP/IP will soon have troubles handling it.
Moreover, the way we consume information is often very fragmented, as it is itself becoming more and more minified to fit into the shorter available time-frames, several timelines, different applications, smaller screens, multiple browser tabs.
The internet today is like a diverse encyclopedic mind with no cognitive capacities and a slight form of schizophrenia. It also doesn’t have any memory. That’s why services like Wikipedia and Google are important, because they attempt to make sense out of this knowledge. The challenge today, however, is not to memorize and retrieve – computers can already do that. Instead, we need tools that allow us use what we already know in an efficient, intelligent, and creative ways.
We have the tools that can give us the right answers, we need the tools that will help us ask the right questions.
2. Cognitive Protocols
A protocol is a set of rules that initiates a certain procedure (proto = first, colle = glue). Cognition implies a process of getting to know something with something else (con = with, gnōscō = know). A cognitive protocol would imply a procedure of getting to know something through the connections it has to something else.
There are many ways to build such cognitive protocols and teams around the world are working on it. For example, the Triplets data model separates statements into the “subjects”, “objects” and “predicates”. KnowNodes represents data as rich edges that also contain information about the two nodes they connect. Other services, such as BitCloud, attempt to recreate a system for knowledge exchange between individuals using a protocol that maintains its historical data consistency through network-wide incentive mechanisms built into the protocol.
The point is that eventually there should be as many protocols as there are different ways of thinking, the more the better. However, it’s crucial that all those protocols have basic interoperability, so an abstraction layer is needed that would be able to deal with most connectivities.
Here we propose a more radical implementation of a cognitive protocol, which, in fact, may also turn out to be a more generalized approach in relation to the already existing ones.
It is based on a simple premise that for any statement to make sense it needs a context.
Another premise is that for any series of statements to make sense in time, there needs to be a narrative that they follow.
Things may occur simultaneously, but their relative position in time defines the effect they produce.
We will present several drafts of this protocol’s possible implementation. The nodes represent the entities abstracted from statements, the connections are their relations to one another. While the edges do not contain any description, they refer to the nodes that describe the relation in more detail: mainly the context where this relation occurred. Such data model allows one to create hyper graph with rich edges, where each edge is abstracted in a node that describes the relation in more detail. The same abstracted edge/node (shown in orange on the chart) can, in fact, represent several relations.
This allows us to enhance the binary model of Triplets or BitCoin transactions, while maintaining interoperability with those systems.
3. Cognitive Protocol Specification
Here we present a draft of the cognitive protocol, which would notate information in a way that always relates it to the actual statement, the concepts that belong to the statement, to the one who made the statement, to the context(s), where it occurred, and the narrative(s) that it is a part of.
We will represent the complexity of the protocol in a gradual way, to make it easier to understand it and to show the basic conceptual building blocks of this approach.
Here we have the two blue nodes denoting the concepts and the yellow node that denotes a statement. The concepts that appear inside the statement are connected to that statement with a special :OF type of connection. Their direct relation is of the :TO kind, which has information about the exact time it was made, the user who created the connection, the statement where it appeared, and the context where the statement was made (more on that later). This relation between the concepts is directed, denoting the narrative flow.
2. For representing a more complex statement.
Here we added a new term to show the additional relations that are created as a result.
Every concept and every statement is also connected to the user who created them.
3. For representing a series of statements.
Here is how a series of statement looks like. The timecode property that’s present in every connection ensures that there is always a way to retrieve the narrative that the statements occurred in.
If a particular combination occurred more than once, (the “moon is round” above in two different statements), there is another connection of the :TO type made between the nodes, which has the .statement property, containing the ID of the statement that it occurred in.
4. A statement made by a user within a context.
A statement is always made in a certain context. To represent that we connect the statement itself and the concepts that it is comprised of to the context where it occurred. The relationship properties also carry the context data. The context itself is connected to the user who made the statement.
5. For representing a series of mathematical statements. (Draft)
A similar model could be used to represent a series of mathematical statements. The complication here is the syntax, which sometimes allows the elements to change their position and sometimes do not, therefore it should be taken into account within the relationship properties.
Each “formula” or “equation” here is a statement, and the individual blocks it’s comprised of are the nodes. Of course, there’s also a possibility that a statement could be a block in itself, which would be denoted accordingly by labels and connection properties.
The actual (not abstracted) edges between the nodes are directed and have four different types: RELATES_TO, WITHIN_STATEMENT, AT_CONTEXT and CREATED_BY (or :TO, :OF, :AT, :BY). Unidirectional links are also possible, those are created by creating two links in different directions.
4. Some Notes of Semantics and Ontology
We believe that the proposed protocol offers a simple way to represent semantic complexity of a sentence, which can even be done without a machine.
For example, a statement “The moon is white” could be disassembled into the noun, article, auxiliary verbs, we could analyze whether this statement is positive or negative, attribute a language to it, and so on. We would then end up with a very complex ontology that would obscure this statement so much as to make it incomprehensible. However, with our protocol we see it as a statement (or the context = “the moon is white”), where the moon is put in relation to white. Not everyone thinks “category: color” when they read “white”. So while the strict ontologies make it possible to categorize knowledge, less strict and more radical approaches make it possible to freely follow associative flow without distractions on computational tasks. At the end, if it’s needed, the color “white” can also be connected to “color”, which is a “category”, but that is a complication that’s not always needed and may even have to be avoided for a kind of thinking that relies less on logic and more on direct subjective perception.
We partially implemented this protocol in an online interface for thought notation, InfraNodus (a free and open-source Node.Js based interface to Neo4J graph database available on GitHub). Its currently holds thousands of nodes and tens of thousands of relationships encoded according to the protocol above in its working online version available on www.infranodus.com (write to us for invitation code).
We will be happy to hear your comments, questions, and criticism regarding this proposition and if you would like to further develop the protocol, please, feel free to join in. The link to the current functional version is available in InfraNodus github repository (meaning that you can clone it, copy it, change it, and push it back into the project or start a new project of your own based on it). Alternatively, contact us via the e-mail or using the comment box below.