A graph is a concept from mathematics. It is used to create an abstract representation of real world situation. It is actually a very simple structure. A graph consists of nodes which represent a certain object or concept, and of links or relations that connect these nodes. A famous use case is the traveling salesman problem, where a salesman needs to visit a number of different cities while traveling the least possible distance. In this case each of our nodes would represent a city, and the links represent the roads.
There are many different types of graphs used to represent many different situations, often connected data such as computer networks or social networks. However, any kind of knowledge can be represented as a graph. On top of that, a graph is an intuitive and easily understandable way to represent that knowledge. This is why we are building Gloow, an online service that will allow you to explore, and manage information and knowledge using graphs.
To be more specific we are using labeled property graphs to represent and store knowledge and information. By labeling our graphs we give each node a specific type, for example City, Person or Product. That way it is easier to keep everything organised, we can do more meaningful searches, and it makes interpreting the graph easier as we can add for example icons to the visualisation based on a label:
So having labeled nodes and relations already gives us a simple tool to represent knowledge. For example in the above graph it is quite intuitive to see that a Person(label) called Daniel Termont is the major of a City(label) called Ghent.
On top of creating labels for nodes, we can also add properties to both nodes and relations. These properties can be many things, such as the number of inhabitants for a city, a description, or even links to video's or articles. This way we keep things much more organised. We keep the properties in info panels that open on top of the visualisation.
So as you can see in the images above, both nodes and relations, although represented in a simple way in our visualisation, can contain rich information. This information is purposefully removed from the actual graph visualisation to create a more structured layout and to remain within our abstraction mindset.
So let's summarise this, a knowledge graph is an abstract representation of information. This representation contains labeled nodes that represent persons, objects, organisations or even abstract concepts such as gravity or photosynthesis. The second part of the representation are links that represent the relation between two of these nodes, such as the relationship between the sun and hydrogen atoms. Using this simple but elegant method we can represent any kind of knowledge or information.
To finish this post, and to prove our point, let's create a graph from this summary: