{ "name": "CAAIL: Cellular Agriculture AI Library", "corpusDate": "2026-10-30", "status": "beta", "placementsUnderReview": true, "canonical": "https://github.com/tucca-cellag/caail", "site": "https://caail.tufts.edu/", "license": "MIT (CAAIL curation). Linked third-party resources keep their own licenses.", "scopeNote": "CAAIL is a curated selection of the literature, not a complete record of the field. An empty cell means no INDEXED paper occupies it as of the corpus date (the corpusDate field). That is a limit of the index, not evidence that no such work exists.", "openapi": "openapi.json", "placementNote": "Placements are proposed by a language-model agent reading the paper's methods section, checked by a separate reviewer agent that must quote the passage it relies on, and entered by a human maintainer; placements made before that pipeline are being re-verified against full texts. Treat a cell as a substantive claim about the paper's method and application area. Where a placement is off, it is typically a closely related cell rather than a paper that does not belong, though re-verification has taken some papers out of the matrix. Cite the paper itself. How this is done, and how far it reaches: https://caail.tufts.edu/curation/", "counts": { "papersAllSections": 348, "papersBySection": { "References": 230, "Sensory & Flavor Reference Work": 12, "Metabolic Reference Work": 9, "Foundational Methods Reference Work": 9, "Livestock Functional Genomics Reference Work": 12, "Reviews & Perspectives": 76 }, "papersMatrixEligible": 230, "matrixTotalCells": 216, "matrixPopulatedCells": 78, "matrixEmptyCells": 138, "datasetsCurated": 63, "datasetsInventoryRows": 172, "datasetsTotal": 235, "software": 143, "databases": 149, "catalogTotal": 292, "fieldReportEditions": 9 }, "endpoints": [ { "path": "index.json", "use": "This manifest: corpus date, counts by population, endpoint list." }, { "path": "matrix.json", "use": "All method×area cells, empties included. Use to ask what has and has not been indexed — then read `matrixNote` in papers-index.json before reading a silence as an absence." }, { "path": "papers-index.json", "use": "START HERE for papers. Every reference, one compact row: id, title, year, first author, section, methods, areas, DOI, code/data flags. A sixth the size of papers.json, so it survives a fetch tool that truncates. Enumerate here, then fetch full records." }, { "path": "papers.json", "use": "Full records for the references you selected. Large (~554 KB): if your fetch summarises rather than returning bytes, a \"not found\" from this file is not evidence of absence." }, { "path": "catalog-index.json", "use": "START HERE for software and databases. One compact row each: slug, name, kind, group, URL, DOI, license tier. A tenth the size of catalog.json." }, { "path": "catalog.json", "use": "Full records with summaries. Large (~576 KB), two thirds of it the same summary prose as Markdown and as HTML; same truncation caveat as papers.json." }, { "path": "datasets.json", "use": "Two arrays, together the whole dataset corpus. `entries` = curated dataset entries (portals, atlases, GEMs, reference corpora, and the AI/ML benchmark and evaluation datasets on page \"Benchmarks\"; kind atlas/gem/other). `inventory` = the per-species inventory rows (kind \"inventory\") — the per-study deposits with accession, tissue, assay type and size, keyed by the source page's own column labels. Filter either by `page` (e.g. \"Cow\", \"Benchmarks\"). Use the inventory rows for \"what could I combine my own run with\", and page \"Benchmarks\" for \"what could I evaluate a model against\"." }, { "path": "reports.json", "use": "Field reports: recurring institutional state-of-field surveys (GFI State of the Industry and the like), one record per edition. When recommending one, use the record with `current: true` for its series and treat any record with a `supersededBy` id as historical only; `seriesEditions` walks the history. The latest edition is derived, so it stays correct as new editions land." }, { "path": "topics.json", "use": "Subject tree plus an inverted index: topic → items across all content types. Start here for \"what should I use for X\"." }, { "path": "taxonomy.json", "use": "What each method, area and subject theme means in CAAIL, with exclusion criteria. Read before trusting a placement. Definitions are split by vocabulary under `axes` (`area`, `method`, `theme`) because a label may appear in more than one — \"Bioprocess & Scale-Up\" is both a matrix column and a theme, with different text. `definitions` is the flat matrix lookup (areas + methods only); look a theme up under `axes.theme`. `searchTerms` is the curated search vocabulary per area and method, plus `methodGeneric` for text that applies some AI method (a generic term also listed under a method labels that method too); follow its `contract` when matching." }, { "path": "openapi.json", "use": "OpenAPI 3.1 description of every endpoint above, generated from the schemas that validate them. Read this instead of guessing a key." } ] }