Skip to main content

Converts different typed link formats in Markdown into each other and to external formats. Supports Obsidian Neo4j plugin.

Project description

Neo4j Graph View

Adds a new and much more functional graph view to Obsidian. It does so by connecting to a Neo4j database. Features:

  • Color nodes by tags
  • Selective expansion and hiding of nodes
  • Typed links using - linkType [[note 1]], [[note 2|alias]]
  • Hierarchical layout

Installation

  1. Make sure you have python 3.6+ installed
  2. Make sure you have Neo4j desktop installed
  3. Create a new database in Neo4j desktop and start it. Record the password you use!
  4. In the settings of the plugin, enter the password. Then run the restart command.

Use

On an open node, use the command "Neo4j Graph View: Open local graph of note".

  • Click on a node to open it in the Markdown view
  • Double-click on a node to expand its neighbors
  • Shift-drag in the graph view to select nodes
    • Use E to expand the neighbors of all selected nodes
    • Use H or Backspace to hide all selected nodes from the view
    • Use I (invert) to select all nodes that are not currently selected
    • Use A to select all nodes
  • All notes visited are added to the graph

Possible problems

All changes made in obsidian should be automatically reflected in Neo4j, but this is still very buggy. There also seem to be problems with duplicate nodes in the graph.

Semantics

This collects all notes with extension .md in the input directory (default: markdown/). Each note is interpreted as follows:

  • Interprets tags as entity types
  • Interprets YAML frontmatter as entity properties
  • Interprets wikilinks as links with type inline, and adds content
  • Lines of the format "- linkType [[note 1]], [[note 2|alias]]" creates links with type linkType from the current note to note 1 and note 2.
  • The name of the note is stored in the property name
  • The content of the note (everything except YAML frontmatter and typed links) is stored in the property content
  • Links to notes that do not exist yet are created without any types.

This uses a very simple syntax for typed links. There is no agreed-upon Markdown syntax for this as of yet. If you are interested in using a different syntax than the list format "- linkType [[note 1]], [[note 2|alias]]", please submit an issue.

Other visualization and querying options

Another use case for this plugin is to use your Obsidian vault in one of the many apps in the Neo4j desktop Graph Apps Store. Using with this plugin active will automatically connect it to your vault. Here are some suggestions:

Neo4j Bloom

Neo4j bloom is very powerful graph visualization software. Compared to the embedded graph view in Obsidian, it offers much more freedom in customization.

GraphXR

GraphXR is a 3D graph view, which looks quite gorgeous!

Neo4j Browser

A query browser that uses the Cypher language to query your vault. Can be used for advanced queries or data anlysis of your vault.

Python code: Semantic Markdown to Neo4j

This Obsidian plugin uses the Python package semantic-markdown-converter, which is also in this repo. It creates an active data stream from a folder of Markdown notes to a Neo4j database.

Getting started

Note: The obsidian plugin automatically installs this package!

Requires python 3.5+ and Neo4j desktop

  • Install with pip install --upgrade semantic-markdown-converter
  • Create a new database in Neo4j desktop and start it
  • Run smds --input "folder with notes" --password "neo4j database password"

WARNING: This clears all current data in the active neo4j database!

Supported input formats

There is currently only one input format supported. An issue or use a pull request for different formats are appreciated! In particular for different markdown syntax for interpreting semantic links.

Semantic Markdown to Neo4j server

The command smds first uploads the complete folder of notes into the active Neo4j database. Then, it listens to changes in the notes to update the Neo4j database.

Options

  • --password: Provide the password of the Neo4j database
  • --input: Provide the folder where to look for notes
  • --index_content: Set to true if you want Neo4j Bloom to search through the content of your notes when using the search bar. Can impact performance.

Conversion mode

The command smdc only converts

Neo4j

Streams the input into the currently active Neo4j database. WARNING: This clears all the data in your database by default! Run with --retaindb if this is not desired.

  1. Start the database in Neo4j you want to use
  2. Run using smdc --input "folder with notes" --password "neo4j database password". This can take a couple of minutes for large vaults.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

semantic-markdown-converter-0.4.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

semantic_markdown_converter-0.4.1-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file semantic-markdown-converter-0.4.1.tar.gz.

File metadata

  • Download URL: semantic-markdown-converter-0.4.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for semantic-markdown-converter-0.4.1.tar.gz
Algorithm Hash digest
SHA256 8ae30f8e303f829e0033c057864d0d4c47ae917dbc2e6bc1c136c3776afa54ac
MD5 a9a8d0622a01288fbc81818661d3a807
BLAKE2b-256 0b08f7c2b44b09879d1fd739018191ab48de3d438901e87e15687603e1c84337

See more details on using hashes here.

File details

Details for the file semantic_markdown_converter-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: semantic_markdown_converter-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.5

File hashes

Hashes for semantic_markdown_converter-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 74b6667e470d528b1efe1c58891394bc32a7c829ae77c4f6aff925775872476e
MD5 7b5547cf9a22768525aaa676ec62f0d2
BLAKE2b-256 c184c2c5bd8c73f6c5f0a6001507a8a7bdd884f3fa92c480af38f676b0b36ea3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page