A mathematical graph, or graph for short, is a structure representing pairwise relationships between objects. A graph is made up of nodes (sometimes called vertices, or points) which are connected by edges (sometimes called arcs, or lines). For example, nodes can embody people, maschines or individual steps in a process. Edges can illustrate the relations between nodes. They can can describe blood relations between people, data exchange between machines or give the interdependence of various steps in a chain of processes. The combination of nodes and the edges between them forms the graph. In practical applications the term network is often used instead of graphs.
Once an application or a problem is transformed to the graph model, powerful concepts, algorithms and analysis techniques from Graph Theory and Network Science immediately apply. For this reason and their wide applicability, graphs and technologies based on graphs have become key elements of many important applications today. Some well-known applications include advertising in social networks, transportation networks or data management applications.
The following example shows how interpreting data as a graph can help us make better sense of structured data. Clearly, the better we understand the complex data we work with the easier it will be to build applications on top of it. In this case, we look at a simple communication network, i.e. people sending emails to each other. However, it is important to emphasize that virtually everything can be seen as a graph.
Finding the best way to model data as a graph and make maximum use of it in an application is a challenging yet important problem.
Data capturing the exchange of emails between people can be directly represented as the graph seen here in blue.
We have 10 unique persons forming the set of nodes. For each pair of people that exchanged emails with each other an edge is drawn between their respective nodes. The sum of these edges constitutes the set of edges. Nodes and edges together form a graph, in this case a communication network.
Due to the graph representation interesting information is directly available: The best connected communicator in the graph is Alston with 5 neighbors. Coley and Langdon stick to themselves while Algie has no contacts at all.
While this is a small and simple network, it is not difficult to see how this type of graph thinking applies to large complex networks like Facebook or LinkedIn. It is the graph model that enables the efficient extraction and use of information. Doing the right things, the right way with the right structure - This is where it’s at.
Here the node set is highlighted in red. Additional information is embedded in this graph drawing: The size of a node reflects the total number of mails exchanged with its direct neighbors. If you hover over individual nodes, the total number of mails is given.
In this example nodes represent people. However, in general nodes are abstract objects and can represent any entity. Multiple classes of nodes commonly appear in one graph.
In prominent graphs nodes represent websites, devices, products, customers, messages, events, locations and the list goes on.
Here the edge set is highlighted in red. Additional information is embedded in this graph drawing: The thickness of an edge reflects the number of mails exchanged between the two nodes it connects. If you hover over individual edges, the number of mails is given.
In this example edges represent email exchange. However, in general edges are abstract objects and can represent any type of relation. Multiple classes of edges are commonly present in the same graphs.
Edges may also express a directed relation, e.g. Merlin sends 3 mails to Alston. In this example, note that we only talk about mutually exchanged emails ignoring the direction, thus drawing undirected edges suffices.
In prominent graphs edges represent weblinks, connections, buying decisions, selling decisions, subscriptions, time-ordering, streets and the list goes on.
Proper usage of graphs is not magic. Like any other subject one seeks to start with, proper learning material is the key to get started the right way. We have put our knowledge and experience on the topic to work for you and prepared a set of free introductory online courses to make sure you learn what you need to know fast.
Our short beginner courses familiarize you with the basic concepts and purpose of graphs. They teach you how to visualize structured data in terms of graphs and introduce you to useful graph tools. In the end you will be in a position to judge for yourself whether you or your organization can benefit by using graphs.
k33 offers a range of services supporting anyone who wants to get started or already works with graphs in a professional capacity. We pride ourselves on being independent experts on almost all things graphs with a supplementary background in Software Engineering, Data Science and Data Engineering. We adhere to the highest standards of work which we successfully implement in both research as well as in an industrial settings. Once you get to know us, you will see that we are different.