Skip to main content

Concept Notes

💡TL;DR

Notemd extracts key concepts from your notes and creates standalone concept note files. The LLM identifies core terms, generates one .md file per concept in a configurable folder, and optionally adds backlinks to the source note. Supports synonym suppression, per-task model selection, filename sanitization, and a 4-step deduplication engine. This is part of the Obsidian AI Knowledge Management Guide.

Overview

Concept notes are the building blocks of a connected knowledge base. When you process a note, Notemd:

  1. Sends your text to an LLM with a structured extraction prompt
  2. Parses CONCEPT: lines from the LLM response
  3. Creates one .md file per concept in a designated folder
  4. Adds backlinks to the source note (when enabled)

How It Works

Extraction Pipeline

Source Note → Split into Chunks → LLM per Chunk → Parse CONCEPT: Lines
→ Deduplicate via Set → Create .md Files → Add Backlinks
→ (Optional: Generate Log)

The Extraction Prompt

The LLM receives a prompt that instructs it to:

  • Extract nouns or noun phrases central to the document's topic
  • Prioritize specificity — "Dielectric Relaxation" over "Relaxation"
  • Normalize to singular — "models" becomes "model"
  • Suppress sub-concepts — if "dielectric relaxation" appears, don't also extract "relaxation"
  • Skip references/bibliography sections, common nouns, company/product names
  • Output one concept per line as CONCEPT: Term Name

Synonym suppression (optional): prepends "Avoid extracting synonyms, semantically similar core concepts, or keywords whenever possible" to the prompt.

Focused learning domain (optional): prepends Relevant Fields: [domain] to constrain extraction to a discipline.

Language override (optional): appends "The output concepts MUST be in [language]."

Chunking

Long notes are split by settings.chunkWordCount. Each chunk is sent independently. Concepts from all chunks are accumulated in a Set — duplicates across chunks are silently removed. LLM errors on individual chunks do not abort the operation.

Concept Note Creation

Filename Rules

RuleBehavior
Hyphens/underscoresReplaced with spaces
Special charactersStripped: backslash, forward slash, colon, asterisk, question mark, quotes, angle brackets, pipe, hash, caret, brackets
WhitespaceCollapsed and trimmed
Max length100 characters (truncated + re-trimmed)
Empty/all-dots resultSilently skipped

Example: A-B: Key*Term becomes A B KeyTerm.md

Templates

Full template (backlinks enabled, minimal template off):

# Concept Name

## Linked From
- [[SourceNoteBasename]]

Minimal template (when extractConceptsMinimalTemplate: true):

# Concept Name

Updating Existing Notes

When a concept file already exists:

  1. If backlinks are enabled and the source note isn't already listed, append a backlink
  2. If a ## Linked From section exists, insert before the next ## header
  3. If no ## Linked From exists, append section at end
  4. Duplicate backlinks are checked and skipped

Configuration

SettingDefaultEffect
useCustomConceptNoteFoldertrueMaster toggle. Off = no notes created
conceptNoteFolder'' (disabled)Folder path for concept notes
extractConceptsMinimalTemplatetrueTitle-only notes (no Linked From)
extractConceptsAddBacklinkfalseAdd backlinks during standalone extraction
extractConceptsProvider / extractConceptsModelDeepSeekPer-task LLM for concept extraction
extractConceptsLanguage'en'Output language for concept names
replaceSynonymsDuringConceptExtractionfalseEnable synonym suppression in prompt
generateConceptLogFilefalseWrite a .log listing created concepts

Important: The extractConceptsAddBacklink and extractConceptsMinimalTemplate settings only affect the dedicated extraction command. The "Add Links" command always creates full-template notes with backlinks.

Deduplication

The dedup command (Notemd: Check & remove duplicate concept notes) runs a 5-step analysis:

Step 1: Exact Filename Match

Case-insensitive basename comparison across the configured scope.

Step 2: Plural Form Detection

Strips suffixes: -ies to -y, -es stripped, -s stripped. Compares singular form against scope files. Does not handle irregular plurals (children/child).

Step 3: Symbol Normalization

Applies: toLowerCase(), replace hyphens/underscores with space, strip non-alphanumeric, collapse whitespace. Matches that normalize identically are flagged.

Step 4: Single-Word Containment

Single-word concept notes are checked against multi-word scope file basenames. Not run when scope is concept_folder_only.

Step 5: Confirmation and Deletion

All candidates are presented in a confirmation modal. Approved items are moved to system trash. Operation is cancellable between each deletion.

Scope Modes

ModeCompared Against
vault (default)All vault .md files excluding concept folder
concept_folder_onlyOther concept notes within the folder
includeFiles in specific listed folders
excludeAll vault files excluding concept folder + listed folders

Usage

Extract Concepts (Standalone)

  1. Open a note
  2. Run "Notemd: Extract concepts" from command palette
  3. Concept notes are created in the configured folder

Extract + Generate Content

"Notemd: Extract concepts and generate titles" — extracts concepts, then runs "Generate from Title" on every note in the concept folder. This generates content for all concept notes in the folder, not just the newly created ones.

  1. Highlight text in editor
  2. Run "Notemd: Create wiki link from selection"
  3. Text is wrapped in [[...]] and a concept note is created

Tips

  • Set the concept folder first — without it, no notes are created. A warning modal appears if unset.
  • Use per-task models — concept extraction is well-served by cheaper models (GPT-4o-mini, DeepSeek). Save expensive models for research/translation.
  • Enable synonym suppression for technical domains where multiple terms refer to the same concept.
  • Dedup regularly — run the dedup command after batch processing to catch near-duplicates.
  • The log file is overwritten on each run, not appended. Copy it if you need prior results.

Next Steps

  • Wiki-Links — How concepts get linked inline
  • Diagrams — Visualize concept relationships
  • Workflows — Chain extraction with other tasks