GraphAware Blog

Find out what's new in the Neo4j world

Avoid cycles in Cypher queries

26 Apr 2019 by Jan Zak Neo4j Beginner Cypher

Avoid cycles in Cypher queries

There is one common performance issue our clients run into when trying their first Cypher queries on a dataset in Neo4j. When writing a query, be sure that it doesn’t match any cycles, or you can experience unpleasant surprises.Assume the following sample graph and simple query:CREATE (a:Node {name: "A"}), (b:Node {name: "B"}), (c:Node {name: "C"}), (a)-[:TO {name: "1"}]->(b), (a)-[:TO {name: "2"}]->(b), (a)-[:TO {name: "3"}]->(b), (b)-[:TO {name: "4"}]->(c)MATCH p=({name: "A"})-[*..10]-({name: "C"}) RETURN pThe query returns 9 paths, instead of 3 as you might have guessed! The additional 6 paths have length 4 with node pattern A-B-A-B-C, note the repeated nodes A...

Graph-assisted Typescript refactoring

09 Mar 2019 by Roberto Previdi Neo4j Refactoring Typescript Development Community Detection Object Oriented

Graph-assisted Typescript refactoring

When developing web applications with frameworks like Vue.js the best approach is to subdivide it into well-defined and reusable components for the user interface, with the business logic being encapsulated in ‘services’.In an ideal world every new feature added should follow this approach and all components and services should remain at a reasonable size, so that you can quickly glance at each file and understand what it does.The problemThe reality is usually much less ideal: good principles are followed rigorously when the project is young, but as new features, bug fixes and different developers accumulate, components and services can become...

Lean Dependencies- Reduce Project Delivery Chaos with Graphs

20 Feb 2019 by Luanne Misquitta Neo4j Beginner

Lean Dependencies- Reduce Project Delivery Chaos with Graphs

Dependencies, like graphs, are everywhere. Achieving a goal is rarely possible in a vacuum and requires collaboration between individuals and/or processes.Eliminating dependencies completely is unrealistic- they are a part of life- but they can be streamlined to improve efficiency and reduce friction.In this blog post, we use the example of software projects, but dependency management can very well be applied to many verticals such as supply chains, business processes, inventory management and government processes and workflow.Quite a few organizations struggle as the time draws close to releasing or delivering a version of their software projects.For many, it is a time...

Graph Technology Landscape 2019

01 Feb 2019 by Janos Szendi-Varga Neo4j GraphAware

Graph Technology Landscape 2019

Few years ago I decided that one day I would create a Graph Technology Landscape map, which would be useful for everyone who wants to discover the players around graph technologies. I started to collect the companies and products, but my research has never manifested into a proper blog post. Till now. I am happy to announce, that the first version of my landscape is published, I hope we can consider this as a start of a long journey.

Speaker identification meets graphs

28 Jan 2019 by Jan Zak Analytics Connected Data Community Detection Voice

Speaker identification meets graphs

In social network analysis, a conventional approach relies heavily on available metadata, allowing to match a virtual entity (social network account) to a real-world entity (person, company) in the network. However, a single person using multiple accounts for any reason obviously breaks the connection, forming multiple virtual entities in the network. Or multiple people can share their account, forming a single virtual entity in the network. If these cases are not taken into account, they can affect reliability of social network analysis significantly without any warning, possibly leading to misinformed decisions and further bad consequences.

Deep Dive into Neo4j 3.5 Full Text Search

11 Jan 2019 by Christophe Willemsen Neo4j Cypher Search

Deep Dive into Neo4j 3.5 Full Text Search

In this blog we will go over the Full Text Search capabilities available in the latest major release of Neo4j.Contrary to our usual blogs, the content will rather focus on the underlying search engine used by Neo4j, that is Apache Lucene in version 5.5.5 .What exactly is Search ?Search is an interaction between a user and a search engine. The user has an information need at hand and attempts to satisfy it by providing a search with adequate constraints.The search engine uses those constraints to collect matching results and return them to the user.What is a Search Engine ?A search...

This year at GraphAware

27 Dec 2018 by Luanne Misquitta Neo4j GraphAware

This year at GraphAware

2018- it’s been such a whirlwind of activity at GraphAware, and we’re so proud of everything we’ve accomplished this year.In fact, we grew and grew, announcing ourselves in Australia and then, later in the year, expanding into the Americas.“Neo4j is one of the most disruptive and transformative technologies I have seen in my career,” said Kyle McNamara, CEO, Americas. His team are well on their way to increasing GraphAware’s presence and strengthening the already close bond we have with Neo4j.Over in Australia, various government entities have showed keen interest in auto-classification, simplifying organisational movement, enriching original documents, and security and...

Integration testing with Docker Neo4j image and Testcontainers

16 Dec 2018 by František Hartman Testing Docker Neo4j

Automated testing is the cornerstone of any successful software project.Applications using the Neo4j database are no exception. This blog postshows how to use the Neo4j Dockerimage and the Testcontainerslibrary for integration testing inJava using JUnit.This blog post shows examples in Java. Testcontainers library has beenported to many other languages so the same approach and principles canbe applied. Check out theTestcontainersgithub page.MotivationNeo4j already provides a testing harness to start a temporary databasewithin tests, either manually or through a JUnit rule. To use thisharness one must include theneo4j-harnessmaven artifact, together with whole Neo4j database as a testdependencyto the project. This inevitably pollutes...

GraphAware Announces Expansion into Americas

28 Nov 2018 by Kyle McNamara GraphAware

BOSTON, MA, Nov. 28th, 2018 – GraphAware, a leading Neo4j consulting practice, today announced the official launch of its US entity GraphAware, Inc., headquartered in Boston, MA. This strategic investment by GraphAware aligns with Neo4j’s own rapid market expansion.The close alignment between GraphAware and Neo4j is strengthened by this move, and bolstered by GraphAware’s substantial investment in Neo4j graph database deployment best practices over the last half-decade. This includes Neo4j-specific consulting, products and training- helping to accelerate Neo4j use and adoption all over the globe.Neo4j’s President and COO Lars Nordwall said of GraphAware:“GraphAware is one of our earliest and most...