CLI tool untuk membangun literature vault dari Semantic Scholar, siap dibuka di Obsidian dengan Graph View dan auto-tagging.
- Pencarian Semantic Scholar — cari paper lewat CLI dengan satu command
- Multi-Degree Snowballing — ambil seed paper, lalu otomatis kumpulkan citations & references-nya hingga beberapa tingkat
- Caching Lokal (JSON) — hasil pencarian disimpan di
scholar_cache.json, pencarian kedua untuk keyword yang sama tidak perlu API call - Rate-Limit Handling — saat terkena Error 429, aplikasi tidak crash melainkan memberikan data tiruan (mock) lengkap dengan paperId, citations, references agar pipeline tetap berjalan
- PDF Route — ekstrak DOI atau judul dari halaman pertama file PDF, lalu langsung snowball
- Output Obsidian-Ready — file Markdown dengan YAML frontmatter, Wiki-links
[[...]], folder per tahun, dan auto-tagging dari abstrak - Dynamic NLP Tagging — memindai abstrak untuk kata kunci ilmiah (
antimicrobial→aktivitas-antimikroba,antioxidant→aktivitas-antioksidan,flavonoid→fitokimia,extract/methanol/ethanol→ekstraksi-laboratorium)
git clone https://github.com/username/litrouter.git
cd litrouter
pip install -r requirements.txtAtau di lingkungan system-managed (Ubuntu/Debian):
pip install -r requirements.txt --break-system-packagespython src/main.py search "deep learning transformer"python src/main.py route-pdf /path/to/paper.pdfOutput_Vault/
├── 2024/
│ ├── Judul_Paper_Satu.md
│ ├── Judul_Paper_Dua.md
│ └── ...
├── 2023/
│ └── ...
└── unknown/
└── Judul_Tanpa_Tahun.md
Setiap file .md berisi:
---
title: "Judul Paper"
authors:
- "Nama Author"
year: 2024
doi: "10.xxxx/xxxxx"
tags:
- literatur-riset
- litrouter
- aktivitas-antioksidan
- fitokimia
- ekstraksi-laboratorium
---
## Abstrak
Teks abstrak...
# Jaringan Tautan
## Disitasi oleh
- [[Judul_Paper_Lain]]
## Referensi
- [[Judul_Referensi_Satu]]
- [[Judul_Referensi_Dua]]File scholar_cache.json menyimpan semua hasil API untuk menghindari request berulang. Aman dihapus kapan saja — akan dibuat ulang otomatis.
time.sleep(2)setelah setiap API call sukses (anti-spam)- Saat Error 429:
time.sleep(3)+ fallback ke cache atau mock data - Mock data memiliki struktur lengkap (
paperId,citations,references) sehingga snowballing tetap berjalan