Skip to content

Extract Citation Usage

🤖 AI Drafted (Not reviewed)

Extract citation usage section only.

Tool id citation_usage_extract
Category llm
Uses a language model yes
Needs a generative model no
Runs over many items no
Item handling batch
Structured output yes
Human-verified not yet

What it reads

Port Type Required What it is
Text (text) text yes Aggregated text to extract from.
Records (records) array no Optional per-page records [{doc_id, text}, …] from an upstream Aggregate node. When present, extractors iterate per page and save entity claims to the PAGE doc instead of the container. Enables page-level KG search.

What it emits

Port Type Required What it is
Text (text) text Raw text response
Value (value) any Parsed value
Texts (texts) array Per-item texts
Values (values) array Per-item values
Results (results) json Full results
Records (records) array Per-document text records [{doc_id, text}, …].
Artifacts (artifacts) json Artifact IDs

Options

Option Type Default What it does
choices array Valid choices. (Not shown in the editor.)
chunk_size_chars integer 0 Chunk large input text above this character budget (0=auto).
match_mode string prefer Match mode. One of: prefer, strict, inform.
max_items integer 10 List max items.
max_tokens integer 8192 Max response.
max_words integer 50 Word limit.
metadata_field string Save to field.
model_name string Model name.
ner_model string Optional NER backend model (e.g. en_core_web_sm, en_core_web_trf).
ner_provider string spacy NER hint provider: spacy, llm, or transformers.
output_format string text Response format. One of: text, boolean, choice, number, words, list, json.
output_language string auto Output language. ‘auto’ detects from the source text (English / Spanish today); explicit names like ‘English’ or ‘Spanish’ pin the language regardless of input.
prompt string Custom prompt.
provider_name string LLM provider. One of: openai, anthropic, google, ollama, lmstudio, groq, together, deepseek, mistral, openrouter, dashscope, xai, perplexity, fireworks, deepl.
quality_gate boolean yes Stop the run if output is unreadable.
reference_values object Known values to match. (Not shown in the editor.)
save_to_db boolean yes Save to library.
save_to_file boolean no Export to file.
temperature number 0.7 Creativity.
thinking_mode string off Chain-of-thought reasoning depth. One of: off, short, medium, long.

The prompt it sends

This is what the tool asks a model, with every option left at its default. Changing the options above changes this text.

You are extracting a single section from a document.

Task: Detect every in-text citation marker in the document body (Author-Year, numeric bracket references like [12], and footnote/endnote reference markers). For each marker, infer which cited work it points to, summarize exactly HOW the author uses that source, and classify the stance. 'marker' is the literal citation marker as written. 'cited_work' is the best author/year/title label you can infer from the surrounding text. 'stance' must be one of: cites, supports, extends_reading, contests_reading, critiques, defends. 'claim_text' is a short statement of the author's use of the source. 'excerpt' is the shortest surrounding sentence or paragraph containing the citation marker. 'char_start' and 'char_end' are offsets for the marker inside the provided text chunk when you can determine them; use null when unsure. Skip bibliography entries themselves unless the body text discusses how a source is being used.

Rules:
- Include ALL occurrences.
- Only include facts supported by the text. Do not speculate.
- Write all prose in Spanish.
- For 'source_text', copy the exact sentence (or shortest   paragraph) where the claim appears, verbatim — preserve   original spelling, accents, punctuation, and any   [ilegible] / [uncertain] markers exactly as written. Do NOT   paraphrase, translate, resolve, or delete this field.
- For 'epistemic_status', tag tentative / confirmed /   rejected based on how firmly the source asserts the claim.
- For 'claim_type', tag fact / analysis / interpretation /   argument / historiography / theory based on what KIND of   knowledge the claim is.
- For 'time_start' / 'time_end', ISO 8601 (year, year-month,   or full date). Only populate when the source dates the claim   ('became alcalde in 1933', 'on 23 July 1933'). Leave empty   when the source is undated. For instant events, time_end   equals time_start.
- For 'grounds' / 'warrant', only populate when claim_type is   analysis / argument / interpretation / theory — these are   the Toulmin-model components. 'grounds' = the evidence the   source presents; 'warrant' = the rule connecting grounds to   the claim. Leave empty for plain facts.
- Return ONLY valid JSON matching this schema (no prose outside JSON):

{"citation_usages": [{"marker": "...", "cited_work": "...", "stance": "cites|supports|extends_reading|contests_reading|critiques|defends", "claim_text": "...", "excerpt": "...", "char_start": 0, "char_end": 12, "confidence": 0.8}]}