Skip to content

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

CS Paper Database (cspdb)

Fast, local search across computer science research literature.

cspdb demo

cspdb builds a local SQLite/FTS5 index from DBLP and gives you a CLI for searching papers with an expressive query language across title, authors, abstract, venue, year, rank, tag, and DOI.

The demo above walks through a full workflow: init → multi-venue update → stats → six search patterns (prefix, phrases/OR, tags/rank, DOI/fields, JSON & BibTeX export) → enrich → interactive TUI.

Inspired by cs-grep and top4grep.

Why

  • Search across configurable CS venue catalogs (security, ML, SE, HCI).
  • Keep the corpus local and query it quickly with SQLite FTS5.
  • Export CSV, JSON, or BibTeX for scripts and reference managers.

Install

Requires Python 3.10+.

git clone https://github.com/rashedhasan090/CS-Paper-Database.git
cd CS-Paper-Database
pip install -e .

Quick start

cspdb init
cspdb update --since 2022 --venue NDSS --venue CCS
cspdb --tui

Search from the shell:

cspdb 'title:fuzzing WHERE venue:ndss AND year:2020-'
cspdb '("side channel" OR cache) WHERE venue:CCS OR venue:SP'
cspdb '* WHERE doi:10.1145' --fields venue,year,title,doi
cspdb 'malware detection WHERE year:2022- AND (rank:A OR rank:A*)' --sort year
cspdb 'kernel fuzz* WHERE venue:USENIX-SEC' --format bibtex > papers.bib
cspdb 'large language model WHERE year:2023-' --format json

Query language

Queries have a full-text expression followed by optional metadata filters:

cspdb '(malware OR botnet) WHERE year:2020- AND NOT venue:CCS'
  • Both sides support AND, OR, NOT, parentheses, and implicit AND.
  • Text supports phrases, trailing prefixes such as fuzz*, and the fields title:, author:, and abstract:.
  • WHERE supports venue:, year:, rank:, tag:, and doi:.
  • * matches all papers when only metadata filters are needed.
  • Year values can be 2020, 2018-2024, 2020-, or -2019.
cspdb '* WHERE tag:ml AND tag:security'
cspdb '* WHERE tag:ml OR tag:security'

Bundles and tags

Bundles choose which venue catalogs update and enrich process. Tags filter papers by venue family during search. Bundled venues use the tags security, ml, nlp, cv, se, and hci. The default bundles are security, ml, and se; hci is available separately.

cspdb update --bundle security,ml
cspdb update --bundle hci
cspdb enrich --bundle ml

Venues

Bundled catalogs live in src/cspdb/venues/.

After cspdb init, extend or override the catalog with a user config.yaml:

  • macOS: ~/Library/Application Support/cspdb/config.yaml
  • Linux: ~/.config/cspdb/config.yaml
  • Windows: %APPDATA%\cspdb\config.yaml

Or pass --config path/to/config.yaml / --db path/to/papers.db.

bundles: [security, ml, se]

defaults:
  min_year: 2018

venues:
  - id: DIMVA
    name: Conference on Detection of Intrusions and Malware & Vulnerability Assessment
    dblp_stream: conf/dimva
    aliases: [dimva]
    rank: B
    tags: [security]

Then ingest and search it:

cspdb update --venue DIMVA
cspdb 'malware WHERE venue:DIMVA'

dblp_stream is the DBLP stream id, such as conf/dimva.

Abstracts

Abstract enrichment is optional, cached, and best-effort. cspdb uses paper DOIs (and titles as fallback) via OpenAlex and Semantic Scholar.

cspdb enrich --limit 50

No API keys are required, but keys can improve rate limits and coverage.

Variable Used for
OPENALEX_API_KEY OpenAlex lookups
SEMANTIC_SCHOLAR_S2_KEY Semantic Scholar lookups

Copy .env.example to .env and fill in keys if you have them. .env is loaded automatically when present.

Commands

Command Purpose
cspdb init Create config + empty database
cspdb update Ingest papers from DBLP
cspdb enrich Fill missing abstracts
cspdb stats Show DB path and paper count
cspdb 'query' Search
cspdb --tui Interactive search prompt

Development

pip install -e ".[dev]"
pytest

Regenerate the README demo GIF (requires Pillow):

python scripts/render_demo_gif.py

Acknowledgements

Venue catalog structure and query language are inspired by philippnormann/cs-grep (MIT). Paper metadata comes from DBLP.

License

Released under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages