Skip to content

Extracting Interrogatory Questions and Answers Into Paired Records

9 min read · updated August 11, 2026

Written discovery pairs beautifully on the page: numbered question, numbered response, repeat. The pairing is the easy half. The half that decides whether the extracted data is worth anything is telling apart a response that answers and a response that only objects, because both occupy the same slot and use much of the same language.

Pair on the number, not on adjacency

Responses are conventionally headed with the interrogatory number and, in most practice, restate the interrogatory text before answering. That produces a document where every interrogatory appears twice — once as propounded and once as quoted in the response — and a pipeline that pairs by document order will happily match a quoted question to the following response and then match the same response to the next question as well.

Pair on the parsed number instead, with the document role recorded on each side. Numbers are not always contiguous: a set may begin at 16 because it continues an earlier set, may skip numbers withdrawn by agreement, and may contain lettered subparts. Extract the number as a string and normalise separately, because 7, 07 and SEVEN all occur.

Subparts are the part most schemas get wrong. An interrogatory with parts (a) through (f) may be answered in a single paragraph addressing three of them. Pairing at the interrogatory level then records a complete response to a question that was two-thirds ignored. Where the interrogatory is subdivided, model the subparts as their own rows with their own response status, even when the response is not subdivided — the unanswered subparts are the interesting output.

The sentence that separates an objection from an answer

A response may consist entirely of objections. It may consist of objections followed by an answer given anyway. The transition between the two is a formula that appears with small variations in an enormous proportion of American written discovery: words to the effect of “subject to and without waiving the foregoing objections, responding party states”.

That formula is the marker. Everything before it is objection; everything after it is the substantive response. Where the formula is absent and the text is objections alone, there is no substantive response at all, however long the objections run — and they run long, which is exactly why a length heuristic or a naive “summarise the answer” prompt produces a fluent paragraph describing objections as though they were facts.

So classify every response into a small closed set before extracting anything from it:

  • substantive — an answer with no objection.
  • objection_then_substantive — objections, the reservation formula, then an answer. Store the objection grounds and the answer separately.
  • objection_only — objections and nothing else. No facts to extract; the grounds are the content.
  • incorporation_only — the response points elsewhere rather than stating anything.
  • no_response — the number appears in the set and nothing follows it.

The objection grounds themselves are a small vocabulary worth extracting as a list rather than as prose — vague and ambiguous, overbroad, unduly burdensome, not proportional to the needs of the case, calls for a legal conclusion, attorney-client privilege, work product, and so on. A list makes the set searchable across a matter, which a paragraph does not. Constrain it with an enumeration and allow an “other” value with the verbatim text attached, which is the general answer to designing a schema for variants you have not seen and is supported by structured output.

Responses that point somewhere else

Two kinds of pointer are routine and both look like answers.

The first is internal: “See response to Interrogatory No. 4”. Resolve it, but resolve it as a link rather than by copying the target text into the record — if response 4 is later supplemented, a copied answer becomes wrong while a link does not. Record the pointer even after resolution, because the fact that a party answered by cross-reference is itself something people ask about.

The second is external: an answer that identifies business records from which the answer may be derived, typically by Bates range. That response is complete on its own terms and contains no facts, so the extraction should capture the referenced range as structured data — prefix, start, end — and set the response type accordingly. A pipeline that stores the sentence as an answer creates a record asserting that the party said something about the underlying question, which they did not.

Reservation boilerplate is the third case and the most common: a closing sentence to the effect that discovery and investigation are continuing and the party reserves the right to supplement. It is present in most responses, carries no facts, and will otherwise be extracted as part of every answer, polluting any downstream similarity or search work with a phrase that appears everywhere. Strip it, but store the fact that it was present.

Supplemental sets and verification

Discovery responses are supplemented, and a supplemental set is a separate document that replaces specified numbered responses and leaves the rest standing. This is the same document-set problem as a codicil to a will, and the same solution applies: the unit is the set of documents in a matter, each with its own identity and service date, and supersession is recorded per number rather than per document.

response_sets:
  1  "Responses to Plaintiff's First Set"                served 2024-02-14  nos. 1–22
  2  "First Supplemental Responses"                      served 2024-05-30  nos. 4, 9, 17
  3  "Second Supplemental Responses"                     served 2024-09-06  no. 9

effective no. 4  ← set 2
effective no. 9  ← set 3
effective no. 17 ← set 2
effective others ← set 1

Verification is the other document-level fact worth extracting. Interrogatory answers are conventionally verified by the party under oath on a signed page, while objections are signed by counsel. A response set served without its verification page is a state that people track, so record whether a verification is present, who signed it, and the date — as observed facts about the document, without drawing any conclusion from them.

What breaks

  • The quoted interrogatory outranks the real one. If you only have the response document, the interrogatory text you extract is a quotation of it, and quotations are sometimes abbreviated. Record the source document for both halves of every pair.
  • Numbering restarts between sets. A second set beginning again at 1 collides with the first unless the set identity is part of the key.
  • General objections at the front. A block of objections stated once and incorporated into every response. They belong at set level, not copied onto every row, and a model reading one response in isolation will never see them.
  • Definitions and instructions read as interrogatories. The preamble is numbered too, in its own sequence, and looks structurally identical. Anchor on the heading keyword, not on the numbering pattern.