Skip to content

SmSn's features in 250 words

Jeffrey Benjamin Brown edited this page Mar 27, 2017 · 11 revisions

Semantic Synchrony is a knowledge graph editor. The front end (client) is Emacs running smsn-mode. The back end runs on Gremlin Server, part of Apache Tinkerpop, a meta language -- by default Semantic Synchrony uses Neo4j, but that can be changed without rewriting anything.

Notes in the graph can contain plain text or markdown; hyperlinks in markdown can point to other notes in the graph, or to anything else with a URL. Semantic Synchrony requires adherence to no fixed schema; the user invents categories as they arise. Notes can be connected with unlabeled or labeled relationships, and relationships (such as "_ is a definition of _") can be reused.

Notes carry optional "priority", "weight" (mass) and "sharability" properties. The graph can be traversed stepwise along edges, or through text search using the Apache Lucene query language. Notes with higher priority, weight, sharability, or popularity (in-degree and out-degree), and shorter notes, 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 to GraphML, Freeplane, VCS (roughly one plain-text file per note), and exports to those plus RDF and LaTeX. The author, Joshua Shinavier, rendered his PhD thesis in LaTeX from part of his graph.

Semantic Synchrony (the server) runs in Docker, which makes it easy to install.