For the uninitiated—a set which included me until about two weeks ago—a “regular expression” (regex) is “a sequence of characters that specifies a search pattern in text.” For example, this gobbledygook (sourced from here)…
^((?=\S*?[A-Z])(?=\S*?[a-z])(?=\S*?[0-9]).{6,})\S$
…will check “that a password has a minimum of 6 characters, at least 1 uppercase letter, 1 lowercase letter, and 1 number with no spaces.”
There’s nothing overly arcane going on here, promise. Like math, music, or a programming language, it is just a peculiar form of notation that becomes legible after one stops screaming, “WT-actual-F?!”, into the void and sustains engagement for a surprisingly small period of time. For example, “[A-Z]” indicates a single, capitalised character in the range A-Z whilst “*” indicates zero or more repetitions of a preceding pattern.
How are regexes used? Well. I’m reliably informed that “regular expressions let you identify patterns in unstructured data, such as a lump of text.” Think find-and-replace operations, file system searches, user input validation. The contrast to a regex, then, could be said to be a query language which is used to interact with more structured data. The same reliable informant says of query languages that they “are a bit more complicated and are used to generate an execution plan which orchestrates retrieval, filtering, and projection of records (rows, columns, or objects) from the data store.”
For example, in MySQL—a structured query language—it’s possible to write natural-language-like queries such as:
SELECT first name, second name FROM some table WHERE first name = 'Matt' AND second name LIKE '%a%'
You don’t have to know MySQL to get that the above query will pick out people called Matt with an ‘a’ in their second name. But you do need to call that query on a relational database using a MySQL client. I won’t go much further; explaining the intricacies and contrasts of data structures and computer languages is best left to someone else. Someone with more expertise. Instead, let’s just agree that regexes and query languages are what I’ll call “interrogation tools.”
As you’d expect, interrogation tools are ubiquitous in the contemporary world. Alongside things like regexes and query languages, there are countless tools and tool stacks for interrogating the “Giant Social Computer in the Cloud (GSCITC)” as Venkatesh Rao calls it (think Google, Discord communities), as well as methodologies for interrogating individual experience (therapy, some variants of contemplative practice) and group experience (history, anthropology). But what I’m not aware of is a method or tool for reliably interrogating a first brain, our biological brains (as opposed to a second brain).
We can do it, and we often do. But not in the way I’m imagining. Allow me to explain using some character classes from Dungeons & Dragons. Let’s say that first brain interrogation is akin to magic wielding in the D&D universe. Player characters in D&D are able to select a class, some of which are magic users. These include those that have a mystical, less legible source of magical power (Sorcerers and Druids), those that have magical powers granted by a powerful patron (Warlocks and Clerics), and those (like Wizards) that gain their magical power by studying the fundamental mechanics of arcana.
In the non-D&D reality we inhabit we have the equivalent of sorcerers, druids, warlocks and clerics. We have people that can effectively query their first brain via a mediator or a supplementary activity. Think about how people across society ideate and generate insight: rituals, routines, tools for thought, by thinking about or doing something else. What we don’t have is a reliable way to query our mind state directly and without external assistance. We don’t have wizards who understand that particular arcana.
Sure, I can sit on the floor, close my eyes and try really hard to recall every instance where I’ve been impacted by an instance of x. However, whatever my consciousness returns to itself is going to be biased and represent only a subset of an unknown size set. It’s also going to have a variable format; an emotion, the ping-like feel of an insight, a fully verbalised thought. I’m not a transhumanist and I don’t think that the brain is just a piece of software running on a partially electrified meatbag—see embodied cognition—but I do think that there’s an alternative, that reliably passing somewhat formal input queries to oneself and reliably receiving somewhat formal outputs is possible. Perhaps even feasible.
Creating an adequate notation for input seems trivial. We already know how to create minimal syntaxes that can be manipulated to offer great flexibility. I’m not even sure that we need a much deeper understanding of how our brain functions than we currently have.
I suppose what I’m imagining is like a memory palace but without the arduous procedures required for creating the palace in the first place and inserting objects for later retrieval. Our brains already are incredibly sophisticated memory palaces. We just haven’t figured out a way to head inside, bag every item on our list from every room, and exit.