Here's the transcript of our conversation:
Subscribing to the podcast is easy: just add the rss feed or add us in iTunes! Hope you'll enjoy it!RVB: 00:02 Hello everyone. My name is Rik, Rik Van Bruggen. I am very happy to start the New Year with another beautiful Neo4j podcast. Graphistania needs to be populated right so we're going to do another chat here today. I've invited a very, very dear community member from the Netherlands from this chat and that is Paul Jongsma. Hi Paul.PJ: 00:26 Hi.RVB: 00:27 Hey. Thanks for coming online. I really appreciate it.PJ: 00:31 Glad to be here.RVB: 00:32 Yeah, cool. Paul, we always start the podcast with just very simply, who are you, what do you do, what's the relationship between you and the wonderful world of graphs?PJ: 00:43 Try to do that in a couple of seconds. I'm Paul. In a life beyond me I was co-founder of XS4ALL, one of the first public Internet providers in Holland, and after doing that for a couple of years, I left that company to create my own, called WebTic in which I, ever since it was founded, tried to disclose information on the web via websites, web applications, whatever you want to name it, and I've been doing that since 1996, so I've been on the road for quite a bit.RVB: 01:22 Yeah, absolutely. So when you say disclosing information on the web, that means building websites? What types of tools do you typically use for building your web applications?PJ: 01:35 Until recently, mainly-- back in 96, there was only a couple of ways of building a website--RVB: 01:46 CGI Scripts!PJ: 01:48 CGI Scripts and no databases. So I was one of the first to actually try to hook up databases onto the web and there were few tools at that time and one of which comes to mind is Mini-SQL, which is not even a predecessor of MySQL, at least timeline wise. We've been doing projects involving databases almost exclusively. We weren't building websites which were static. There was always a technical challenge behind it.RVB: 02:24 Yeah, an interactive component.PJ: 02:26 Interactive components, or automation components. For instance, we've been working on the website for the Department of...RVB: 02:38 Looking for the English word [laughter].PJ: 02:40 The English word, exactly [laughter]. The Statistics Department of Amsterdam and they obviously have loads of information within their systems and they want to publish those on the web. What we did was build a system where basically all the information which they have already can be collected, a script can be run on that and then a website comes out on the other end and updates are all done automatically so they just add a few files which they want to publicize. They push the button and they're on the web and there is no need for internal knowledge of how to convert stuff for the web or it's all automatic. That kind of engine of converting it to the web and making that engine work is the area of interest we do mainly--RVB: 03:32 Cover. So how did you get to graphs. Tell us about that.PJ: 03:36 Yeah, that's quite an interesting story. Obviously we've been working with SQL databases for quite a bit of time. Back in the day, Mini-SQL. We've been using MySQL for ages now. A couple of projects we also did Postgress instead of MySQL, but mostly SQL-based, and for a larger project we've done recently called Historiana, which is a website about history and European context and trying to create new and effective ways of teaching history to both students and teachers, facilitate the teacher and give tools to both. We ran into some modeling problems because as you can imagine, there are a lot of relations to be documented when you talk about history. You've got persons. You've got events. You've got locations. And as anything in the human world, you could connect anything to anything basically and that requirement was also there, so we built a system where you actually could connect basically everything to everything within the context of SQL. And that gave--RVB: 04:57 That must have been fun [laughter].PJ: 04:59 That gave very interesting results and after a couple of hundred records on various entry, various parts of the database, the interface came to a grinding halt and obviously because if you want to relate 100 items to 100 items to 100 items, the queries which you have to build are horrendous and the user interface becomes horrendous and even worse the timing becomes horrendous.RVB: 05:28 Now was that the project that you using Neo4j for then[crosstalk]?PJ: 05:31 Oh yeah, I did not know Neo4j at that time, but my antennae picked up the keyword graph database so I started looking into those because obviously there should be a solution for a problem like the history problem. Graph databases seemed like it might be a solution.RVB: 06:00 You're not alone there, right. I mean recently there was this beautiful video from the Codex example. I don't remember the guy's example but it was beautiful I thought.PJ: 06:09 Yeah, which-- the Australian guy. You should add that link to the--RVB: 06:15 I will. I will.
PJ: 06:17 -- because interestingly enough, there was a lot of overlap between the two, at least in the words used and the concepts used within both projects. It's amazing at how history--RVB: 06:32 So what was the main benefit then? Was it modeling then or also performance? What was the main driver then for looking at the graph databases?PJ: 06:41 The main driver was the ability to connect stuff to stuff, so a person should be able to connect to an event, and when you look at that person you should see the events, but when you are at the event, you should be able to ask which persons are connected to this event and you will see that relation. And doing that in SQL is sort of possible within certain limits but the ease in the graph database allows you to do that is very much more better than SQL database.RVB: 07:21 When I first got to know you in the Amsterdam community, I will always quote you on saying that before Neo4j, when you work with Neo4j, sequel databases feel like a useful sin [laughter]. I think that's a fantastic way of putting it to be honest.PJ: 07:36 They are. They are. Obviously there is room for other systems as well, not only data, but the relation between the web and a database, a graph database, is so much more a logical model than any other model that for any page you're at at a website which is explorative, it's always about ok, there is this thing and how does it relate to other things? And that question can be answered by Neo within a couple of milliseconds, and you'll be able to render the results of that page in real time instead of doing queries, or doing queries up front, and cache the results and stuff like that. There are all kind of technical tricks to make it work with SQL, but your life becomes so much more easier when you use the right technology for the right job.RVB: 08:30 Agreed. So last but not least, where do you think it's going Paul? Where do you think the world of graph databases is headed and how do you plan to use it in the future?PJ: 08:44 I think more and more people will discover the world of graph databases--RVB: 08:51 See the light [laughter]?PJ: 08:53 See the light and make their life easier to use them. That is one thing I think is going to happen. I've been always a runner-up from the technology. People always ask, "Why are you picking that?" Just because I thought it was a good tool. So I think behind me, there are a lot of people picking it up and I hope that the new Neos will take the web development even more in mind. There are a couple of things you might want to make easier, like relate to files in a file system and stuff like that that would make life easier, but I think we're getting there [crosstalk]. There are interesting developments like the binary interface and stuff like that.RVB: 09:51 Absolutely. Well, thank you so much Paul. It was a joy to talk to you again. And I wish you lots of luck and happiness in 2016 and hopefully then we'll see this option of graphs take off together right? And I'll see you in the Amsterdam community very, very soon.PJ: 10:11 Yes.RVB: 10:12 Thank you, Paul.PJ: 10:13 Okay. No problem.RVB: 10:14 Thank you. Bye bye.PJ: 10:14 Bye.
All the best