Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Query the Open Research Knowledge Graph for structured research data
.claude/skills/brycewang-stanford-orkg-api/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 25% | 0% |
The Open Research Knowledge Graph (ORKG) transforms unstructured scholarly articles into structured, machine-readable research contributions. Unlike traditional databases that store metadata (title, authors, DOI), ORKG captures the semantic content — research problems, methods, results, and their relationships. The REST API enables querying, creating, and comparing research contributions programmatically. Free, no authentication required for read operations.
https://orkg.org/api/bash# Search papers in ORKG curl "https://orkg.org/api/papers?q=climate+change+adaptation&size=20" # Get paper details by ID curl "https://orkg.org/api/papers/R12345"
bash# Search any resource (papers, predicates, comparisons) curl "https://orkg.org/api/resources?q=machine+learning&size=20" # Filter by class curl "https://orkg.org/api/resources?q=BERT&exact=false&classes=Paper"
ORKG's unique feature — structured side-by-side comparison of papers:
bash# List comparisons curl "https://orkg.org/api/comparisons?size=10" # Get a specific comparison curl "https://orkg.org/api/comparisons/R54321" # Search comparisons curl "https://orkg.org/api/comparisons?q=sentiment+analysis"
bash# Get contributions of a paper curl "https://orkg.org/api/papers/R12345/contributions" # A contribution describes what a paper contributes: # - Research problem addressed # - Method used # - Results achieved # - Materials/datasets used
pythonimport requests BASE_URL = "https://orkg.org/api" def search_orkg_papers(query: str, size: int = 20) -> list: """Search papers in the Open Research Knowledge Graph.""" resp = requests.get(f"{BASE_URL}/papers", params={"q": query, "size": size}) resp.raise_for_status() data = resp.json() papers = [] for item in data.get("content", []): papers.append({ "id": item.get("id"), "title": item.get("title"), "created": item.get("created_at"), "contributions": item.get("contributions", []) }) return papers def get_paper_contributions(paper_id: str) -> dict: """Get structured research contributions for a paper.""" resp = requests.get(f"{BASE_URL}/papers/{paper_id}/contributions") resp.raise_for_status() return resp.json() def search_comparisons(topic: str) -> list: """Find structured paper comparisons on a topic.""" resp = requests.get(f"{BASE_URL}/comparisons", params={"q": topic, "size": 10}) resp.raise_for_status() return resp.json().get("content", []) # Example usage papers = search_orkg_papers("transfer learning NLP") for p in papers: print(f"[{p['id']}] {p['title']}") comparisons = search_comparisons("named entity recognition") for c in comparisons: print(f"Comparison: {c.get('title')} ({len(c.get('contributions', []))} papers)")
| Concept | Description | Example | |---------|-------------|---------| | Paper | A scholarly article with metadata | "Attention Is All You Need" | | Contribution | What a paper contributes to knowledge | "Proposes self-attention mechanism" | | Research Problem | The problem a contribution addresses | "Machine translation quality" | | Predicate | A relationship type | "has_method", "has_result", "uses_dataset" | | Comparison | Side-by-side structured comparison | "Transformer variants comparison" | | Resource | Any entity in the knowledge graph | A method, dataset, metric, or concept |
| Feature | Traditional (S2, Crossref) | ORKG | |---------|---------------------------|------| | Content | Metadata (title, DOI, citations) | Semantic content (methods, results) | | Structure | Flat records | Knowledge graph with relationships | | Comparison | Manual (read each paper) | Automated structured comparisons | | Machine-readable | Bibliographic metadata only | Research contributions structured | | Coverage | Broad (200M+ papers) | Deep but narrower (~50K papers) |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-15 | fail→pass | 12,877 | 7,664 | -40% | 1 | 1 | 0% | 2,517 | 2,493 | -1% | 0 | 0 | — |
case-02 | fail→pass | 14,291 | 8,403 | -41% | 1 | 1 | 0% | 2,654 | 2,724 | +3% | 0 | 0 | — |
case-03 | fail→fail | 9,905 | 11,194 | +13% | 1 | 1 | 0% | 1,487 | 3,550 | +139% | 0 | 0 | — |
case-13 | pass→pass | 10,691 | 3,845 | -64% | 1 | 1 | 0% | 1,623 | 1,800 | +11% | 0 | 0 | — |
case-01 | fail→pass | 16,693 | 11,229 | -33% | 1 | 1 | 0% | 2,704 | 3,086 | +14% | 0 | 0 | — |
case-04 | pass→pass | 7,274 | 1,691 | -77% | 1 | 1 | 0% | 1,060 | 1,531 | +44% | 0 | 0 | — |
case-05 | fail→pass | 8,852 | 29,064 | +228% | 1 | 1 | 0% | 1,506 | 1,790 | +19% | 0 | 0 | — |
case-06 | pass→pass | 5,779 | 2,949 | -49% | 1 | 1 | 0% | 1,019 | 1,700 | +67% | 0 | 0 | — |
case-07 | pass→pass | 6,306 | 1,955 | -69% | 1 | 1 | 0% | 1,108 | 1,516 | +37% | 0 | 0 | — |
case-08 | fail→pass | 16,435 | 12,993 | -21% | 1 | 1 | 0% | 2,743 | 3,440 | +25% | 0 | 0 | — |
case-09 | pass→pass | 10,609 | 4,502 | -58% | 1 | 1 | 0% | 2,063 | 2,222 | +8% | 0 | 0 | — |
case-10 | pass→pass | 5,715 | 3,106 | -46% | 1 | 1 | 0% | 819 | 1,606 | +96% | 0 | 0 | — |
case-11 | pass→pass | 7,937 | 3,248 | -59% | 1 | 1 | 0% | 1,221 | 1,760 | +44% | 0 | 0 | — |
case-12 | pass→pass | 5,896 | 2,260 | -62% | 1 | 1 | 0% | 851 | 1,583 | +86% | 0 | 0 | — |
case-14 | pass→pass | 7,521 | 2,498 | -67% | 1 | 1 | 0% | 1,446 | 1,639 | +13% | 0 | 0 | — |
case-16 | pass→pass | 18,353 | 19,785 | +8% | 1 | 1 | 0% | 2,680 | 4,228 | +58% | 0 | 0 | — |
case-17 | pass→pass | 13,841 | 12,395 | -10% | 1 | 1 | 0% | 1,883 | 3,166 | +68% | 0 | 0 | — |
case-18 | pass→pass | 9,087 | 2,785 | -69% | 1 | 1 | 0% | 1,298 | 1,680 | +29% | 0 | 0 | — |
case-19 | pass→pass | 6,495 | 2,478 | -62% | 1 | 1 | 0% | 890 | 1,664 | +87% | 0 | 0 | — |
case-20 | pass→pass | 12,807 | 13,176 | +3% | 1 | 1 | 0% | 2,617 | 3,457 | +32% | 0 | 0 | — |
case-21 | fail→pass | 14,091 | 15,372 | +9% | 1 | 1 | 0% | 2,883 | 3,743 | +30% | 0 | 0 | — |
case-22 | pass→pass | 14,857 | 10,639 | -28% | 1 | 1 | 0% | 2,513 | 3,469 | +38% | 0 | 0 | — |
case-23 | pass→pass | 8,998 | 7,937 | -12% | 1 | 1 | 0% | 1,707 | 2,533 | +48% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +26 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.