User:CarpenterAnt/Knowledge graph

You will be compiling your bibliography and creating an outline of the changes you will make in this sandbox.

Introductory Edits
In knowledge representation and reasoning, a knowledge graph is a knowledge base that uses a graph-structured data model or topology to integrate data. Knowledge graphs are often used to store interlinked descriptions of entities – objects, events, situations or abstract concepts – while also encoding the semantics underlying the used terminology.[1]


 * Introductory paragraph is too vague. Phrases such as 'to integrate data' and 'encoding the semantics underlying the used terminology.' should be updated to something more descriptive/interpretable.

Since the development of the Semantic Web, knowledge graphs are often associated with linked open data projects, focusing on the connections between concepts and entities. They are also prominently associated with and used by search engines such as Google, Bing, Yext and Yahoo; knowledge-engines and question-answering services such as WolframAlpha, Apple's Siri, and Amazon Alexa; and social networks such as LinkedIn and Facebook.
 * Second paragraph should be reworded to reflect that knowledge graphs have historically been associated with search engines question answering services. Current wording belies recent developments and applications of knowledge graphs.

Using a knowledge graph for reasoning over data (EDITS)
A knowledge graph formally represents semantics by describing entities and their relationships. Knowledge graphs may make use of ontologies as a schema layer. By doing this, they allow logical inference for retrieving implicit knowledge rather than only allowing queries requesting explicit knowledge.

In order to allow the use of knowledge graphs in various machine learning tasks, several methods for deriving latent feature representations of entities and relations have been devised. These knowledge graph embeddings allow them to be connected to machine learning methods that require feature vectors like word embeddings. This can complement other estimates of conceptual similarity.

'''Here, there may need to be some discussion of modern, deep-learning methods that aid with this task. Perhaps even talk about modern graph network libraries (like pytorch geometric) that offer a powerful, accessible interface for constructing and learning on graphs.'''

General/Large Edits
'''In general, the biggest updates necessary for this article lie in describing modern applications and methods with knowledge graphs. This is actually kind of challenging...there don't seem to be completely natural inroads to mention some of the new applications of knowledge graphs. I may need to append a new section, something like "Knowledge Graphs and Deep Learning", or something to that effect. It is likely that most of my contributions will end up in this section. However, for the article to be coherent, there will need be to be minor changes made throughout to "modernize" the notion of knowledge graphs.'''

Lead
In knowledge representation and reasoning, a knowledge graph is a knowledge base that uses a graph-structured data model or topology to represent and operate on data. Knowledge graphs are often used to store interlinked descriptions of entities – objects, events, situations or abstract concepts –  while also encoding the semantics or relationships underlying these entities.

Since the development of the Semantic Web, knowledge graphs have often associated with linked open data projects, focusing on the connections between concepts and entities. They are also historically associated with and used by search engines such as Google, Bing, Yext and Yahoo; knowledge-engines and question-answering services such as WolframAlpha, Apple's Siri, and Amazon Alexa; and social networks such as LinkedIn and Facebook.

'''Recent developments in data science and machine learning, particularly in graph neural networks and representation learning, have broadened the scope of knowledge graphs beyond their traditional use in search engines and recommender systems. They are increasingly used in scientific research, with notable applications in fields such as genomics, proteomics, and systems biology.'''

Using a knowledge graph for reasoning over data
A knowledge graph formally represents semantics by describing entities and their relationships. Knowledge graphs may make use of ontologies as a schema layer. By doing this, they allow logical inference for retrieving implicit knowledge rather than only allowing queries requesting explicit knowledge.

In order to allow the use of knowledge graphs in various machine learning tasks, several methods for deriving latent feature representations of entities and relations have been devised. These knowledge graph embeddings allow them to be connected to machine learning methods that require feature vectors like word embeddings. This can complement other estimates of conceptual similarity.

'''Models for generating useful knowledge graph embeddings are primarily the domain of graph neural networks (GNNs). GNNs are deep learning architectures that comprise edges and nodes, which correspond to the entities and relationships of knowledge graphs. This topology provides a convenient domain for semi-supervised learning wherein the network is trained to predict the value of a node embedding (provided a group of adjacent nodes and their edges) or edge (provided a pair of nodes). These tasks serve as fundamental abstractions for more complex tasks such as reasoning and alignment.'''

Implementations
In addition to the above examples, the term has been used to describe open knowledge projects such as YAGO and Wikidata; federations like the Linked Open Data cloud; a range of commercial search tools, including Yahoo's semantic search assistant Spark, Google's Knowledge Graph, and Microsoft's Satori; and the LinkedIn and Facebook entity graphs.

The term is also used in the context of note-taking software applications that allow a user to build a personal knowledge graph.

The popularization of knowledge graphs and their accompanying methods have led to the development of graph databases such as Neo4j and GraphDB.  These graph databases allow users to easily store data as entities their interrelationships, and facilitate operations such as data reasoning, node embedding, and ontology development on knowledge bases.