A knowledge graph is a "directed labeled graph in which domain specific meanings are associated with nodes and edges". A node could represent any real-world entity, for example, people, company, computer, etc. An edge label captures the relationship of interest between the two nodes, for example, a friendship relationship between two people, a customer relationship between a company and person, or a network connection between two computers, etc."[^1]
See also [[semantic network]].
A current debate is whether to build a knowledge graph as a property graph or in [[RDF]]. [[Juan Sequeda]] recognizes both, and recommends the following (quote from his Substack[^2])
- If you’re building for a specific application that has graphy properties → knowledge + data are tightly connected, so pick the technology that enables you to build out your application. This will probably be a property graph.
- If you’re building for enterprise-wide integration → treat knowledge as first-class, separate it from data, and focus on semantic governance. The knowledge should be managed in RDF because of the need to have a way to model ontologies and have identifiers as native part of the data model. The data? It will probably be a mix of everything.
## graph query language
- [[neo4j]]
- [InstaGraph](https://github.com/yoheinakajima/instagraph): free open source tool for converting text or URLs into knowledge graphs.
- [Diffbot](https://www.diffbot.com/)
## open knowledge network
[Proto-OKN](https://www.proto-okn.net/) The Proto-OKN (Open Knowledge Network) project is another example of a knowledge graph platform that aims to provide an open infrastructure for representing and sharing knowledge.
[KnowWhere Knowledge Graph](https://knowwheregraph.org/) is an environmental OKN.
[Data Commons](https://datacommons.org/)
## graph representation learning
Graph representation learning converts unstructured data to graph representations. Methods include
- network embedding theories and systems;
- foundations of graph neural networks (GNNs)
- CogDL toolkit for GNNs
- scalable GNNs
- self-supervised learning in GNNs and
- heterogeneous graphs and heterogeneous GNNs.
[^1]: [[chaudhri2022|Knowledge graphs Introduction history and perspectives]]
[^2]: https://substack.com/inbox/post/180471824