ifct2017 2.0.14 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +1019 -71
  3. package/abbreviations/index.csv +78 -0
  4. package/abbreviations/index.d.ts +39 -0
  5. package/abbreviations/index.js +103 -0
  6. package/abbreviations/index.txt +12 -0
  7. package/about/build.ts +31 -0
  8. package/about/index.d.ts +47 -0
  9. package/about/index.js +110 -0
  10. package/about/index.txt +174 -0
  11. package/build.ts +115 -0
  12. package/carbohydrates/index.csv +8 -0
  13. package/carbohydrates/index.d.ts +42 -0
  14. package/carbohydrates/index.js +112 -0
  15. package/carbohydrates/index.txt +14 -0
  16. package/codes/index.csv +2904 -0
  17. package/codes/index.d.ts +36 -0
  18. package/codes/index.js +102 -0
  19. package/codes/index.txt +12 -0
  20. package/columndescriptions/build.ts +22 -0
  21. package/columndescriptions/index.csv +215 -0
  22. package/columndescriptions/index.d.ts +44 -0
  23. package/columndescriptions/index.js +119 -0
  24. package/columns/build.ts +23 -0
  25. package/columns/index.csv +215 -0
  26. package/columns/index.d.ts +39 -0
  27. package/columns/index.js +111 -0
  28. package/columns/index.txt +71 -0
  29. package/compositingcentres/index.csv +7 -0
  30. package/compositingcentres/index.d.ts +35 -0
  31. package/compositingcentres/index.js +103 -0
  32. package/compositingcentres/index.txt +13 -0
  33. package/compositions/build.ts +212 -0
  34. package/compositions/index.csv +543 -0
  35. package/compositions/index.d.ts +254 -0
  36. package/compositions/index.js +204 -0
  37. package/compositionstats/build.ts +103 -0
  38. package/compositionstats/index.csv +4 -0
  39. package/compositionstats/index.d.ts +31 -0
  40. package/compositionstats/index.js +97 -0
  41. package/contents/index.csv +21 -0
  42. package/contents/index.d.ts +39 -0
  43. package/contents/index.js +102 -0
  44. package/contents/index.txt +13 -0
  45. package/deno.lock +67 -0
  46. package/descriptions/index.csv +543 -0
  47. package/descriptions/index.d.ts +45 -0
  48. package/descriptions/index.js +124 -0
  49. package/descriptions/index.txt +15 -0
  50. package/energies/index.csv +6 -0
  51. package/energies/index.d.ts +34 -0
  52. package/energies/index.js +101 -0
  53. package/energies/index.txt +13 -0
  54. package/frequencydistribution/index.csv +10 -0
  55. package/frequencydistribution/index.d.ts +36 -0
  56. package/frequencydistribution/index.js +90 -0
  57. package/frequencydistribution/index.txt +14 -0
  58. package/groups/index.csv +21 -0
  59. package/groups/index.d.ts +46 -0
  60. package/groups/index.js +118 -0
  61. package/groups/index.txt +14 -0
  62. package/hierarchy/asset.csv +215 -0
  63. package/hierarchy/asset.txt +70 -0
  64. package/hierarchy/build.ts +73 -0
  65. package/hierarchy/index.csv +215 -0
  66. package/hierarchy/index.d.ts +39 -0
  67. package/hierarchy/index.js +100 -0
  68. package/hierarchy/index.txt +14 -0
  69. package/index.d.ts +24 -28
  70. package/index.js +28 -39
  71. package/index.test.ts +717 -0
  72. package/intakes/build.ts +28 -0
  73. package/intakes/index.csv +42 -0
  74. package/intakes/index.d.ts +66 -0
  75. package/intakes/index.js +113 -0
  76. package/intakes/index.txt +20 -0
  77. package/jonesfactors/index.csv +15 -0
  78. package/jonesfactors/index.d.ts +35 -0
  79. package/jonesfactors/index.js +105 -0
  80. package/jonesfactors/index.txt +12 -0
  81. package/languages/index.csv +22 -0
  82. package/languages/index.d.ts +39 -0
  83. package/languages/index.js +103 -0
  84. package/languages/index.txt +12 -0
  85. package/methods/build.ts +101 -0
  86. package/methods/index.csv +37 -0
  87. package/methods/index.d.ts +39 -0
  88. package/methods/index.js +196 -0
  89. package/methods/index.txt +13 -0
  90. package/package.json +15 -63
  91. package/regions/index.csv +7 -0
  92. package/regions/index.d.ts +36 -0
  93. package/regions/index.js +100 -0
  94. package/regions/index.txt +12 -0
  95. package/representations/build.ts +133 -0
  96. package/representations/index.csv +215 -0
  97. package/representations/index.d.ts +36 -0
  98. package/representations/index.js +91 -0
  99. package/retentionfactors/groups.csv +21 -0
  100. package/retentionfactors/index.csv +215 -0
  101. package/samplingunits/index.csv +36 -0
  102. package/samplingunits/index.d.ts +39 -0
  103. package/samplingunits/index.js +110 -0
  104. package/samplingunits/index.txt +14 -0
  105. package/yieldfactors/index.csv +543 -0
  106. package/yieldfactors/index.d.ts +57 -0
  107. package/yieldfactors/index.js +158 -0
  108. package/yieldfactors/index.txt +294 -0
  109. package/corpus.js +0 -6
  110. package/corpus.min.js +0 -1
  111. package/pictures.d.ts +0 -41
@@ -0,0 +1,78 @@
1
+ abbr,full
2
+ "1,25-DHCC","1,25-dihydroxy cholecalciferol"
3
+ AAS,Atomic Absorption Spectroscopy
4
+ AOAC,Association of Official Analytical Chemists
5
+ APCI,Atmospheric Pressure Chemical Ionization
6
+ BMR,Basal metabolic rate
7
+ BOAA,Oxalyldiaminopropionic acid
8
+ BV,Biological Value
9
+ Cal,Calories
10
+ CBC,Cation binding capacity
11
+ CF,Crude fibre
12
+ CFTRI,Central Food Technological Research Institute
13
+ CHD,Coronary heart disease
14
+ CHO,Carbohydrate
15
+ CRM,Certified Reference Material
16
+ CU,Consumption units
17
+ DF,Dietary fibre
18
+ DNA,Deoxyribonucleic acid
19
+ DRI,Dietary reference intake
20
+ EAA,Essential Amino Acids
21
+ EFA,Essential fatty acids
22
+ ESI,Electro Spray Ionization
23
+ FAO,Food and Agriculture Organization of the United Nations
24
+ FAOSTAT,Food and Agriculture Organization Statistics
25
+ FCT,Food Composition Tables
26
+ GC,Gas Chromatography
27
+ GI,Gastrointestinal
28
+ GLV,Green Leafy Vegetables
29
+ HPLC,High Performance Liquid Chromatography
30
+ ICDS,Integrated Child Development Services
31
+ ICMR,Indian Council of Medical Research
32
+ ICP-MS,Inductively Coupled Plasma Mass Spectrometry
33
+ IDA,Iron Deficiency Anemia
34
+ IDD,Iodine deficiency disorders
35
+ IDF,International Diabetes Federation
36
+ IDF,Insoluble Dietary Fibre
37
+ IFCT,Indian Food Composition Tables
38
+ INFOODS,International Network of Food Data Systems
39
+ IP-6,Inositol hexaphosphate
40
+ IRFA,Indian Research Fund Association
41
+ IU,International Units
42
+ Kcal,Kilo calories
43
+ kJ,kilo Joule
44
+ N,Normality
45
+ NAC,Nutritional Advisory Committee
46
+ NDO,Non-digestible oligosaccharides
47
+ NFHS,National Family Health Survey
48
+ NIDDM,Non-insulin dependent diabetes mellitus
49
+ NIN,National Institute of Nutrition
50
+ NNMB,National Nutrition Monitoring Bureau
51
+ NPU,Net protein utilized
52
+ NRFA,Nutrition Research Funds Association
53
+ NRL,Nutrition Research Laboratories
54
+ NVIF,Nutritive Value of Indian Foods
55
+ PEM,Protein Energy Malnutrition
56
+ PER,Protein Efficiency Ratio
57
+ PSU,Primary Sampling Units
58
+ PUFA,Polyunsaturated Fatty Acids
59
+ QAQC,Quality assurance and quality control
60
+ RAE,Retinol equivalent activity
61
+ RDA,Recommended dietary allowances
62
+ RDI,Recommended dietary intakes
63
+ RID,Refractive index detector
64
+ RP,Reversed phase
65
+ RPO,Red palm oil
66
+ RPV,Relative protein value
67
+ SCFA,Short chain fatty acids
68
+ SD,Standard deviation
69
+ SDF,Soluble Dietary Fibre
70
+ SSU,Secondary sampling units
71
+ TDF,Total Dietary Fibre
72
+ USA,United States of America
73
+ UNU,United Nations University
74
+ UT,Union territory
75
+ UV,Ultra violet
76
+ VAD,Vitamin A deficiency
77
+ WHC,Water holding capacity
78
+ WHO,World Health Organization
@@ -0,0 +1,39 @@
1
+ import { type SetupTableOptions } from "@nodef/extra-sql";
2
+ /** Full form of abbreviation used in the original book. */ export interface Abbreviation {
3
+ /** Abbreviation, e.g., BRM. */ abbr: string;
4
+ /** Full form of the abbreviation, e.g., "Basal metabolic rate". */ full: string;
5
+ }
6
+ /**
7
+ * Load the abbreviations corpus from the file.
8
+ * @returns abbreviations corpus {key ⇒ {abbr, full}}
9
+ */ export declare function loadAbbreviations(): Promise<Map<string, Abbreviation>>;
10
+ /**
11
+ * Get the path to the abbreviations CSV file.
12
+ * @returns CSV file URL
13
+ */ export declare function abbreviationsCsv(): string;
14
+ /**
15
+ * Obtain SQL command to create and populate the abbreviations table.
16
+ * @param tab table name
17
+ * @param opt options for the table
18
+ * @returns CREATE TABLE, INSERT, CREATE VIEW, CREATE INDEX statements
19
+ */ export declare function abbreviationsSql(tab?: string, opt?: SetupTableOptions): Promise<string>;
20
+ /**
21
+ * Find matching full form of an abbreviation query.
22
+ * @param txt abbreviation query
23
+ * @returns `{abbr, full}` if found, null otherwise
24
+ * @example
25
+ * ```javascript
26
+ * abbreviations('GLV');
27
+ * abbreviations('g l v');
28
+ * // { abbr: 'GLV', full: 'Green Leafy Vegetables' }
29
+ *
30
+ * abbreviations('what is D.R.I.');
31
+ * abbreviations('d. r. i. stands for?');
32
+ * // { abbr: 'DRI', full: 'Dietary reference intake' }
33
+ *
34
+ *
35
+ * // Note:
36
+ * // for single character abbreviations, full stop is mandatory
37
+ * // full stops must immediately follow character, if present
38
+ * ```
39
+ */ export declare function abbreviations(txt: string): Abbreviation | null;
@@ -0,0 +1,103 @@
1
+ // Copyright (C) 2025-26 Subhajit Sahu
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // See LICENSE for full terms
4
+ import * as csv from "@std/csv";
5
+ import { setupTable } from "@nodef/extra-sql";
6
+ //#endregion
7
+ //#region GLOBALS
8
+ let corpus = null;
9
+ let match = null;
10
+ //#endregion
11
+ //#region FUNCTIONS
12
+ /**
13
+ * Create a regex to match the abbreviations in the corpus.
14
+ * @param lst list of abbreviations to match
15
+ * @returns a regex to match the abbreviations
16
+ */ function createRegex(lst) {
17
+ let a = '\\b(';
18
+ for (const v of lst)a += v.length > 1 ? `${v}|` : `${v}\\.|`;
19
+ a = a.substring(0, a.length - 1);
20
+ a += `)\\b`;
21
+ return new RegExp(a, 'i');
22
+ }
23
+ /**
24
+ * Load the abbreviations corpus from CSV file.
25
+ * @param file CSV file path
26
+ * @returns abbreviations corpus
27
+ */ async function loadFromCsv(file) {
28
+ const map = new Map();
29
+ const data = await (await fetch(file)).text();
30
+ const records = csv.parse(data, {
31
+ skipFirstRow: true,
32
+ comment: "#"
33
+ });
34
+ for (const r of records){
35
+ const abbr = (r.abbr || "").toLowerCase().replace(/\W/g, "");
36
+ map.set(abbr, r);
37
+ }
38
+ return map;
39
+ }
40
+ /**
41
+ * Load the abbreviations corpus from the file.
42
+ * @returns abbreviations corpus {key ⇒ {abbr, full}}
43
+ */ export async function loadAbbreviations() {
44
+ if (corpus) return corpus;
45
+ corpus = await loadFromCsv(abbreviationsCsv());
46
+ match = createRegex(corpus.keys());
47
+ return corpus;
48
+ }
49
+ /**
50
+ * Get the path to the abbreviations CSV file.
51
+ * @returns CSV file URL
52
+ */ export function abbreviationsCsv() {
53
+ return import.meta.resolve('./index.csv');
54
+ }
55
+ /**
56
+ * Obtain SQL command to create and populate the abbreviations table.
57
+ * @param tab table name
58
+ * @param opt options for the table
59
+ * @returns CREATE TABLE, INSERT, CREATE VIEW, CREATE INDEX statements
60
+ */ export async function abbreviationsSql(tab = "abbreviations", opt = {}) {
61
+ return setupTable(tab, {
62
+ abbr: "TEXT",
63
+ full: "TEXT"
64
+ }, (await loadAbbreviations()).values(), Object.assign({
65
+ pk: "abbr",
66
+ index: true,
67
+ tsvector: {
68
+ abbr: "A",
69
+ full: "B"
70
+ }
71
+ }, opt));
72
+ }
73
+ /**
74
+ * Find matching full form of an abbreviation query.
75
+ * @param txt abbreviation query
76
+ * @returns `{abbr, full}` if found, null otherwise
77
+ * @example
78
+ * ```javascript
79
+ * abbreviations('GLV');
80
+ * abbreviations('g l v');
81
+ * // { abbr: 'GLV', full: 'Green Leafy Vegetables' }
82
+ *
83
+ * abbreviations('what is D.R.I.');
84
+ * abbreviations('d. r. i. stands for?');
85
+ * // { abbr: 'DRI', full: 'Dietary reference intake' }
86
+ *
87
+ *
88
+ * // Note:
89
+ * // for single character abbreviations, full stop is mandatory
90
+ * // full stops must immediately follow character, if present
91
+ * ```
92
+ */ export function abbreviations(txt) {
93
+ const re = /((\w\s+|\w\.\s*|\w\-\s*|\w$)+)|\w+/g;
94
+ if (match == null) return null;
95
+ txt = txt.replace(re, (m)=>{
96
+ const v = m.replace(/\W/g, '');
97
+ return v.length === 1 ? `${m.trim()} ` : `${v} `;
98
+ }).toLowerCase();
99
+ const m = txt.match(match) || txt.replace(/\b(\w+)s\b/g, '$1').match(match);
100
+ if (m == null) return null;
101
+ return corpus?.get(m[1].replace('.', '')) || null;
102
+ } //#endregion
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9pZmN0MjAxNy9pZmN0MjAxNy9hYmJyZXZpYXRpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoQykgMjAyNS0yNiBTdWJoYWppdCBTYWh1XG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb3ItbGF0ZXJcbi8vIFNlZSBMSUNFTlNFIGZvciBmdWxsIHRlcm1zXG5pbXBvcnQgKiBhcyBjc3YgIGZyb20gXCJAc3RkL2NzdlwiO1xuaW1wb3J0IHt0eXBlIFJvd0RhdGEsIHR5cGUgU2V0dXBUYWJsZU9wdGlvbnMsIHNldHVwVGFibGV9IGZyb20gXCJAbm9kZWYvZXh0cmEtc3FsXCI7XG5cblxuXG5cbi8vI3JlZ2lvbiBUWVBFU1xuLyoqIEZ1bGwgZm9ybSBvZiBhYmJyZXZpYXRpb24gdXNlZCBpbiB0aGUgb3JpZ2luYWwgYm9vay4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWJicmV2aWF0aW9uIHtcbiAgLyoqIEFiYnJldmlhdGlvbiwgZS5nLiwgQlJNLiAqL1xuICBhYmJyOiBzdHJpbmc7XG4gIC8qKiBGdWxsIGZvcm0gb2YgdGhlIGFiYnJldmlhdGlvbiwgZS5nLiwgXCJCYXNhbCBtZXRhYm9saWMgcmF0ZVwiLiAqL1xuICBmdWxsOiBzdHJpbmc7XG59O1xuLy8jZW5kcmVnaW9uXG5cblxuXG5cbi8vI3JlZ2lvbiBHTE9CQUxTXG5sZXQgY29ycHVzOiBNYXA8c3RyaW5nLCBBYmJyZXZpYXRpb24+IHwgbnVsbCA9IG51bGw7XG5sZXQgbWF0Y2g6IFJlZ0V4cCB8IG51bGwgPSBudWxsO1xuLy8jZW5kcmVnaW9uXG5cblxuXG5cbi8vI3JlZ2lvbiBGVU5DVElPTlNcbi8qKlxuICogQ3JlYXRlIGEgcmVnZXggdG8gbWF0Y2ggdGhlIGFiYnJldmlhdGlvbnMgaW4gdGhlIGNvcnB1cy5cbiAqIEBwYXJhbSBsc3QgbGlzdCBvZiBhYmJyZXZpYXRpb25zIHRvIG1hdGNoXG4gKiBAcmV0dXJucyBhIHJlZ2V4IHRvIG1hdGNoIHRoZSBhYmJyZXZpYXRpb25zXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJlZ2V4KGxzdDogSXRlcmFibGU8c3RyaW5nPik6IFJlZ0V4cCB7XG4gIGxldCBhID0gJ1xcXFxiKCc7XG4gIGZvciAoY29uc3QgdiBvZiBsc3QpXG4gICAgYSArPSB2Lmxlbmd0aD4xPyBgJHt2fXxgIDogYCR7dn1cXFxcLnxgO1xuICBhID0gYS5zdWJzdHJpbmcoMCwgYS5sZW5ndGgtMSk7XG4gIGEgKz0gYClcXFxcYmA7XG4gIHJldHVybiBuZXcgUmVnRXhwKGEsICdpJyk7XG59XG5cblxuLyoqXG4gKiBMb2FkIHRoZSBhYmJyZXZpYXRpb25zIGNvcnB1cyBmcm9tIENTViBmaWxlLlxuICogQHBhcmFtIGZpbGUgQ1NWIGZpbGUgcGF0aFxuICogQHJldHVybnMgYWJicmV2aWF0aW9ucyBjb3JwdXNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZEZyb21Dc3YoZmlsZTogc3RyaW5nKTogUHJvbWlzZTxNYXA8c3RyaW5nLCBBYmJyZXZpYXRpb24+PiB7XG4gIGNvbnN0IG1hcCAgPSBuZXcgTWFwPHN0cmluZywgQWJicmV2aWF0aW9uPigpO1xuICBjb25zdCBkYXRhID0gYXdhaXQgKGF3YWl0IGZldGNoKGZpbGUpKS50ZXh0KCk7XG4gIGNvbnN0IHJlY29yZHMgPSBjc3YucGFyc2UoZGF0YSwge3NraXBGaXJzdFJvdzogdHJ1ZSwgY29tbWVudDogXCIjXCJ9KTtcbiAgZm9yIChjb25zdCByIG9mIHJlY29yZHMpIHtcbiAgICBjb25zdCBhYmJyID0gKHIuYWJiciB8fCBcIlwiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcVy9nLCBcIlwiKTtcbiAgICBtYXAuc2V0KGFiYnIsIHIgYXMgdW5rbm93biBhcyBBYmJyZXZpYXRpb24pO1xuICB9XG4gIHJldHVybiBtYXA7XG59XG5cblxuLyoqXG4gKiBMb2FkIHRoZSBhYmJyZXZpYXRpb25zIGNvcnB1cyBmcm9tIHRoZSBmaWxlLlxuICogQHJldHVybnMgYWJicmV2aWF0aW9ucyBjb3JwdXMge2tleSDih5Ige2FiYnIsIGZ1bGx9fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEFiYnJldmlhdGlvbnMoKTogUHJvbWlzZTxNYXA8c3RyaW5nLCBBYmJyZXZpYXRpb24+PiB7XG4gIGlmIChjb3JwdXMpIHJldHVybiBjb3JwdXM7XG4gIGNvcnB1cyA9IGF3YWl0IGxvYWRGcm9tQ3N2KGFiYnJldmlhdGlvbnNDc3YoKSk7XG4gIG1hdGNoICA9IGNyZWF0ZVJlZ2V4KGNvcnB1cy5rZXlzKCkpO1xuICByZXR1cm4gY29ycHVzO1xufVxuXG5cbi8qKlxuICogR2V0IHRoZSBwYXRoIHRvIHRoZSBhYmJyZXZpYXRpb25zIENTViBmaWxlLlxuICogQHJldHVybnMgQ1NWIGZpbGUgVVJMXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYmJyZXZpYXRpb25zQ3N2KCk6IHN0cmluZyB7XG4gIHJldHVybiBpbXBvcnQubWV0YS5yZXNvbHZlKCcuL2luZGV4LmNzdicpO1xufVxuXG5cbi8qKlxuICogT2J0YWluIFNRTCBjb21tYW5kIHRvIGNyZWF0ZSBhbmQgcG9wdWxhdGUgdGhlIGFiYnJldmlhdGlvbnMgdGFibGUuXG4gKiBAcGFyYW0gdGFiIHRhYmxlIG5hbWVcbiAqIEBwYXJhbSBvcHQgb3B0aW9ucyBmb3IgdGhlIHRhYmxlXG4gKiBAcmV0dXJucyBDUkVBVEUgVEFCTEUsIElOU0VSVCwgQ1JFQVRFIFZJRVcsIENSRUFURSBJTkRFWCBzdGF0ZW1lbnRzXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhYmJyZXZpYXRpb25zU3FsKHRhYjogc3RyaW5nPVwiYWJicmV2aWF0aW9uc1wiLCBvcHQ6IFNldHVwVGFibGVPcHRpb25zPXt9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIHNldHVwVGFibGUodGFiLCB7YWJicjogXCJURVhUXCIsIGZ1bGw6IFwiVEVYVFwifSwgKGF3YWl0IGxvYWRBYmJyZXZpYXRpb25zKCkpLnZhbHVlcygpIGFzIEl0ZXJhYmxlPFJvd0RhdGE+LFxuICAgIE9iamVjdC5hc3NpZ24oe3BrOiBcImFiYnJcIiwgaW5kZXg6IHRydWUsIHRzdmVjdG9yOiB7YWJicjogXCJBXCIsIGZ1bGw6IFwiQlwifX0sIG9wdCkpO1xufVxuXG5cbi8qKlxuICogRmluZCBtYXRjaGluZyBmdWxsIGZvcm0gb2YgYW4gYWJicmV2aWF0aW9uIHF1ZXJ5LlxuICogQHBhcmFtIHR4dCBhYmJyZXZpYXRpb24gcXVlcnlcbiAqIEByZXR1cm5zIGB7YWJiciwgZnVsbH1gIGlmIGZvdW5kLCBudWxsIG90aGVyd2lzZVxuICogQGV4YW1wbGVcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGFiYnJldmlhdGlvbnMoJ0dMVicpO1xuICogYWJicmV2aWF0aW9ucygnZyBsIHYnKTtcbiAqIC8vIHsgYWJicjogJ0dMVicsIGZ1bGw6ICdHcmVlbiBMZWFmeSBWZWdldGFibGVzJyB9XG4gKlxuICogYWJicmV2aWF0aW9ucygnd2hhdCBpcyBELlIuSS4nKTtcbiAqIGFiYnJldmlhdGlvbnMoJ2QuIHIuIGkuIHN0YW5kcyBmb3I/Jyk7XG4gKiAvLyB7IGFiYnI6ICdEUkknLCBmdWxsOiAnRGlldGFyeSByZWZlcmVuY2UgaW50YWtlJyB9XG4gKlxuICpcbiAqIC8vIE5vdGU6XG4gKiAvLyBmb3Igc2luZ2xlIGNoYXJhY3RlciBhYmJyZXZpYXRpb25zLCBmdWxsIHN0b3AgaXMgbWFuZGF0b3J5XG4gKiAvLyBmdWxsIHN0b3BzIG11c3QgaW1tZWRpYXRlbHkgZm9sbG93IGNoYXJhY3RlciwgaWYgcHJlc2VudFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYmJyZXZpYXRpb25zKHR4dDogc3RyaW5nKTogQWJicmV2aWF0aW9uIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gLygoXFx3XFxzK3xcXHdcXC5cXHMqfFxcd1xcLVxccyp8XFx3JCkrKXxcXHcrL2c7XG4gIGlmIChtYXRjaCA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgdHh0ID0gdHh0LnJlcGxhY2UocmUsIChtKSA9PiB7XG4gICAgY29uc3QgdiA9IG0ucmVwbGFjZSgvXFxXL2csICcnKTtcbiAgICByZXR1cm4gdi5sZW5ndGggPT09IDE/IGAke20udHJpbSgpfSBgIDogYCR7dn0gYFxuICB9KS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBtID0gdHh0Lm1hdGNoKG1hdGNoKSB8fCB0eHQucmVwbGFjZSgvXFxiKFxcdyspc1xcYi9nLCAnJDEnKS5tYXRjaChtYXRjaCk7XG4gIGlmIChtID09IG51bGwpIHJldHVybiBudWxsO1xuICByZXR1cm4gY29ycHVzPy5nZXQobVsxXS5yZXBsYWNlKCcuJywgJycpKSB8fCBudWxsO1xufVxuLy8jZW5kcmVnaW9uXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLDZDQUE2QztBQUM3Qyw2QkFBNkI7QUFDN0IsWUFBWSxTQUFVLFdBQVc7QUFDakMsU0FBOEMsVUFBVSxRQUFPLG1CQUFtQjtBQWFsRixZQUFZO0FBS1osaUJBQWlCO0FBQ2pCLElBQUksU0FBMkM7QUFDL0MsSUFBSSxRQUF1QjtBQUMzQixZQUFZO0FBS1osbUJBQW1CO0FBQ25COzs7O0NBSUMsR0FDRCxTQUFTLFlBQVksR0FBcUI7RUFDeEMsSUFBSSxJQUFJO0VBQ1IsS0FBSyxNQUFNLEtBQUssSUFDZCxLQUFLLEVBQUUsTUFBTSxHQUFDLElBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7RUFDdkMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFDO0VBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUM7RUFDWCxPQUFPLElBQUksT0FBTyxHQUFHO0FBQ3ZCO0FBR0E7Ozs7Q0FJQyxHQUNELGVBQWUsWUFBWSxJQUFZO0VBQ3JDLE1BQU0sTUFBTyxJQUFJO0VBQ2pCLE1BQU0sT0FBTyxNQUFNLENBQUMsTUFBTSxNQUFNLEtBQUssRUFBRSxJQUFJO0VBQzNDLE1BQU0sVUFBVSxJQUFJLEtBQUssQ0FBQyxNQUFNO0lBQUMsY0FBYztJQUFNLFNBQVM7RUFBRztFQUNqRSxLQUFLLE1BQU0sS0FBSyxRQUFTO0lBQ3ZCLE1BQU0sT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU87SUFDekQsSUFBSSxHQUFHLENBQUMsTUFBTTtFQUNoQjtFQUNBLE9BQU87QUFDVDtBQUdBOzs7Q0FHQyxHQUNELE9BQU8sZUFBZTtFQUNwQixJQUFJLFFBQVEsT0FBTztFQUNuQixTQUFTLE1BQU0sWUFBWTtFQUMzQixRQUFTLFlBQVksT0FBTyxJQUFJO0VBQ2hDLE9BQU87QUFDVDtBQUdBOzs7Q0FHQyxHQUNELE9BQU8sU0FBUztFQUNkLE9BQU8sWUFBWSxPQUFPLENBQUM7QUFDN0I7QUFHQTs7Ozs7Q0FLQyxHQUNELE9BQU8sZUFBZSxpQkFBaUIsTUFBWSxlQUFlLEVBQUUsTUFBdUIsQ0FBQyxDQUFDO0VBQzNGLE9BQU8sV0FBVyxLQUFLO0lBQUMsTUFBTTtJQUFRLE1BQU07RUFBTSxHQUFHLENBQUMsTUFBTSxtQkFBbUIsRUFBRSxNQUFNLElBQ3JGLE9BQU8sTUFBTSxDQUFDO0lBQUMsSUFBSTtJQUFRLE9BQU87SUFBTSxVQUFVO01BQUMsTUFBTTtNQUFLLE1BQU07SUFBRztFQUFDLEdBQUc7QUFDL0U7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CQyxHQUNELE9BQU8sU0FBUyxjQUFjLEdBQVc7RUFDdkMsTUFBTSxLQUFLO0VBQ1gsSUFBSSxTQUFTLE1BQU0sT0FBTztFQUMxQixNQUFNLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztJQUNyQixNQUFNLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTztJQUMzQixPQUFPLEVBQUUsTUFBTSxLQUFLLElBQUcsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0VBQ2pELEdBQUcsV0FBVztFQUNkLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLGVBQWUsTUFBTSxLQUFLLENBQUM7RUFDckUsSUFBSSxLQUFLLE1BQU0sT0FBTztFQUN0QixPQUFPLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVE7QUFDL0MsRUFDQSxZQUFZIn0=
@@ -0,0 +1,12 @@
1
+ Indian Food Composition Tables 2017
2
+ T. Longvah, R. Ananthan, K. Bhaskarachary and K. Venkaiah
3
+
4
+ Copyright © 2017 by National Institute of Nutrition
5
+ Indian Council of Medical Research
6
+ Department of Health Research Ministry of Health and Family Welfare, Government of India
7
+ Jamai Osmania (PO), Hyderabad – 500 007
8
+ Telangana, India Phone: +91 40 27197334, Fax: +91 40 27000339, Email: nin@ap.nic.in
9
+
10
+ ABBREVIATIONS
11
+ - Abbreviation
12
+ - Full form
package/about/build.ts ADDED
@@ -0,0 +1,31 @@
1
+ // Copyright (C) 2025-26 Subhajit Sahu
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // See LICENSE for full terms
4
+ import * as path from "@std/path";
5
+
6
+
7
+ async function readTextFiles(dir: string) {
8
+ const a = new Map<string, string>();
9
+ for (const f of Deno.readDirSync(dir)) {
10
+ if (!f.isFile || !f.name.endsWith('.txt')) continue;
11
+ const name = f.name.replace('.txt', '');
12
+ const content = await Deno.readTextFile(path.join(dir, f.name));
13
+ a.set(name, content);
14
+ }
15
+ return a;
16
+ }
17
+
18
+
19
+ async function writeIndex(file: string, data: Map<string, string>) {
20
+ let a = '';
21
+ for (const [k, v] of data)
22
+ a += `[[${k}]]\n${v}\n\n`;
23
+ await Deno.writeTextFile(file, a.trim() + '\n');
24
+ console.log(`Wrote ${data.size} entries to ${file}`);
25
+ }
26
+
27
+
28
+ export async function build() {
29
+ const data = await readTextFiles(path.join(import.meta.dirname || '', 'assets'));
30
+ await writeIndex(path.join(import.meta.dirname || '', 'index.txt'), data);
31
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Load the about corpus from file.
3
+ * @returns about corpus
4
+ */ export declare function loadAbout(): Promise<Map<string, string>>;
5
+ /**
6
+ * Find matching description of an about query.
7
+ * @param txt about query
8
+ * @returns if found, returns the description, else null
9
+ * @example
10
+ * ```javascript
11
+ * about('who is you publisher');
12
+ * about('which organization issued you');
13
+ * // → Indian Food Composition Tables 2017 was published by:
14
+ * // → T. Longvah, R. Ananthan, K. Bhaskarachary and K. Venkaiah
15
+ * // → National Institute of Nutrition
16
+ * // → Indian Council of Medical Research
17
+ * // → Department of Health Research
18
+ * // → Ministry of Health and Family Welfare, Government of India
19
+ * // → Jamai Osmania (PO), Hyderabad – 500 007
20
+ * // → Telangana, India
21
+ * // → Phone: +91 40 27197334, Fax: +91 40 27000339, Email: nin@ap.nic.in
22
+ *
23
+ * about('can i know the food groups');
24
+ * about('i want to know what types of food are there');
25
+ * // → There are 20 food groups:
26
+ * // → - A: Cereals and Millets. 24 foods.
27
+ * // → - B: Grain Legumes. 25 foods.
28
+ * // → - C: Green Leafy Vegetables. 34 foods.
29
+ * // → - D: Other Vegetables. 78 foods.
30
+ * // → - E: Fruits. 68 foods.
31
+ * // → - F: Roots and Tubers. 19 foods.
32
+ * // → - G: Condiments and Spices. 33 foods.
33
+ * // → - H: Nuts and Oil Seeds. 21 foods.
34
+ * // → - I: Sugars. 2 foods.
35
+ * // → - J: Mushrooms. 4 foods.
36
+ * // → - K: Miscellaneous Foods. 2 foods.
37
+ * // → - L: Milk and Milk Products. 4 foods.
38
+ * // → - M: Egg and Egg Products. 15 foods.
39
+ * // → - N: Poultry. 19 foods.
40
+ * // → - O: Animal Meat. 63 foods.
41
+ * // → - P: Marine Fish. 92 foods.
42
+ * // → - Q; Marine Shellfish. 8 foods.
43
+ * // → - R: Marine Mollusks. 7 foods.
44
+ * // → - S: Fresh Water Fish and Shellfish. 10 foods.
45
+ * // → - T: Edible Oils and Fats. 9 foods.
46
+ * ```
47
+ */ export declare function about(txt: string): string | null;
package/about/index.js ADDED
@@ -0,0 +1,110 @@
1
+ // Copyright (C) 2025-26 Subhajit Sahu
2
+ // SPDX-License-Identifier: AGPL-3.0-or-later
3
+ // See LICENSE for full terms
4
+ //#region CONSTANTS
5
+ const REGEX = {
6
+ '1937': /193\d|194\d/i,
7
+ '1951': /195\d/i,
8
+ '1963': /196\d/i,
9
+ '1971': /197\d/i,
10
+ '1989': /198\d|199\d/i,
11
+ '2017': /200\d|201\d/i,
12
+ father: /(father)/i,
13
+ challenge: /challeng|difficult|inconsistent|fragment|exhaust/i,
14
+ interest: /interest|bioactive|first/i,
15
+ limitation: /limitation|exact/i,
16
+ learn: /learn|underst|more/i,
17
+ funder: /fund|financ|money|contribut|donat|pay|paid/i,
18
+ when: /when|date|day|month|year|last/i,
19
+ why: /why|cause|reason/i,
20
+ publisher: /publish|issu|creat|wr(i|o)t|ma(k|de)|develop|produc|print|announc|report|declar|distribut|spread|disseminat|circulat/i,
21
+ credit: /credit|acknowledg/i,
22
+ supporter: /support|back|help/i,
23
+ source: /source|from|origin|take|derive|borrow|obtain/i,
24
+ data: /data|info/i,
25
+ form: /form|shape|appear|configur|structure|dispos/i,
26
+ group: /type|group|category|class|sort|kind|variety|collection|cluster/i,
27
+ column: /column|component|part|piece|bit|constituent|element|ingredient|unit|module|item|section|portion/i,
28
+ what: /what|about/i
29
+ };
30
+ const USER = /user|utilizer|applier/i;
31
+ const USE = /use|using|utiliz|employ|appl/i;
32
+ const WHO = /who|person|people|member/i;
33
+ //#endregion
34
+ //#region GLOBALS
35
+ let corpus = null;
36
+ //#endregion
37
+ //#region FUNCTIONS
38
+ /**
39
+ * Read the index file and return the about details.
40
+ * @returns about corpus
41
+ */ async function readIndex() {
42
+ const map = new Map();
43
+ const file = import.meta.resolve('./index.txt');
44
+ const data = await (await fetch(file)).text();
45
+ let m = null;
46
+ const re = /\[\[(\w+)\]\]\n([\w\W]*?)\n\n\n/g;
47
+ while((m = re.exec(data)) != null){
48
+ const k = m[1], v = m[2].trim();
49
+ map.set(k, v);
50
+ }
51
+ return map;
52
+ }
53
+ /**
54
+ * Load the about corpus from file.
55
+ * @returns about corpus
56
+ */ export async function loadAbout() {
57
+ if (corpus) return corpus;
58
+ corpus = await readIndex();
59
+ return corpus;
60
+ }
61
+ /**
62
+ * Find matching description of an about query.
63
+ * @param txt about query
64
+ * @returns if found, returns the description, else null
65
+ * @example
66
+ * ```javascript
67
+ * about('who is you publisher');
68
+ * about('which organization issued you');
69
+ * // → Indian Food Composition Tables 2017 was published by:
70
+ * // → T. Longvah, R. Ananthan, K. Bhaskarachary and K. Venkaiah
71
+ * // → National Institute of Nutrition
72
+ * // → Indian Council of Medical Research
73
+ * // → Department of Health Research
74
+ * // → Ministry of Health and Family Welfare, Government of India
75
+ * // → Jamai Osmania (PO), Hyderabad – 500 007
76
+ * // → Telangana, India
77
+ * // → Phone: +91 40 27197334, Fax: +91 40 27000339, Email: nin@ap.nic.in
78
+ *
79
+ * about('can i know the food groups');
80
+ * about('i want to know what types of food are there');
81
+ * // → There are 20 food groups:
82
+ * // → - A: Cereals and Millets. 24 foods.
83
+ * // → - B: Grain Legumes. 25 foods.
84
+ * // → - C: Green Leafy Vegetables. 34 foods.
85
+ * // → - D: Other Vegetables. 78 foods.
86
+ * // → - E: Fruits. 68 foods.
87
+ * // → - F: Roots and Tubers. 19 foods.
88
+ * // → - G: Condiments and Spices. 33 foods.
89
+ * // → - H: Nuts and Oil Seeds. 21 foods.
90
+ * // → - I: Sugars. 2 foods.
91
+ * // → - J: Mushrooms. 4 foods.
92
+ * // → - K: Miscellaneous Foods. 2 foods.
93
+ * // → - L: Milk and Milk Products. 4 foods.
94
+ * // → - M: Egg and Egg Products. 15 foods.
95
+ * // → - N: Poultry. 19 foods.
96
+ * // → - O: Animal Meat. 63 foods.
97
+ * // → - P: Marine Fish. 92 foods.
98
+ * // → - Q; Marine Shellfish. 8 foods.
99
+ * // → - R: Marine Mollusks. 7 foods.
100
+ * // → - S: Fresh Water Fish and Shellfish. 10 foods.
101
+ * // → - T: Edible Oils and Fats. 9 foods.
102
+ * ```
103
+ */ export function about(txt) {
104
+ const re = REGEX;
105
+ if (USER.test(txt) || USE.test(txt) && WHO.test(txt)) return corpus?.get('user');
106
+ if (USE.test(txt)) return corpus?.get('use');
107
+ for(const k in re)if (re[k].test(txt)) return corpus?.get(k);
108
+ return null;
109
+ } //#endregion
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9pZmN0MjAxNy9pZmN0MjAxNy9hYm91dC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKEMpIDIwMjUtMjYgU3ViaGFqaXQgU2FodVxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9yLWxhdGVyXG4vLyBTZWUgTElDRU5TRSBmb3IgZnVsbCB0ZXJtc1xuLy8jcmVnaW9uIENPTlNUQU5UU1xuY29uc3QgUkVHRVg6IHtbdG9waWM6IHN0cmluZ106IFJlZ0V4cH0gPSB7XG4gICcxOTM3JzogLzE5M1xcZHwxOTRcXGQvaSxcbiAgJzE5NTEnOiAvMTk1XFxkL2ksXG4gICcxOTYzJzogLzE5NlxcZC9pLFxuICAnMTk3MSc6IC8xOTdcXGQvaSxcbiAgJzE5ODknOiAvMTk4XFxkfDE5OVxcZC9pLFxuICAnMjAxNyc6IC8yMDBcXGR8MjAxXFxkL2ksXG4gIGZhdGhlcjogICAgIC8oZmF0aGVyKS9pLFxuICBjaGFsbGVuZ2U6ICAvY2hhbGxlbmd8ZGlmZmljdWx0fGluY29uc2lzdGVudHxmcmFnbWVudHxleGhhdXN0L2ksXG4gIGludGVyZXN0OiAgIC9pbnRlcmVzdHxiaW9hY3RpdmV8Zmlyc3QvaSxcbiAgbGltaXRhdGlvbjogL2xpbWl0YXRpb258ZXhhY3QvaSxcbiAgbGVhcm46ICAvbGVhcm58dW5kZXJzdHxtb3JlL2ksXG4gIGZ1bmRlcjogL2Z1bmR8ZmluYW5jfG1vbmV5fGNvbnRyaWJ1dHxkb25hdHxwYXl8cGFpZC9pLFxuICB3aGVuOiAgIC93aGVufGRhdGV8ZGF5fG1vbnRofHllYXJ8bGFzdC9pLFxuICB3aHk6ICAgIC93aHl8Y2F1c2V8cmVhc29uL2ksXG4gIHB1Ymxpc2hlcjogL3B1Ymxpc2h8aXNzdXxjcmVhdHx3cihpfG8pdHxtYShrfGRlKXxkZXZlbG9wfHByb2R1Y3xwcmludHxhbm5vdW5jfHJlcG9ydHxkZWNsYXJ8ZGlzdHJpYnV0fHNwcmVhZHxkaXNzZW1pbmF0fGNpcmN1bGF0L2ksXG4gIGNyZWRpdDogICAgL2NyZWRpdHxhY2tub3dsZWRnL2ksXG4gIHN1cHBvcnRlcjogL3N1cHBvcnR8YmFja3xoZWxwL2ksXG4gIHNvdXJjZTogICAgL3NvdXJjZXxmcm9tfG9yaWdpbnx0YWtlfGRlcml2ZXxib3Jyb3d8b2J0YWluL2ksXG4gIGRhdGE6ICAgL2RhdGF8aW5mby9pLFxuICBmb3JtOiAgIC9mb3JtfHNoYXBlfGFwcGVhcnxjb25maWd1cnxzdHJ1Y3R1cmV8ZGlzcG9zL2ksXG4gIGdyb3VwOiAgL3R5cGV8Z3JvdXB8Y2F0ZWdvcnl8Y2xhc3N8c29ydHxraW5kfHZhcmlldHl8Y29sbGVjdGlvbnxjbHVzdGVyL2ksXG4gIGNvbHVtbjogL2NvbHVtbnxjb21wb25lbnR8cGFydHxwaWVjZXxiaXR8Y29uc3RpdHVlbnR8ZWxlbWVudHxpbmdyZWRpZW50fHVuaXR8bW9kdWxlfGl0ZW18c2VjdGlvbnxwb3J0aW9uL2ksXG4gIHdoYXQ6ICAgL3doYXR8YWJvdXQvaSxcbn07XG5jb25zdCBVU0VSID0gL3VzZXJ8dXRpbGl6ZXJ8YXBwbGllci9pO1xuY29uc3QgVVNFICA9IC91c2V8dXNpbmd8dXRpbGl6fGVtcGxveXxhcHBsL2k7XG5jb25zdCBXSE8gID0gL3dob3xwZXJzb258cGVvcGxlfG1lbWJlci9pO1xuLy8jZW5kcmVnaW9uXG5cblxuXG5cbi8vI3JlZ2lvbiBHTE9CQUxTXG5sZXQgY29ycHVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG4vLyNlbmRyZWdpb25cblxuXG5cblxuLy8jcmVnaW9uIEZVTkNUSU9OU1xuLyoqXG4gKiBSZWFkIHRoZSBpbmRleCBmaWxlIGFuZCByZXR1cm4gdGhlIGFib3V0IGRldGFpbHMuXG4gKiBAcmV0dXJucyBhYm91dCBjb3JwdXNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVhZEluZGV4KCkge1xuICBjb25zdCBtYXAgID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgY29uc3QgZmlsZSA9IGltcG9ydC5tZXRhLnJlc29sdmUoJy4vaW5kZXgudHh0Jyk7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCAoYXdhaXQgZmV0Y2goZmlsZSkpLnRleHQoKTsgbGV0IG0gPSBudWxsO1xuICBjb25zdCByZSA9IC9cXFtcXFsoXFx3KylcXF1cXF1cXG4oW1xcd1xcV10qPylcXG5cXG5cXG4vZztcbiAgd2hpbGUgKChtID0gcmUuZXhlYyhkYXRhKSkgIT0gbnVsbCkge1xuICAgIGNvbnN0IGsgPSBtWzFdLCB2ID0gbVsyXS50cmltKCk7XG4gICAgbWFwLnNldChrLCB2KTtcbiAgfVxuICByZXR1cm4gbWFwO1xufVxuXG5cbi8qKlxuICogTG9hZCB0aGUgYWJvdXQgY29ycHVzIGZyb20gZmlsZS5cbiAqIEByZXR1cm5zIGFib3V0IGNvcnB1c1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEFib3V0KCk6IFByb21pc2U8TWFwPHN0cmluZywgc3RyaW5nPj4ge1xuICBpZiAoY29ycHVzKSByZXR1cm4gY29ycHVzO1xuICBjb3JwdXMgPSBhd2FpdCByZWFkSW5kZXgoKTtcbiAgcmV0dXJuIGNvcnB1cztcbn1cblxuXG4vKipcbiAqIEZpbmQgbWF0Y2hpbmcgZGVzY3JpcHRpb24gb2YgYW4gYWJvdXQgcXVlcnkuXG4gKiBAcGFyYW0gdHh0IGFib3V0IHF1ZXJ5XG4gKiBAcmV0dXJucyBpZiBmb3VuZCwgcmV0dXJucyB0aGUgZGVzY3JpcHRpb24sIGVsc2UgbnVsbFxuICogQGV4YW1wbGVcbiAqIGBgYGphdmFzY3JpcHRcbiAqIGFib3V0KCd3aG8gaXMgeW91IHB1Ymxpc2hlcicpO1xuICogYWJvdXQoJ3doaWNoIG9yZ2FuaXphdGlvbiBpc3N1ZWQgeW91Jyk7XG4gKiAvLyDihpIgSW5kaWFuIEZvb2QgQ29tcG9zaXRpb24gVGFibGVzIDIwMTcgd2FzIHB1Ymxpc2hlZCBieTpcbiAqIC8vIOKGkiBULiBMb25ndmFoLCBSLiBBbmFudGhhbiwgSy4gQmhhc2thcmFjaGFyeSBhbmQgSy4gVmVua2FpYWhcbiAqIC8vIOKGkiBOYXRpb25hbCBJbnN0aXR1dGUgb2YgTnV0cml0aW9uXG4gKiAvLyDihpIgSW5kaWFuIENvdW5jaWwgb2YgTWVkaWNhbCBSZXNlYXJjaFxuICogLy8g4oaSIERlcGFydG1lbnQgb2YgSGVhbHRoIFJlc2VhcmNoXG4gKiAvLyDihpIgTWluaXN0cnkgb2YgSGVhbHRoIGFuZCBGYW1pbHkgV2VsZmFyZSwgR292ZXJubWVudCBvZiBJbmRpYVxuICogLy8g4oaSIEphbWFpIE9zbWFuaWEgKFBPKSwgSHlkZXJhYmFkIOKAkyA1MDAgMDA3XG4gKiAvLyDihpIgVGVsYW5nYW5hLCBJbmRpYVxuICogLy8g4oaSIFBob25lOiArOTEgNDAgMjcxOTczMzQsIEZheDogKzkxIDQwIDI3MDAwMzM5LCBFbWFpbDogbmluQGFwLm5pYy5pblxuICpcbiAqIGFib3V0KCdjYW4gaSBrbm93IHRoZSBmb29kIGdyb3VwcycpO1xuICogYWJvdXQoJ2kgd2FudCB0byBrbm93IHdoYXQgdHlwZXMgb2YgZm9vZCBhcmUgdGhlcmUnKTtcbiAqIC8vIOKGkiBUaGVyZSBhcmUgMjAgZm9vZCBncm91cHM6XG4gKiAvLyDihpIgLSBBOiBDZXJlYWxzIGFuZCBNaWxsZXRzLiAyNCBmb29kcy5cbiAqIC8vIOKGkiAtIEI6IEdyYWluIExlZ3VtZXMuIDI1IGZvb2RzLlxuICogLy8g4oaSIC0gQzogR3JlZW4gTGVhZnkgVmVnZXRhYmxlcy4gMzQgZm9vZHMuXG4gKiAvLyDihpIgLSBEOiBPdGhlciBWZWdldGFibGVzLiA3OCBmb29kcy5cbiAqIC8vIOKGkiAtIEU6IEZydWl0cy4gNjggZm9vZHMuXG4gKiAvLyDihpIgLSBGOiBSb290cyBhbmQgVHViZXJzLiAxOSBmb29kcy5cbiAqIC8vIOKGkiAtIEc6IENvbmRpbWVudHMgYW5kIFNwaWNlcy4gMzMgZm9vZHMuXG4gKiAvLyDihpIgLSBIOiBOdXRzIGFuZCBPaWwgU2VlZHMuIDIxIGZvb2RzLlxuICogLy8g4oaSIC0gSTogU3VnYXJzLiAyIGZvb2RzLlxuICogLy8g4oaSIC0gSjogTXVzaHJvb21zLiA0IGZvb2RzLlxuICogLy8g4oaSIC0gSzogTWlzY2VsbGFuZW91cyBGb29kcy4gMiBmb29kcy5cbiAqIC8vIOKGkiAtIEw6IE1pbGsgYW5kIE1pbGsgUHJvZHVjdHMuIDQgZm9vZHMuXG4gKiAvLyDihpIgLSBNOiBFZ2cgYW5kIEVnZyBQcm9kdWN0cy4gMTUgZm9vZHMuXG4gKiAvLyDihpIgLSBOOiBQb3VsdHJ5LiAxOSBmb29kcy5cbiAqIC8vIOKGkiAtIE86IEFuaW1hbCBNZWF0LiA2MyBmb29kcy5cbiAqIC8vIOKGkiAtIFA6IE1hcmluZSBGaXNoLiA5MiBmb29kcy5cbiAqIC8vIOKGkiAtIFE7IE1hcmluZSBTaGVsbGZpc2guIDggZm9vZHMuXG4gKiAvLyDihpIgLSBSOiBNYXJpbmUgTW9sbHVza3MuIDcgZm9vZHMuXG4gKiAvLyDihpIgLSBTOiBGcmVzaCBXYXRlciBGaXNoIGFuZCBTaGVsbGZpc2guIDEwIGZvb2RzLlxuICogLy8g4oaSIC0gVDogRWRpYmxlIE9pbHMgYW5kIEZhdHMuIDkgZm9vZHMuXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFib3V0KHR4dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHJlID0gUkVHRVg7XG4gIGlmIChVU0VSLnRlc3QodHh0KSB8fCAoVVNFLnRlc3QodHh0KSAmJiBXSE8udGVzdCh0eHQpKSkgcmV0dXJuIGNvcnB1cz8uZ2V0KCd1c2VyJykgYXMgc3RyaW5nO1xuICBpZiAoVVNFLnRlc3QodHh0KSkgcmV0dXJuIGNvcnB1cz8uZ2V0KCd1c2UnKSBhcyBzdHJpbmc7XG4gIGZvciAoY29uc3QgayBpbiByZSlcbiAgICBpZiAocmVba10udGVzdCh0eHQpKSByZXR1cm4gY29ycHVzPy5nZXQoaykgYXMgc3RyaW5nO1xuICByZXR1cm4gbnVsbDtcbn1cbi8vI2VuZHJlZ2lvblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0Qyw2Q0FBNkM7QUFDN0MsNkJBQTZCO0FBQzdCLG1CQUFtQjtBQUNuQixNQUFNLFFBQW1DO0VBQ3ZDLFFBQVE7RUFDUixRQUFRO0VBQ1IsUUFBUTtFQUNSLFFBQVE7RUFDUixRQUFRO0VBQ1IsUUFBUTtFQUNSLFFBQVk7RUFDWixXQUFZO0VBQ1osVUFBWTtFQUNaLFlBQVk7RUFDWixPQUFRO0VBQ1IsUUFBUTtFQUNSLE1BQVE7RUFDUixLQUFRO0VBQ1IsV0FBVztFQUNYLFFBQVc7RUFDWCxXQUFXO0VBQ1gsUUFBVztFQUNYLE1BQVE7RUFDUixNQUFRO0VBQ1IsT0FBUTtFQUNSLFFBQVE7RUFDUixNQUFRO0FBQ1Y7QUFDQSxNQUFNLE9BQU87QUFDYixNQUFNLE1BQU87QUFDYixNQUFNLE1BQU87QUFDYixZQUFZO0FBS1osaUJBQWlCO0FBQ2pCLElBQUksU0FBcUM7QUFDekMsWUFBWTtBQUtaLG1CQUFtQjtBQUNuQjs7O0NBR0MsR0FDRCxlQUFlO0VBQ2IsTUFBTSxNQUFPLElBQUk7RUFDakIsTUFBTSxPQUFPLFlBQVksT0FBTyxDQUFDO0VBQ2pDLE1BQU0sT0FBTyxNQUFNLENBQUMsTUFBTSxNQUFNLEtBQUssRUFBRSxJQUFJO0VBQUksSUFBSSxJQUFJO0VBQ3ZELE1BQU0sS0FBSztFQUNYLE1BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFNO0lBQ2xDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJO0lBQzdCLElBQUksR0FBRyxDQUFDLEdBQUc7RUFDYjtFQUNBLE9BQU87QUFDVDtBQUdBOzs7Q0FHQyxHQUNELE9BQU8sZUFBZTtFQUNwQixJQUFJLFFBQVEsT0FBTztFQUNuQixTQUFTLE1BQU07RUFDZixPQUFPO0FBQ1Q7QUFHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMENDLEdBQ0QsT0FBTyxTQUFTLE1BQU0sR0FBVztFQUMvQixNQUFNLEtBQUs7RUFDWCxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFPLE9BQU8sUUFBUSxJQUFJO0VBQzNFLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxPQUFPLFFBQVEsSUFBSTtFQUN0QyxJQUFLLE1BQU0sS0FBSyxHQUNkLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxPQUFPLFFBQVEsSUFBSTtFQUMxQyxPQUFPO0FBQ1QsRUFDQSxZQUFZIn0=
@@ -0,0 +1,174 @@
1
+ [[2017]]
2
+ Economic liberalization and globalization changed the food and nutrition scenario in India. Between 1990 and 2010, the daily per capita supply of energy, protein and fat increased by 11, 12 and 30%, respectively. Consumption of fruits, starchy roots, vegetables increased by 91, 52 and 46%, respectively (Food and Agriculture Organization Statistics, FAOSTAT, 2013), though a steady increase in the food price was also observed. A change in dietary pattern was observed as the conventional diet of the Indian populations shifted largely due to the modified food supply systems. Reduction in incidence of kwashiorkor from 0.2 to 0% and bitot’s spot from 0.7 to 0.2%, respectively among pre-school children (NNMB, 2012) was noticed. However, new public health issues emerged. The risk factors of overweight increased to 11.8 and 15.5% in men and women, respectively (NNMB, 2012). Prevalence of child malnourishment at 45.9% (National Family Health Survey NFHS-3, 2006), any anemia at 79% among 6-35 month children (NFHS-3, 2007), underweight among women at 35.6% women (NFHS-3, 2007), anemia at 55.3% among women of 15 to 49 years of age (NFHS-3, 2006), diabetes at 8.63% (International Diabetes Federation IDF, 2014), hypertension at 22.2% in men and 21.6% in women (NNMB, 2012) came to be matters of new public health concern.
3
+
4
+
5
+ [[use]]
6
+ Compositional values of foods are useful in manifold ways; in nutritional surveillance, consumer nutrition appraisal, nutrition labeling, etiology of disease prevalence, setting school menu standards-meal planning, issue of dietary guidelines- recommendations and even to estimate intake of toxic and non-nutritive components as well as to assess environmental impact of foods. Thus, compilation of food composition data is an important activity the utility of which spans across various sectors and disciplines.
7
+
8
+
9
+ [[1951]]
10
+ Between 1938 and 1951, there was a notable transition in the Indian nutrition scenario. Among tropical regions, India contributed substantially in the field of nutrition (Nicholls, 1945). The incidence of pellagra was noticed and the role of niacin in its cure was successfully demonstrated in India (Raman, 1940; Aykroyd & Swaminathan, 1940). The agricultural practices in India also underwent modifications with concomitant increase in the crop yields. However, the basic diet of individuals remained inadequate, devoid of animal fats and proteins, due to poor economic conditions (Day, 1944). The translation of nutrition research into sustained public health was hindered by obstacles of weak economy, ignorance and poverty (Aykroyd, 1941). Other deficiency diseases such as maternal anaemia, infant beriberi and osteomalacia continued to be rampant. Sustained nutritional issues prompted the revision of Indian FCT resulting in the publication of fourth edition of the Health Bulletin No. 23 by Aykroyd, Patwardhan, and Ranganathan (1951).
11
+
12
+
13
+ [[funder]]
14
+ IFCT2017 is funded by Indian Council of Medical Research (ICMR), New Delhi.
15
+
16
+
17
+ [[why]]
18
+ Nutritional disorders were prominent public health concern in India during the early 20th century (Barry, 1900; Annual report of Government of India, 1905; Scott, 1916; Ernest, 1917). A general inclination was to pursue research that would elucidate the facts responsible for the prevalence of malnutrition in order to issue guidelines and deliver solutions for its prevention and control. In the year 1918, an enquiry headed by Sir Robert McCarrison was launched to investigate the prevalence of beriberi under the auspices of Indian Research Fund Association (IRFA), now Indian Council of Medical Research (ICMR). Subsequently, the research broadened to a ‘deficiency disease enquiry’ and ultimately transformed into a fully functional research organization named Nutrition Research Laboratories (NRL) housed at the Pasteur Institute, Coonor, Nilgiri, India (Narasinga Rao, 2005a).
19
+
20
+ One of the major public health concerns that NRL, Coonor started looking into was the protein energy malnutrition (PEM). Incipient reports on nutrient evaluations in India, suggested an emphasis on protein content and quality of Indian foods and diets (Lewis, 1880; McNamara, 1906; McCay, 1910; McCay, 1911; McCay, 1912; Passmore, 1948). Prevalence of iron deficiency anemia (IDA) among infants and children of India was also widely recognized. However, comprehensive and conclusive epidemiological studies on nutritional deficiencies in India were scarce. Aykroyd and Rajagopal (1936) reported that the weight for height of Indian children was below that of American children and almost 14% of them showed signs of deficiency diseases. Nutrient deficiency diseases such as beriberi, keratomalacia, night blindness, rickets, osteomalacia, dental caries, pellagra, pregnancy anaemia and lathyrism were of the major concern (McCarrison, 1932). In addition, incidence of goiter due to iodine deficiency was also an issue of concern affecting the Indian population in many regions of the country.
21
+
22
+ Insufficient consumption of milk, eggs and meat was found to be the cause of inadequate supply of protein, minerals such as calcium and fat soluble vitamin A among certain sections of Indian populations (McCarrison, 1925). Prevalence of malnutrition due to inadequate nutrient intake was observed throughout the country.The cause of beriberi in India was found to be low dietary supply of vitamin B either from rice or other food grains (McCarrison & Norris, 1924). Aykroyd (1932) found that milled parboiled rice contained considerably higher amount of vitamin B1 as compared to raw milled rice. Meanwhile, McCarrison (1936) established that populations who preferred consuming raw milled rice over parboiled milled rice were more prone to beriberi.
23
+
24
+
25
+ [[source]]
26
+ No data in this book has been borrowed or derived from other data sources and represents accurate nutritional information of foods that are consumed across the country. The data are of reasonable representation of year round nationwide means and fit for assessment of nutrient intakes and their impact on health of the population.
27
+
28
+
29
+ [[credit]]
30
+ Several individuals and organizations have been involved in the development of the ‘Indian Food Composition Tables, 2017’ right from conception of the programme, infrastructure establishment, capacity building and execution. This herculean task could not have been possible without the immense support from all corners.
31
+
32
+ Particular acknowledgement is due to Dr. V. M. Katoch, Former Secretary, Department of Health Research & Director General, Indian Council of Medical Research (ICMR) who recognized the importance and the need for new Indian Food Composition Database and provided the required financial grant for implementing the programme. Special thanks to Dr. Soumya Swaminathan, Secretary, Department of Health Research & Director General, Indian Council of Medical Research for her constant support and encouragement in accomplishing the task.
33
+
34
+ Sincere thanks to Dr. B. Sesikeran, Former Director, National Institute of Nutrition (NIN) and Dr. G. S. Toteja, Scientist-G & Head, Nutrition, ICMR for facilitating the smooth operation of the project without which the project would not have seen the light of the day. Particular thanks to Late Dr. B. S. Narasinga Rao, former Director of NIN and Dr. Padam Singh former Adll. Director General, ICMR and all the Expert Committee Members for their invaluable scientific inputs which strengthened the programme.
35
+
36
+ The constant support and encouragement provided by Dr. Ute Ruth Charrondiere, INFOODS Coordinator, FAO, Rome is gratefully acknowledged. Special appreciation and thanks to Dr. Kailash Chandra, Director, ZSI., Dr. Rajkumar Rajan, Officer-in-charge, Mr. A. Anand Kumar and Mr. Shrini Vaasu from Marine Biological Regional Centre, Chennai for their tireless effort in taxonomical identification of all varieties of fish, shellfish and mollusc analyzed.
37
+
38
+ To the project scientists Dr. P. Ravindra Naik, Dr. Charles Dorni, Dr. Hyma Pardipur, Dr. B. Sreedhar, Dr. S. Muthuswami, Dr. V. S. S. Prasad, Dr. Smitha Mathews and all the project Technical and Supporting staff, who worked tirelessly with so much passion, a special acknowledgment of gratitude. The invaluable contribution of Mr. V. Satish Babu, Instrumentation Officer who kept all the big and small instruments in excellent condition, Technical Officers Mr. K. Mangthya, Mr. K. Subhash & Mrs. P. S. Prashanti, is gratefully acknowledged for their technical support.
39
+
40
+ The extraordinary support received from various quarters of the National Institute of Nutrition - Administration, Stores, Purchase, Accounts, Leave Section, Electrical, Plumbing and Supporting Staff, Scientific and Technical colleagues cannot be forgotten and it will go down into history as the new book ‘Indian Food Composition Tables, 2017’ is released.
41
+
42
+
43
+ [[limitation]]
44
+ Food being a biological matter exhibits variations in chemical composition due to multiple factors. This is particularly true for labile nutrients like vitamins and variations are imminent due to food processing. These limitations of the FCT need to be understood by the users.
45
+
46
+
47
+ [[1937]]
48
+ Nutritional disorders were prominent public health concern in India during the early 20th century (Barry, 1900; Annual report of Government of India, 1905; Scott, 1916; Ernest, 1917). A general inclination was to pursue research that would elucidate the facts responsible for the prevalence of malnutrition in order to issue guidelines and deliver solutions for its prevention and control. In the year 1918, an enquiry headed by Sir Robert McCarrison was launched to investigate the prevalence of beriberi under the auspices of Indian Research Fund Association (IRFA), now Indian Council of Medical Research (ICMR). Subsequently, the research broadened to a ‘deficiency disease enquiry’ and ultimately transformed into a fully functional research organization named Nutrition Research Laboratories (NRL) housed at the Pasteur Institute, Coonor, Nilgiri, India (Narasinga Rao, 2005a).
49
+
50
+ One of the major public health concerns that NRL, Coonor started looking into was the protein energy malnutrition (PEM). Incipient reports on nutrient evaluations in India, suggested an emphasis on protein content and quality of Indian foods and diets (Lewis, 1880; McNamara, 1906; McCay, 1910; McCay, 1911; McCay, 1912; Passmore, 1948). Prevalence of iron deficiency anemia (IDA) among infants and children of India was also widely recognized. However, comprehensive and conclusive epidemiological studies on nutritional deficiencies in India were scarce. Aykroyd and Rajagopal (1936) reported that the weight for height of Indian children was below that of American children and almost 14% of them showed signs of deficiency diseases. Nutrient deficiency diseases such as beriberi, keratomalacia, night blindness, rickets, osteomalacia, dental caries, pellagra, pregnancy anaemia and lathyrism were of the major concern (McCarrison, 1932). In addition, incidence of goiter due to iodine deficiency was also an issue of concern affecting the Indian population in many regions of the country.
51
+
52
+ Insufficient consumption of milk, eggs and meat was found to be the cause of inadequate supply of protein, minerals such as calcium and fat soluble vitamin A among certain sections of Indian populations (McCarrison, 1925). Prevalence of malnutrition due to inadequate nutrient intake was observed throughout the country.The cause of beriberi in India was found to be low dietary supply of vitamin B either from rice or other food grains (McCarrison & Norris, 1924). Aykroyd (1932) found that milled parboiled rice contained considerably higher amount of vitamin B1 as compared to raw milled rice. Meanwhile, McCarrison (1936) established that populations who preferred consuming raw milled rice over parboiled milled rice were more prone to beriberi.
53
+
54
+
55
+ [[user]]
56
+ The users of the FCT will vary greatly and the data is expected to essentially benefit every national activity touching on human nutrition research, policy and education in India.
57
+
58
+
59
+ [[group]]
60
+ There are 20 food groups:
61
+ - A: Cereals and Millets. 24 foods.
62
+ - B: Grain Legumes. 25 foods.
63
+ - C: Green Leafy Vegetables. 34 foods.
64
+ - D: Other Vegetables. 78 foods.
65
+ - E: Fruits. 68 foods.
66
+ - F: Roots and Tubers. 19 foods.
67
+ - G: Condiments and Spices. 33 foods.
68
+ - H: Nuts and Oil Seeds. 21 foods.
69
+ - I: Sugars. 2 foods.
70
+ - J: Mushrooms. 4 foods.
71
+ - K: Miscellaneous Foods. 2 foods.
72
+ - L: Milk and Milk Products. 4 foods.
73
+ - M: Egg and Egg Products. 15 foods.
74
+ - N: Poultry. 19 foods.
75
+ - O: Animal Meat. 63 foods.
76
+ - P: Marine Fish. 92 foods.
77
+ - Q; Marine Shellfish. 8 foods.
78
+ - R: Marine Mollusks. 7 foods.
79
+ - S: Fresh Water Fish and Shellfish. 10 foods.
80
+ - T: Edible Oils and Fats. 9 foods.
81
+
82
+
83
+ [[supporter]]
84
+ International support is necessary and the International Network of Food Data Systems (INFOODS) at the Food and Agriculture Organization of the United Nations (FAO), Rome continues to provide assistance in terms of standards development and capacity building to strengthen national food composition activities across the world. Generating high quality food composition data is an expensive proposition but essential for elevating the nutrition scenario of the country. Therefore, sustained funding from the government through policy environment is required to sustain this cardinal activity.
85
+
86
+
87
+ [[what]]
88
+ Ever since the pioneering Indian FCT was brought out in the year 1937, the National Institute of Nutrition (ICMR), Hyderabad, has been constantly updating the compositional database of Indian foods. The new ‘Indian Food Composition Tables, 2017’, provides nutritional information on 151 discrete food components for 542 key foods. All data presented in this book originate from regional composite samples averaged for six geographical regions of the country. The voluminous food composition data of unprecedented analytical quality is statistically representative of both the national food supply and consumption pattern. The standard deviation of each component data point represents the overall variability within. No data in this book has been borrowed or derived from other data sources and represents accurate nutritional information of foods that are consumed across the country. The data are of reasonable representation of year round nationwide means and fit for assessment of nutrient intakes and their impact on health of the population. Except for eggs, all other food component data are for foods in the raw form. Food being a biological matter exhibits variations in chemical composition due to multiple factors. This is particularly true for labile nutrients like vitamins and variations are imminent due to food processing. These limitations of the FCT need to be understood by the users.
89
+
90
+
91
+ [[father]]
92
+ The father of nutrition in India is:
93
+ C. Gopalan
94
+ MD., Ph.D., D.Sc. (London), D.Sc. (Hon.), F.R.S., F.R.C.P. (Edin.), F.R.C.P. (London)
95
+
96
+
97
+ [[data]]
98
+ The new ‘Indian Food Composition Tables, 2017’, provides nutritional information on 151 discrete food components for 542 key foods. All data presented in this book originate from regional composite samples averaged for six geographical regions of the country. The voluminous food composition data of unprecedented analytical quality is statistically representative of both the national food supply and consumption pattern. The standard deviation of each component data point represents the overall variability within.
99
+
100
+ No data in this book has been borrowed or derived from other data sources and represents accurate nutritional information of foods that are consumed across the country. The data are of reasonable representation of year round nationwide means and fit for assessment of nutrient intakes and their impact on health of the population.
101
+
102
+ Except for eggs, all other food component data are for foods in the raw form. Food being a biological matter exhibits variations in chemical composition due to multiple factors. This is particularly true for labile nutrients like vitamins and variations are imminent due to food processing. These limitations of the FCT need to be understood by the users.
103
+
104
+
105
+ [[1963]]
106
+ In the subsequent years between 1952 and 1962, growth in nutrition oriented research in India took place even while deficiency disorders continued to be widespread. The diets predominantly comprised of cereals, small quantities of pulses, green vegetables and lesser proportion of milk, meat and eggs. Protein malnutrition was of considerable magnitude particularly among the poor communities (Rao, Swaminathan, Swarup, & Patwardhan,1959). Incidence of kwashiorkor and marasmus were observed across India (Gopalan & Ramalingaswami, 1955). Scientific articles around this time elucidated the role of amino acids in regulation of human health. Pellagra was reportedly instigated by amino acid imbalance of the sorghum diet, due to relatively excess leucine intake (Gopalan, 1961). Additionally, it was reported that the BV of proteins may not be limited by single amino acid but could be due to combined effects of partial amino acid deficiencies (Patwardhan, 1956). Among micronutrient deficiencies, iron deficiency anemia (IDA) was observed more among rural sections of populations while kwashiorkor occurred throughout India (Patwardhan, 1961). It was found that the prevalence of IDA was greater in India when compared to Europe due to excessive phosphorus and phytic acid with concomitant low calcium levels in the diet. About 16% of population had less than 8 g/100 dl mean blood haemoglobin level while the daily intake of iron among Indian populations ranged from 12 to 40 mg (Foy & Kondi, 1957). The occurrence of IDA was therefore observed to be not exclusively limited to the low iron intake from the diets but was also attributed to poor gastrointestinal absorption, inhibition of iron uptake by other dietary components or even the loss of absorbed iron.
107
+
108
+
109
+ [[column]]
110
+ The food components (nutrients) listed are:
111
+ - Proximate Principles and Dietary Fiber
112
+ - Water Soluble Vitamins
113
+ - Fat Soluble Vitamins
114
+ - Carotenoids
115
+ - Minerals and Trace Elements
116
+ - Starch and Individual Sugars
117
+ - Fatty Acid Profile
118
+ - Amino Acid Profile
119
+ - Organic Acids
120
+ - Polyphenols
121
+ - Oligosaccharides, Phytosterols, Saponins and Phytates
122
+ - Fatty Acid Profile of Edible Oils and Fats
123
+
124
+ For a detailed list of all food components, please check:
125
+ https://ifct2017.github.io/docs/columns
126
+
127
+
128
+ [[1989]]
129
+ The green revolution ushered in food security and there was a substantial decrease in the levels of poverty in India. After 1971, the status of nutritional deficiencies was observed to have improved with the reduction in the prevalence of IDA, vitamin A deficiency (VAD) and child malnutrition except the incidence of goitre which had escalated. Between 1971 and 1974, the prevalence of corneal disease (vitamin A deficiency) accounted for about 2% of the cases of blindness in India (Reddy, Shekar, Rao, & Gillespie, 1992). Between 1975 and 1990, there was a decline in clinical deficiency signs of VAD among children of 1 to 5 years in rural areas (National Nutrition Monitoring Bureau, NNMB Report, 1991). The prevalence of marasmus and kwashiorkor also decreased from 1.3 to 0.6% and 0.4 to 0.1%, respectively. However, chronic diseases such as diabetes and cardiovascular health became matters of public health concern.
130
+
131
+
132
+ [[form]]
133
+ Except for eggs, all other food component data are for foods in the raw form.
134
+
135
+
136
+ [[learn]]
137
+ You can learn more about food and nutrition here:
138
+ - NIN, Hyderabad: http://www.ninindia.org/
139
+ - Food composition data: http://ifct2017.com/
140
+ - Nutrition education: http://vikaspedia.in/health/nutrition
141
+ - Nutrition Atlas: http://218.248.6.39/nutritionatlas/home.php
142
+ - Count what you eat: http://218.248.6.43:8080/CountWhatYouEat/Home.do
143
+
144
+
145
+ [[publisher]]
146
+ Indian Food Composition Tables 2017 was published by:
147
+ T. Longvah, R. Ananthan, K. Bhaskarachary and K. Venkaiah
148
+ National Institute of Nutrition
149
+ Indian Council of Medical Research
150
+ Department of Health Research
151
+ Ministry of Health and Family Welfare, Government of India
152
+ Jamai Osmania (PO), Hyderabad – 500 007
153
+ Telangana, India
154
+ Phone: +91 40 27197334, Fax: +91 40 27000339, Email: nin@ap.nic.in
155
+
156
+
157
+ [[challenge]]
158
+ Keeping food composition data up-to-date is a continuous challenge and ‘Indian Food Composition Tables, 2017’ does not contain a exhaustive list of all foods consumed in India. The multi-cultural nature of the Indian population can be observed in the diverse ethnic foods used across the regions for which compositional database is still inconsistent and fragmentary. Food composition tables are never complete due to the constant introduction of new foods into food supply, discovery of food components that are associated with health and disease, and continuous improvements in analytical methods and techniques.
159
+
160
+
161
+ [[interest]]
162
+ Recent studies of the relationship between diet and health have led to increased interest in the range of biologically active constituents present in foods that accompany the nutrients. This book not only provides data of regular nutrients in foods complete in all respect but also on a whole range of bioactive substances. Vitamin D2 content in plant foods is presented here for the first time in the world. The tables contain data on oligosaccharides, phytosterols, organic acids and individual polyphenols. This book also embodies an exhaustive database on amino acid and fatty acid profiles of various foods.
163
+
164
+
165
+ [[when]]
166
+ In India, nutrient profiling of foods began almost a century ago which manifested in four main published FCT editions in the year 1937, 1951, 1971 and 1989.
167
+
168
+ The latest FCT was published on 2017.
169
+
170
+
171
+ [[1971]]
172
+ In a relatively short duration between 1964 and 1970 there was very little probability for the alteration in the nutritive value of Indian foods. The dietary pattern remained similar despite economic growth, probably due to concomitant population expansion, low income and inadequate food supply (Rao, 1967). A slight upward trend was noted in the consumption of foods from animal sources, fats, sugars while a slight decline was noticed in the intakes of vegetables and food grains. Yet, diets were found to be inadequate in protein, vitamin A, calcium, iron, energy, ascorbic acid, thiamine and riboflavin according to Nutritional Advisory Committee (NAC) of the ICMR (Devadas et al., 1965). The Indian population continued to thrive on subsistence vegetarian diets with little or no milk. These dietetic and nutritional factors were considered while revising the FCT. Subsequently, a consolidated FCT entitled ‘Nutritive Value of Indian Foods’ was released by Gopalan, Ramasastri, and Balasubramanian (1971). The phrase ‘Planning of Satisfactory Diets’ was excluded from the title probably due to increase in consumer options triggered by economic growth.
173
+
174
+ Apart from inadequate dietary iron intake, the incidence of IDA was additionally ascribed to impair iron absorption leading to metabolic deficit due to preference for cereal rather than iron rich foods (Venkatachalam, 1968). Protein energy malnutrition (PEM) in the forms of Kwashiorkor (protein and calorie deficiency) and marasmus (calorie deficiency) were evident among children and were regarded as the most prevalent and widespread nutritional problems in India during those days (Gopalan, 1970). Nutritional hypertension observed among Indian population was at that time ascribed to the differential proportion of long chain versus short chain fatty acids in the fats and oils consumed (Malhotra, 1970).