Say you have a graph-based project in mind. Be it research in life sciences, a fraud detection machine, or possibly a recommendation app. Anything that relies heavily on relationships between data points is a good case for a graph.
First, you will need a graph database. Let’s assume that you have picked Neo4j as your go-to technology. Good choice. Honestly. They defined the market and still are the preferred solution by the majority of customers.
Now you have a solid technology foundation. Your connected data can live someplace. The next part is to get your project moving.
Build or buy?
There is a decision to be made. Either you build it all from scratch, use some existing components and libraries, or pick one of the off-the-shelf solutions. There are pros and cons for each. Your development costs time and money but gives you absolute freedom and control. Using elements developed by someone else might save time, but you can run into compatibility issues. Or you can pick a product like Hume and have a complete versatile ecosystem ready to deploy.
Let’s focus on the third option. You will want a natively graph-based solution that provides all the functionalities and features you need. A robust set of connectors to your existing infrastructure or components for ingesting various data formats are included as well.
Let’s have a look at how various components of Hume bring your Neo4j project to life.
Get the data in
In graph databases, the data that pours in has to be structured as nodes and relationships. The data from other systems is most likely not natively modeled as nodes and edges and will have to be adapted. This could be a potentially tedious process.
This is where Hume Orchestra comes into play. It allows you to connect your ecosystem to almost any data source or microservice. Anything that can expose a REST API, publicly available, or your private one, paid or free. With these, you can create workflows that let you get the data, manipulate it, clean it, create the structure, identify the nodes, relationships, and their properties and push it all into your Neo4j. Or anyplace else, for that matter.
Orchestra handles the handover between services, can help you debug the whole process, and once ready it can run periodically and keep your data updated.
Train your own models
Using machine learning to identify structure in your data, you want the model to be trained on your own data and for your specific domain. Another part of Hume called Labs can help you with it, providing an environment where you can train your models easily and with features that help you make the process less time-consuming. Once done, you just connect your model to any of the workflows in Orchestra.
Set up the visualization
Having nodes, relationships, and properties stored in the database, you most probably want to explore them and visualize them to find the hidden gems you are looking for. Neo4j offers Neo4j Bloom to get you started. Hume takes you and your data to the next level.
First, you map the schema of your database, what types of nodes are in your database and what relationships can exist between them. Not always you want to see everything when doing your research. This is where perspectives become helpful. For each visualization, you can define a subset of your data, and only this subset will be available. This is incredibly handy in situations where security is of concern, and you want to be specific about what data your data specialists can access.
You can also create shortcuts. We call them virtual relationships. A longer path between nodes can be collapsed into a single relationship for the visualization, without changing the underlying data.
Data exploration is where Hume truly shines. It will make your work easier and more efficient. The cornerstone of this is so-called “actions.” These little (or larger) pieces of automation can be run on top of the visualization. Do you want to see only specific nodes? Click, done. Do you want to highlight some properties through styling? Click, done. Once defined, your data experts can explore the knowledge graph freely and leverage chunks of helpful programming without any need to actually code.