Skip to content

SmSn's features in 250 words

Jeffrey Benjamin Brown edited this page Jul 5, 2017 · 11 revisions

Semantic Synchrony ("SmSn") is a toolkit for personal knowledge graphs. The front end runs as a major mode in Emacs. The back end integrates with Apache TinkerPop's Gremlin Server. Semantic Synchrony aims to be as uncomplicated as a wiki or text editor for taking notes, sharing notes, and collaboratively editing notes with the help of version control software such as Git or Subversion. In the process, it creates a true graph of notes, much like the network of concepts in a human brain. The Neo4j graph database is currently used for navigation and search.

Notes in the graph contain text. Semantic Synchrony requires adherence to no fixed schema; ontology is emergent, with the user inventing categories as needed. Notes can contain markdown text. Hyperlinks in markdown can point to other notes in the graph, or to anything else with a URL. Note references in markdown allow for reusable user-defined relationship labels. (Markdown is currently a beta feature).

Notes carry optional "priority", "weight" (importance) and "sharability" properties, which affect how they are displayed, and under what conditions. The graph can be traversed stepwise along edges, or through text search using the Apache Lucene query language. Shorter notes, and notes with higher priority and weight, rank higher in search results.

Knowledge graphs can be selectively merged. The data-universal and data-public repositories were created that way; they contain the public and universal, but not the personal or private, notes from the contributing users. The git history of the graph is itself a (read-only) part of the graph.

Semantic Synchrony imports from GraphML, Freeplane, and VCS (roughly one plain-text file per note). It exports to GraphML, VCS, RDF and LaTeX. The first author rendered his PhD thesis in LaTeX from part of his graph.

Semantic Synchrony's back end is typically run via Docker, which makes it easy to install.