Where Are the data from? what is missing?

Methodology & data ethics

How are data compiled throughout the CINEAGRI project?

The CINEAGRI dataset has been compiled from thousands of documents using multiple interlocking technologies, most of which make use of some form of large language model (LLM). Several layers of guardrails, checks and balances, and human-in-the-loop workflows ensure a baseline level of reliability. Language models have been chosen on the basis of performance audits and project-specific, task-specific bechmarks. The performance of all “moving parts” – from fundamental document pre-processors such as tokenizers, text chunkers and PDF parsers, to clustering, retrieval and ranking models and up to structured data extractors – has been tested and verified.

Nevertheless, errors may exist in the dataset, and not all available information can be feasibly extracted from all documents in the corpus. Learn about the data extraction methodology below, scroll down to learn about biases and gaps in the dataset and how the project mitigates them, or see this interactive visualization of the number of sources in the dataset. The project’s focus lies on the nitrate film era, from 1895 until ca. 1950, although not exclusively. Many sources have been included because they either originate in or discuss this time period – however, the earliest source in the corpus dates from 1789, and the latest from 2026.

On the most basic level, the CINEAGRI data extraction pipeline consists of three key stages: Corpus compilation, dataset creation, and knowledge graph extraction. Together, these stages involve the following main steps:

Corpus compilation: Digitize sources → Perform text recognition → Dataset creation: Cluster documents → Annotate them with metadata → Perform vector embedding → Knowledge graph extraction: Compile entity descriptions + Extract structured data → Deduplicate

illustrative photograph of books in multiple languages overlaid on top of each other

Source digitization

Source digitization is the point at which an archival object is turned into a digital source. The CINEAGRI corpus contains photographs and scans of tens of thousands of pages of letters, reports, tables, technical records, and other corporate documentation. All of these materials have been scanned either on location at various archives – predominantly the German Federal Archives and the Bayer AG corporate archive in Berlin (Germany), the Fotomuseum Antwerpen (Belgium), and the National Diet Library in Tokyo (Japan) – or by collecting historical documents, such as corporate history books, from antiquarian book stores. The defining feature of the collection is its multilinguality: The corpus contains primary records, secondary sources and academic literature in English, German, Dutch, French, Japanese as well as a smaller percentage of documents in other languages, covering the globally dominant photochemical manufacturers Eastman Kodak, Fujifilm, Agfa/ORWO, Gevaert, and Konica.

The project has also greatly benefited from the prior work of other archives, libraries and digitization initiatives. Information and resources digitized and made available by the Shibusawa Shashi Database, the Kobe University Library Newspaper Clippings Collection, the George Eastman Museum, the German Federal Archives, and the Internet Archive supplement the corpus.

Text recognition

Text recognition is the process of converting typewritten or handwritten documents into searchable text. Because documents in the collection are written in multiple languages, scripts, layouts and writing styles, CINEAGRI does not use one universal text recognition route. Instead, typewritten pages are generally processed with a layout-aware document-recognition vision model, while handwritten documents are digitized through a separate process. Consistent with prior research, models from the Gemini family performed exceptionally well during testing across a broad range of documents and languages, including in preserving complex layout features such as tables. They therefore form the project’s text recognition backbone. The most frequently used models were Gemini 3.1 Pro Preview (handwriting) and Pretrained Layout Parser v1.5 Pro 2025-08-25 (OCR).

These models achieve state-of-the-art text recognition and low character and word error rates. Model choice and settings have been finetuned over the course of several months based on stress tests with thousands of documents, including historical documents unrelated to the CINEAGRI dataset. As a result, the system is furnished with multiple failsafes that guard against many common types of failure. But transcription is, nevertheless, not infallible: names, dates, numbers, tables and degraded images remain especially vulnerable to error. Manual review is being performed continuously, and text recognition errors are being corrected throughout the project’s runtime.

Document clustering

A folder of digital archival images does not necessarily correspond to a single coherent set of documents. Individual pages may belong to one multi-page letter or report, while a single folder may contain correspondence, invoices, tables, attachments and unrelated notes. Document clustering is an important step in creating some order in the data – the process of grouping and ordering loose pages into logically coherent documents.

The CINEAGRI clustering pipeline relies on two clustering passes with manual review. The clustering system works by searching for evidence that two pages may belong to the same document: contiguous sentences that span across two pages, continuous page numbering, dates, letterheads, salutations, signatures, form designs, language changes, titles and changes in layout are all weighed as evidence. The output records page assignments, page order and confidence, then combines the recognized text into a document-level record with a stable identifier. The language model Gemini 2.5 Pro was used in text-only and text+image multimodal mode for document clustering. Any differences among the passes were reviewed and manually corrected where necessary, with additional spot-checks peformed intermittently across the collection to ensure clustering reliability.

Metadata extraction

After pages have been clustered into documents, the pipeline extracts descriptive metadata from each document: the document language, the document date where available, one or two keywords to describe the document type (such as ‘letter’ or ‘contract’) a list of salient topics and entities mentioned in the document, the author or issuer where supported, and a title. Gemini 2.5 Pro was used to extract dates and authors, Gemini 2.5 Flash for all other metadata categories. Metadata improves discovery and gives later retrieval and description systems important context, but it is still a form of model-assisted interpretation and can be incomplete or mistaken.

Vector embedding and document retrieval

Vector embedding is a powerful technology for interacting with multilingual sources, because it allows researchers to search texts by meaning, rather than by keywords. A vector search for a term such as “celluloid” will also surface documents that discuss related concepts and terms from other languages, such as “Zelluloid”, “セルロイド”, or “cellulose nitrate”.

To make a large multilingual collection searchable by meaning, CINEAGRI divides document text into smaller, partly overlapping sections called chunks. Each chunk carries identifying information such as the document ID and, where available, document date, type, author and title. An embedding model then translates the meaning of each chunk into a long list of numbers, known as a vector. CINEAGRI uses Gemini Embedding 001 with 3072-dimensional vectors as the embedding model due to its robust performance in multilingual settings. High-dimensional vectors are not always better in general, but our comparisons have found that the model’s maximum of 3072 does work best for retrieval of documents relevant to a wide variety of queries. Chunk length is capped at 1,800 tokens including metadata headers (tokenizer: Gemma 3 SentencePiece). The wording and task type of Gemini Embedding 001 chunk retrieval queries has been shown to affect retrieval quality, so prompts have been A/B-tested to optimize chunk relevance already prior to reranking.

Vectors are stored in a database together with the document text and metadata. This is known as a retrieval-augmented generation system, or RAG. The RAG vector database, containing more than 65,000 pages, is the heart of the CINEAGRI project. It retrieves document passages that are then used in knowledge graph extraction and to compile entity descriptions.

Because vector search alone may be ineffective when querying for terms that do not form strong semantic anchors (for example, rare words and proper names), the CINEAGRI pipeline supplements it with traditional lexical search methods, followed by a reranking pass. Semantic search is always used in combination with lexical matching for names, known aliases and other terms that vector embeddings may overlook.

Entity description compilation

The CINEAGRI atlas contains interlinked, encyclopedia-style descriptions of more than 1,000 of the most central entities in the dataset – important companies, people, materials, places, events, processes… The central entities were chosen through a combination of how frequently they are mentioned across the entire dataset and manual curation. Frequency alone is a useful but noisy indicator of importance and centrality. For example, the name “J.C. Willever” appears often in the dataset, even though J.C. Willever was not a prominent figure in the photochemical industry. But his name is part of the corporate letterhead of Western Union telegraphs, of which there are many in the corpus. That is why all central entities have been reviewed and curated by domain experts. For each of the principal languages in the collection, a separate list of frequent entities was compiled to mitigate language bias stemming from the fact that the dataset contains more documents in German and English than, for example, Dutch and Japanese.

The descriptions were compiled by a language model on the basis of text chunks from the dataset. For each entity, a language model receives up to 30 related text chunks, each up to roughly 1,350 words long, together with basic context (such as the year, author and type of document). On the basis of this information, the model compiles a description of the entity relevant to the history of photochemistry. The model is asked to take the document context into account, and to highlight contradictions in the sources (for example, when they disagree about the date of an event). Because information in the sources can be both biased and obsolete, description compilation is designed to mimic the scientific process: multiple different sources are retrieved whenever possible. But source diversity is not a guarantee of objectivity. All sources, from advertisements to corporate histories and scientific publications can be partial, outdated or contradictory.

The model only draws on documents in the CINEAGRI corpus. It does not use information from the Internet nor from its internal training data. This means that only archival sources – such as corporate correspondence, published and unpublished corporate histories, technical reports and others – and a human-curated selection of secondary literature (scientific articles, academic books and some grey literature) are used to compile descriptions and extract knowledge graph relationships. This ensures that initial data sources are of generally high quality in the sense that their provenance is known and verifiable. But this alone is, again, not a guarantee of veracity: The sources themselves may contain errors and biases.

Every entity description is verified by another language model, called the adjudicator, which receives the description text together with all referenced text chunks. The adjudicator is asked to verify whether every statement made in the description corresponds to the source chunks. Descriptions that fail the verification – either because they contain an unsourced claim, an incorrect reference, or for other reasons – are always rejected and recompiled until they pass. Only descriptions adjudicated as well-grounded or as having only minor issues (for example, a correctly referenced document with an incorrectly cited page number) are accepted. The specific compiler and adjudicator models used are indicated under each description text.

Does adjudication mean that descriptions are definitely accurate and factually correct? No. Adjudication ensures that every statement in the description text corresponds to the referenced sources. This improves information traceability, but it does not turn a biased or mistaken historical source into an accurate one. If a referenced source contains a factual mistake or outdated information, that mistake might also be present in the description and knowledge graph. The resulting text should therefore be read as a documented synthesis of claims, not as an unquestionable account of the past.

Structured data extraction

Structured data extraction turns selected text passages from the corpus into orderly, machine-readable relationships that can be visualized in a knowledge graph or timeline. The CINEAGRI knowledge graph extraction process begins with a curated entity registry. This manually reviewed, deduplicated and cleaned registry represents ca. 1,600 of the photochemical industry’s most significant entities, along with their human-verified multilingual aliases, geocoordinates, entity type information and other metadata. Included are, for example:

  • prominent people, engineers and executives of companies such as Agfa, Gevaert, Fujifilm, Konica and Eastman Kodak, along with various nicknames and spellings of their names in different writing systems;
  • the many variations and historical forms of company names such as AGFA for ‘Actiengesellschaft für Anilin-Fabrikation’;
  • materials such as gelatin, silver, or sodium nitrate with their chemical formulas, historical names and various documented distinctions, such as bone gelatin vs. hide gelatin, natural camphor vs. synthetic camphor;
  • important places such as Wolfen, Rochester or Ashigara and many others, geocoded onto modern place names.

A custom data schema, loosely modeled on CIDOC CRM and partly inspired by Wikidata, specifies a set of entity types and relationships. Person, Business, Material, Place, Government Agency, Process, Machine, and others are examples of entity types. Relationships represented in the schema include, for instance, supplier to, investor in, part of, extracted from, employs, located at, and others.

The CINEAGRI data schema specifies combinations in which they are allowed to appear. For example, only a person can be the target of an employment relationship – hence, a relationship like Agfa→EMPLOYS→Wilhelm Lohöfer is valid, but Berlin→EMPLOYS→35mm film is not. For each valid candidate relationship, a constrained extraction step identifies the subject, relationship, object, relevant qualifiers such as dates or roles, a confidence value and an evidence span.

To give a simplified example, in order to map and visualize employees of the company AGFA, we first ask the RAG system to find documents related to the question “Whom did AGFA employ?” From a pool of up to 350 documents, up to thirty results are chosen in order of relevance and passed on to the knowledge graph extractor, which combs through the text and records answers in a structured form, including useful supplemental information such as “from when until when?” or “in what role?” Each answer is linked to the specific document from which it was extracted.

GPT-5.5 is used for structured data extraction. Out of a custom benchmark of 18 commercial and open-weight models, GPT-5.5 was the top performer across multiple triple extraction metrics, including, most importantly, provenance, precision, and inventory recall. GPT-5.5 outperformed even newer frontier models such as GPT-5.6 Sol and Kimi K3. A white paper documenting the benchmark is in preparation.

A separate validation process then checks the structured output against the data schema. Claims are separated into accepted, review and rejected outputs. Only claims that pass the validation and/or human review are stored in the knowledge graph. Preserving provenance (that is: documenting which source each claim originates from) is key to the CINEAGRI knowledge graph design. The principal consideration is that every extracted claim must be traceable to its source document in the corpus.

This principle makes all relationships in the graph auditable. A user can follow every single statement back to a document, page or text span and inspect the original archival record or scientific paper. It also makes contradictions visible. For example, two documents may disagree about the exact date of a relationship. One document might say “Agfa hired Wilhelm Lohöfer in January 1923,” whereas another might state “Wilhelm Lohöfer started working for Agfa in December 1922.” The CINEAGRI knowledge graph would preserve and show both of these claims without making a judgment about which of them is correct.

Data mining, copyright and storage

A majority of the sources in the CINEAGRI dataset are in the public domain. Some are not. Dutch copyright law permits universities and cultural heritage institutions to carry out text and data mining for non-commercial scientific research on lawfully obtained copyrighted material. Prior permission from copyright holders is not required.

Data are processed by endpoints in the European Union and are not used to train or fine-tune large language models, nor for commercial purposes, nor for any purpose other than scientific research within the scope of the CINEAGRI project. Data are processed both locally and by commercial parties, whose role is limited to providing tools instrumental to the data mining. This is permitted by the EU Directive 2019/790 (Article 3, recital 11).

Data ethics: factuality, bias and absences in the dataset

Factuality warning

The CINEAGRI knowledge graph is not a repository of facts or objective truths. The language models used to extract data from historical sources are not fact-finders. It’s best to think of the dataset and knowledge graph as a structured compilation of claims, and the LLMs as collators of statements and assertions.

The data can be wrong in multiple ways. Errors can compound across the database. Before relying on it, please ensure that you understand these seven basic types of possible sources of error and bias in the data.

Archival absence

A comprehensive view of the photochemical industry is impossible because many valuable historical documents have been lost forever: Intentionally discarded or destroyed because they were considered unimportant or inconvenient; accidentally destroyed in wars or fires, or lost in relocations. Recods survive unevenly. Some periods are considerably better documented than others, and sometimes the reasons for this are completely banal.

The document collections are patchy, not a coherent series of historical records that continuously covers the entire time span in question. And the CINEAGRI dataset is composed of only a subset of those documents: another small sample of the already limited set of documents that survive.

Find out more about blind spots in the dataset and explore archival absences with the interactive document timeline.

Mistakes and biases in the original documents

Documents from which data have been compiled can be mistaken, erroneous, contradictory, or intentionally false. A large portion of the data has been compiled from company records and published and unpublished corporate history books, which may be inaccurate or may have intentionally been written to align with the company’s version of historical events or to present it in a favorable light.

The atlas is designed to highlight contradictions in the sources rather than hide them. Still, you should treat the visualized relationships and descriptions not as facts, but as statements derived from historical documents and scientific literature, both of which may be biased.

Corporate silence and long-term harm

Labor conditions, waste and pollution, and the photochemical industry’s impact on local communities and ecosystems rarely figure in corporate memory because they are inconvenient to remember. Women and their labor are also nearly entirely missing from the archival record.

The CINEAGRI knowledge graph attempts to counterbalance some of these absences is several ways. Included in the dataset is not just information from primary archival records, but also secondary scientific literature by scholars from various disciplines – such as economic and trade history, media studies, environmental humanities, and area studies – who have investigated the industry over the years. The CINEAGRI data schema makes an effort to make power relations visible by intentionally introducing entity types such as “Social Group,” an entity that is neither individual like “Person,” nor corporate like “Business,” nor governmental like “Government Agency.” This is grounded in the knowledge that some form of collective bearer entity is necessary for harm modeling, without pretending that such collectivities and relations can be defined and represented with simple dots and lines.

Harm to a community or place is often slow, durational, cumulative. Events and instances where causation is clear-cut – for example, an explosion that leads to the death of factory workers or an effluent spill that directly leads to the dying of fish in a river – are the exception. The photochemical industry has, for decades, been a major source of environmental pollution across the world. Materials needed to make film, such as camphor or salpeter, have historically fueled violent conflicts, deforestation and the destruction of ecosystems. Long-term effects that take generations to emerge and recognize are very difficult to capture and express in a knowledge graph like the one utilized by CINEAGRI.

Text recognition errors

Errors in text and handwriting recognition can result in typos and incorrect data. Names, dates and numbers, in particular, are prone to misrecognition. Tabular data, especially in historical tables, can be difficult to digitize correctly, particularly in certain cultural contexts, such as historical Japanese tables. Row and columns may shift, resulting in numerical and interpretation errors. A single misrecognized character can change a name, or the meaning of an entire sentence.

CINEAGRI makes used of text and handwriting recognition models that have been thoroughly tested and deliver state-of-the-art character and word recognition rates at the time of digitization in early 2026. Still, they are not infallible. Many of the underlying archival sources have undergone multiple rounds of photocopying or reformatting, such as from paper records to microfilm and then to digital image. Both can heavily reduce image quality and impair accuracy even when using high-performance text recognition technology. Manual OCR error correction and spot checks are being performed continuously throughout the project’s runtime, but errors cannot be eliminated entirely.

LLM extraction errors

Underlying all claims in the CINEAGRI knowledge graph is information extracted from a vector-embedded text corpus. In simple language, this means that the archival sources have been sliced into text chunks with a certain length, and the meaning of each text chunk is represented as a sequence of numbers.

This process allows us to search the data independently of language, but it has some drawbacks. The vector embedding can miss data points that are difficult to anchor semantically (such as rare proper nouns and names). Our retrieval process combines vector embedding with several lexical search strategies to increase the likelihood of discovering relevant documents, but the process may still miss important information. For each entity or relationship in the graph, several hundred chunks that are likely to contain relevant data are retrieved, and a cross-encoder model (called a reranker) orders them and selects the 30 most pertinent ones. The reranker is specifically designed to make decisions about chunk relevance, but it can misjudge the salience of a chunk to a query and leave out text passages that contain useful information.

Another LLM extracts structured relationships and compiles descriptions based on those chunks – it also makes autonomous curatorial decisions and linguistic choices. CINEAGRI has mechanisms in place to mitigate bias at all of these stages. Data extraction is designed in a way that ensures that certain types of evidence are always included in the selection set regardless of the retriever’s decision, and all descriptions are machine-verified during a separate adjudication process. The process has been carefully tuned and tested, and involves multiple stages of human review and intervention. Roughly 1,600 of the most central entities have been manually curated, linked to external databases such as Wikidata and enriched with multilingual labels and aliases to aid disambiguation and classification.

Nevertheless, multiple large language models are involved at each step, each of which weighs options without supervision and produces text and data that may differ from those a human expert might make. Language models may misunderstand or misinterpret information, and extract it incorrectly from the text, resulting in statements that are inaccurate or incomplete. A similarly spelled name might get linked to the wrong person, resulting in factual mistakes. Names from non-Latin writing systems may have been transliterated wrong, or, in the case of Japanese names, even their pronunciation may be uncertain. The spelling of Western names, while more stable, can also be ambiguous: Surnames like “Ilgner” are sometimes spelled “Jlgner” in historical sources. A large language model can fail to recognize that these two spellings refer to the same person.

An extractivist worldview

The CINEAGRI knowledge graph is, in large part, an archive of corporate worldviews. Places – such as mines and forests – are often treated as “resources” in that worldview. Adopting that language potentially reproduces an extractivist understanding of the world in which places, communities and living beings are viewed primarily as carriers of extractable financial value. The CINEAGRI knowledge graph models and visualizes this worldview, but this should not be understood as an endorsement, but as documentation.

This is also true of key relations in the knowledge graph such as “owner of,” which implicitly encode a legal system of property, and corporate property as the default relation to land and materials. As a small counterbalance, the CINEAGRI data schema has introduced relation types such as “custodian of” (which documents non-proprietary relationships of care, such as stewardship of land) and “exposed to” (which documents harms, such as environmental pollution), but these are considerably more difficult to identify in and deduce from corporate records.

A colonial vocabulary

A portion of the data has been extracted from sources from the early 20th century, created or published during an era of colonial and imperialist expansionism. This means that the dataset contains entities and names that are now obsolete, considered harmful or culturally insensitive, or that may recall the atrocities of imperialist conquests or colonial and military occupation. Place names have been mapped to contemporary appellations where known, but colonial names and terms may persist.

Scroll to Top