| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| provenance:literature:corpus [2026/09/04 08:29] – Review-section headings: DokuWiki does not process '' '' inside a heading, so it rendered the quote marks literally. Authored by Claude karel.kubicek.claude | provenance:literature:corpus [2026/09/17 08:14] (current) – Record mirror decision and sitemap caveat; Authored by Claude karel.kubicek.claude |
|---|
| The two full sentences are missing from ''paper.txt'' and ''paper.norm.txt'' for the ordinary reason: those renderings keep the columns side by side, so no sentence spanning a line is contiguous in them. That is the entire reason ''paper.cols.txt'' exists. | The two full sentences are missing from ''paper.txt'' and ''paper.norm.txt'' for the ordinary reason: those renderings keep the columns side by side, so no sentence spanning a line is contiguous in them. That is the entire reason ''paper.cols.txt'' exists. |
| |
| ==== Why it was believed: the tool called ''grep'' here is not grep ==== | ==== Why it was believed: the tool called grep here is not grep ==== |
| |
| ''pdftotext'' writes U+0000 wherever a PDF's font encoding maps a glyph to nothing. That paper's ''paper.cols.txt'' has **181** of them, so it is a binary file to any grep. What happens next depends on which grep, and the one you get by typing ''grep'' in this agent's shell is **not the one installed on the machine**: | ''pdftotext'' writes U+0000 wherever a PDF's font encoding maps a glyph to nothing. That paper's ''paper.cols.txt'' has **181** of them, so it is a binary file to any grep. What happens next depends on which grep, and the one you get by typing ''grep'' in this agent's shell is **not the one installed on the machine**: |
| | Q1 | Do the quotes the retracted section named exist in the stored renderings? | one paper, PoPETs 2025 ''more-and-scammier-ads-…'' | 4 quotes + 10 authors | all present in ''paper.cols.txt''; the retraction is Q0 of this page | | | Q1 | Do the quotes the retracted section named exist in the stored renderings? | one paper, PoPETs 2025 ''more-and-scammier-ads-…'' | 4 quotes + 10 authors | all present in ''paper.cols.txt''; the retraction is Q0 of this page | |
| | Q2 | How many stored renderings does a shell grep report nothing for? | every extraction record | 5,859 papers | 90 (1.5%), holding 2,156 of 135,025 quotes | | | Q2 | How many stored renderings does a shell grep report nothing for? | every extraction record | 5,859 papers | 90 (1.5%), holding 2,156 of 135,025 quotes | |
| | Q3 | How many quotes does the stored rendering fail to locate? | quotes with a verdict on both sides | 135,004 quotes | 1,708 (1.3%) — the same count ''report_corpus.mjs --quotes'' reports over all 135,025 | | | Q3 | How many quotes does the stored rendering fail to locate? | quotes with a verdict on both sides | 135,004 quotes | 1,708 (1.3%) — the same count ''report_corpus.mjs %%--quotes%%'' reports over all 135,025 | |
| | Q4 | How many of those does an independent PDF rendering find? | the 1,708 | 1,708 quotes | **1,250 (73.2%)**; 511 verbatim | | | Q4 | How many of those does an independent PDF rendering find? | the 1,708 | 1,708 quotes | **1,250 (73.2%)**; 511 verbatim | |
| | Q5 | How many quotes can neither rendering locate? | the same 135,004 | 135,004 quotes | 458 (0.34%) | | | Q5 | How many quotes can neither rendering locate? | the same 135,004 | 135,004 quotes | 458 (0.34%) | |
| ===== 4. The reproduction check that makes the rest usable ===== | ===== 4. The reproduction check that makes the rest usable ===== |
| |
| ''report_cols_vs_pdf.mjs'' does not approximate ''report_corpus.mjs --quotes'': its four-verdict function is copied from it, including the ''fragmented'' anchor search. Run on the same day, on the same records: | ''report_cols_vs_pdf.mjs'' does not approximate ''report_corpus.mjs %%--quotes%%'': its four-verdict function is copied from it, including the ''fragmented'' anchor search. Run on the same day, on the same records: |
| |
| ^ Verdict ^ ''report_corpus.mjs --quotes'' ^ this audit ^ Difference ^ | ^ Verdict ^ ''report_corpus.mjs %%--quotes%%'' ^ this audit ^ Difference ^ |
| | exact | 78,450 | 78,435 | 15 | | | exact | 78,450 | 78,435 | 15 | |
| | an 8-word run survives | 49,425 | 49,419 | 6 | | | an 8-word run survives | 49,425 | 49,419 | 6 | |
| * **The geometry detector has no negative control.** It is 60 for 60 on pages ''decolumn.mjs'' reflowed, which bounds its false negatives. Nothing bounds its **false positives**: no set of known single-column pages was assembled and put through it. If it over-calls two-column, the 22,475 estimate is too high, and the 0.6–1.0 band's unexplained 47.5% is the shape that would suggest. This is the weakest link in that number. | * **The geometry detector has no negative control.** It is 60 for 60 on pages ''decolumn.mjs'' reflowed, which bounds its false negatives. Nothing bounds its **false positives**: no set of known single-column pages was assembled and put through it. If it over-calls two-column, the 22,475 estimate is too high, and the 0.6–1.0 band's unexplained 47.5% is the shape that would suggest. This is the weakest link in that number. |
| * **Whether a third reader would agree with ''pypdf''.** ''pdftotext'', ''pdfminer'', ''PyMuPDF'', ''pdfplumber'', ''mutool'', ''qpdf'' and ''ghostscript'' are all absent from this container. Every "present in the PDF" verdict rests on one reader whose own not-found rate (2.3%) is worse than the rendering it audits (1.3%). The 73.2% is a lower bound in one sense — a better reader would rescue more — and unreplicated in another. | * **Whether a third reader would agree with ''pypdf''.** ''pdftotext'', ''pdfminer'', ''PyMuPDF'', ''pdfplumber'', ''mutool'', ''qpdf'' and ''ghostscript'' are all absent from this container. Every "present in the PDF" verdict rests on one reader whose own not-found rate (2.3%) is worse than the rendering it audits (1.3%). The 73.2% is a lower bound in one sense — a better reader would rescue more — and unreplicated in another. |
| * **One paper still has no second rendering.** ''NDSS/2025/mtzk-testing-and-exploring-bugs-in-zero-knowledge-zk-compilers'' uses AES encryption, so ''pypdf'' needs the ''cryptography'' package. ''pip install cryptography'' is refused here by PEP 668, and ''--break-system-packages'' was **declined** rather than risk the container for one paper's 21 quotes. Anyone with a normal Python environment can close this in one command. | * **One paper still has no second rendering.** ''NDSS/2025/mtzk-testing-and-exploring-bugs-in-zero-knowledge-zk-compilers'' uses AES encryption, so ''pypdf'' needs the ''cryptography'' package. ''pip install cryptography'' is refused here by PEP 668, and ''%%--break-system-packages%%'' was **declined** rather than risk the container for one paper's 21 quotes. Anyone with a normal Python environment can close this in one command. |
| * **The 57 pages that already publish a per-page quote-check figure.** Each was computed against the stored rendering alone and each overstates its failure rate. They were not re-run; only [[statistics:hypothesis_testing]] was, because its own figures prompted the audit. The list, so the next editor does not re-derive it, is every page matching ''quote_check %%|%% quotecheck %%|%% below threshold %%|%% five-word windows %%|%% 5-word windows'' over a fresh export: ''design:website:classification'', ''privacy:fingerprinting'', ''privacy:tcf:consent:strings'', ''programming:crawler'', ''programming:crawler:detection'', ''programming:crawler:foxhound'', ''programming:crawler:llm:agents'', ''programming:crawler:pagegraph'', ''programming:crawler:panoptichrome'', ''programming:crawler:webxray'', ''provenance:artifacts'', ''provenance:design:archives'', ''provenance:design:existing:datasets'', ''provenance:design:ip:classification'', ''provenance:design:longitudinal'', ''provenance:design:mobile:and:app:measurement'', ''provenance:design:platforms'', ''provenance:design:website:classification'', ''provenance:practices:ethics'', ''provenance:practices:legal:enforcement'', ''provenance:privacy:ads:txt'', ''provenance:privacy:browser:extensions'', ''provenance:privacy:browser:protection'', ''provenance:privacy:browser:storage'', ''provenance:privacy:consent'', ''provenance:privacy:cookie:syncing'', ''provenance:privacy:email:tracking'', ''provenance:privacy:fingerprinting'', ''provenance:privacy:javascript'', ''provenance:privacy:privacy:sandbox'', ''provenance:privacy:server:side:tracking'', ''provenance:privacy:tcf:consent:strings'', ''provenance:programming:crawler'', ''provenance:programming:crawler:detection'', ''provenance:programming:crawler:foxhound'', ''provenance:programming:crawler:llm:agents'', ''provenance:programming:crawler:openwpm'', ''provenance:programming:crawler:pagegraph'', ''provenance:programming:crawler:panoptichrome'', ''provenance:programming:crawler:webxray'', ''provenance:programming:interaction'', ''provenance:programming:interaction:outputs'', ''provenance:programming:stateful:stateless'', ''provenance:programming:traffic:files'', ''provenance:programming:tranco'', ''provenance:security:tls:certificates'', ''provenance:security:web:vulnerabilities'', ''provenance:statistics:biases'', ''provenance:statistics:how:many:sites'', ''provenance:statistics:hypothesis:testing'', ''provenance:statistics:pvalue:corrections'', ''provenance:statistics:regression'', '' |