← Blog

Access points, full text and RAG

  • JaniumCollect
  • Janium
  • AI

A language model can, on paper, take hundreds of thousands or millions of tokens, but in practice it uses far fewer. Norman Paulsen measured this systematically: he defines a maximum effective context window (MECW) —the stretch of input beyond which adding tokens no longer improves the answer, and often makes it worse— and compares it with the window vendors advertise. In his sample, most models degrade clearly around a thousand tokens of context; some fail with a few hundred. The gap from the architectural maximum can exceed 99 percent, and the kind of problem shifts that threshold, so there is no single number (Paulsen, 2025).

That is not an argument against RAG; it is a fact about how much context it is worth giving the model, and when.

What RAG solves, and where it falls short

RAG (retrieval-augmented generation) starts from a sound idea: the model does not have to memorize the holdings. A handful of fragments close to the query are retrieved and handed over so it can draft an answer. Tightly bounded —few fragments, relevant, under the effective window— the same study finds accuracy can approach one hundred percent. That is the use worth defending: a natural-language question over a set of documents, with a synthesized answer.

The limit appears when RAG is treated as the index of the holdings. Retrieving more so as “not to miss anything” pushes the prompt past the effective window: Paulsen observes that a RAG that injects high token counts lowers performance instead of raising it. On top of that sits what was already known: the model attends worse to what sits in the middle of the context (Liu et al., 2023), and how the document is chunked decides what can be retrieved. A fragment that is too large dilutes; one that is too small cuts the sentence that mattered.

For asking “what does this file say about clause X?” that can be mitigated. For finding in a catalog —the author, the subject, the exact title, every work by one person, the volume that starts with a letter— the bottleneck is not drafting an answer but having stable access points to search and browse.

What Collect leaves ready to search

Collect uses the model at the moment of description, not at every query. It reads the material —a PDF, an image, a spreadsheet, a recording— and identifies the work. From the document it surfaces the access points: the headings by which the record will be found —names, subjects, titles, dates— and, when there is a match, leaves them in authorized form. They are not a paragraph for the model: they are the entries Janium loads into its indexes.

That is what the catalog already knows how to search, in three ways Janium’s product sheet distinguishes:

  • By keyword in the specialized indexes those headings feed.
  • Alphabetically in authorities: every work by an author, every subject that starts with a letter, the title in its normalized form.
  • Full text in the linked digital objects, when there is a body to index.

Corporate extensions

In a book, author, title and subject are enough as access points. In a contract, a minute or a management report, what has to be found does not fit in those three. Collect, when the output format carries corporate extensions (Dublin Core or ISAD-G), extracts from the document a separate block of headings:

  • people with their role (signatory, representative, borrower)
  • organizations and the part they play
  • amounts, with concept and currency
  • critical dates (expiry, signature, term) and their criticality
  • guarantees and collateral
  • cited clauses, duties to perform and restrictions
  • relationships between entities that the text states
  • places and subjects

They are not a legal analysis, nor a second pass of the model at query time, but fields: Collect surfaces them once and Janium loads them as specialized indexes, so the query “contracts with this person, this company and amounts above a threshold, signed in such a year” is resolved against those indexes, not by walking the text or injecting it into the model again.

What the document does not state is not filled in. A clause is cited if it is there and a corporate relationship only if the text says so — the same criterion as always: complete what can be identified, mark provenance, and leave empty what cannot be sustained.

The model intervenes once, at cataloging, and the reader’s query does not go through an LLM again or through a token ceiling. The result stays the same as the holdings grow, because the cost of describing is not paid again on every search.

That enrichment has the risk we have already named: a plausible piece of data can be false. That is why the record marks provenance when there is an authority, scores each description and flags those that should be reviewed. The access point can be inspected; a fragment retrieved in a RAG cannot.

The markdown, if the text is needed

Collect can also deliver, besides the record, the extracted text in markdown: what the document said, already in a form that can be indexed. That does not replace the access points; it covers another question: “on which page does this phrase appear?”.

That markdown is indexed as full text in Janium (or another lexical engine). Keyword search is no longer limited to the record’s fields and reaches the body. It is still an index, not a generation: there is no context window that saturates when the fonds grows from thousands to hundreds of thousands of pages.

The same markdown can, if the institution wants it, feed embeddings. There RAG makes sense again —as an optional layer, on text that is already clean and already anchored to a record— not as the only way to find a work. Whoever needs a drafted answer (“compare these three clauses”) retrieves a few passages and stays under the effective window. Whoever needs the author or the call number does not have to go through that.

Three layers, one collection

It is not Collect or RAG, but an order:

  1. Access points in the catalog — what Collect surfaces and Janium searches alphabetically, by keyword and, if there are corporate extensions, by amount, expiry, clause or obligation. It is the layer a collection has to sustain even if nobody asks a question in natural language.
  2. Full text of the markdown — when a phrase has to be located, not just the description.
  3. Embeddings / RAG — when something has to be synthesized or compared, with few fragments and knowing the model’s effective ceiling.

Paulsen’s study does not say RAG is exhausted. It says the model stops using the context long before the data sheet claims, and that a RAG that ignores that ceiling hurts itself. Collect uses the model where it pays off —identifying and completing a record, once— and leaves in Janium a catalog that does not depend on fitting into that window again.

If your institution is weighing whether “putting the holdings in a RAG” replaces cataloging them, the useful question is another: which queries you have to answer every day. The ones that are answered with an access point or a phrase from the document do not need a generated paragraph. The ones that do can rest on the markdown Collect already left ready. If you want to see it with a sample of your own material, write to us at info@janium.com.