% generated by tables/make_tables.py from ./literature_synthesis/agent_E/contributions.csv \begin{table}[htbp]\centering\caption{Specialist screening of the 234 AI/ML landmark candidates: records by primary category and data-quality flag.}\label{tab:ai_landmark_flags} \begin{threeparttable}\small \begin{tabular}{lrrrrrrrr} \toprule \textbf{Primary category} & \textbf{abstract\_mismatch} & \textbf{identifier\_mismatch} & \textbf{no\_abstract} & \textbf{normalisation\_artefact} & \textbf{off\_scope} & \textbf{ok} & \textbf{year\_implausible} & \textbf{total} \\ \midrule Large language models & 1 & 7 & 4 & 2 & 0 & 19 & 0 & 33 \\ Foundation models & 0 & 0 & 6 & 0 & 0 & 19 & 0 & 25 \\ Multimodal AI & 0 & 0 & 5 & 0 & 0 & 20 & 0 & 25 \\ Generative AI & 0 & 0 & 5 & 1 & 1 & 18 & 0 & 25 \\ AI agents & 0 & 0 & 2 & 1 & 4 & 18 & 0 & 25 \\ Reinforcement learning & 0 & 1 & 4 & 1 & 4 & 12 & 3 & 25 \\ ML theory & 1 & 1 & 6 & 2 & 0 & 11 & 4 & 25 \\ DL architectures & 0 & 3 & 4 & 0 & 0 & 14 & 4 & 25 \\ AI safety and alignment & 1 & 1 & 4 & 0 & 1 & 19 & 0 & 26 \\ \bottomrule \end{tabular} \begin{tablenotes}\footnotesize\item Flags assigned by Agent E from title, venue, identifiers, citation counts and (where available) the abstract: identifier\_mismatch = title/abstract do not correspond to the arXiv identifier or citation count attached to the record; abstract\_mismatch = stored abstract belongs to another work; year\_implausible = OpenAlex year contradicts the first publication; normalisation\_artefact = very small c36 with very large NCS36; off\_scope = not an AI contribution; no\_abstract = metadata only. `ok' records were judged from the abstract.\end{tablenotes} \end{threeparttable}\end{table}