Had a great conversation with Dirk Mahler. Dirk works for Buschmais, and is one of the leading contributors to jQAssistant, a software quality analysis tool based on Neo4j. Find it on Github, and read up on the documentation over here.
Here's the transcript of our conversation:
RVB: Hello, everyone. My name is Rik, Rik van Bruggen. I work for Neo Technology, and I'm here again to record one of our graph database podcasts. I'm here in cloudy Antwerp on the day of the eclipse, and I'm joined here today by Dirk Mahler who has been a long time graphista. Dirk, would you mind introducing yourself a little bit to us?
DM: Hello. As Rik mentioned, my name is Dirk Mahler. I'm coming from Germany, working for a small company called Buschmais. What our company actually is doing is consultancy mainly for Java Enterprise projects, and I started working with Neo4j and graph databases two years ago.
RVB: Interesting. And how did you get to Neo? How did you find Neo? How do you find out about Neo?
DM: There's a guy called Michael Hunger who is a very old friend of mine and who actually works for Neo Technology.
RVB: Yes, Michael Hunger, yes.
DM: And for weeks he was telling me, "Oh, Dirk, please, Dirk, try out our product. It's a really cool thing." I always resisted, and one fine day, he achieved what he wanted and we went together to a introduction training in Berlin, which he gave. After that training I was so surprised of how easy data modeling works and especially how you can create those data using Cypher that I just started right on the way back on the train implementing my first things with Neo4j.
RVB: Oh, wow, and as I understand it, you've been developing a product or an open source project around it, right?
DM: Yes. On the way to Berlin, Michael showed me a prototype of what he did, and this was a scanner for java structures, java classes. He gave me some ideas what one could do with that data. From my work in larger projects with lot of people involved, I always had the problem that it was hard to get some rules or conventions established, like naming rules for Java classes or packages - or Maven modules, for all the Java guys who are listening right now. And when I went back on train I had the idea, "Cool, it might be the right thing to put those software structures on to a Java project and work them into a database, create trees on that data, and to enforce rules - like, several classes of several types must be located in dedicated packages, or something like that.
RVB: What's the project called? Can you tell us a little bit more about it?
DM: The project is called jQAssistant - Java Quality Assistant. The term Java might be a bit misleading right now as it is for Neo4j - because it's not only for Java - but it's implemented actually in Java.
RVB: Interesting. Let's talk about something else - related, of course. What do you really like about graph databases or why is it so powerful for you? Can you tell us a little bit more about that?
DM: There are mainly three things. Let's start with performance. Especially Neo4j, it's quite fast and to reading all the structures into this database, it's just a snip and you've got the data in the database, but that's only one aspect. The other tools - data modeling is quite intuitive and flexible. Let me explain that. If you'll read the structures of a software project into a database, you're not only interested in getting all the Java stuff, you might also be interested in getting all the stuff which is around like the build system, like the database structures you're working with. And with the schemaless nature of the graph database, it's quite easy, possible to get these things in without having thinking about how do I change my schema, how can I add things, and this enables, for instance, a plug-in-like architecture, as jQAssistant right now provides. That's the thing, and the third thing, it's simply Cypher. This query language is so nice to read, to write, quite intuitive and I think, even for developers, quite easy to learn. I like it, really.
RVB: Fantastic. I'm talking to Andres Taylor who invented Cypher in the next couple of podcasts, so I'll make sure he knows. That's great, fantastic. So, Dirk, maybe one more thing. Where do you think this is going? Where do you see your open source product going and where do you see graph databases going? Would you mind sharing your perspective?
DM: The jQAssistant itself, I see two things. The first one is giving people a tool that can read in the structures of their own software projects and doing some explorations - how are things connected to each other? - creating, gathering their own metrics where they don't need special tools which need to be implemented by some vendor party to get their own things. That's the one thing. Beyond the jQAssistant graph databases themselves, what I learned is that it's quite easy to model your business domain with graphs. A business domain usually is not just focused on one or two tiny little things, but there are always things coming from the outside which might be correlated together with the things you are actually looking at. It's that way of collecting data from different sources together, correlate them, matching them together, and then being able to ask questions. What I see currently right now in the projects I'm working in this that people try to put data in a database which actually does not fit their needs, and what I see is data modeling is quite easy with graph databases and choosing the right database for complex business domain. Most of the business domains out there are complex. It's even easier with a graph database. I hope it will be the first choice for modeling a business domain in some years.
RVB: Fantastic. Thank you so much, Dirk. We are going to wrap up here. If people want to know more about jQAssistant they can go to jqassistant.org, I believe, right?
DM: That's correct.
RVB: If you want to know more about Neo4j, there's only one site. That's neo4j.com and, obviously, you can always reach out to us from the podcast or the website. Thank you so much, Dirk, for doing this with us and look forward to speaking to you again.
DM: Thank you, Rik.
Subscribing to the podcast is easy: just add the rss feed or add us in iTunes! Hope you'll enjoy it!
All the best