Skip to content
Jeffrey Benjamin Brown edited this page Jul 6, 2017 · 12 revisions

What is a "knowledge graph"?

It is a collection of Notes and connections between Notes. Notes can be about anything -- schedules, plans, feelings. Connections can be of whatever kind the user has words for: This is one of those, this requires that, do this by then, this could help me explain that to so-and-so ...

Each thing can have as many connections to anything else as reflects reality. Indeed, more.

Connections can be grouped into classes. This allows simplification -- just like using dividers to separate many papers into fewer groups. (In fact, if papers could be in more than one place, that paper solution would be equivalent to Semantic Synchrony.)

Connections are used to construct the view the user wants. If I want a list of everything that my baby requires that I cannot afford, it is in principle automatically discoverable, and already manually discoverable, assuming the data has been put in the graph. Other interesting lists are "Everything I every thought was interesting (about such-and-such)", "everything I don't understand about such-and-such" ...

Lists can overlap. That's another way of saying anything can connect to anything.

Writing into a knowledge graph is only slightly more difficult than writing something on paper. The key difference is that to put it in the knowledge graph, you have to connect it to something else. More things if you want. (Actually you can leave things disconnected, too, but then the computer can't help you navigate.)

Knowledge graph is an inclusive concept: A search engine generates search results from a knowledge graph. A mindmap is also a knowledge graph.

The data model has generalized. Initially the graph was a collection of text notes in a Neo4j database. (We use Gremlin, a meta-language for graph databases, so we're not tied to Neo4j.) Now a collection of git repositories can also be a data source. More generalizations are forthcoming.

What's the main use case?

Organizing, studying, writing, and planning. Collecting, quickly traversing, and selectively sharing notes.

Trees generalize (flat) lists, and graphs generalize trees, so you could use a knowledge graph for anything you might use a list for. Semantic Synchrony integrates with google chrome, so surfing the graph and surfing the net are a unified experience.

Is it like a semantic wiki? git for structured data? distributed mindmap?

So far, users need not commit to any fixed ontology; they can invent categories as they see the need arise. It is no replacement for git, but it will let you construct and view treelike representations of the data's git history.