Are you ever at a birthday party, family new years get-together, or just about any other social event with people you don’t meet to often where you were talking with someone and thought: Shit, I forgot their -name / job / sabbatical destination / studies / child’s name / insert other fact here-, what was it again?

Well I do, so I decided to create a bot that can remember it for me.

The idea was quite simple: create a bot with a database, attach it to some chat interface, and make it easy to add people, companies and any facts about them that I am prone to forgetting.

So I got to work and used Neo4j for the database, which is a Graph database. I didn’t have much experience with graph databases yet, but supposedly they are quite flexible, which is good as I have no idea what stuff I want to put in the database yet. For the chat I started with a simple command line chat for testing, but changed to a Telegram bot afterwards as their API is nice and ezpz to get working.

I made some functions to let the user add entities and either add properties to it, or add relations to other entities. In this way the type of information that you can save in it is almost endless. Want to save a person with info on their date of birth, college, or favorite food? No problem. A company. Ok. Add some employee relations between people and companies, or note two people as being married? You got it. I even added some logic for automatically adding inverse relations for relations that (most likely) would be used often. So adding Jake as the boyfriend of Kate makes Kate automatically the girlfriend of Jake, handy!

As a finishing touch I gave the bot some mobster personality inspired by the Godfather (they always seem to value knowing your family and friends), and make it spew a cool maffia quote now and then.

As of now I got the code working, put it on a Raspberry PI running in some closet in my house, and it works great! Only thing left is to actually fill it with info, but there have not been many occasions for information gathering during this lockdown..

Future plans

I also already had some nice ideas about a follow-up for this project. Imagine: how cool would it be if you walked around on your not-so-favorite social gathering and could get the info from your bot in real-time for the person you were looking at, displayed on your normal-looking-but-actually-AR glasses?

Even more hilarious, Facebook is going to launch some AR glasses this year! If I could get my hands on those AR glasses which supposedly look just like normal glasses (which is a requirement to stay undercover ofcourse), then I would only have to break the code of Facebook, and put my own on it. I bet Facebook is going to have some permanent privacy-breaking livestream from the camera, why else would they launch the glasses? So remove that, add the code for the bot, add some fancy visuals (not like below), and voila: Scifi-AR glasses! Who needs Facebook anyway.

Update: Next-next level would be to forgo the glasses, and just install a high-tech new eyeball that projects the knowledge directly onto your cornea, Cyberpunk 2077 style:

Augmented reality overlay as seen in Cyberpunk 2077.