Inferensys

Prompt

Direct Quotation and Paraphrased Claim Extraction Prompt

A practical prompt playbook for using Direct Quotation and Paraphrased Claim Extraction Prompt in production AI workflows.
Developer doing prompt engineering on laptop, prompt variations visible on screen, casual coding session.
PROMPT PLAYBOOK

When to Use This Prompt

Define the job, reader, and constraints for the Direct Quotation and Paraphrased Claim Extraction Prompt.

This prompt is designed for editorial verification teams and AI pipeline builders who need to extract factual claims from source content and rigorously distinguish between verbatim direct quotations and paraphrased assertions. The core job-to-be-done is to produce a structured inventory of claims where each item is tagged with its quotation type (direct_quote or paraphrase), the exact original text, and the attributed speaker or source. This is not a general-purpose claim extraction prompt; it is specifically for workflows where misattributing a paraphrase as a direct quote, or vice versa, carries high editorial, legal, or reputational risk.

Use this prompt when you are processing interview transcripts, press releases, reported speech in articles, legal testimony, or any content where the precise wording and attribution of a statement must be preserved for downstream verification. The ideal user is a verification engineer integrating this into a fact-checking pipeline, or an editorial operations lead setting up a human-in-the-loop review queue. Do not use this prompt if you only need atomic claim decomposition without quotation fidelity, or if your source material does not contain attributed speech. In those cases, the Atomic Claim Extraction Prompt Template is a better fit. You must also avoid this prompt when the source text is heavily redacted or anonymized, as the attribution metadata will be unreliable.

Before wiring this into a production harness, you must define clear validation rules. The primary failure mode is misattribution: a paraphrased claim being incorrectly tagged as a direct quote and linked to a speaker who never said those exact words. A secondary failure mode is context-stripping, where a direct quote is extracted but the surrounding hedging or conditional language is dropped, changing its meaning. To mitigate this, your implementation should log the quotation_type and attributed_to fields for every extracted claim and route any claim where the extraction confidence is below a defined threshold for human review. The next section provides the exact prompt template you will need to implement this extraction logic.

PRACTICAL GUARDRAILS

Use Case Fit

Where this prompt works and where it does not. Use these cards to decide if the Direct Quotation and Paraphrased Claim Extraction Prompt is the right tool for your verification pipeline.

01

Good Fit: Editorial Verification Teams

Use when: Your workflow requires distinguishing verbatim quotes from paraphrased assertions for editorial review, fact-checking, or content QA. The prompt excels at tagging quotation type and preserving attribution metadata. Guardrail: Always pair with a human review step for high-stakes editorial decisions.

02

Bad Fit: Unstructured or Noisy Transcripts

Avoid when: Source content lacks clear speaker attribution, contains overlapping dialogue, or has heavy transcription errors. The prompt relies on identifiable attribution signals and may misattribute paraphrased content to wrong speakers. Guardrail: Pre-process transcripts with speaker diarization and clean attribution markers before extraction.

03

Required Inputs: Attribution-Rich Source Text

What to watch: The prompt needs source content with explicit or strongly implied speaker attribution. Without clear attribution anchors, quotation type tagging becomes unreliable. Guardrail: Validate that source material includes named speakers, quotation marks, or clear attribution phrases before running extraction.

04

Operational Risk: Paraphrase Misattribution

Risk: The model may incorrectly assign paraphrased content to a speaker who did not make the statement, especially when multiple speakers discuss similar topics. This is the primary harness concern for this prompt. Guardrail: Implement a verification step that cross-references extracted claims against original speaker context and flags ambiguous attributions for human review.

05

Operational Risk: Quotation Boundary Errors

Risk: The model may truncate or extend quotation boundaries incorrectly, capturing partial quotes or merging adjacent statements. This distorts the fidelity of verbatim extraction. Guardrail: Add eval checks that compare extracted quote spans against original source punctuation and speaker transitions. Log boundary mismatch cases for prompt refinement.

06

Pipeline Fit: Upstream of Evidence Matching

Use when: This prompt feeds into downstream evidence matching or fact-checking workflows where quotation type metadata determines evidence retrieval strategy. Verbatim quotes require exact-match source comparison; paraphrased claims require semantic matching. Guardrail: Ensure downstream systems consume the quotation type tag and adjust matching logic accordingly. Do not treat all extracted claims as equivalent.

PROMPT PLAYBOOK

Copy-Ready Prompt Template

A reusable prompt for extracting direct quotations and paraphrased claims from source content, with quotation type and attribution metadata.

This prompt template separates verbatim quoted claims from paraphrased assertions in source content, producing structured output with quotation type tags and attribution metadata. Use it when downstream verification workflows need to distinguish exact wording from interpretive restatements—a critical distinction for quote accuracy checks, editorial review, and source fidelity scoring. The template expects source content and optional context about speakers and publication metadata. Do not use this prompt for general claim extraction without quotation tracking; use the Atomic Claim Extraction Prompt Template instead.

code
You are an editorial verification assistant. Your task is to extract claims from the provided source content and classify each as a direct quotation or a paraphrased assertion. For each claim, preserve the original wording, identify the speaker or source, and attach quotation type metadata.

## INPUT
Source Content: [SOURCE_CONTENT]
Known Speakers and Roles: [SPEAKER_MAP]
Publication Context: [PUBLICATION_CONTEXT]

## OUTPUT SCHEMA
Return a JSON object with a "claims" array. Each claim object must include:
- "claim_id": string, unique identifier for this claim
- "claim_text": string, the exact claim text as it appears or is implied in the source
- "quotation_type": enum, one of ["direct_quote", "paraphrase", "mixed"]
- "original_wording": string or null, the verbatim source text for direct quotes; null for pure paraphrases
- "speaker": string or null, the attributed speaker or source entity
- "speaker_role": string or null, the speaker's role or affiliation if known
- "source_location": string, reference to where the claim appears (paragraph number, line, or section)
- "context_window": string, surrounding sentences that provide context for the claim
- "attribution_confidence": enum, one of ["explicit", "implied", "ambiguous"]
- "attribution_evidence": string, the text that establishes the speaker attribution

## CONSTRAINTS
- Do not merge claims from different speakers into a single claim object.
- When a direct quote is embedded within a paraphrase, classify as "mixed" and include both the quoted portion and the paraphrased portion.
- If speaker attribution is ambiguous or missing, set "attribution_confidence" to "ambiguous" and note the ambiguity in "attribution_evidence".
- Do not invent speaker attributions. If the source does not identify the speaker, set "speaker" to null.
- Preserve the original wording exactly for direct quotes, including any grammatical errors or stylistic choices.
- For paraphrased claims, the "claim_text" should capture the asserted fact without adding interpretation.
- Return only the JSON object. No additional commentary.

## EXAMPLES
[EXAMPLES]

## RISK LEVEL
[RISK_LEVEL]

Adaptation guidance: Replace [SOURCE_CONTENT] with the article, transcript, or document text. Populate [SPEAKER_MAP] with known speaker names and roles to improve attribution accuracy—this is especially important for interview transcripts and multi-speaker content. Use [PUBLICATION_CONTEXT] to provide date, publication name, and document type, which helps the model resolve ambiguous references. The [EXAMPLES] placeholder should contain 2-3 few-shot examples showing correct extraction for direct quotes, paraphrases, and mixed cases. Set [RISK_LEVEL] to "high" when the output feeds into publication or compliance workflows; this signals downstream harnesses to enable human review gates. For production use, add a [CONSTRAINTS] section specifying maximum claims per document and any domain-specific attribution rules. Validate outputs against the schema before ingestion, and route any claim with attribution_confidence: "ambiguous" to human review.

IMPLEMENTATION TABLE

Prompt Variables

Required and optional inputs for the Direct Quotation and Paraphrased Claim Extraction Prompt. Each variable must be populated before the prompt is sent to the model. Validation notes describe how to check the input before execution.

PlaceholderPurposeExampleValidation Notes

[SOURCE_TEXT]

The full document, article, transcript, or content block from which claims will be extracted

The CEO stated that revenue grew 30% year-over-year, which analysts described as 'remarkable growth' in a challenging market.

Required. Must be non-empty string. Check for encoding issues, truncated text, or missing paragraph breaks that could break quotation boundaries.

[EXTRACTION_MODE]

Controls whether the prompt extracts only direct quotations, only paraphrased claims, or both types

both

Required. Must be one of: 'direct_only', 'paraphrased_only', 'both'. Reject any other value before prompt assembly.

[ATTRIBUTION_REQUIRED]

Specifies whether every extracted claim must include speaker or source attribution metadata

Required. Boolean. When true, the prompt will flag claims with missing attribution as incomplete. When false, unattributed claims are allowed but marked as 'attribution_unknown'.

[MAX_CLAIMS]

Upper bound on the number of claims the prompt should extract to control output size and cost

50

Optional. Integer. If null or omitted, the prompt extracts all claims. If set, the prompt prioritizes the most salient claims. Validate as positive integer before use.

[CONTEXT_WINDOW_SIZE]

Number of characters of surrounding context to preserve with each extracted claim for downstream verification

300

Optional. Integer. Defaults to 200 if omitted. Controls how much source text is attached to each claim for evidence matching. Validate as positive integer.

[SPEAKER_MAP]

A mapping of speaker identifiers to full names and roles to improve attribution accuracy in multi-speaker content

{"SPK1": "Jane Doe, CEO", "SPK2": "John Smith, Analyst"}

Optional. JSON object. If provided, the prompt uses this map to normalize speaker references. Validate as valid JSON with string keys and string values. Null allowed for single-speaker content.

[OUTPUT_SCHEMA_VERSION]

Schema version identifier for the output format to support prompt versioning and downstream parser compatibility

v2.1

Optional. String. If omitted, the prompt uses the latest schema version. Validate against known schema versions in your pipeline. Mismatched versions should trigger a parser warning.

PROMPT PLAYBOOK

Implementation Harness Notes

How to wire the Direct Quotation and Paraphrased Claim Extraction Prompt into a production verification pipeline with validation, retries, and human review gates.

This prompt is designed to sit at the front of a claim extraction pipeline where source content contains both verbatim quotes and paraphrased assertions. The implementation harness must handle three distinct concerns: input preparation (chunking source text with speaker metadata intact), output validation (ensuring quotation type tags and attribution fields are present and consistent), and downstream routing (sending verbatim quotes to quote-accuracy verification while paraphrased claims go to fact-checking). The prompt itself is stateless, so the harness owns all context management—tracking which speaker said what, preserving original text spans for later comparison, and maintaining document-level provenance across multiple extraction calls.

Wire the prompt into your application with a pre-processing layer that segments source content into speaker-attributed chunks. Each chunk should carry a speaker ID, speaker name, and the raw text span. If your source is a transcript, use diarization metadata. If it's a written article, parse attribution cues like 'according to' or 'said.' The prompt template's [SOURCE_TEXT] placeholder receives the chunk, while [SPEAKER_CONTEXT] receives a structured object with available speaker names and IDs. After the model responds, run a validation layer that checks: (1) every extracted claim has a quotation_type field set to either verbatim or paraphrased, (2) verbatim claims include an original_quote field that matches a substring of the source text (use fuzzy string matching with a configurable threshold, typically 0.85 similarity), (3) paraphrased claims do not contain verbatim text spans longer than 5 consecutive words from the source, and (4) the attributed_to field maps to a valid speaker ID from the input context. Claims failing validation should trigger a retry loop—resubmit the same chunk with the validation errors appended as [CORRECTION_NOTES] in a follow-up call, up to 2 retries before routing to human review.

For model choice, prefer models with strong instruction-following and structured output capabilities (GPT-4o, Claude 3.5 Sonnet, or equivalent). Set temperature to 0 or near-zero to minimize variation in quotation boundary detection. If your pipeline processes high-volume content, consider batching multiple speaker-attributed chunks into a single prompt call with clear delimiters, but cap batch size at 5-8 chunks to avoid attribution confusion. Logging should capture: the input chunk, speaker context, raw model output, validation results, retry count, and final accepted or rejected status. Store the original source text span alongside each extracted claim for downstream quote-accuracy verification. For high-risk editorial workflows (e.g., publishing corrections, legal review of attributed statements), always route claims where quotation_type is verbatim but the fuzzy match score falls below 0.95 to a human reviewer before the claim enters any published verification report. Avoid wiring this prompt directly into a publish action without a review gate when attribution errors could cause public misquotation harm.

IMPLEMENTATION TABLE

Expected Output Contract

Defines the structure, types, and validation rules for each field in the extracted claims output. Use this contract to build downstream parsers, database schemas, and evaluation checks.

Field or ElementType or FormatRequiredValidation Rule

claim_id

string (UUID v4)

Must be a valid UUID v4 string. Uniqueness check across the entire output array.

claim_text

string

Must be non-empty. Length must be between 10 and 2000 characters. Must be a single, self-contained assertion.

quotation_type

enum: 'direct_quote' | 'paraphrase' | 'partial_quote'

Must be one of the three allowed enum values. If 'direct_quote', the claim_text must match the source text exactly.

speaker_label

string

Must be non-empty. Must match a named entity extracted from the source. If the speaker is the author, use 'author'.

source_location

object

Must contain 'document_id' (string), 'paragraph_index' (integer >= 0), and 'text_offset' (object with 'start' and 'end' integers). Start must be less than end.

confidence_score

number (float)

Must be a float between 0.0 and 1.0 inclusive. Represents the model's self-assessed confidence in the extraction boundary and speaker attribution.

original_context

string

Must be non-empty. Must contain the full sentence or paragraph from which the claim was extracted. Used for human review verification.

extraction_timestamp

string (ISO 8601)

Must be a valid ISO 8601 UTC timestamp string. Parses correctly with standard date libraries.

PRACTICAL GUARDRAILS

Common Failure Modes

Direct quotation and paraphrased claim extraction breaks in predictable ways. These are the most common production failure modes and how to guard against them before they reach downstream verification.

01

Paraphrase Drift from Source Meaning

What to watch: The model rephrases a claim and subtly shifts its meaning, turning a hedged statement into a definitive one or altering the scope. This is the most common and dangerous failure because downstream fact-checking operates on the distorted claim. Guardrail: Require the prompt to output both the extracted paraphrase and the original source text side by side. Add an eval step that compares semantic similarity between the original and paraphrase, flagging pairs below a threshold for human review.

02

Misattribution of Paraphrased Content

What to watch: The model assigns a paraphrased claim to the wrong speaker, especially in multi-party transcripts, interviews, or articles that mix author narration with quoted sources. A claim from the journalist gets attributed to the interviewee. Guardrail: Include explicit attribution fields in the output schema and require the model to cite the sentence or passage that justifies the attribution. Add a validation check that the attributed speaker actually appears in the cited source segment.

03

Quotation Marks Without Verbatim Text

What to watch: The model wraps text in quotation marks and tags it as a direct quote, but the text is actually a paraphrase or contains altered wording. This creates false confidence in downstream quote-accuracy checks. Guardrail: Add a strict constraint in the prompt that direct quotes must be character-for-character matches with the source. Include a post-extraction diff check against the source text for any claim tagged as a direct quotation, and downgrade to paraphrase if differences are detected.

04

Context-Stripping That Reverses Meaning

What to watch: The model extracts a claim but drops the surrounding negation, conditional, or limiting clause. 'The company did not confirm the layoffs' becomes 'The company confirmed the layoffs.' Guardrail: Require the output schema to include a context window field with the full surrounding paragraph. Add an eval that checks extracted claims against negation words and conditional phrases in the context window, flagging claims where the context contains a polarity reversal not reflected in the extraction.

05

Silent Claim Dropping on Ambiguous Text

What to watch: The model encounters a sentence with unclear attribution, nested claims, or ambiguous phrasing and simply omits it from the output without warning. Valid claims disappear from the verification pipeline. Guardrail: Add an instruction to output an explicit 'skipped' category with reasons when claims cannot be cleanly extracted. Include a coverage check in the harness that compares the number of source sentences to the number of extracted or explicitly skipped claims, flagging low coverage ratios.

06

Compound Claim Merging Across Speakers

What to watch: The model merges partial statements from two different speakers into a single attributed claim, creating a Frankenstein assertion that neither person actually made. Common in interview transcripts and panel discussions. Guardrail: Enforce a one-claim-per-speaker-per-sentence rule in the prompt. Add a validation step that checks whether any extracted claim pulls text from source segments attributed to different speakers, and split or flag those claims.

IMPLEMENTATION TABLE

Evaluation Rubric

Use this rubric to test the quality of extracted claims before integrating the prompt into a production verification pipeline. Each criterion targets a specific failure mode common to quotation and paraphrase extraction.

CriterionPass StandardFailure SignalTest Method

Quotation Type Tag Accuracy

Every extracted claim is correctly tagged as 'direct_quotation' or 'paraphrase' with no misclassifications

A verbatim quote tagged as 'paraphrase' or a reworded statement tagged as 'direct_quotation'

Spot-check 20 random claims against source text; require 100% tag accuracy on this sample

Speaker Attribution Correctness

Each claim's [SPEAKER] field matches the actual speaker in the source, including unnamed speakers marked as 'unidentified'

Quote attributed to wrong person or paraphrased claim assigned to a speaker who did not make the underlying statement

Cross-reference [SPEAKER] values against source bylines, interview labels, and pronoun antecedents; zero tolerance for misattribution

Verbatim Quote Fidelity

Claims tagged 'direct_quotation' reproduce the source text exactly, including punctuation, capitalization, and internal quotation marks

Added words, removed words, altered punctuation, or silently corrected grammar inside a direct quote

Diff each direct quotation against its source span using exact string match; flag any deviation for human review

Paraphrase Semantic Preservation

Claims tagged 'paraphrase' preserve the original meaning without introducing new claims, removing qualifiers, or shifting certainty

Paraphrase adds a factual assertion absent from the source, drops a hedging term like 'might' or 'allegedly', or reverses the claim polarity

Have a reviewer compare each paraphrase to its source span and confirm meaning equivalence; sample 10 paraphrases per batch

Claim Atomicity

Each extracted claim contains exactly one verifiable assertion; compound claims are decomposed into separate entries

A single claim entry contains multiple assertions joined by 'and', 'but', or 'while' that could be verified independently

Count assertions per claim entry using a conjunction split test; any entry with more than one verifiable assertion fails

Context Window Completeness

Each claim includes a [CONTEXT] field with the full surrounding sentence or paragraph needed to understand the claim without distortion

[CONTEXT] is truncated mid-sentence, omits a necessary preceding sentence, or is missing entirely

Check that [CONTEXT] contains at least one complete sentence before and after the claim span; verify no meaning shift when claim is read in isolation

Null Handling for Missing Attribution

Claims where the speaker cannot be determined have [SPEAKER] set to null with [ATTRIBUTION_CONFIDENCE] below 0.5

Missing speaker is guessed, filled with a generic label like 'source', or left as an empty string

Search output for empty string or placeholder speaker values; confirm null fields have corresponding low confidence scores

Schema Compliance

Every output record includes all required fields: [CLAIM_ID], [CLAIM_TEXT], [QUOTE_TYPE], [SPEAKER], [CONTEXT], [SOURCE_LOCATION], [ATTRIBUTION_CONFIDENCE]

Missing fields, extra fields not in schema, or fields with wrong data types

Validate output against JSON schema; reject any record that fails required-field or type checks

ADAPTATION OPTIONS

Adapt This Prompt

How to adapt

Use the base prompt with a frontier model (GPT-4o, Claude 3.5 Sonnet). Remove strict JSON schema requirements and accept markdown-formatted claim lists. Focus on getting the quotation type tagging right before adding pipeline constraints.

code
Extract claims from [INPUT_TEXT]. For each claim, tag it as:
- "direct_quote": verbatim from a named speaker
- "paraphrase": restated in the author's words
- "ambiguous": unclear attribution

Include the original text span and speaker name.

Watch for

  • Paraphrased claims being misattributed to the wrong speaker when multiple people are mentioned in the same paragraph
  • Direct quotes being tagged as paraphrases when quotation marks are missing in the source
  • The model silently dropping claims it considers unimportant
Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.