“Knowledge is a familiarity, awareness, or understanding of someone or something, such as facts, information, descriptions, or skills, which is acquired through experience or education by perceiving, discovering, or learning.” - Wikipedia
“Knowledge” is a human-centric term as intelligent beings are inherently capable of understanding and interpreting facts and the relationship between them. The accumulation of this knowledge gained over time makes us able to establish new inferences and relationships between new and historically gained information. With the advent of modern computational technologies, the representation of data(“knowledge” or ”information”) became the utmost priority for researchers and organizations. Not only representing information became important, learning from the information by making new inferences became important too. However, to encapsulate data-representation along with the power of data-intelligence was a challenging task and in the attempt to solve the same, paved a path towards the invention of “Knowledge Graph”
Knowledge Graph is a graph data structure consisting of entities and relationships between them. It's a graphical way of representing unstructured or structured data in which finding the relationship between various data points(or entities) is important. In layman’s term, it's a smarter way of representing usually large and complex data in a way that makes making logical inferences easier. Knowledge Graphs (KG) are inherently graph data structure hence we can perform basic graph algorithms(like shortest path, search, traversals, etc). Adding new data or modifying existing data in a KG is the same as that of a normal graph which makes it easy for continuous incoming data pipelines. This also makes it suitable for capturing versioning information and timestamp meta-data.
The above figure represents the basic structural unit of a Knowledge Graph which consists of entities and a relationship between them.
Entity: An entity is a single unit of information(the “knowledge” in a Knowledge Graph) that can be a real-world object - usually a piece of domain-specific information. An entity in the domain of Computer Science would be completely different from an entity in the domain of psychology but might be connected with some type of relationship.
Relationship: A relationship describes how a pair of entities are related. The type of relationship depends mostly on the use case for which a Knowledge Graph is used.
Knowledge Graphs help build semantic networks that are useful in knowledge representation which helps in establishing relationships between different concepts and how they are visually interconnected. This interconnectivity helps in gaining new insights from the available data which can lead to new discoveries, different perspectives in analytics tasks and to provide valuable information for predictive pipelines.
Unlike a regular database that gets populated and remains dormant in its lifecycle, knowledge graphs are highly dynamic in nature. As new data arrives, the knowledge graphs can restructure themselves to provide new insights and information. A Knowledge Graph understands the ontological hierarchy of the existing information and re-establishes the ontology every time new data arrives. In other words, a Knowledge Graph understands the kind of relationships existing in a particular knowledge domain and the set of rules that connects one entity to another with existing relationships making it an inherently intelligent data structure.
<Applications of KG>
It has been used in a diverse set of applications including search engines, real-time chatbots(conversational workflow), recommendation systems, content management systems, and discovering unique relations among different entities in research. For instance, Google uses a huge knowledge graph built from available general information on the internet and historical search queries to recommend a top suggestion from your search query. In fact, almost all major businesses use KGs in some way or the other.
One particular use case for which Knowledge Graphs are widely used in hardware product-based companies is to keep a track of the failures reported by customers or during testing and the part(s) responsible for. Over time, as new failures occur in old parts or new parts show new failures, this data is easily incorporated in the existing Knowledge Graph ontologically and an exhaustive information base is thus available for the given product for internal use.