By Bryce Merkl Sasaki, Aspiring Graphista | March 25, 2016
For this week’s 5-Minute Interview, I chatted with Lauren Winter, the CTO at Gallium Artistic Services in Berkeley, California. I got to catch up with Lauren at the San Francisco Graph Database Meetup group.
Here’s what she had to say:
Q: Talk to me about how you use Neo4j at Gallium.
Lauren Winter: Quickly said, we’re working on one of the next types of simulation games. We are actually funded by Will Wright, who is the founder and inventor of all awesome simulation games – SimCity, The Sims, etc. This is his next thing, SimYou. You, the human, are now going to be the Sim.
Given the problem space of simulating you – bringing in your data, your memories, your relationships, your concepts, everything about how your mind works – it became pretty clear to me because I’ve worked with a lot of relational databases for many years, that relational was completely the wrong way to go. So I thought well, “I’ll research graph databases.”
I had never used them, but I had heard of them. As soon as I looked into them, it was pretty obviously the right choice, and I am a systems engineer so I looked at who the big players were, and I just grabbed Neo4j. Also partly because I saw that you had a REST API plus the Cypher query language, and I thought that makes it easy to prototype with, and we stuck with it.
Q: What was it about Neo4j that made it stand out?
Lauren: At first, because it was just a prototype I asked myself, “Can I do this? How easy is it? Will it work?”
I started off installing it on an Amazon server, and within an hour it was up running. By the end of the day, I already had the prototype of the database structure. We then started using the REST API. We’re building an iOS app, so we were using Neo4j directly from the client, not using a plug-in. Then we built the whole Cypher interface in iOS, which you didn’t have. (You should do one because it’s good for rapid prototyping from a mobile client.)
So basically, in a day I was kind of convinced that this was written by people who knew what the fuck they were doing, written by people who had used APIs. It just felt very professional and solid. At first I was just playing with it and then Boom! I was an expert. It kind of sold itself. I’ve spent many years working with a lot of awful APIs, and I have a pretty good sense.
Q: What were some of your most surprising or interesting moments you’ve had while working with Neo4j?
Lauren: I think one of those moments was how perfectly Neo4j fit our situation, because we started with the idea of a human memory, which is a tag-based memory with people, places, things, times and activities. But the most important part about the human mind, whether you know this or not, is not your memories. It’s your concept of things that the memories create.
Your idea of a bicycle is built up from the first time you rode a bicycle, the first time you fell off a bicycle, the time you took a long tour on a bicycle, the time you escaped from mom and dad on a bicycle, etc. All of your memories of a bicycle shape your concept of a bicycle.
What’s really cool (which is kind of going to be the magic potion of this app) is that the concept of the bicycle – the link to it, relationship to it – is your relationship to bicycles. It’s a connector unique to you. The bicycle is owned by every player in the game on planet earth, but now we know more than Amazon on how users relate to bicycles. We also know more than Facebook because they didn’t start with graph databases. They started with fucking stupid relational databases. We now have more marketing information about bicycles than anyone in the world.
We might sell that marketing data generically, but not about a specific human because we don’t believe in that. Backdoor data certainly makes a lot of money. With Neo4j, we can decide what we share (and don’t share) among the players, and it’s so easy to remodel. We haven’t actually had to rebuild the data model at all. We’ve only added to it since day one, and I think we’re going to be able to launch with it as is.
For one thing, I came from the relational database world. I came from being a real-time engineer, but I’ve dealt with a lot of databases, and I hate everything about them so any database I use has to be real time.
And at this point, we haven’t even dug into the queries that ask, “How close are the relationships? How many memories do players have? How much does a user like a bicycle? How much do they hate a bicycle?” Because we also understand all the emotions attached to the word “bicycle,” because every relationship to the word concept bicycle has the core emotions of humanity.
We know exactly what you like or dislike or hate or love in your life. Based on the weighting of all the relationships of all the memories of that one concept, then we can measure you against all humanity, to say whether you like bicycles a lot more than everyone else. It’s sort of comparing people to everyone else. This is going to blow everyone’s mind.
What’s weird is when I talk to Kaitlyn and various Neo4j developers, apparently they haven’t heard of anyone using it for (a) mapping the human memory or the human personality, or (b) using any of that for a game. It seems obvious to me for both.
Q: Yeah, we’re always saying the most powerful graph database on the planet is the human brain, but no one has yet mimicked it at this level.
Lauren: Which is so weird! They’ve created neural nets and they’ve created radii, but they forgot that maybe you might want to just build it all. There are all these systems out there called ConceptNet and WordNet, they’re built in relational databases. They’re building big tables and flat tables because these datasets are very big. Yet they represent them as graph databases all the time. These other developers say, “The concept of tree is related to the concept of forest, etc. etc.” but they’ve never put that into a graph database – they’re just research projects.
I guess I don’t get it, but I’m glad because definitely we can take advantage of the situation.
Q: Knowing everything you know now about Neo4j, if you could go back to the beginning of the project, what would you do differently?
Lauren: Let me see, the project is only eight months old, and we haven’t launched yet, so I think in a year hopefully we’ll be launched and we’ll see. Then you can ask me that because then I’ll say I probably know.
Right now it’s all happiness because it’s holding it together. The surprise moments haven’t happened yet.
Q: Anything else you want to add or say about your project?
Lauren: Actually, I’m just happy. That’s it.
Want to share about your Neo4j project in a future 5-Minute Interview? Drop us a line at email@example.com
Get your introduction to graph databases and Neo4j with a free online training course. Click below to access Getting Started with Neo4j and master the world’s leading graph database in no time.
About the Author
Bryce Merkl Sasaki, Aspiring Graphista
Bryce Merkl Sasaki is the Community Content Manager for Neo Technology. He studied professional and creative writing for undergrad and has been freelancing for 7 years. Recently, he worked at an inbound marketing agency in Philadelphia as a copywriter before moving to California. When not working, he likes to spend his time working on his novel, looking for pickup soccer games and reading voraciously.
From the CEO
Have a Graph Question?
Reach out and connect with the Neo4j staff.Stackoverflow
Share your Graph Story?
Email us: firstname.lastname@example.org