@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.
- package/LICENSE +620 -0
- package/README.md +66 -0
- package/data/crop-covers/bare-soil.md +23 -0
- package/data/crop-covers/index.md +21 -0
- package/data/crop-covers/permanent-sod.md +23 -0
- package/data/crop-covers/sown-legume.md +23 -0
- package/data/crop-covers/spontaneous-grass.md +23 -0
- package/data/crops/index.md +23 -0
- package/data/crops/lavandula-angustifolia.md +30 -0
- package/data/crops/malus-domestica.md +30 -0
- package/data/crops/prunus-persica.md +30 -0
- package/data/crops/triticum-aestivum.md +30 -0
- package/data/crops/vitis-vinifera.md +30 -0
- package/data/crops/zea-mays.md +30 -0
- package/data/index.md +22 -0
- package/data/irrigations/drip.md +24 -0
- package/data/irrigations/gravity.md +24 -0
- package/data/irrigations/index.md +21 -0
- package/data/irrigations/none.md +24 -0
- package/data/irrigations/sprinkler.md +24 -0
- package/data/soils/clay-loam.md +29 -0
- package/data/soils/clay.md +29 -0
- package/data/soils/index.md +26 -0
- package/data/soils/loam.md +29 -0
- package/data/soils/sand.md +29 -0
- package/data/soils/sandy-clay-loam.md +29 -0
- package/data/soils/sandy-clay.md +29 -0
- package/data/soils/sandy-loam.md +29 -0
- package/data/soils/silt-loam.md +29 -0
- package/data/soils/silt.md +29 -0
- package/data/soils/silty-clay-loam.md +29 -0
- package/dist/build.d.ts +5 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +61 -0
- package/dist/build.js.map +1 -0
- package/dist/catalog.json +1623 -0
- package/dist/embeddedData.d.ts +6 -0
- package/dist/embeddedData.d.ts.map +1 -0
- package/dist/embeddedData.js +906 -0
- package/dist/embeddedData.js.map +1 -0
- package/dist/extractor.d.ts +31 -0
- package/dist/extractor.d.ts.map +1 -0
- package/dist/extractor.js +161 -0
- package/dist/extractor.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +25 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +104 -0
- package/dist/loader.js.map +1 -0
- package/dist/opendata.jsonld +268 -0
- package/dist/parser.d.ts +14 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +124 -0
- package/dist/parser.js.map +1 -0
- package/dist/types.d.ts +89 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
- package/src/build.ts +71 -0
- package/src/embeddedData.ts +910 -0
- package/src/extractor.ts +207 -0
- package/src/index.ts +98 -0
- package/src/loader.ts +126 -0
- package/src/parser.ts +137 -0
- 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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|
package/dist/loader.d.ts
ADDED
|
@@ -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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"}
|