Skip to content
Back to skills

Extract References

ASecurity

Extract bibliography/references from PDF files using GROBID and return a Collection of Notes (one per reference).

  • 10 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 6, 2026
researchpython

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned June 6, 2026

npx -y skills add bdambrosio/Cognitive_workbench --skill extract-references --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Extract References?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Extract References
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bdambrosio-extract-references/badge)](https://www.skillsdirectory.com/skills/bdambrosio-extract-references)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: extract-references
type: python
description: "Extract bibliography/references from PDF files using GROBID and return a Collection of Notes (one per reference)."
schema_hint: {"path": "string (PDF file path or Note ID)", "grobid_url": "string"}
resolve:
  path: resource_id
---

# extract-references

Extract bibliography/references from PDF files using GROBID. Returns a Collection of Notes, where each Note contains structured metadata for one reference (compatible with format-citation).

## Input

- `path`: PDF file path (absolute) or Note ID containing PDF URL/metadata (required)
- `grobid_url`: Optional GROBID server URL (from world_config)

## Output

Success (`status: "success"`):
- `resource_id`: Collection ID containing Notes (one Note per reference)
- Each Note contains:
  - `data`: Structured reference metadata (title, authors, year, venue, doi, url)
  - `metadata`: Source PDF, reference index, raw citation text

## Behavior

- Uses GROBID to parse PDF and extract references from `<bibl>` elements
- Creates one Note per reference with structured metadata
- Returns empty Collection if no references found
- Reference Notes are compatible with `format-citation` tool
- **Note ID input:** When given a Note ID (e.g., from `semantic-scholar`), looks up `pdf_url` from the Note's `tool_metadata` automatically — no manual metadata extraction needed

## Planning Notes

**This is the right tool for bibliography/reference extraction from papers.** It uses GROBID structural parsing (deterministic, fast) rather than LLM extraction (slow, lossy). Prefer this over `extract` or `map(extract)` with citation-related instructions.

**Common workflow with `semantic-scholar`:**
1. `semantic-scholar` → `$paper` Collection
2. `get_items("$paper")[0]` → Note ID (contains `pdf_url` in `tool_metadata`)
3. `extract-references(path=note_id)` → `$refs` Collection of structured citation Notes
4. Each citation Note is JSON: `{"title": "...", "authors": [...], "year": 2020, "venue": "..."}`
5. Read with `get_text(note_id)` + `json.loads()` in Python

**Do NOT:**
- Pass a Collection ID or `$binding` string as `path` — pass the actual Note ID from `get_items()`
- Use `pluck(field="text")` on result Notes — content is JSON, not plain text
- Use `extract` or `map(extract)` for reference lists — this tool is faster, structured, and deterministic

## Examples

```json
{"type":"extract-references","path":"/path/to/paper.pdf","out":"$refs"}
{"type":"extract-references","path":"Note_1234","out":"$refs"}
{"type":"format-citation","target":"$refs","format":"bibtex","out":"$bibtex"}
```

**Full semantic-scholar pipeline:**
```json
{"type":"semantic-scholar","query":"attention is all you need","limit":1,"out":"$paper"}
```
```python
items = get_items("$paper")
r = tool("extract-references", path=items[0], out="$refs")
```

Files in this skill

  • Skill.md2.8 KB
  • tool.py7.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.