Today I've been working on verbs. When I first started comind I knew I wanted to provide a set of concrete actions that a user can apply to any thought.
Originally, the verbs were just accept and reject. This ended up not really fitting into the product design, and I've been kind of racking my brain trying to come up with a better set of verbs that are useful, easy to understand, flexible, and powerful.
Here's the current set:
Examine shows you the neighborhood of a thought. A neighborhood is a collection of thoughts that are either directly linked to the thought by the user, or are linked to relatives of the thought. This is a simple tool that lets users control what is directly relevant to a thought, and examine makes it easy for you to see what you have flagged as relevant.
Suggest shows you thoughts that you might want to link but have not yet. The simplest form of this is semantic search, i.e. what other thoughts in the comind-verse seem to be similar in semantic space to the primary thought. Users will use suggest to find thoughts that they might have forgotten, relevant or recent information from others, or melds that might be useful for the user to peruse.
Think is where the language models come in. Think allows you to provide the neighborhood (from examine) and some suggestions (from suggest) and then ask a comind to help you understand what you know or what you should know about the primary thought.
Now is being deferred until later, but essentially this asks a comind to provide its best understanding of the current zeitgeist. Each comind has a different way of understanding the zeitgeist given by their core concept. By default, now requests go to Co (the primary comind), but you can request it from any comind on the platform. For example, one could ask "chef" for a summary of what people are talking about that seems to be related to cooking.
Each of these verbs can be used standalone, in which case they go to Co. They can also be sent to a specific comind, which modifies the behavior of the verb. Not all verbs are dispatchable. Examine is not dispatchable because it's a tool for the user to see what's relevant to them. Think, suggest, and now are all dispatchable because they have a conceptual purpose that a comind can meaningfully apply.
For example, let's think about the comind for "cars". Let's call this one vroomster. Here's an example personality for vroomster.
vroomster’s all about cars—classic, modern, you name it. they've got a mental garage stocked with trivia, repair tips, and a love for anything that goes vroom. vroomster's got a laid-back, gearhead vibe, always ready to drop some knowledge while revving up the humor.
interests:
car history (because who doesn't love a good vintage roadster?)
diy repairs (why pay a mechanic when you can do it yourself?)
the latest auto tech (self-driving cars? more like self-geeking out)
purview:
all things automotive—from engine specs to road trip playlists.
personality:
a mix of a chill mechanic and a quirky car show host.
loves puns and can’t resist a good car joke.
has an encyclopedic knowledge of cars but delivers it with the casualness of a sunday drive.
quirks:
always makes car noises while explaining things. “so, this part goes vroom-vroom, and then...”
can’t help but rate every car they see on a scale from “meh” to “vroomtastic.”
has a habit of comparing life events to car problems. “breakup? just a flat tire, buddy. you’ll get back on the road.”
so, if you're looking to chat about cars with a dash of humor and a whole lot of heart, vroomster’s your comind.
If you ask vroomster to respond to any of the verbs, the verbs will tilt towards vroomster's purview of cars. Here's a few thoughts on how that might work:
Suggest would show you thoughts that are conceptually similar, but "pull" the suggestions in the direction of cars. Suppose you had the thought "What kinds of things should I do in Tokyo?". vroomster might surface thoughts (from you or others) that are about car events in Tokyo, like the Japan Mobility Show. These are only existing thoughts – vroomster will not create any new thoughts for you.
Think would add some commentary from vroomster's perspective. For example, if you had the thought "The Japan Mobility Show is a great event." vroomster might describe the event, its history, and anything notable that occured during the history of the Japan Mobility Show. This would be in vroomster's own manner of speech, and would be a new thought linked to the primary thought. You can link to and share this thought with others.
Now would be a new thought that describes everything about cars that's going on within Comind. If the Japan Mobility Show were currently happening, vroomster might summarize people's observations about the event in real time. vroomster might describe the conversation around the Hino Flatformer and whether people think it's ugly or not.
The big push this evening was getting Suggest to work. Let's try it out with this thought about my rowing club, The South End Rowing Club. I copied the first paragraph from wikipedia and made a new thought:
You can see the verbs on the bottom.
Now, I'll make another thought that contains some information about the history.
Next I'll make a new thought that mentions the South End.
Great. Now I click suggest and get a list of related thoughts:
Some notes:
The titles are auto generated. Eventually I'll let users change them but it's been a low priority – the backend just spits them out and sometimes they're funny.
The progress bar you see is the cosine similarity between the thoughts, so you can gauge how similar the thoughts are to the primary thought.
The "link" button at the bottom right allows you to connect the two thoughts together.
Here's the list after linking a few of the thoughts:
I'm quite proud of it. It looks relatively clean so far. The UI is kind of inconsistent but at least the core functionality is there and it works quickly.
More to come!
– Cameron