Concept Notes
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:
- Sends your text to an LLM with a structured extraction prompt
- Parses
CONCEPT:lines from the LLM response - Creates one
.mdfile per concept in a designated folder - 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
| Rule | Behavior |
|---|---|
| Hyphens/underscores | Replaced with spaces |
| Special characters | Stripped: backslash, forward slash, colon, asterisk, question mark, quotes, angle brackets, pipe, hash, caret, brackets |
| Whitespace | Collapsed and trimmed |
| Max length | 100 characters (truncated + re-trimmed) |
| Empty/all-dots result | Silently 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:
- If backlinks are enabled and the source note isn't already listed, append a backlink
- If a
## Linked Fromsection exists, insert before the next##header - If no
## Linked Fromexists, append section at end - Duplicate backlinks are checked and skipped
Configuration
| Setting | Default | Effect |
|---|---|---|
useCustomConceptNoteFolder | true | Master toggle. Off = no notes created |
conceptNoteFolder | '' (disabled) | Folder path for concept notes |
extractConceptsMinimalTemplate | true | Title-only notes (no Linked From) |
extractConceptsAddBacklink | false | Add backlinks during standalone extraction |
extractConceptsProvider / extractConceptsModel | DeepSeek | Per-task LLM for concept extraction |
extractConceptsLanguage | 'en' | Output language for concept names |
replaceSynonymsDuringConceptExtraction | false | Enable synonym suppression in prompt |
generateConceptLogFile | false | Write 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
| Mode | Compared Against |
|---|---|
vault (default) | All vault .md files excluding concept folder |
concept_folder_only | Other concept notes within the folder |
include | Files in specific listed folders |
exclude | All vault files excluding concept folder + listed folders |
Usage
Extract Concepts (Standalone)
- Open a note
- Run "Notemd: Extract concepts" from command palette
- 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.
Create Wiki Link from Selection
- Highlight text in editor
- Run "Notemd: Create wiki link from selection"
- 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