Shakespeare wrote, “a rose by any other name would smell as sweet.” It seems clear that he was working on a Knowledge Graph.
But really, what Juliet was getting at is that Romeo is himself, whether he’s called Romeo, or Montecchi, or even Citizen of Verona. All those names are just words, or text, that are contextually assigned to him through a common agreement, and each of those labels carries its own context.
This association, or the relationship between a set of words and things, is what is known as a knowledge graph. I got the chance to learn more about it with HERE Principal Research Engineer Dr. Craig Barnes.
“A long time ago, when the web first came out, there was an idea” Craig said. “The idea was that the web was not just hyperlinks and web pages. The idea centered on web content itself, namely, the text. There was text everywhere, and all that text could be utilized to define relationships.
“For instance, a collie is a breed of dog – that’s a relationship. A dog is a type of mammal - that’s a relationship. The Mona Lisa was painted by Leonardo DaVinci. Leonardo da Vinci was born in Anchiano. All of these examples describe relationships in text. So, getting back to the idea for the web, the thought was that you could write a process to automatically learn the ins and outs of all these relationships, and develop new insights.”
That idea became a reality, and developed into an early project called conceptnet.io. ConceptNet is a very approachable knowledge database that can still be viewed today. For instance, if you enter ‘collie’, it will tell you that a collie is a breed of dog, that it’s a type of herding dog, that a related term is ‘sheepdog’, etc.
Over the course of time, these kinds of databases grew in popularity, and that popularity drove the development of more advanced knowledge graphs. Relational databases with tables and indexes began linking words and relationships more thoroughly and more efficiently, resulting in knowledge graphs that have millions of entries, and billions of relationships.
Plotting out relationships
Coming closer to the present, the availability of advanced processors and greater memory has given rise to what are called graph databases.
“These graph databases model data as a series of nodes and edges” Craig continued. “The nodes contain data, and the edges can have a descriptor. The edges can be things like ‘is made of’ or ‘is used for’.
“When you build this into the context of mapping, these nodes can also have properties on themselves – so you can say for instance that ‘this Point of Interest (POI) is connected to the street, and it’s five feet off of that street, and that information becomes an extra property of that Point of Interest.”
What makes this node and edge connection valuable is the ability for a computer system to use the series of linkages to answer questions. For instance, if you asked a system where the artist that painted the Mona Lisa was born:
“What emerges is a graph of relationships, and those relationships have an agreed upon language that you define those relationships in.”
The above example is just one representation of how this data can be modeled. In practice, the way that nodes are defined, and the language used in the edges are specifically detailed to increase efficiency of the knowledge graph. That’s why HERE is developing their own knowledge graph dedicated to location intelligence.
This was just the start of our interview with Craig. In the coming weeks, we’ll provide the next chapter in his explanation of how HERE is building a location graph, and how that graph is making semantic data – human understanding – available to AI driven processes.