GraphAware Blog

Find out what's new in the Neo4j world

Object Models and Spring Data Neo4j 4

03 Sep 2015 by Luanne Misquitta Neo4j Spring SDN OGM

Drawing a graph on a whiteboard is easy and fun! Translating that graph into an object model can sometimes result in questions such as “do I have to define relationships in both participating node entities?”or “which end of the relationship should I save?”.Your object model is key when using an object graph mapper such as Neo4j OGM. The Neo4j OGM library is the magic behind Spring Data Neo4j 4so this article applies to both Neo4j OGM and SDN 4.We’ll be using the ubiquitous movies domain to explain some common models.Bidirectional NavigationThe simplest object model is also the one that represents...

Integration Testing Against Remote Neo4j

20 Aug 2015 by Adam George Neo4j Advanced GraphUnit Testing

Writing integration tests for your code that runs against Neo4j is simple enough when using the native API, but there’snot a great deal of help out there if you’re working in client-server mode. Making assertions about the shape of thegraph can also be difficult, particularly if use cases involve more than a few nodes and relationships.In all but the most simple of scenarios, it can be hard to see why the graph in the test database isn’t as expected,as the feedback is often as black-and-white as pass/fail so you can be looking for a proverbial needle in a haystackwhen trying...

Cypher: Variable Length Relationships by Example

19 May 2015 by Christophe Willemsen, Michal Bachman Neo4j Cypher

In this blog post, we’ll demonstrate how to use variable length relationships (sometimes called “variable length paths”)in Cypher using examples. We will also see when zero length relationships can be useful.IntroductionLet’s start with the basics. For the sake of the blog post, our use case will be users that know other users. Userswrite blog posts modeled as linked lists:You can generate an example graph with the following link to a predefined Graphgen graph, oruse this Neo4j Console if you want to execute the queries whilst reading the blog post.Basic Relationships MatchingLet’s start with a basic query that will find a...

GraphConnect Europe 2015

05 May 2015 by Michal Bachman GraphAware Neo4j Conference

GraphAware is very proud to sponsor GraphConnect Europe 2015, the only conference thatfocuses on the rapidly growing world of graph databases and applications that make sense of connected data. The conferencetakes place in London on 7th May 2015.Throughout the week, London turns into the world’s capital of graphs. We are extremely excited to welcome our Bruges,Prague, and Mumbai based colleagues in our London headquarters. We are very much looking forward to meeting our friendsfrom Neo Technology from UK, Sweden, USA, and the rest of the world, as well as other valued members of the worldwidegraph community.As an important member of...

GraphAware Announces GA-Glass

01 Apr 2015 by Luanne Misquitta GraphAware

Graph Aware Ltd. is excited to announce their new partnership with Glasses Inc. Managing Director Michal Bachman claimsthat wearers of GA-Glass become truly graph aware, allowing them to boldly go where no Glass has traversed before.Powered by the GraphAware Framework and GraphAware Recommendation Engine, GA-Glass crawls the World Wide Graph to surfacethings most relevant to you, presented in a highly immersive visualization rendered by Q-Viz, a technology developed by innovative GraphAware engineers.To enter graph aware mode, all you have to do is say “ok graph”. GA-Glass is intelligent enough to not require furthervoice commands but assesses it’s surroundings to provide...

Neo4j Events (Spring/Summer 2015)

27 Mar 2015 by Michal Bachman Neo4j Events Beginner

At GraphAware, we are very excited about the recently released Neo4j 2.2 and would like to share some info about whereyou can meet us in the next few weeks and months. Come and see us for a chat and learn something new about Neo4j and Graph Databases! On 6th April, Luanne is running a Neo4j Fundamentals training in Bangalore On 29th & 30th April, Vince is speaking about Spring Data Neo4j at Spring I/O in Barcelona On 30th April, Christophe is speaking about Neo4j at a Symfony meetup in Antwerp On 4th May, Michal is doing a Recommendation Engine Webinar...

Announcing Spring Data Neo4j 4.0

24 Mar 2015 by Vince Bickers Neo4j Spring SDN Beginner

Over the last few months, GraphAware, Neo4j, and Pivotal engineers have been workingon a ground-up reimplementation of Spring Data Neo4j (SDN) that is server-first and Cypher-centric. Today we are veryexcited to announce the first milestone of the new Spring Data project for Neo4j.Server-first!While Neo4j has the ability to run embedded or as a regular server-side database, a lot of users favor traditionaldeployments where the database can scale independently of application servers. Neo4j server has provided the capabilityto do this for some time now but when the original version of SDN was written, it was designed to target Neo4jin embedded (in-process)...

MATCHing Paths with Very Dense Nodes in Neo4j 2.2

19 Mar 2015 by Christophe Willemsen Neo4j Cypher Intermediate

Last weekend, I came across a tweet announcing that Wikimedia released the dataset of the page clickstreamsfor February 2015. I found it interesting to download this dataset and see how people arrive on the Neo4j’s Wikipedia page.The data is quite simple; we have page entities that relate to other pages. A page can either be a Wikipedia page, ora non-Wikipedia page such as Google. Relationships can represent a user click from a Wikipedia page to another page, or a user searching on Google or Wikipedia. The number of times an event occurs is also provided in the dataset.Importing the DatasetYou...

Using the Neo4j Shell with Embedded Neo4j

10 Feb 2015 by Luanne Misquitta Neo4j Intermediate

Our earlier blog posttalked about using the Neo4j web browser along with embedded Neo4j.The WrappingNeoServerBootstrapper which was employed to do this has been deprecated for a while and it raises questionsabout the alternative.Testing server extensions is now possible(see Testing your extension)but there is still another use case for wanting to connect to an embedded graph - troubleshooting.Perhaps you have a web application running in production with Neo4j in embedded mode and you’ve got to troubleshoot an issue which requires access to the graph - how do you do this against a live graph?Well, there is another option which won’t give...

Modelling Data in Neo4j: Labels vs. Indexed Properties

16 Jan 2015 by Christophe Willemsen Neo4j Modelling Cypher Intermediate

A common question when planning and designing your Neo4j Graph Database is how to handle “flagged” entities. This couldinclude users that are active, blog posts that are published, news articles that have been read, etc.IntroductionIn the SQL world, you would typically create a a boolean|tinyint column; in Neo4j, the same can be achieved in thefollowing two ways: A flagged indexed property A dedicated labelHaving faced this design dilemma a number of times, we would like to share our experience with the twopresented possibilities and some Cypher query optimizations that will help you take a full advantage of a the graph...