Skip to content

SmSn's features in 250 words

Jeffrey Benjamin Brown edited this page Apr 10, 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 (currently a beta feature). 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.

Notes carry optional "priority", "weight" (importance) and "sharability" properties. 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.

Semantic Synchrony 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. Users can view the git history in the graph -- for instance, list all commits by date, indicating who authored which, and under each commit show every modified note.

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

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