GraphAware Blog - GraphAware

Find out what's new in the Neo4j world

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.

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,...

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...

GraphAware Expands to Asia-Pacific

26 Mar 2018 by Luke Housego GraphAware

Nearly six years ago I started reading about this thing called Graph Data. Now unlike almost everyone in the modern world of Graph, I am not a coder. I was once upon a time but it has been many years since I typed a line of code. No I do not have a GitHub login. As an enterprise architect I often joke that I do powerpoint for a living. But I could see how this re-envisioning of data and how it could be used would transform enterprises. It is not just a technical change. It changes everything. People. Organisation. Knowledge....

GraphAware in 2017

27 Dec 2017 by Luanne Misquitta Neo4j GraphAware

What a year it’s been for all of us at GraphAware! We travelled around the world, starting on a great note in Bangalore, India and winding up in Ecuador, teaching, consulting, building cool applications; always spreading graph love. Here are some of the highlights of 2017. Neo4j love GraphAware continued to be a premier Neo4j Solutions Partner, closing license sales around the world, conducting Neo4j trainings, providing support to Neo4j customers and being an instrumental part of the Neo4j community and ecosystem. Frantisek and Nicolas, core committers to Neo4j OGM and Spring Data Neo4j, made huge improvements to both projects,...

GraphAware at GraphConnect San Francisco 2016

25 Nov 2016 by Miro Marchi Neo4j Conference GraphAware

Last month, the 5th edition of GraphConnect San Francisco took place at the Hyatt Regency SF. It was the biggest graph technology event ever and GraphAware proudly contributed as a sponsor, with one main talk, two lightning talks and our GraphHero stand 。^‿^。 This edition’s big announcement was the upcoming new landmark release of Neo4j 3.1, “The database for the connected enterprise”, which introduces a new state-of-the-art clustering architecture and new security architecture to meet enterprise requirements for scale and security. There will be a lot to say about this release, but you can already try the beta release as...

Mining and Searching Text with Graph Databases

07 Jul 2016 by Alessandro Negro Neo4j GraphAware Enterprise NLP Search Advanced

A great part of the world’s knowledge is stored using text in natural language, but using it in an effective way is still a major challenge. Natural Language Processing (NLP) techniques provide the basis for harnessing this huge amount of data and converting it into a useful source of knowledge for further processing. Introduction NLP is used in a wide variety of disciplines to solve many different types of problems. Analysis is performed on text from different sources, such as blogs, tweets, and various social media, with size ranging from a few words to multiple documents. Machine learning and text...

Securing Neo4j with GraphAware Enterprise

29 Mar 2016 by Michal Bachman Neo4j GraphAware Intermediate Security Enterprise

For most organisations, data security is extremely important. The topic comes up every single time we are training, consulting, or otherwise engaging in the world of graphs and Neo4j. At the same time, security is very difficult and time-consuming to get right and the implications of getting it wrong can be serious. In this blog post, we introduce the integration of Spring Security into Neo4j which provides important security controls and mechanisms for enterprises and governments that make use of the world’s most popular graph database. Security in Neo4j Neo4j comes with certain security mechanisms out of the box. These...

Expiring Data in Neo4j

15 Mar 2016 by Michal Bachman Neo4j GraphAware Intermediate

At GraphAware, we help organisations in a wide range of verticals solve problems with graphs. Once we come across a requirement or use case two or three different times, we typically create an open-source Neo4j extension that addresses it. The latest addition to our product portfolio, introduced in this post, is a simple library that automatically expires data from the Neo4j graph database. GraphAware Framework Open-sourcing useful extensions helps us deliver solutions faster, lets people who prefer a DIY approach be more productive, and gives us valuable community feedback. That’s how our most popular products, such as the GraphAware Recommendation...

GraphConnect Europe 2015

05 May 2015 by Michal Bachman GraphAware Neo4j Conference

GraphAware is very proud to sponsor GraphConnect Europe 2015, the only conference that focuses on the rapidly growing world of graph databases and applications that make sense of connected data. The conference takes 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 friends from Neo Technology from UK, Sweden, USA, and the rest of the world, as well as other valued members of the worldwide...

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 claims that 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 surface things 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 further voice commands but...

Neo Technology Selects GraphAware as One of Its First UK Solution Partners

10 Nov 2014 by Press Release Neo4j GraphAware

Specialist in Neo4j consultancy, training, and software development, Graph Aware Ltd has been selected as one of Neo Technology’s first UK solution partners, under its newly launched partnership program. Neo Technology is the creator of the world’s most popular graph database, Neo4j, and has selected GraphAware to provide its customers with support from introduction through to full integration of Neo4j, into their enterprise architecture and applications. In addition, GraphAware is now authorised to offer Neo4j subscriptions directly to customers. With access to GraphAware’s Neo4j experts throughout the implementation and integration process, customers are much better positioned to fully utilise all...

GraphAware Neo4j ChangeFeed

27 Aug 2014 by Luanne Misquitta Neo4j GraphAware Beginner

In this post, we’d like to introduce the first version of the GraphAware Neo4j ChangeFeed - a GraphAware Runtime Module that keeps track of changes made to the graph. GraphAware ChangeFeed Module Every time a transaction commits successfully, all changes made to the graph as a result of the transaction are recorded as a change set. A change includes additions, modifications and deletions of nodes, relationships, labels, and properties. Each change set has a UUID, a set of changes that occurred in the same transaction, and a timestamp which is allocated at the time the transaction starts committing. The module...

GraphAware Neo4j TimeTree

20 Aug 2014 by Luanne Misquitta, Michal Bachman Neo4j GraphAware Intermediate

Modelling and querying time-based events in a graph is a fairly common discussion topic and a frequently asked question on Q/A sites. In this blog post, we evaluate some of the common approaches and introduce GraphAware TimeTree, a GraphAware Framework Module that simplifies modelling time and events in Neo4j. Naive Approach Neo4j has no notion of a Date/Time data type, so you have to decide to store the timestamp either as a long, or as a human-readable String, for instance formatted as ‘YYYY-MM-DD HH:mm:ss’. Unless the time is only for human eyes, though, we recommend opting for the machine readable...

Random Graph Models (Part II)

06 Aug 2014 by Vojtěch Havlíček Neo4j GraphAware Intermediate

In the first part of this short series about random graph models, we talked about why they are useful and had a brief look at two of them: Erdos-Renyi graphs and Barabasi-Albert model. In this post, we take a look at the “small world” phenomenon and another network model, namely the Watts-Strogatz model. Small World There is an important property of random networks which we did not write about in the last blog post: the way the node separation scales with network size. Both Erdos-Renyi and Barabasi-Albert networks are “small world” models, meaning that the characteristic node separation scales logarithmically...

Node Degrees in Neo4j 2.1

23 Jul 2014 by Michal Bachman Neo4j GraphAware Beginner

Efficient counting of relationships in Neo4j was the cornerstone of my Master Thesis and the reason the very first GraphAware Framework module called the Relationship Count Module was born. The improvements in Neo4j 2.1 around dense nodes and the addition of getDegree(…) methods on the Node interface made me eager to do some benchmarking around relationship counts again. The improvements in Neo4j 2.1, indeed, make the RelCount module slightly less useful. We’ve decided, however, not to make it obsolete, since it is a useful reference implementation of a GraphAware Framework Transaction-Driven Runtime Module. Instead, we ported the module to Neo4j...

Random Graph Models (Part I)

16 Jul 2014 by Vojtěch Havlíček Neo4j GraphAware Intermediate

When one obtains a graph data from a measurement on a real world network, it is sometimes useful to make comparison with a random graph. Such graph is characterised by certain degree distribution, which you can imagine to be a list of degrees of nodes present in the network. The most interesting distributions have certain functional dependence which allows one to infer what processes are dominant in formation of the network. The processes consequently characterise the relationships between the nodes. Why would one care about such analysis? Imagine a group of customers that you want to target efficiently in a...

Neo4j Improved Transaction Event API

11 Jul 2014 by Michal Bachman Neo4j Transactions GraphAware Advanced

One of the main goals of the GraphAware Framework is to simplify and speed up development with Neo4j. Although it is called a “framework” for reasons explained elsewhere, today we will simply treat it as a library of useful, tested, and documented Java code. The feature we will introduce is called Improved Transaction Event API, which is exactly what it says on the tin. Motivation Neo4j requires every mutating operation on the graph to be run in a transaction, which is great, because it keeps your data safe. Every operation is atomic, consistent, isolated, and durable. As a bonus, Neo4j...

Neo4j Server Unit Testing with RestTest

19 Jun 2014 by Luanne Misquitta Neo4j GraphAware Intermediate GraphUnit Testing

A couple of days ago, I wrote about unit testing with GraphUnit. GraphUnit tested the state of an embedded Neo4j database. What if you run Neo4j in standalone server mode? Fortunately, you can still test it and match subgraphs using the GraphAware Neo4j RestTest library. Setup Grab the GraphAware Neo4j Framework and GraphAware Neo4j RestTest jars from the Downloads page. Drop them into the plugins directory of your Neo4j installation and restart the server to be able to use the API’s. How to use it All you have to do is POST your cypher to http://your-server-address:7474/graphaware/resttest/assertSameGraph or http://your-server-address:7474/graphaware/resttest/assertSubgraph to verify...

Neo4j Unit Testing with GraphUnit

16 Jun 2014 by Luanne Misquitta Neo4j GraphAware Intermediate GraphUnit Testing

Testing the state of an Embedded Neo4j database is now much easier if you use GraphUnit, a component of the GraphAware Neo4j Framework. I tried replacing an existing Flavorwocky unit test with GraphUnit to check out the benefits. Let’s walk through a before-after case study. The test The unit test in question is the one to test that a Pairing is saved correctly. A pairing must have exactly two ingredients. Each Ingredient node has a name; a Pairing has an affinity and an array of allAffinities (all affinities ever assigned to the pairing). Before Pseudocode to test that my code...

Happy Birthday GraphAware

03 Jun 2014 by Michal Bachman Neo4j GraphAware

Today, it is exactly one year ago since Graph Aware Limited was incorporated. It started as a one man show, whilst I was finishing my MSc. Thesis at Imperial College London. Since then, we’ve been growing slowly but steadily and will be moving to our new London office fairly soon (announcements to come). We have happy clients in London, New York, Copenhagen, Barcelona, Prague, and Accra. I would like to take this opportunity to thank everyone who’s made it possible for us to help people discover the beauty of graphs, run a business, and have a lot of fun, all...

GraphUnit: Testing Neo4j Code

29 May 2014 by Michal Bachman Neo4j GraphAware Intermediate GraphUnit Testing

Recently, we announced the GraphAware Framework. Today, I would like to introduce its first feature called GraphUnit. GraphUnit is a component that helps Java developers unit test their code that talks to Neo4j and mutates data. Unit Testing Neo4j Code When writing Java code that modifies data stored in Neo4j, developers can use the ImpermanentGraphDatabase in conjunction with any of APIs provided by Neo4j to test that code. This includes the native Java API, the traversal framework, and Cypher. (I’ve excluded the REST API because using that to unit test Java code wouldn’t make much sense.) Let’s say we’re testing...

Introducing GraphAware Neo4j Framework

28 May 2014 by Michal Bachman Neo4j GraphAware Intermediate

In this short blog post, I would like to introduce the GraphAware Neo4j Framework. Its goal is very ambitious: we’d like to make it as useful for Neo4j developers, as the Spring Framework is for Java developers. The Framework aims at speeding up development with Neo4j by providing a platform for building useful generic as well as domain-specific functionality, analytical capabilities, graph algorithms, and more. Features Overview On a high level, there are two key pieces of functionality, GraphAware Server and GraphAware Runtime. GraphAware Server is a Neo4j server extension that allows developers to build (REST) APIs on top of...