GraphAware Blog

Find out what's new in the Neo4j world

Contact Tracing Using GraphAware Hume (COVID-19)

01 Apr 2020 by Michal Bachman Neo4j GraphAware Hume Coronavirus

Contact Tracing Using GraphAware Hume (COVID-19)

GraphAware Hume helps governments in keeping their countries safe. In this 15-minute video, we demonstrate the use of Hume for contact tracing and smart quarantine in the context of the current coronavirus pandemic. Specifically, we will see how Hume can identify people at risk using actual and potential contact tracing, suggest who should be informed or quarantined, visually explain why someone is at risk, find quarantine offenders, and much more.Hume can do much more than structured data analysis. It is a full blown ecosystem for intelligent systems built upon the combined power of collaborative knowledge graphs and machine learning.Hume’s unique...

GraphAware's Virtual Booth at GraphTour EMEA 2020

14 Mar 2020 by Luanne Misquitta Neo4j GraphAware

GraphAware's Virtual Booth at GraphTour EMEA 2020

You’ve probably seen us already at Amsterdam, Stockholm, Madrid and London.Now, as GraphTour goes digital due to developments around the world with coronavirus (COVID-19), GraphAware stands with Neo4j and we are moving our sponsor booth online for the first time!GraphAware DistributedThe GraphAware team has been distributed globally since year one of its inception and we have always been comfortable working and serving customers remotely. We continue to be spread around the world and take pride in the fact that our colleagues are so diverse.We communicate through many (many, many) channels on Slack, not just about work, but life in general-...

Dockerize your JavaScript web applications efficiently

12 Mar 2020 by Christophe Willemsen JavaScript

Dockerize your JavaScript web applications efficiently

So, you’ve built an amazing application with your favorite framework such as Vue.js or React.js and now it’s time to build a Docker image and ship it.This blog post will iterate over the steps needed to prepare a production Docker image of your application, with some details and solutions to problems you might encounter on the way.The DockerfileThe first step is to create a Dockerfile serving as a definition of how the docker image is built.In this first version, we extend the node:lts-alpine image; this ensures Node.js is available :FROM node:lts-alpine# install simple http server for serving static contentRUN npm...

Neo4j 4: Drivers and Authorization

28 Feb 2020 by Michal Trnka, Luanne Misquitta Neo4j

Neo4j 4: Drivers and Authorization

Neo4j 4.0 has just been released with a key feature: graph and sub-graph access control. Access to certain labels or relationship types or properties can now be handled at the database level, resulting in developers not having to deal with complex security logic in their code, and also providing a more consistent and performant solution.Users connecting directly to Neo4j with their Neo4j user credentials either via the browser, or standalone visualisation tools will only have access to the sub-graph as permitted by the role(s) assigned to them.But what about applications that usually abstract away the database user credentials and connect...

Graph Technology Landscape 2020

17 Feb 2020 by Janos Szendi-Varga Neo4j GraphAware

Graph Technology Landscape 2020

It’s been a year since I published the Graph Technology Landscape 2019 post on GraphAware’s blog. I consider this a success story because it got a lot of attention and publicity. The landscape was mentioned many times at different places; it was used by Emil Eifrem in his GraphTour and GraphConnect opening keynotes, it was displayed in conference halls, and I received many, many useful comments and feedback. I was even invited to Rik van Bruggen Graphistania Podcast to talk about it, and the episode was referred to in the Top 5 Neo4j Podcasts of 2019 blog posts as well....

Neo4j 4: Multi tenancy

06 Feb 2020 by Luanne Misquitta Neo4j Cypher

Neo4j 4: Multi tenancy

Up until version 4.0, Neo4j has supported only one active database per server instance. As such, achieving multi tenancy meant that either a Neo4j instance had to be deployed per tenant, or all tenant graphs co-existed in the same database.The first option meant a lot of extra infrastructure and maintenance, and the second implied some custom partitioning strategy usually achieved by differentiating tenants by labels or properties- a mechanism fraught with risk and mostly never preferred.Neo4j 4 allows you to use more than one active database at the same time, where each database defines a transaction domain and execution context,...

Neo4j 4: Post-Union Processing Explained

17 Jan 2020 by Luanne Misquitta Neo4j Cypher

Neo4j 4: Post-Union Processing Explained

Many, many years ago, I requested for the Cypher UNION clause in Cypher and Andres Taylor graciously added it.This was followed by the request for Post-Union Processing by Aseem Kishore, and it began to collect a whopping 99 comments over the course of time.It is exciting to see support for a subset of subqueries in openCypher i.e. uncorrelated subqueries in the soon to be released Neo4j 4, bringing post-union processing finally to Cypher.Given its history, a short article is in order.Union in 3.xIn pre-4x versions of Neo4j, UNION served to combine the results of 2 or more queries into one...

Handling synonyms in Neo4j's Full Text Search

20 Dec 2019 by Christophe Willemsen Neo4j Cypher Search

So you have followed the Deep Dive into Neo4j’s Full Text Search tutorial, learned even how to create custom analyzers and finally watched the Full Text Search tips and tricks talk at the Nodes19 online conference?Still, searching for boat does not yield results containing yacht or ship, and you’re wondering how to make your search engine a bit more relevant for your users?Don’t go any further, you’ll learn how to do it, now!SynonymsA synonym is a word or phrase that means exactly or nearly the same as another word or phrase.Why synonyms ?It’s all about recall! In other words, to...

GRANDstack tips and tricks

18 Nov 2019 by Michal Trnka Neo4j Advanced GraphQL

GRANDstack tips and tricks

GRANDstack tips and tricksUsing GRANDstack can rapidly accelerate the development of applications. The neo4j-graphql-js library provides the ability to translate GraphQL queries from the frontend to Cypher queries. This is achieved by defining the GraphQL schema and annotating it with a few extra directives. If you want to get familiar with the GRANDstack you can visit their documentation.This post will present some more advanced tips and tricks for using the neo4j-graphql-js library that we found useful for real world applications. It will focus on overcoming some of its limitations or adding missing features. It will show you how to unset...