SuperAPI AI Directory

paper-index

Writing & research

View repository

Updated 10-15 20:11

About this skill

Paper Index

Use Obsidian Bases (.base files) to maintain a paper database index. Bases is a native feature of Obsidian 1.9+ that can automatically generate database views from note frontmatter, with no need to manually maintain tables.

Trigger conditions

Load this skill when the user requests "update index", "organize papers", or "generate paper list". It will also execute automatically after the read-arxiv-paper skill is completed.

Prerequisites

  • Obsidian 1.9+ (built-in Bases feature)
  • The frontmatter of paper notes must contain the following fields: title, title_zh, authors, year, arxiv, pdf, tags, tldr, date_added

Directory structure

vault/
├── papers/
│   ├── index/                   # .base 文件存放目录
│   │   ├── All-Papers.base      # 总库
│   │   ├── Reinforcement-Learning.base  # 分类库
│   │   ├── Reasoning.base       # 分类库
│   │   └── ...
│   └── notes/                   # 论文笔记
│       ├── 2402.03300.md
│       └── ...

Workflow

Step 1: Scan paper notes

Read all $OBSIDIAN_VAULT/papers/notes/ under .md files' frontmatter, extracting the tags field.

Step 2: Determine categories

Collect the tags of all papers, and map them to categories (Chinese names) according to the following rules:

  • reinforcement-learning, GRPO, PPO, RLHF, DAPO, Dr-GRPO → Reinforcement-Learning
  • alignment, DPO, preference → Alignment
  • attention, transformer, architecture → Architecture
  • math-reasoning, reasoning, chain-of-thought → Reasoning
  • data, pretraining, scaling → Pretraining
  • distillation, knowledge-distillation → Distillation
  • video, video-generation, video-distillation → Video-Generation

A paper can belong to multiple categories (as long as its tags match multiple category rules). When encountering a new tag that cannot be categorized, create a reasonable English category name on your own.

Tags cannot contain spaces; multiple words should be connected with a hyphen - or underscore _ .

Step 3: Check existing .base files

Check the existing .base files under the $OBSIDIAN_VAULT/papers/index/ directory.

Step 4: Generate/update .base files

Main library (All-Papers.base): If it does not exist, create it; if it already exists, do not overwrite it.

filters:
  and:
    - file.inFolder("papers/notes")
    - 'file.ext == "md"'

properties:
  title:
    displayName: "Title"
  title_zh:
    displayName: "中文名"
  tldr:
    displayName: "TLDR"
  tags:
    displayName: "标签"

views:
  - type: table
    name: "All Papers"
    order:
      - file.name
      - title_zh
      - title
      - tldr
      - tags
    groupBy:
      property: year
      direction: DESC

Category library ({Category-Name}.base): For each category, if the corresponding .base file does not exist, create it. The filter condition uses tags.contains("tag-name") for matching. If one category corresponds to multiple tags, combine them with or :

filters:
  and:
    - file.inFolder("papers/notes")
    - 'file.ext == "md"'
    - or:
        - 'tags.contains("reinforcement-learning")'
        - 'tags.contains("GRPO")'
        - 'tags.contains("PPO")'

properties:
  title:
    displayName: "Title"
  title_zh:
    displayName: "中文名"
  tldr:
    displayName: "TLDR"
  tags:
    displayName: "标签"

views:
  - type: table
    name: "Category-Name"
    order:
      - file.name
      - title_zh
      - title
      - tldr
      - tags
    groupBy:
      property: year
      direction: DESC

Important rules

  • .base files use YAML format, not Markdown
  • Do not overwrite existing .base files (the user may have manually adjusted the view configuration)
  • Only create .base files corresponding to new categories
  • Category names use English, such as "Reinforcement-Learning", "Reasoning"
  • The tags in the filter must exactly match the tags in the paper frontmatter (case-sensitive)