Skip to content

SmSn's features in 250 words

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

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

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" (mass) 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 creator, 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.