Looking for that simple, accessible definition? Here it is.
A knowledge graph is: a digital structure that represents knowledge as concepts and the relationships between them (facts). A knowledge graph includes semantic structures that allow both humans and machines to understand and reason about its contents.
A Topic with a Rich History
Although our GraphBase product has a many features that make it useful as a general purpose data store, most of our customer implementations have focused on the product’s unique capacity to attach a one or more semantic frameworks to its data graph.
A data graph that provides semantic access in this way is referred to as a knowledge graph.
As it happens, there is no consensus as to what constitutes a knowledge graph. For some, it can be anything that connects data elements together to create something that is more than the sum of its parts. For others, a knowledge graph needs formal and standardised logic-derived structures and declarations.
This lack of a simple, accessible and pragmatic definition isn’t helping enterprise adoption of knowledge graph technology. Why? If you can’t easily understand something, it’s difficult to see its benefits.
This lack of consensus is largely a product of the topic’s rich and diverse history. What seems like a bleeding edge topic has in reality been discussed for thousands of years – going back (at least) to Aristotle in the 4th Century BC. It’s also been the subject of thousands of papers, most recently focused mainly on the Semantic Networks of the late 20th Century and their “Semantic Web" evolution.
Google, however, created the archetypal knowledge graph, the implementation that popularised the term. Google’s Knowledge Graph is a key component of its search experience and the seed of the current KG hype. If something is not a feature of Google's Knowledge Graph, it probably doesn't belong in a definition.
Knowledge Graphs are for Knowledge
As my old high school debating coach used to say “if you’re going to define something, you need to start with your dictionary. Ironically, a dictionary is a printed knowledge graph with references (links) you have to follow yourself.
“Graph" is straightforward. In this context it’s a set of objects and a set of relationships connecting those objects.
“Knowledge" is the term we really need to examine. Every dictionary definition for “knowledge" in this context includes “understanding". To know something is to have one or more relevant facts and to have an understanding of those facts.
Information becomes knowledge when we connect it to our own model of the world. When we learn a concept’s meaning (or “semantics"), we're recognising that we have an internal representation that the concept fits within.
When we communicate knowledge, we pass that understanding to someone else. This is exactly what a knowledge graph needs to do – capture an understanding and communicate it to a human.
Knowledge Graphs are for Humans
Only humans consume packaged-up understandings – machines are quite happy with bits. So when we craft our definition, we need it to reflect that a knowledge graph is a construct primarily for humans.
That’s what’s special about knowledge graphs – what makes them worth the hype. They are software constrained to represent knowledge in human terms – not the other way around. Knowledge graphs have the power to represent any human knowledge and in terms that any human can understand.
Constraints Are An Implementation Detail
Most of today’s definitions include features used to constrain interactions with the knowledge graph. These constraints are there to make us communicate in a way that a knowledge graph machine can understand. Defined constraints vary, and are based on the world-view and technology preferences of the author.
We should recognise, however, that when we require that a knowledge graph use schemas, controlled languages, types, RDF triples (or their property graph 3-tuple equivalent), classes or any other coding constraint, we make it just another programming construct.
Would Google Search be so generally useful if you had to be able to code to use it?
Sure, (for now) any KG implementation still needs constraints of some form – but we should recognise that they’re just an implementation detail and shouldn’t be part of any knowledge graph definition.
Keeping it Simple
So... a knowledge graph is a set of concepts and the connections between them. The graph includes concepts (primarily language) that allow us to map parts of the graph to what’s in our heads. So that we can understand them.
A simple definition doesn’t make for a simple topic, however. There’s much to explore. Who’s using knowledge graphs and what are they using them for? What tools and methods are being used?
Looking to gain more of an understanding? Why not put knowledge graph power to the test. Head over to KGkg: The Knowledge Graph about Knowledge Graphs and do some exploring.