@bradtech/ontologies 1.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 (69) hide show
  1. package/LICENSE +620 -0
  2. package/README.md +66 -0
  3. package/data/crop-covers/bare-soil.md +23 -0
  4. package/data/crop-covers/index.md +21 -0
  5. package/data/crop-covers/permanent-sod.md +23 -0
  6. package/data/crop-covers/sown-legume.md +23 -0
  7. package/data/crop-covers/spontaneous-grass.md +23 -0
  8. package/data/crops/index.md +23 -0
  9. package/data/crops/lavandula-angustifolia.md +30 -0
  10. package/data/crops/malus-domestica.md +30 -0
  11. package/data/crops/prunus-persica.md +30 -0
  12. package/data/crops/triticum-aestivum.md +30 -0
  13. package/data/crops/vitis-vinifera.md +30 -0
  14. package/data/crops/zea-mays.md +30 -0
  15. package/data/index.md +22 -0
  16. package/data/irrigations/drip.md +24 -0
  17. package/data/irrigations/gravity.md +24 -0
  18. package/data/irrigations/index.md +21 -0
  19. package/data/irrigations/none.md +24 -0
  20. package/data/irrigations/sprinkler.md +24 -0
  21. package/data/soils/clay-loam.md +29 -0
  22. package/data/soils/clay.md +29 -0
  23. package/data/soils/index.md +26 -0
  24. package/data/soils/loam.md +29 -0
  25. package/data/soils/sand.md +29 -0
  26. package/data/soils/sandy-clay-loam.md +29 -0
  27. package/data/soils/sandy-clay.md +29 -0
  28. package/data/soils/sandy-loam.md +29 -0
  29. package/data/soils/silt-loam.md +29 -0
  30. package/data/soils/silt.md +29 -0
  31. package/data/soils/silty-clay-loam.md +29 -0
  32. package/dist/build.d.ts +5 -0
  33. package/dist/build.d.ts.map +1 -0
  34. package/dist/build.js +61 -0
  35. package/dist/build.js.map +1 -0
  36. package/dist/catalog.json +1623 -0
  37. package/dist/embeddedData.d.ts +6 -0
  38. package/dist/embeddedData.d.ts.map +1 -0
  39. package/dist/embeddedData.js +906 -0
  40. package/dist/embeddedData.js.map +1 -0
  41. package/dist/extractor.d.ts +31 -0
  42. package/dist/extractor.d.ts.map +1 -0
  43. package/dist/extractor.js +161 -0
  44. package/dist/extractor.js.map +1 -0
  45. package/dist/index.d.ts +24 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +44 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/loader.d.ts +25 -0
  50. package/dist/loader.d.ts.map +1 -0
  51. package/dist/loader.js +104 -0
  52. package/dist/loader.js.map +1 -0
  53. package/dist/opendata.jsonld +268 -0
  54. package/dist/parser.d.ts +14 -0
  55. package/dist/parser.d.ts.map +1 -0
  56. package/dist/parser.js +124 -0
  57. package/dist/parser.js.map +1 -0
  58. package/dist/types.d.ts +89 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +5 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +42 -0
  63. package/src/build.ts +71 -0
  64. package/src/embeddedData.ts +910 -0
  65. package/src/extractor.ts +207 -0
  66. package/src/index.ts +98 -0
  67. package/src/loader.ts +126 -0
  68. package/src/parser.ts +137 -0
  69. package/src/types.ts +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddedData.js","sourceRoot":"","sources":["../src/embeddedData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Extractor & Open Data Publisher for @bradtech/ontologies.
3
+ */
4
+ import type { OntologyCatalogIndex } from './loader';
5
+ import type { AnyOntologyItem, FlatSelectOption, HierarchyNode, OntologyDomain, OntologyLookupResult, SupportedLanguage } from './types';
6
+ /**
7
+ * Returns localized label for an ontology item given a target language with fallback.
8
+ */
9
+ export declare function getLocalizedLabel(item: AnyOntologyItem, language?: SupportedLanguage): string;
10
+ /**
11
+ * Extracts a flat list of options for a domain, localized to the specified language.
12
+ * Ideal for rendering dropdown select components (UI/API).
13
+ */
14
+ export declare function extractFlatList(catalog: OntologyCatalogIndex, domain: OntologyDomain, language?: SupportedLanguage): FlatSelectOption[];
15
+ /**
16
+ * Extracts a key-value dictionary { id: label } for direct consumption by UI form definitions.
17
+ */
18
+ export declare function extractFlatMap(catalog: OntologyCatalogIndex, domain: OntologyDomain, language?: SupportedLanguage): Record<string, string>;
19
+ /**
20
+ * Extracts a hierarchical taxonomy tree for cascading selectors.
21
+ */
22
+ export declare function extractHierarchy(catalog: OntologyCatalogIndex, domain: OntologyDomain, _language?: SupportedLanguage): HierarchyNode[];
23
+ /**
24
+ * Universal lookup that resolves any input (ID, EPPO code, TelePAC code, AGROVOC URI, or title).
25
+ */
26
+ export declare function lookup(catalog: OntologyCatalogIndex, query: string): OntologyLookupResult | null;
27
+ /**
28
+ * Converts ontology items into an Open Data Schema.org / DCAT-AP compliant JSON-LD graph.
29
+ */
30
+ export declare function toOpenDataJsonLd(catalog: OntologyCatalogIndex, domain?: OntologyDomain): Record<string, any>;
31
+ //# sourceMappingURL=extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,KAAK,EACT,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACnB,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,wBAAgB,iBAAiB,CAC9B,IAAI,EAAE,eAAe,EACrB,QAAQ,GAAE,iBAAwB,GAClC,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,GAAE,iBAAwB,GAClC,gBAAgB,EAAE,CAQpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC3B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,cAAc,EACtB,QAAQ,GAAE,iBAAwB,GAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,cAAc,EACtB,SAAS,GAAE,iBAAwB,GACnC,aAAa,EAAE,CAoCjB;AAED;;GAEG;AACH,wBAAgB,MAAM,CACnB,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,MAAM,GACb,oBAAoB,GAAG,IAAI,CA0C7B;AASD;;GAEG;AACH,wBAAgB,gBAAgB,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,cAAc,GACvB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA+BrB"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Extractor & Open Data Publisher for @bradtech/ontologies.
3
+ */
4
+ /**
5
+ * Returns localized label for an ontology item given a target language with fallback.
6
+ */
7
+ export function getLocalizedLabel(item, language = 'fr') {
8
+ if (item.translations && item.translations[language]) {
9
+ return item.translations[language];
10
+ }
11
+ if (item.translations && item.translations.fr) {
12
+ return item.translations.fr;
13
+ }
14
+ if (item.translations && item.translations.en) {
15
+ return item.translations.en;
16
+ }
17
+ return item.title;
18
+ }
19
+ /**
20
+ * Extracts a flat list of options for a domain, localized to the specified language.
21
+ * Ideal for rendering dropdown select components (UI/API).
22
+ */
23
+ export function extractFlatList(catalog, domain, language = 'fr') {
24
+ const items = catalog.byDomain.get(domain) || [];
25
+ return items.map((item) => ({
26
+ id: item.id,
27
+ label: getLocalizedLabel(item, language),
28
+ description: item.description,
29
+ standards: item.standards,
30
+ }));
31
+ }
32
+ /**
33
+ * Extracts a key-value dictionary { id: label } for direct consumption by UI form definitions.
34
+ */
35
+ export function extractFlatMap(catalog, domain, language = 'fr') {
36
+ const list = extractFlatList(catalog, domain, language);
37
+ const map = {};
38
+ for (const opt of list) {
39
+ map[opt.id] = opt.label;
40
+ }
41
+ return map;
42
+ }
43
+ /**
44
+ * Extracts a hierarchical taxonomy tree for cascading selectors.
45
+ */
46
+ export function extractHierarchy(catalog, domain, _language = 'fr') {
47
+ const items = catalog.byDomain.get(domain) || [];
48
+ // If items have category or hierarchy grouping (e.g. crops by category)
49
+ const categoryGroups = new Map();
50
+ for (const item of items) {
51
+ const category = item.category || 'general';
52
+ if (!categoryGroups.has(category)) {
53
+ categoryGroups.set(category, []);
54
+ }
55
+ categoryGroups.get(category).push(item);
56
+ }
57
+ const roots = [];
58
+ for (const [category, childrenItems] of categoryGroups.entries()) {
59
+ const childrenNodes = childrenItems.map((child) => ({
60
+ item: child,
61
+ children: [],
62
+ }));
63
+ roots.push({
64
+ item: {
65
+ type: 'category',
66
+ id: category,
67
+ title: category.toUpperCase(),
68
+ description: `Category: ${category}`,
69
+ tags: [domain, category],
70
+ translations: { fr: category, en: category },
71
+ },
72
+ children: childrenNodes,
73
+ });
74
+ }
75
+ return roots;
76
+ }
77
+ /**
78
+ * Universal lookup that resolves any input (ID, EPPO code, TelePAC code, AGROVOC URI, or title).
79
+ */
80
+ export function lookup(catalog, query) {
81
+ if (!query || typeof query !== 'string')
82
+ return null;
83
+ const trimmed = query.trim();
84
+ const upper = trimmed.toUpperCase();
85
+ // 1. Exact ID match
86
+ if (catalog.byId.has(trimmed)) {
87
+ const item = catalog.byId.get(trimmed);
88
+ return { item, domain: resolveDomainOfItem(item), matchedBy: 'id' };
89
+ }
90
+ // 2. EPPO code match
91
+ if (catalog.byEppo.has(upper)) {
92
+ const item = catalog.byEppo.get(upper);
93
+ return { item, domain: 'crops', matchedBy: 'eppo' };
94
+ }
95
+ // 3. TelePAC RPG code match
96
+ if (catalog.byTelepac.has(upper)) {
97
+ const item = catalog.byTelepac.get(upper);
98
+ return { item, domain: 'crops', matchedBy: 'telepac' };
99
+ }
100
+ // 4. AGROVOC URI/Code match
101
+ if (catalog.byAgrovoc.has(trimmed)) {
102
+ const item = catalog.byAgrovoc.get(trimmed);
103
+ return { item, domain: resolveDomainOfItem(item), matchedBy: 'agrovoc' };
104
+ }
105
+ // 5. Case-insensitive title / alias scan
106
+ for (const item of catalog.items) {
107
+ if (item.title.toLowerCase() === trimmed.toLowerCase()) {
108
+ return { item, domain: resolveDomainOfItem(item), matchedBy: 'alias' };
109
+ }
110
+ for (const trans of Object.values(item.translations || {})) {
111
+ if (trans && trans.toLowerCase() === trimmed.toLowerCase()) {
112
+ return { item, domain: resolveDomainOfItem(item), matchedBy: 'alias' };
113
+ }
114
+ }
115
+ }
116
+ return null;
117
+ }
118
+ function resolveDomainOfItem(item) {
119
+ if (item.type === 'soil')
120
+ return 'soils';
121
+ if (item.type === 'irrigation')
122
+ return 'irrigations';
123
+ if (item.type === 'crop')
124
+ return 'crops';
125
+ return 'crop-covers';
126
+ }
127
+ /**
128
+ * Converts ontology items into an Open Data Schema.org / DCAT-AP compliant JSON-LD graph.
129
+ */
130
+ export function toOpenDataJsonLd(catalog, domain) {
131
+ const targetItems = domain ? catalog.byDomain.get(domain) || [] : catalog.items;
132
+ return {
133
+ '@context': {
134
+ '@vocab': 'https://schema.org/',
135
+ 'okf': 'https://openknowledgeformat.org/ns/',
136
+ 'eppo': 'https://gd.eppo.int/taxon/',
137
+ 'agrovoc': 'http://aims.fao.org/aos/agrovoc/',
138
+ 'wrb': 'https://www.isric.org/explore/wrb/',
139
+ },
140
+ '@type': 'DataCatalog',
141
+ 'name': 'OSFARM & Brad Agricultural Taxonomies',
142
+ 'url': 'https://lexicon.osfarm.org',
143
+ 'publisher': {
144
+ '@type': 'Organization',
145
+ 'name': 'Brad Technology SAS & OSFARM Collective',
146
+ },
147
+ 'itemListElement': targetItems.map((item) => ({
148
+ '@type': item.type === 'crop' ? 'Plant' : 'DefinedTerm',
149
+ '@id': `okf:${item.type}/${item.id}`,
150
+ 'identifier': item.id,
151
+ 'name': item.title,
152
+ 'description': item.description,
153
+ 'keywords': item.tags.join(', '),
154
+ 'sameAs': [
155
+ item.standards?.eppo ? `https://gd.eppo.int/taxon/${item.standards.eppo}` : null,
156
+ item.standards?.agrovoc ? `http://aims.fao.org/aos/agrovoc/${item.standards.agrovoc}` : null,
157
+ ].filter(Boolean),
158
+ })),
159
+ };
160
+ }
161
+ //# sourceMappingURL=extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor.js","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @bradtech/ontologies
3
+ * Open Knowledge Format (OKF v0.1) Agricultural Lexicon & Taxonomies
4
+ */
5
+ import { type OntologyCatalogIndex } from './loader';
6
+ import type { AnyOntologyItem, CropAgronomy, CropCoverEffects, CropCoverOntologyItem, CropOntologyItem, FlatSelectOption, HierarchyNode, IrrigationEngineering, IrrigationOntologyItem, LanguageMap, OntologyDomain, OntologyLookupResult, OntologyStandards, SoilOntologyItem, SoilPhysics, SupportedLanguage } from './types';
7
+ export type { AnyOntologyItem, CropAgronomy, CropCoverEffects, CropCoverOntologyItem, CropOntologyItem, FlatSelectOption, HierarchyNode, IrrigationEngineering, IrrigationOntologyItem, LanguageMap, OntologyDomain, OntologyLookupResult, OntologyStandards, SoilOntologyItem, SoilPhysics, SupportedLanguage, OntologyCatalogIndex, };
8
+ export * from './parser';
9
+ export * from './loader';
10
+ export * from './extractor';
11
+ export { EMBEDDED_ONTOLOGY_ITEMS } from './embeddedData';
12
+ export declare function getDefaultCatalog(): OntologyCatalogIndex;
13
+ /**
14
+ * Convenience helper methods using the default built-in catalog.
15
+ */
16
+ export declare const Lexicon: {
17
+ getCatalog: typeof getDefaultCatalog;
18
+ getFlatList(domain: OntologyDomain, lang?: SupportedLanguage): FlatSelectOption[];
19
+ getFlatMap(domain: OntologyDomain, lang?: SupportedLanguage): Record<string, string>;
20
+ getHierarchy(domain: OntologyDomain, lang?: SupportedLanguage): HierarchyNode[];
21
+ lookup(query: string): OntologyLookupResult | null;
22
+ toOpenData(domain?: OntologyDomain): Record<string, any>;
23
+ };
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAA;AASxE,OAAO,KAAK,EACT,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACnB,MAAM,SAAS,CAAA;AAEhB,YAAY,EACT,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,GACtB,CAAA;AAED,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAQxD,wBAAgB,iBAAiB,IAAI,oBAAoB,CAKxD;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;;wBAGG,cAAc,SAAQ,iBAAiB,GAAU,gBAAgB,EAAE;uBAIpE,cAAc,SAAQ,iBAAiB,GAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;yBAIrE,cAAc,SAAQ,iBAAiB,GAAU,aAAa,EAAE;kBAIvE,MAAM,GAAG,oBAAoB,GAAG,IAAI;wBAI9B,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAG1D,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @bradtech/ontologies
3
+ * Open Knowledge Format (OKF v0.1) Agricultural Lexicon & Taxonomies
4
+ */
5
+ import { EMBEDDED_ONTOLOGY_ITEMS } from './embeddedData';
6
+ import { indexOntologyItems } from './loader';
7
+ import { extractFlatList, extractFlatMap, extractHierarchy, lookup, toOpenDataJsonLd, } from './extractor';
8
+ export * from './parser';
9
+ export * from './loader';
10
+ export * from './extractor';
11
+ export { EMBEDDED_ONTOLOGY_ITEMS } from './embeddedData';
12
+ /**
13
+ * Singleton instance of the built-in Agricultural Ontology Catalog.
14
+ * Lazily loaded on first access using statically embedded concepts (zero fs dependency).
15
+ */
16
+ let _defaultCatalog = null;
17
+ export function getDefaultCatalog() {
18
+ if (!_defaultCatalog) {
19
+ _defaultCatalog = indexOntologyItems(EMBEDDED_ONTOLOGY_ITEMS);
20
+ }
21
+ return _defaultCatalog;
22
+ }
23
+ /**
24
+ * Convenience helper methods using the default built-in catalog.
25
+ */
26
+ export const Lexicon = {
27
+ getCatalog: getDefaultCatalog,
28
+ getFlatList(domain, lang = 'fr') {
29
+ return extractFlatList(getDefaultCatalog(), domain, lang);
30
+ },
31
+ getFlatMap(domain, lang = 'fr') {
32
+ return extractFlatMap(getDefaultCatalog(), domain, lang);
33
+ },
34
+ getHierarchy(domain, lang = 'fr') {
35
+ return extractHierarchy(getDefaultCatalog(), domain, lang);
36
+ },
37
+ lookup(query) {
38
+ return lookup(getDefaultCatalog(), query);
39
+ },
40
+ toOpenData(domain) {
41
+ return toOpenDataJsonLd(getDefaultCatalog(), domain);
42
+ },
43
+ };
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAA6B,MAAM,UAAU,CAAA;AACxE,OAAO,EACJ,eAAe,EACf,cAAc,EACd,gBAAgB,EAEhB,MAAM,EACN,gBAAgB,GAClB,MAAM,aAAa,CAAA;AAwCpB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAExD;;;GAGG;AACH,IAAI,eAAe,GAAgC,IAAI,CAAA;AAEvD,MAAM,UAAU,iBAAiB;IAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACpB,eAAe,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,eAAe,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,iBAAiB;IAE7B,WAAW,CAAC,MAAsB,EAAE,OAA0B,IAAI;QAC/D,OAAO,eAAe,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,UAAU,CAAC,MAAsB,EAAE,OAA0B,IAAI;QAC9D,OAAO,cAAc,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,YAAY,CAAC,MAAsB,EAAE,OAA0B,IAAI;QAChE,OAAO,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,KAAa;QACjB,OAAO,MAAM,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAC,MAAuB;QAC/B,OAAO,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,CAAA;IACvD,CAAC;CACH,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * OKF Knowledge Graph & Directory Loader for @bradtech/ontologies.
3
+ */
4
+ import type { AnyOntologyItem, CropOntologyItem, OntologyDomain } from './types';
5
+ export interface OntologyCatalogIndex {
6
+ items: AnyOntologyItem[];
7
+ byId: Map<string, AnyOntologyItem>;
8
+ byDomain: Map<OntologyDomain, AnyOntologyItem[]>;
9
+ byEppo: Map<string, CropOntologyItem>;
10
+ byAgrovoc: Map<string, AnyOntologyItem>;
11
+ byTelepac: Map<string, CropOntologyItem>;
12
+ }
13
+ /**
14
+ * Builds an in-memory index from a list of parsed ontology items.
15
+ */
16
+ export declare function indexOntologyItems(rawItems: AnyOntologyItem[]): OntologyCatalogIndex;
17
+ /**
18
+ * Recursively scans a directory and returns all .md file paths.
19
+ */
20
+ export declare function scanMarkdownFiles(dirPath: string): string[];
21
+ /**
22
+ * Loads and indexes all OKF documents from the specified directory.
23
+ */
24
+ export declare function loadOntologyCatalog(dataPath: string): OntologyCatalogIndex;
25
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACT,eAAe,EACf,gBAAgB,EAEhB,cAAc,EAEhB,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,oBAAoB;IAClC,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAClC,QAAQ,EAAE,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,CAAC,CAAA;IAChD,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACrC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACvC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,oBAAoB,CAqDpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAmB3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAgB1E"}
package/dist/loader.js ADDED
@@ -0,0 +1,104 @@
1
+ /**
2
+ * OKF Knowledge Graph & Directory Loader for @bradtech/ontologies.
3
+ */
4
+ import { readdirSync, readFileSync, statSync } from 'node:fs';
5
+ import { join, resolve } from 'node:path';
6
+ import { parseOkfDocument } from './parser';
7
+ /**
8
+ * Builds an in-memory index from a list of parsed ontology items.
9
+ */
10
+ export function indexOntologyItems(rawItems) {
11
+ const items = [];
12
+ const byId = new Map();
13
+ const byDomain = new Map([
14
+ ['soils', []],
15
+ ['irrigations', []],
16
+ ['crops', []],
17
+ ['crop-covers', []],
18
+ ]);
19
+ const byEppo = new Map();
20
+ const byAgrovoc = new Map();
21
+ const byTelepac = new Map();
22
+ for (const doc of rawItems) {
23
+ if (doc.type === 'catalog' || doc.type === 'domain') {
24
+ byId.set(doc.id, doc);
25
+ continue;
26
+ }
27
+ items.push(doc);
28
+ byId.set(doc.id, doc);
29
+ if (doc.type === 'soil') {
30
+ byDomain.get('soils')?.push(doc);
31
+ }
32
+ else if (doc.type === 'irrigation') {
33
+ byDomain.get('irrigations')?.push(doc);
34
+ }
35
+ else if (doc.type === 'crop') {
36
+ byDomain.get('crops')?.push(doc);
37
+ }
38
+ else if (doc.type === 'crop-cover') {
39
+ byDomain.get('crop-covers')?.push(doc);
40
+ }
41
+ if (doc.standards?.eppo && doc.type === 'crop') {
42
+ byEppo.set(doc.standards.eppo.toUpperCase(), doc);
43
+ }
44
+ if (doc.standards?.agrovoc) {
45
+ byAgrovoc.set(String(doc.standards.agrovoc), doc);
46
+ }
47
+ if (doc.standards?.telepac_rpg && Array.isArray(doc.standards.telepac_rpg)) {
48
+ for (const code of doc.standards.telepac_rpg) {
49
+ byTelepac.set(String(code).toUpperCase(), doc);
50
+ }
51
+ }
52
+ }
53
+ return {
54
+ items,
55
+ byId,
56
+ byDomain,
57
+ byEppo,
58
+ byAgrovoc,
59
+ byTelepac,
60
+ };
61
+ }
62
+ /**
63
+ * Recursively scans a directory and returns all .md file paths.
64
+ */
65
+ export function scanMarkdownFiles(dirPath) {
66
+ const results = [];
67
+ function walk(current) {
68
+ const entries = readdirSync(current);
69
+ for (const entry of entries) {
70
+ if (entry.startsWith('.'))
71
+ continue;
72
+ const fullPath = join(current, entry);
73
+ const stat = statSync(fullPath);
74
+ if (stat.isDirectory()) {
75
+ walk(fullPath);
76
+ }
77
+ else if (stat.isFile() && entry.endsWith('.md')) {
78
+ results.push(fullPath);
79
+ }
80
+ }
81
+ }
82
+ walk(dirPath);
83
+ return results;
84
+ }
85
+ /**
86
+ * Loads and indexes all OKF documents from the specified directory.
87
+ */
88
+ export function loadOntologyCatalog(dataPath) {
89
+ const targetDir = resolve(dataPath);
90
+ const files = scanMarkdownFiles(targetDir);
91
+ const rawItems = [];
92
+ for (const filePath of files) {
93
+ const content = readFileSync(filePath, 'utf-8');
94
+ try {
95
+ const doc = parseOkfDocument(content);
96
+ rawItems.push(doc);
97
+ }
98
+ catch (err) {
99
+ // Skip files without valid frontmatter
100
+ }
101
+ }
102
+ return indexOntologyItems(rawItems);
103
+ }
104
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}