“饮食男女,人之大欲存焉。”
— 《礼记・礼运》, via 李安 Eat Drink Man Woman (1994).
Food, love, and — apparently — a 1975 Bombay catering shift are among the great desires.
tangragraph is a small-corpus, honestly-bounded replication of the
Ahn et al. 2011 and
Jain et al. 2015
food-pairing framework applied to a specific fusion cuisine that neither paper
covers: Indian-Chinese, the cuisine invented in the Hakka tanneries of
Tangra, Kolkata (c. 1778 onward) and coined-into-a-national-phenomenon by
Nelson Wang at the Cricket Club of India, Bombay, in 1975.
In one question:
If Sankar 2017 argues qualitatively that Indian-Chinese cuisine is "neither Indian nor Chinese", where does it sit quantitatively when you run the same flavor-pairing metric that everyone else has been running on everyone else's cuisines for fifteen years?
The four canonical faces of Indian-Chinese. Left to right: Chicken Manchurian by Miansari66 (CC0) · Vegetable noodles and gobi manchurian by Siya Bedi (CC BY-SA 4.0) · Hakka Noodles Veg by Farhana Sayyed (CC BY-SA 4.0) · Schezwan fried rice by Thamizhpparithi Maari (CC BY-SA 4.0). All four photographs were sourced from Wikimedia Commons; no illustrations.
“只要用心,人人都是食神。”
— 周星驰, 食神 (God of Cookery), 1996. We did not bring 心 — we brought an 829 kB zip file and a grep pipeline.
- 📦 Input: the Ahn 2011 public dataset (1529 ingredients × 1107 flavor compounds × 36,781 edges, mirrored on Zenodo), the Ahn 2011 recipe corpora for nine reference cuisines, and one newly-authored YAML corpus of 40 canonical Indian-Chinese dishes normalised to the same ingredient vocabulary.
- 📐 Output: one ΔNs coordinate for Indian-Chinese, placed next to the same metric computed from the same pipeline on American, French, Italian, Chinese, Korean, Thai, Japanese, Mexican, and Indian.
- 🎯 Headline: ΔNs(Indian-Chinese) = −0.31, sitting between ΔNs(Chinese Ahn corpus) = −0.86 and ΔNs(Indian Ahn corpus) = +0.18. Sankar's "neither" has a coordinate now.
- 🌶️ Bonus: the "Manchurian" name audit. Of 7 hallmark Dongbei ingredients (fermented cabbage, pork, chive, star-anise, sweet potato, bay, wheat), only 2 appear in Wang's Manchurian family. Real Manchuria eats suan cai and pork; Nelson Wang invented chicken in red sauce and named it after a province he'd never visited.
- ✅ Verified: 24 tests, including 5 Tier-1 published-sign regressions (East Asian negative, North American strongly positive, French positive) and 3 IC-signature tests that fail loudly if the observed ΔNs ordering flips.
The flattering thing about running a pipeline on a claim food writers have been making for a decade is that the qualitative answer is already in the literature. Sankar (Journal of Ethnic Foods 4(4), 2017) did qualitative fieldwork in Dharavi, Mumbai, scraped restaurant blogs, and wrote:
"The Chinese food served in India is intrinsically Indianized Chinese food… a distinct cuisine neither Indian, nor Chinese." — Sankar 2017
Sankar's method was symbolic analysis — serving styles, restaurant iconography, menu language. No ingredient graph, no pairing score, no numbers. Our contribution is the number: the Ahn/Jain food-pairing framework lands IC at ΔNs = −0.31, which is literally between its two parent cuisines on the same axis. The popular shorthand "Indian-Chinese is just Indian food with soy sauce" or "Indian-Chinese is just fake Chinese food" both turn out to be strictly wrong under this metric. Sankar's neither survives quantification.
The project's central fact is that Nelson Wang coined the name Chicken Manchurian in 1975 without thinking especially hard about it. Wang was a 25-year-old caterer, born to Hakka Chinese parents in Kolkata, working the Chinese banquet menu at the Cricket Club of India in Bombay. A diner asked for something not on the menu. Wang coated chicken in cornstarch, deep-fried it, and tossed it in a sauce of garlic, ginger, green chilli, soy sauce, vinegar, and a generous base of Indian spices. He called it Manchurian — after a region he had never visited, 4,500 km from the dish's actual kitchen of origin — and it became the single most widely sold restaurant dish in India.
This repository quantifies the distance between "Manchurian" the word and Manchuria the place:
| what "Chicken Manchurian" claims | what Dongbei (Manchuria) actually eats |
|---|---|
| chicken, sauce, restaurant dish | pork, stew, winter dish |
| fresh ingredients + cornstarch | fermented cabbage (suan cai), potato-starch noodles |
| served with fried rice / Hakka noodles | served with wheat dumplings (饺子), steamed buns |
| central aromatic: green chili + red chili powder | central aromatic: star anise + chive + bay |
| canonical chef: Nelson Wang, Bombay 1975 | canonical chefs: Harbin / Shenyang / Changchun, c. 1880–present |
Each row is a documented fact. Each documented fact has a source in the
## Sources section below.
“That's why they call it an original — because you never saw it before.”
— Nelson Wang, on inventing the dish, interview via Homegrown (2022).
Stage 1 — Kolkata (1778 – 1960s): the Hakka kitchen meets the Indian pantry
─────────────────────────────────────────────────────────────────────────────
[Cantonese-Hakka cooking] ──(substitutions: tofu→paneer, bok choy→capsicum,
dark soy+garam masala, etc.)──▶
Tangra Chinatown menu, c. 1900, serving Indian diners
▼
Hakka Noodles (name intact, recipe Indianised)
Chilli Chicken (Cantonese stir-fry + capsaicin load)
🔥 "Only the name 'Hakka' continues without change,
but the Hakka dishes have been changed to suit the Indian taste."
— commonly cited observation, Tangra food-historians
Stage 2 — Bombay (1975 →): Nelson Wang invents the Manchurian family
─────────────────────────────────────────────────────────────────────
[Off-menu diner request, CCI] ──(improvisation)──▶ fried cornstarch chicken
▼
tossed in Tangra-lineage wok sauce
▼
arbitrarily named "Manchurian"
▼
national adoption throughout the 1980s and 1990s
▼
Gobi Manchurian (veg) and Schezwan fried rice (misspelling intact)
join the canon
⚡ "This is how liberty dies.
With thunderous cornstarch."
— not exactly Padmé Amidala
The literature on food-pairing analysis has covered:
- the Ahn 2011 world-cuisine set (Western-European, North-American, East Asian, Latin American, Southern European — roughly, 11 regions);
- the Jain 2015 Indian regional set (Bengali, Gujarati, Jain, Maharashtrian, Mughlai, Punjabi, Rajasthani, South Indian);
- the Varshney 2013 Medieval European replication (with a public cautionary tale about data quality);
- a Chinese regional variant (Zhu 2013 PLOS ONE);
- and roughly a dozen follow-ups covering Algerian, Saudi, Turkish, Brazilian and other cuisines.
No existing study tests a fusion cuisine under this framework. That gap has two kinds of interest. First, if the food-pairing hypothesis is a real signal of how a cuisine evolves, then fusion cuisines should inherit or interpolate between parents in a measurable way. Second, if Varshney 2013's critique is correct — that the hypothesis is brittle under corpus choice — the fusion case is an especially sharp test: if the signal survives a 30-to-50-dish corpus of an inherently hybrid menu, the underlying framework is less fragile than Varshney's case for medieval European suggests.
Either outcome is informative. Below is what we actually observed.
"मेरे पास माँ है।" — Shashi Kapoor, Deewar, 1975. The same year Nelson Wang, a Calcutta Hakka, tossed a plate of fried chicken in ginger-garlic-soy at the Cricket Club of India and named it after a province he had never visited. Indian cinematic history and Indian culinary history share a calendar year that, somehow, nobody ever makes a film about.
The honest origin is that this author was eating Gobi Manchurian at a strip-mall Indian-Chinese restaurant in Fremont, California, saw the word "Schezwan" on the laminated menu, and wondered whether there was a way to measure how Sichuan the dish wasn't. The Ahn/Jain framework turned out to be an answer — not the answer, but an answer — that required no new math and no new data. The rest of this repository is what that one wondering produced.
All six figures are produced by tangra figures from the bundled data.
Matplotlib style: Nature single-column, Okabe-Ito colour-blind palette
(Wong 2011, Nature Methods), 300 dpi PDF + PNG.
Mean recipe size (x) vs ΔNs (y) for nine reference cuisines drawn from the Ahn 2011 Epicurious + allrecipes + menupan dump. The dashed line at ΔNs = 0 separates negative food pairing (recipes avoid compound-sharing ingredient pairs — the East Asian pattern) from positive food pairing (ingredient pairs share more compounds than random — the North American pattern). The red star is this repository's Indian-Chinese corpus at (13.6, −0.31).
"The Force is strong with this one." — Darth Vader. The Force here is a random-shuffle null model with n_nulls = 25.
For every common ingredient (prevalence ≥ 20 % in at least one of IC / Chinese / Indian), we plot the Laplace-smoothed log-odds ratio of IC prevalence against each parent. Quadrant membership is the cultural story:
- Top-right (IC-distinctive): ingredients IC amplifies over both
parents —
soy_sauce,starch,sesame_oil,scallion,vinegar,egg_noodle,bell_pepper,carrot,sugarcane,cabbage. This is the Hakka-lineage stir-fry pantry transposed onto Indian produce. - Top-left (Chinese-dominated):
riceis the only ingredient IC uses less than Chinese and more than Indian. IC's starch call is overwhelmingly noodles, not rice, which bends rice toward Chinese. - Bottom-right (Indian-dominated):
cumin,turmeric,yogurt,onion— Indian staples IC politely skips. - Bottom-left (parents both beat IC):
pork,butter,wine,coriander,fenugreek— ingredients neither Tangra nor Wang adopted.
"Neither Indian nor Chinese" rendered as a 2D diagram.
Panel A. For each of 7 hallmark ingredients of real Dongbei (Manchuria) cuisine, is it present (green) or absent (vermillion) in any dish of the IC Manchurian family (Chicken / Gobi / Paneer / Vegetable / Mushroom / Baby-corn Manchurian)? Hallmark coverage: 2 / 7 ≈ 29%. Cabbage and wheat are the two hits. Cabbage is a generic stir-fry vegetable; wheat is in Hakka noodles. Neither carries a Dongbei signal.
Panel B. After removing "scaffolding" (garlic, ginger, scallion, oil, pepper, vinegar, soy sauce — present in every East Asian cuisine), the IC Manchurian family and the Dongbei canonical corpus share only a handful of ingredients. The two cuisines are largely disjoint.
“这是东北菜吗?” — 任何一个真正的东北人 on being served Chicken Manchurian.
The IC corpus is 40 recipes. Reporting a single ΔNs estimate at that sample size is not defensible. This figure shows the 95% bootstrap CI (200 resamples, 20 nulls per resample) for the IC corpus, plotted next to point estimates from the same pipeline on the Chinese, Indian (Ahn corpus), and French reference corpora.
The yellow band marks the range reported by Jain 2015 for their eight Indian regional cuisines (ΔNs from −0.76 to −4.52 on a TarlaDalal-based corpus). The Ahn corpus's "Indian" slice, as published, sits at +0.18 in our pipeline — which disagrees with Jain and which we think is an artefact of Ahn's Indian sample being drawn from Western recipe aggregators. That disagreement is discussed in the FAQ below.
Panel A. For each of the most-used ingredients, the fraction of recipes
in each cuisine that contain it. IC's top rows — soy_sauce, garlic,
vinegar, ginger, black_pepper, scallion — sit at 1.00 or near it,
consistent with a stir-fry pantry. Indian spices (cumin, turmeric,
coriander) collapse to ≤ 0.10 in IC despite > 0.45 in Indian.
Panel B. The amplification bar: IC prevalence minus the stronger of
the two parent prevalences. Positive bars mark ingredients IC uses more
than either parent does on its own — the IC-distinctive set. Negative
bars mark parent-dominated ingredients. Cornstarch, scallion,
sesame_oil, cabbage, bell_pepper are canonical amplifications.
The per-ingredient view of the negative-pairing signal. For each IC ingredient we compute its mean contribution to Ns when it appears in a recipe (average compounds shared with its pantry-mates), minus the prevalence-weighted null expectation. Strongly negative values are ingredients that tend to co-occur with pantry-mates that share fewer compounds than average — they pull IC below the zero line.
potato, cottage_cheese (paneer), tomato, cauliflower, bell_pepper,
onion are the mechanistic drivers: they are chemically dissimilar
from the rest of the IC pantry, so every time Nelson Wang reached for a
handful of capsicum or a slab of paneer, he moved his cuisine further
into negative-pairing territory. The positive ingredients at the bottom
(coriander, pepper, mung_bean) are small-effect and rare in IC; they
raise Ns only when they show up.
This is what "IC inherits its pairing structure from the Hakka-Chinese branch" means at the ingredient level.
| Check | Source of truth | Result |
|---|---|---|
| East Asian negative food pairing | Ahn et al. 2011, Scientific Reports 1, 196, DOI 10.1038/srep00196 | Chinese ΔNs = −0.86 ✅ ; Korean ΔNs = −0.96 ✅ ; Japanese ΔNs = −0.11 ✅ |
| North American strongly positive food pairing | Ahn 2011, Fig. 3 | American ΔNs = +1.63 ✅ (same direction, same magnitude band) |
| Western European positive food pairing | Ahn 2011 | French ΔNs = +0.55 ✅ |
| Ingredient-graph loads without Farnesol self-loop | Ahn 2017 ingr_comp/README.md erratum |
Farnesol (id 339) correctly dropped ✅ |
| Sankar 2017's "neither Indian nor Chinese" holds quantitatively | Sankar, Journal of Ethnic Foods 4(4), pp 268–273, ScienceDirect | IC ΔNs = −0.31 lies between Chinese (−0.86) and Ahn-Indian (+0.18) ✅ |
| Nelson Wang, Chicken Manchurian origin: 1975, CCI, Hakka descent | Wikipedia + SCMP + Homegrown | Dates and biography confirmed ✅ |
| Tangra population peaked at ~20,000 Hakka, now ~2,000 | Wikipedia: Tangra + Global Chinese migration case study (PMC) | Used as context; not a numerical CI claim |
24 tests, all passing. See tests/test_golden_baselines.py for the
direction-of-sign regressions, tests/test_ic_signature.py for the IC
positioning claim, tests/test_manchuria_audit.py for the name audit.
Two dishes from our 40-dish IC corpus in a single frame: chilli chicken (dry-style) and vegetable fried rice. Photo by Charlie4404 (CC BY-SA 4.0).
$ tangra pair IndianChinese --bootstrap
Pairing signature — IndianChinese
n_recipes (in scope) 40
mean recipe size 13.60
Ns (observed) 4.18
Ns (null mean) 4.47
ΔNs = Ns - null −0.31
vocabulary coverage 100%
MSG-tagged fraction 90%
95% bootstrap CI (n=200): ΔNs = −0.31 [−0.63, +0.00]The CI is wide, because 40 recipes is not many. The sign is stable — every bootstrap replicate produced a non-positive ΔNs — and the ordering Chinese (−0.86) < IC (−0.31) < Ahn-Indian (+0.18) is robust to the choice of null-shuffle seed.
Exhibit A: the dish named *Manchurian* in 1975 at the Cricket Club of India, Bombay — 4,500 km from the Manchurian plain. Photo by Miansari66 (CC0).
$ tangra audit
The 'Manchurian' audit: IC Manchurian family vs Dongbei canon
IC 'Manchurian' dishes counted 6
Dongbei canonical dishes 8
shared (any) black_pepper, cabbage, carrot, chicken,
egg, garlic, ginger, scallion, soy_sauce,
starch, sugarcane, tomato, vegetable_oil,
vinegar, wheat
shared (drop scaffolding) cabbage, carrot, chicken, egg, starch,
sugarcane, tomato, wheat
Dongbei hallmarks present in IC cabbage, wheatTwo out of seven. The name is ceremonial.
Exhibit B: mapo doufu, photographed at 陳麻婆豆腐店 (Chen Mapo Doufu Restaurant, Chengdu) — the canonical 19th-century Sichuan original. Representative of the Ahn-2011 Chinese slice that lands at ΔNs = −0.86. Photo by Kos88 (CC BY-SA 4.0).
$ tangra verify ahn-chinese
Tier-1 golden checks
Ahn Chinese negative pairing ✓ ΔNs=−0.86, n=221If Ahn's Zenodo data ever drifts in a way that breaks this, CI turns red.
Exhibit C: 锅包肉 (guō bāo ròu), Liaoning style. Invented in Harbin c. 1907 by Zheng Xingwen of the Daotai Mansion — a real, documented Dongbei (Manchuria) dish. Side by side with Nelson Wang's 1975 Bombay namesake, the geography becomes the joke. Photo by N509FZ (CC BY-SA 4.0).
$ tangra pair Manchuria
Pairing signature — Manchuria
n_recipes (in scope) 8
mean recipe size 9.00
Ns (observed) 3.12
Ns (null mean) 3.94
ΔNs −0.83Real Dongbei, at n=8, still comes out as cleanly negative as broader Chinese. That is to say: a corpus of 8 carefully-chosen dishes, with real Dongbei hallmarks, reproduces the East-Asian pattern — while the Bombay restaurateur's namesake fusion does not. "Chicken Manchurian" is further from Manchuria than Manchuria is from itself.
“看起来像是 Chinese 菜,吃起来是 Indian 菜,名字是 Manchurian — 三者各取其一。”
— 蔡澜, on being served Indian-Chinese in Bombay (paraphrase, 1990s newspaper column).
# uv (recommended)
uv venv
uv pip install -e ".[dev]"
# or plain pip
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"The Ahn 2011 zip is bundled as data/ahn2011_flavor_network_data.zip
(829 kB, MIT-licensed redistribution from
Zenodo 11449658). Unzip once:
cd data && unzip ahn2011_flavor_network_data.zip && rm -rf __MACOSXtangra cuisines # list all cuisines Ahn 2011 includes
tangra pair Chinese # compute Ns / ΔNs for any Ahn cuisine
tangra pair IndianChinese --bootstrap
tangra verify all # Tier-1 baseline regressions
tangra audit # the Manchurian name audit
tangra figures # regenerate all 5 figures
tangra demo # everything end-to-end
pytest # 24 tests, ~1 minutetangragraph/
├── tangragraph/ # package (stdlib + matplotlib + pyyaml + typer)
│ ├── flavor.py # Ahn 2011 ingredient-compound loader
│ ├── corpus.py # Ahn recipe reader + YAML corpus loader
│ ├── pairing.py # Ns + frequency-preserving null + ΔNs
│ ├── bootstrap.py # 95% bootstrap CI
│ ├── audit.py # Manchuria name audit
│ ├── figures.py # five Nature-style figures
│ └── cli.py # typer CLI (tangra …)
├── data/
│ ├── ahn2011_flavor_network_data.zip # bundled Zenodo mirror (MIT)
│ ├── ingr_comp/ # 1529 ingredients, 1107 compounds, 36.7k edges
│ ├── scirep-cuisines-detail/ # Ahn's per-cuisine recipe dump
│ ├── pantry_ic.yaml # IC → Ahn vocabulary map, with honest gaps
│ ├── corpus_ic.yaml # 40 canonical IC dishes
│ └── manchuria_canon.yaml # 8 Dongbei canonical dishes (Dunlop 2023 etc.)
├── tests/ # 24 passing tests; 5 Tier-1 golden
├── figures/ # auto-regenerated PDF + 300-dpi PNG
├── assets/ # title banner (SVG) + 7 Wikimedia-Commons dish photos
└── docs/ # verification notes (optional)
Is 40 dishes really enough? No, not for the kind of claim Jain 2015 made with 2,543 recipes. That is why we report the bootstrap CI, which is honestly wide, and why we lean on the direction and ordering of the signal rather than the point estimate. If you have a larger IC corpus — e.g. the full TarlaDalal Indian-Chinese section, or the Sanjeev Kapoor Indo-Chinese cookbook fully ingredient-normalised — we would very much like a pull request.
Why is Ahn's own Indian corpus reading positive here? We reproduce
Ahn's Fig. 3 East-Asian signal exactly, but our Indian recomputation on
their bundled Epicurious + allrecipes slice comes out at ΔNs = +0.18 —
mildly positive. Jain 2015, using their own TarlaDalal.com scrape, got the
opposite: every one of eight Indian regional cuisines was negative, with
ΔNs between −0.76 and −4.52. The most defensible reading is that the
"Indian" slice inside Western recipe aggregators is Americanised Indian
cuisine — fewer whole spices per dish, more dairy, more simplified spice
blends — and that cuisine-via-corpus is not the same thing as
cuisine-in-the-ground-truth-kitchen. This is the
Varshney 2013
concern in a nutshell, and we do not try to resolve it; we state the
tension and leave the reader to weigh which corpus speaks for "Indian
cuisine".
MSG is the signature of Indian-Chinese. Why isn't it in your figures?
Because Ahn's flavor network, by construction, is a graph of volatile
aroma compounds — the stuff you smell. MSG (monosodium glutamate,
ajinomoto in Indian kitchens since its Ikeda-1908 isolation) contributes
pure umami taste via a non-volatile glutamate anion. It has no aroma
fingerprint. So the single ingredient most responsible for the
"Chineseness" Indian diners perceive in their IC restaurant food is
structurally invisible to this metric. We tag per-dish MSG presence as
metadata (90% of our IC corpus is MSG-canonical) but do not and cannot
count it toward ΔNs. This is the most important methodological limitation
in the repo.
Same for Sichuan peppercorn? Exactly. Hydroxy-α-sanshool, the tingling
alkamide (Bautista 2008 Nat. Neurosci.)
that makes real Sichuan food make your lips vibrate, is a non-volatile
alkamide. Ahn has no node for Sichuan peppercorn; we fall back to generic
pepper, with the understanding that the signature molecule is outside
the framework's vocabulary. Schezwan sauce in India does not have sanshool
in the first place, so for our IC corpus this is a loss of precision, not
a distortion.
Does this actually prove anything about Indian-Chinese cuisine? It quantifies one specific claim (Sankar 2017's "neither") on one specific framework (Ahn 2011) with one specific corpus (ours, 40 dishes). What we can say: under the Ahn/Jain methodology, the IC signature is robustly negative and sits between its two parents. What we cannot say: that the IC signature is causally Cantonese-Hakka-inherited, that MSG matters as much as food history implies, or that the result would hold under a much larger corpus. Those would require more data and more framework.
Why not use FlavorDB instead of Ahn 2011? FlavorDB (Garg et al. 2018, Nucleic Acids Research) is a larger, more recent resource (2,254 molecules × 936 ingredients) from Bagler's lab at IIIT-Delhi — the same lab that published Jain 2015. Using it would be legitimate but would not help replicate Ahn 2011's baseline. Our design choice was to stay in one data layer for the baseline regression tests. A parallel FlavorDB branch is a natural next step and is open as a good-first PR.
What if a future Ahn data update changes the numbers? CI turns red. The Tier-1 tests encode the published sign of each baseline and will fail loudly if any of them flip. We prefer that to silent rot.
Can I add dishes to the IC corpus? Yes. Edit data/corpus_ic.yaml
and confirm every ingredient exists in data/ingr_comp/ingr_info.tsv. The
test_ic_full_vocab_coverage test will protect you from typos.
- Ahn, Y.-Y., Ahnert, S. E., Bagrow, J. P., & Barabási, A.-L. (2011). Flavor network and the principles of food pairing. Scientific Reports 1, 196. DOI 10.1038/srep00196. Data on Zenodo 11449658 (MIT).
- Jain, A., Rakhi, N. K., & Bagler, G. (2015). Analysis of Food Pairing in Regional Cuisines of India. PLOS ONE 10(10): e0139539. DOI 10.1371/journal.pone.0139539.
- Jain, A., Rakhi, N. K., & Bagler, G. (2015). Spices form the basis of food pairing in Indian cuisine. arXiv 1502.03815.
- Varshney, L. R., Varshney, K. R., Wang, J., & Myers, D. (2013). Flavor Pairing in Medieval European Cuisine: A Study in Cooking with Dirty Data. IJCAI workshop paper, Semantic Scholar.
- Garg, N., et al. (2018). FlavorDB: a database of flavor molecules. Nucleic Acids Research 46, D1210–D1216. DOI 10.1093/nar/gkx957.
- Park, D., et al. (2021). FlavorGraph: a large-scale food-chemical graph… Scientific Reports 11, 931. Nature link.
- Sankar, A. (2017). Creation of Indian-Chinese cuisine: Chinese food in an Indian city. Journal of Ethnic Foods 4(4), 268–273. ScienceDirect.
- Banerji, C. (2007). Eating India: Exploring the Food and Culture of the Land of Spices. Bloomsbury.
- Dunlop, F. (2023). Invitation to a Banquet: The Story of Chinese Food. Particular Books.
- Lee, J. 8. (2008). The Fortune Cookie Chronicles. Twelve. Parallel story for the American-Chinese case.
- Sanghvi, V. Rude Food (HT column + 2004 book). Extensive writing on the Wang/Manchurian story.
- Wikipedia: Indian Chinese cuisine, Tangra, Kolkata, Nelson Wang, Northeastern Chinese cuisine, Chinese people in India. Consolidated as history, verified against the academic sources above.
- Homegrown (2022). How a Cricket Club Gave Birth to India's Favourite Chicken Manchurian.
- SCMP (2023). Chicken Manchurian story: India's Chinese-inspired iconic fusion dish and the rise of Chindian cuisine.
- Spatial Histories (2022). Hakka Noodle: The Story of the Kolkata Chinese.
- Global Chinese migration case study (PMC, 2021). Kolkata case study.
- Whetstone Magazine. Sauces, Spices and Immigration: The Genesis of Kolkata's Chinese Cuisine.
- 李安, 饮食男女 / Eat Drink Man Woman (1994). Opening line from the 礼记・礼运 chapter.
- 周星驰, 食神 / The God of Cookery (1996).
- Deewar (1975), Yash Chopra. Same calendar year as Chicken Manchurian.
- Ratatouille (2007), Pixar. "Anyone can cook" is the Remy version of Stephen Chow's "人人都是食神"; this is not accidental.
- Ikeda, K. (1908). New seasonings. Reprinted in Chemical Senses 27(9), 847–849 (2002). DOI 10.1093/chemse/27.9.847. The discovery of glutamate umami and the reason Ahn's graph is blind to the ingredient most responsible for the Indian-Chinese restaurant experience.
- Bautista, D. M., et al. (2008). Pungent agents from Szechuan peppers excite sensory neurons by inhibiting two-pore potassium channels. Nature Neuroscience 11, 772–779. DOI 10.1038/nn.2143. Why real Sichuan tingles and why Ahn's graph does not see it.
- Okabe, M. & Ito, K. Color Universal Design (CUD) palette used in every figure. See also Wong, B. (2011). Points of view: Color blindness, Nature Methods 8, 441.
MIT on the code; see LICENSE. Bundled Ahn 2011 data is also
MIT, per the per-directory LICENSE files included in the Zenodo archive.
Our YAML corpora are released under the project MIT licence; each recipe
entry names the consensus sources it was consolidated from.
Please do not launch a restaurant chain named "tangragraph". Please do not feed anyone Chicken Manchurian and claim it is from Manchuria. If you visit Tangra, please support one of the few remaining family-run restaurants — the community is down to roughly 2,000 people.
"只要用心,人人都是食神。"
— 周星驰, 食神. With heart, anyone is the God of Cookery. Without heart, at least anyone with a grep pipeline can be a referee.
- Yong-Yeol Ahn, Sebastian Ahnert, James Bagrow, and Albert-László Barabási — for publishing a dataset and a method that have held up to fifteen years of replication attempts, including this one.
- Ganesh Bagler and the Cosylab group at IIIT-Delhi — for Jain 2015 and FlavorDB, both of which fix the "Ahn's Indian corpus is Americanised" problem in the right way.
- Nelson Wang — for the dish and the anecdote. Without both this repository would lack its load-bearing comedy.
- Fuchsia Dunlop — for Invitation to a Banquet, which got the real Dongbei canon into our Stage-1 reading list.
- Chitrita Banerji, Vir Sanghvi, and Amitav Ghosh — for writing about Indian food in a way that made a pipeline like this one feel continuous with a much older conversation.
- Amal Sankar — for writing Sankar 2017 and ending the abstract with "neither Indian, nor Chinese", which turned out to be a coordinate in a graph.
- Philip K. Dick — for the shape of this question. Do Androids Dream of Electric Sheep? is the correct title of any project that wants to know whether a thing is really another thing.
- George Lucas — for the precedent that a popular name (parsec, Tatooine, Manchurian) can be wrong in the same load-bearing way for generations, provided the popular name is catchy enough.
Built with a public Zenodo dataset and somebody else's fifteen-year-old pairing metric. If this repo helps your teaching, consider citing Ahn 2011, Jain 2015, and Sankar 2017 before citing this repository.












