In 1741, the Swiss mathematician Leonhard Euler published an article that we could describe as the “birth certificate” of the graph and which approached the seven bridges of Königsberg problem. However, use of graphs is relatively recent, knowing that the first mathematics books on graph theory only began to appear some 200 years later.
By definition, a graph consists of a set of points, also called nodes or vertices, and a set of edges, or arcs, connecting two nodes.
Today, the graph has become a powerful mathematical tool and a data structure that is meant to be representative of a world where everything is becoming more and more connected.
Real life application of graphs
Application cases of the graph theory are found in numerous and varied fields such as computer science, transport network optimization, statistical mechanics, chemical formula, social sciences, geography, architecture, etc.
If you use Facebook on your mobile device, you may know that the Graph API that provides Facebook is the interface that allows a program on your phone or any other device to communicate with the whole data set, also called the “social graph”. Within that social graph, a node holds information about a person, an image, a page, and the edges are the links between these various elements.
Shortest path algorithms, such as Dijkstra’s or Floyd-Warshall’s algorithms, or the breadth first search algorithm find their uses in GPS navigation systems when calculating an optimal route between two points on a map.
Complex molecules are represented as a labeled graph in organic chemistry, where the nodes are the atoms and the edges are the bonds between them.
In Daneel, graphs are present in almost all the parts that make up its cognitive system, and the rest of this article presents a non-exhaustive list of the various applications of this formidable tool.
Daneel’s ontology, the graph of knowledge
The ontology of Daneel is the data model of its knowledge. The concepts found therein are represented as symbols that can be linked together, creating a graph where the nodes are the symbols and the edges are the links between them.
The recursive aspect of the graphs (graph of graph or sub-graph) plays an important role in the structure of the ontology. By allowing the aggregation of groups of symbols having similar semantic fields under one super concept, we can create additional levels of abstraction.
Even more interesting, in a previous article Merging data with algorithms, we can read that data in the ontological graph are mixed with algorithms that modify its very structure in real time, impacting the behavior of the cognitive system.
We can obtain such plasticity by abstracting the type of nodes that make the graph up. Therefore, in it we can find nodes containing knowledge, such as symbols that compose natural language, as well as nodes containing actions that alter the ontological graph structure, like data enrichment processes.
The data enrichment graphs of processes
The data enrichment graphs of processes are an integral part of Daneel’s ontology, they are sub-graphs of the knowledge graph, where nodes are processes modifying the structure of the graph, and edges give a path of execution determining which processes can communicate with each other.
A specific program was created to execute graphs of processes found in Daneel’s ontology, and an interface was also developed so that these graphs could be monitored, edited and visualized in real time. This web interface will be the topic of a video capsule in a next article.
Each process is continually working to enhance the data in the ontology by enriching links between symbols and by creating new symbols too, in order to expand their semantic fields.
This semantic enrichment allows a better understanding of data , so that we can move towards a better understanding of natural language.
A more natural way to approach Natural Language Processing
Natural language processing (NLP) is a field of computer science, artificial intelligence, and linguistics concerned with the interactions between computers and human (natural) languages.
Today, NLP is of paramount importance and is becoming increasingly influential in areas such as voice recognition control systems, automatic/semi-automatic/machine translation, text analysis, artificial intelligence, natural language generation, etc. The future of NLP techniques naturally tends to move towards the establishment of a global artificial intelligence, and it is in this direction that we focus our research.
The ontology implemented in Daneel can store all symbols of natural language, and the links binding these symbols together define our “grammar” of the language.
These links can be created or deleted according to the internal activity of their respective symbols within the cognitive system.
In addition, the concepts of symbol aggregation and abstraction as seen in “Daneel’s ontology, the graph of knowledge” section take all their meaning within the knowledge graph when it comes to perform any action in relation to an abstract concept, or to grasping the overall concept of a sentence or text, thus, Demystifying information.
If we project this way of processing natural language on the functioning of our brain, we see a fairly significant correlation with neural plasticity, or the brain’s ability to change its internal structure, allowing it to constantly create, undo or reorganize its neural networks and the connections between its neurons to remember, learn, and forget.
The abstraction, adaptability and plasticity of Daneel’s ontology make the cornerstone of its powerful cognitive system. Such a system is built on a solid yet flexible structure representing the links existing between the millions of symbols that make Daneel’s ontology.
These symbols and links are gathered in one data structure, a graph, alongside with the algorithms that modify its shape in real time.
The ontology’s shape modification is also a resulting behavior of data enrichment, performed during execution of processes linked together in sub-graphs of Daneel’s ontology.
Graph of knowledge enrichment is a significant step in the way we process natural language as it allows us to extend our understanding of symbols and the links between them.
Our way to process natural language takes the most advantage of sub-graphs of knowledge as they are used to aggregate symbols in order to abstract and create new concept related to compatible symbols.
This is the reason why the graph emerged as the data structure most suited to our needs. And that’s also why it is today the backbone of Daneel.