glossarist 0.4.49 → 0.4.51

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 (700) hide show
  1. package/dist/compiled-format.d.ts +43 -0
  2. package/dist/compiled-format.d.ts.map +1 -0
  3. package/{src/compiled-format.ts → dist/compiled-format.js} +28 -46
  4. package/dist/compiled-format.js.map +1 -0
  5. package/dist/concept-collection.d.ts +39 -0
  6. package/dist/concept-collection.d.ts.map +1 -0
  7. package/dist/concept-collection.js +127 -0
  8. package/dist/concept-collection.js.map +1 -0
  9. package/dist/concept-diff.d.ts +14 -0
  10. package/dist/concept-diff.d.ts.map +1 -0
  11. package/{src/concept-diff.ts → dist/concept-diff.js} +2 -20
  12. package/dist/concept-diff.js.map +1 -0
  13. package/dist/concept-parser.d.ts +11 -0
  14. package/dist/concept-parser.d.ts.map +1 -0
  15. package/dist/concept-parser.js +209 -0
  16. package/dist/concept-parser.js.map +1 -0
  17. package/dist/concept-reader.d.ts +55 -0
  18. package/dist/concept-reader.d.ts.map +1 -0
  19. package/{src/concept-reader.ts → dist/concept-reader.js} +70 -76
  20. package/dist/concept-reader.js.map +1 -0
  21. package/dist/concept-serializer.d.ts +9 -0
  22. package/dist/concept-serializer.d.ts.map +1 -0
  23. package/dist/concept-serializer.js +87 -0
  24. package/dist/concept-serializer.js.map +1 -0
  25. package/dist/concept-writer.d.ts +10 -0
  26. package/dist/concept-writer.d.ts.map +1 -0
  27. package/dist/concept-writer.js +28 -0
  28. package/dist/concept-writer.js.map +1 -0
  29. package/dist/dataset-asset.d.ts +49 -0
  30. package/dist/dataset-asset.d.ts.map +1 -0
  31. package/{src/dataset-asset.ts → dist/dataset-asset.js} +16 -33
  32. package/dist/dataset-asset.js.map +1 -0
  33. package/dist/diff/canonical-json.d.ts +7 -0
  34. package/dist/diff/canonical-json.d.ts.map +1 -0
  35. package/dist/diff/canonical-json.js +28 -0
  36. package/dist/diff/canonical-json.js.map +1 -0
  37. package/dist/diff/change.d.ts +67 -0
  38. package/dist/diff/change.d.ts.map +1 -0
  39. package/dist/diff/change.js +131 -0
  40. package/dist/diff/change.js.map +1 -0
  41. package/dist/diff/collection-diff.d.ts +50 -0
  42. package/dist/diff/collection-diff.d.ts.map +1 -0
  43. package/dist/diff/collection-diff.js +182 -0
  44. package/dist/diff/collection-diff.js.map +1 -0
  45. package/dist/diff/concept-diff.d.ts +188 -0
  46. package/dist/diff/concept-diff.d.ts.map +1 -0
  47. package/dist/diff/concept-diff.js +624 -0
  48. package/dist/diff/concept-diff.js.map +1 -0
  49. package/dist/diff/diff-patch.d.ts +7 -0
  50. package/dist/diff/diff-patch.d.ts.map +1 -0
  51. package/dist/diff/diff-patch.js +225 -0
  52. package/dist/diff/diff-patch.js.map +1 -0
  53. package/dist/diff/diff-renderer.d.ts +44 -0
  54. package/dist/diff/diff-renderer.d.ts.map +1 -0
  55. package/dist/diff/diff-renderer.js +263 -0
  56. package/dist/diff/diff-renderer.js.map +1 -0
  57. package/dist/diff/identity.d.ts +2 -0
  58. package/dist/diff/identity.d.ts.map +1 -0
  59. package/dist/diff/identity.js +29 -0
  60. package/dist/diff/identity.js.map +1 -0
  61. package/dist/diff/index.d.ts +8 -0
  62. package/dist/diff/index.d.ts.map +1 -0
  63. package/dist/diff/index.js +8 -0
  64. package/dist/diff/index.js.map +1 -0
  65. package/dist/diff/list-diff.d.ts +36 -0
  66. package/dist/diff/list-diff.d.ts.map +1 -0
  67. package/dist/diff/list-diff.js +185 -0
  68. package/dist/diff/list-diff.js.map +1 -0
  69. package/dist/diff/similarity.d.ts +4 -0
  70. package/dist/diff/similarity.d.ts.map +1 -0
  71. package/dist/diff/similarity.js +20 -0
  72. package/dist/diff/similarity.js.map +1 -0
  73. package/dist/diff/text-diff.d.ts +42 -0
  74. package/dist/diff/text-diff.d.ts.map +1 -0
  75. package/dist/diff/text-diff.js +134 -0
  76. package/dist/diff/text-diff.js.map +1 -0
  77. package/dist/entity-directory.d.ts +13 -0
  78. package/dist/entity-directory.d.ts.map +1 -0
  79. package/dist/entity-directory.js +35 -0
  80. package/dist/entity-directory.js.map +1 -0
  81. package/dist/errors.d.ts +15 -0
  82. package/dist/errors.d.ts.map +1 -0
  83. package/dist/errors.js +23 -0
  84. package/dist/errors.js.map +1 -0
  85. package/dist/gcr-reader.d.ts +57 -0
  86. package/dist/gcr-reader.d.ts.map +1 -0
  87. package/dist/gcr-reader.js +264 -0
  88. package/dist/gcr-reader.js.map +1 -0
  89. package/dist/gcr-writer.d.ts +23 -0
  90. package/dist/gcr-writer.d.ts.map +1 -0
  91. package/dist/gcr-writer.js +84 -0
  92. package/dist/gcr-writer.js.map +1 -0
  93. package/dist/index.d.ts +21 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/{src/index.ts → dist/index.js} +6 -66
  96. package/dist/index.js.map +1 -0
  97. package/dist/managed-concept-collection.d.ts +31 -0
  98. package/dist/managed-concept-collection.d.ts.map +1 -0
  99. package/dist/managed-concept-collection.js +87 -0
  100. package/dist/managed-concept-collection.js.map +1 -0
  101. package/dist/migration/hyperedge-migrator.d.ts +33 -0
  102. package/dist/migration/hyperedge-migrator.d.ts.map +1 -0
  103. package/dist/migration/hyperedge-migrator.js +70 -0
  104. package/dist/migration/hyperedge-migrator.js.map +1 -0
  105. package/dist/models/abstract-hyperedge.d.ts +35 -0
  106. package/dist/models/abstract-hyperedge.d.ts.map +1 -0
  107. package/dist/models/abstract-hyperedge.js +112 -0
  108. package/dist/models/abstract-hyperedge.js.map +1 -0
  109. package/dist/models/base.d.ts +58 -0
  110. package/dist/models/base.d.ts.map +1 -0
  111. package/dist/models/base.js +77 -0
  112. package/dist/models/base.js.map +1 -0
  113. package/dist/models/bibliography-data.d.ts +20 -0
  114. package/dist/models/bibliography-data.d.ts.map +1 -0
  115. package/dist/models/bibliography-data.js +43 -0
  116. package/dist/models/bibliography-data.js.map +1 -0
  117. package/dist/models/bibliography-entry.d.ts +19 -0
  118. package/dist/models/bibliography-entry.d.ts.map +1 -0
  119. package/dist/models/bibliography-entry.js +34 -0
  120. package/dist/models/bibliography-entry.js.map +1 -0
  121. package/dist/models/citation.d.ts +40 -0
  122. package/dist/models/citation.d.ts.map +1 -0
  123. package/dist/models/citation.js +82 -0
  124. package/dist/models/citation.js.map +1 -0
  125. package/dist/models/completeness.d.ts +9 -0
  126. package/dist/models/completeness.d.ts.map +1 -0
  127. package/{src/models/completeness.ts → dist/models/completeness.js} +4 -9
  128. package/dist/models/completeness.js.map +1 -0
  129. package/dist/models/concept-date.d.ts +20 -0
  130. package/dist/models/concept-date.d.ts.map +1 -0
  131. package/dist/models/concept-date.js +36 -0
  132. package/dist/models/concept-date.js.map +1 -0
  133. package/dist/models/concept-ref.d.ts +32 -0
  134. package/dist/models/concept-ref.d.ts.map +1 -0
  135. package/dist/models/concept-ref.js +53 -0
  136. package/dist/models/concept-ref.js.map +1 -0
  137. package/dist/models/concept-reference.d.ts +22 -0
  138. package/dist/models/concept-reference.d.ts.map +1 -0
  139. package/dist/models/concept-reference.js +39 -0
  140. package/dist/models/concept-reference.js.map +1 -0
  141. package/dist/models/concept-source.d.ts +53 -0
  142. package/dist/models/concept-source.d.ts.map +1 -0
  143. package/dist/models/concept-source.js +66 -0
  144. package/dist/models/concept-source.js.map +1 -0
  145. package/dist/models/concept-system-type.d.ts +6 -0
  146. package/dist/models/concept-system-type.d.ts.map +1 -0
  147. package/dist/models/concept-system-type.js +22 -0
  148. package/dist/models/concept-system-type.js.map +1 -0
  149. package/dist/models/concept-system.d.ts +44 -0
  150. package/dist/models/concept-system.d.ts.map +1 -0
  151. package/dist/models/concept-system.js +115 -0
  152. package/dist/models/concept-system.js.map +1 -0
  153. package/dist/models/concept-type.d.ts +7 -0
  154. package/dist/models/concept-type.d.ts.map +1 -0
  155. package/{src/models/concept-type.ts → dist/models/concept-type.js} +8 -19
  156. package/dist/models/concept-type.js.map +1 -0
  157. package/dist/models/concept.d.ts +94 -0
  158. package/dist/models/concept.d.ts.map +1 -0
  159. package/dist/models/concept.js +368 -0
  160. package/dist/models/concept.js.map +1 -0
  161. package/dist/models/dataset-color.d.ts +28 -0
  162. package/dist/models/dataset-color.d.ts.map +1 -0
  163. package/dist/models/dataset-color.js +74 -0
  164. package/dist/models/dataset-color.js.map +1 -0
  165. package/dist/models/definition-type.d.ts +9 -0
  166. package/dist/models/definition-type.d.ts.map +1 -0
  167. package/{src/models/definition-type.ts → dist/models/definition-type.js} +6 -15
  168. package/dist/models/definition-type.js.map +1 -0
  169. package/dist/models/designation-relationship.d.ts +17 -0
  170. package/dist/models/designation-relationship.d.ts.map +1 -0
  171. package/dist/models/designation-relationship.js +30 -0
  172. package/dist/models/designation-relationship.js.map +1 -0
  173. package/dist/models/designation.d.ts +110 -0
  174. package/dist/models/designation.d.ts.map +1 -0
  175. package/dist/models/designation.js +224 -0
  176. package/dist/models/designation.js.map +1 -0
  177. package/dist/models/detailed-definition.d.ts +34 -0
  178. package/dist/models/detailed-definition.d.ts.map +1 -0
  179. package/dist/models/detailed-definition.js +63 -0
  180. package/dist/models/detailed-definition.js.map +1 -0
  181. package/dist/models/enum.d.ts +21 -0
  182. package/dist/models/enum.d.ts.map +1 -0
  183. package/dist/models/enum.js +39 -0
  184. package/dist/models/enum.js.map +1 -0
  185. package/dist/models/equivalence-degree.d.ts +7 -0
  186. package/dist/models/equivalence-degree.d.ts.map +1 -0
  187. package/dist/models/equivalence-degree.js +20 -0
  188. package/dist/models/equivalence-degree.js.map +1 -0
  189. package/dist/models/figure.d.ts +40 -0
  190. package/dist/models/figure.d.ts.map +1 -0
  191. package/dist/models/figure.js +82 -0
  192. package/dist/models/figure.js.map +1 -0
  193. package/dist/models/formula.d.ts +15 -0
  194. package/dist/models/formula.d.ts.map +1 -0
  195. package/dist/models/formula.js +27 -0
  196. package/dist/models/formula.js.map +1 -0
  197. package/dist/models/gcr-metadata.d.ts +62 -0
  198. package/dist/models/gcr-metadata.d.ts.map +1 -0
  199. package/dist/models/gcr-metadata.js +102 -0
  200. package/dist/models/gcr-metadata.js.map +1 -0
  201. package/dist/models/gcr-statistics.d.ts +30 -0
  202. package/dist/models/gcr-statistics.d.ts.map +1 -0
  203. package/dist/models/gcr-statistics.js +53 -0
  204. package/dist/models/gcr-statistics.js.map +1 -0
  205. package/dist/models/generic-hyperedge.d.ts +32 -0
  206. package/dist/models/generic-hyperedge.d.ts.map +1 -0
  207. package/dist/models/generic-hyperedge.js +51 -0
  208. package/dist/models/generic-hyperedge.js.map +1 -0
  209. package/dist/models/generic-member.d.ts +14 -0
  210. package/dist/models/generic-member.d.ts.map +1 -0
  211. package/dist/models/generic-member.js +51 -0
  212. package/dist/models/generic-member.js.map +1 -0
  213. package/dist/models/grammar-info.d.ts +34 -0
  214. package/dist/models/grammar-info.d.ts.map +1 -0
  215. package/dist/models/grammar-info.js +59 -0
  216. package/dist/models/grammar-info.js.map +1 -0
  217. package/dist/models/hyperedge-colors.d.ts +19 -0
  218. package/dist/models/hyperedge-colors.d.ts.map +1 -0
  219. package/dist/models/hyperedge-colors.js +61 -0
  220. package/dist/models/hyperedge-colors.js.map +1 -0
  221. package/dist/models/hyperedge-index.d.ts +34 -0
  222. package/dist/models/hyperedge-index.d.ts.map +1 -0
  223. package/dist/models/hyperedge-index.js +85 -0
  224. package/dist/models/hyperedge-index.js.map +1 -0
  225. package/dist/models/hyperedge-member.d.ts +28 -0
  226. package/dist/models/hyperedge-member.d.ts.map +1 -0
  227. package/dist/models/hyperedge-member.js +92 -0
  228. package/dist/models/hyperedge-member.js.map +1 -0
  229. package/dist/models/hyperedge-registry.d.ts +47 -0
  230. package/dist/models/hyperedge-registry.d.ts.map +1 -0
  231. package/dist/models/hyperedge-registry.js +118 -0
  232. package/dist/models/hyperedge-registry.js.map +1 -0
  233. package/dist/models/index.d.ts +53 -0
  234. package/dist/models/index.d.ts.map +1 -0
  235. package/{src/models/index.ts → dist/models/index.js} +11 -63
  236. package/dist/models/index.js.map +1 -0
  237. package/dist/models/locality.d.ts +17 -0
  238. package/dist/models/locality.d.ts.map +1 -0
  239. package/dist/models/locality.js +26 -0
  240. package/dist/models/locality.js.map +1 -0
  241. package/dist/models/localized-concept.d.ts +102 -0
  242. package/dist/models/localized-concept.d.ts.map +1 -0
  243. package/dist/models/localized-concept.js +195 -0
  244. package/dist/models/localized-concept.js.map +1 -0
  245. package/dist/models/localized-string.d.ts +5 -0
  246. package/dist/models/localized-string.d.ts.map +1 -0
  247. package/dist/models/localized-string.js +20 -0
  248. package/dist/models/localized-string.js.map +1 -0
  249. package/dist/models/multiplicity.d.ts +42 -0
  250. package/dist/models/multiplicity.d.ts.map +1 -0
  251. package/dist/models/multiplicity.js +84 -0
  252. package/dist/models/multiplicity.js.map +1 -0
  253. package/dist/models/non-verb-rep.d.ts +20 -0
  254. package/dist/models/non-verb-rep.d.ts.map +1 -0
  255. package/dist/models/non-verb-rep.js +32 -0
  256. package/dist/models/non-verb-rep.js.map +1 -0
  257. package/dist/models/non-verbal-entity.d.ts +30 -0
  258. package/dist/models/non-verbal-entity.d.ts.map +1 -0
  259. package/dist/models/non-verbal-entity.js +48 -0
  260. package/dist/models/non-verbal-entity.js.map +1 -0
  261. package/dist/models/non-verbal-reference.d.ts +23 -0
  262. package/dist/models/non-verbal-reference.d.ts.map +1 -0
  263. package/dist/models/non-verbal-reference.js +44 -0
  264. package/dist/models/non-verbal-reference.js.map +1 -0
  265. package/dist/models/non-verbal-references.d.ts +12 -0
  266. package/dist/models/non-verbal-references.d.ts.map +1 -0
  267. package/dist/models/non-verbal-references.js +20 -0
  268. package/dist/models/non-verbal-references.js.map +1 -0
  269. package/dist/models/partitive-count.d.ts +10 -0
  270. package/dist/models/partitive-count.d.ts.map +1 -0
  271. package/{src/models/partitive-count.ts → dist/models/partitive-count.js} +5 -9
  272. package/dist/models/partitive-count.js.map +1 -0
  273. package/dist/models/partitive-enumeration.d.ts +5 -0
  274. package/dist/models/partitive-enumeration.d.ts.map +1 -0
  275. package/dist/models/partitive-enumeration.js +16 -0
  276. package/dist/models/partitive-enumeration.js.map +1 -0
  277. package/dist/models/partitive-hyperedge.d.ts +43 -0
  278. package/dist/models/partitive-hyperedge.d.ts.map +1 -0
  279. package/dist/models/partitive-hyperedge.js +63 -0
  280. package/dist/models/partitive-hyperedge.js.map +1 -0
  281. package/dist/models/partitive-member.d.ts +14 -0
  282. package/dist/models/partitive-member.d.ts.map +1 -0
  283. package/dist/models/partitive-member.js +44 -0
  284. package/dist/models/partitive-member.js.map +1 -0
  285. package/dist/models/partitive-presence.d.ts +9 -0
  286. package/dist/models/partitive-presence.d.ts.map +1 -0
  287. package/{src/models/partitive-presence.ts → dist/models/partitive-presence.js} +4 -8
  288. package/dist/models/partitive-presence.js.map +1 -0
  289. package/dist/models/plurality-marker.d.ts +5 -0
  290. package/dist/models/plurality-marker.d.ts.map +1 -0
  291. package/dist/models/plurality-marker.js +20 -0
  292. package/dist/models/plurality-marker.js.map +1 -0
  293. package/dist/models/pronunciation.d.ts +19 -0
  294. package/dist/models/pronunciation.d.ts.map +1 -0
  295. package/dist/models/pronunciation.js +34 -0
  296. package/dist/models/pronunciation.js.map +1 -0
  297. package/dist/models/register.d.ts +104 -0
  298. package/dist/models/register.d.ts.map +1 -0
  299. package/dist/models/register.js +297 -0
  300. package/dist/models/register.js.map +1 -0
  301. package/dist/models/registrable.d.ts +25 -0
  302. package/dist/models/registrable.d.ts.map +1 -0
  303. package/dist/models/registrable.js +23 -0
  304. package/dist/models/registrable.js.map +1 -0
  305. package/dist/models/related-concept.d.ts +33 -0
  306. package/dist/models/related-concept.d.ts.map +1 -0
  307. package/dist/models/related-concept.js +95 -0
  308. package/dist/models/related-concept.js.map +1 -0
  309. package/dist/models/relation-categories.d.ts +38 -0
  310. package/dist/models/relation-categories.d.ts.map +1 -0
  311. package/dist/models/relation-categories.js +135 -0
  312. package/dist/models/relation-categories.js.map +1 -0
  313. package/dist/models/relation-colors.d.ts +35 -0
  314. package/dist/models/relation-colors.d.ts.map +1 -0
  315. package/dist/models/relation-colors.js +68 -0
  316. package/dist/models/relation-colors.js.map +1 -0
  317. package/dist/models/relation-loader.d.ts +41 -0
  318. package/dist/models/relation-loader.d.ts.map +1 -0
  319. package/dist/models/relation-loader.js +101 -0
  320. package/dist/models/relation-loader.js.map +1 -0
  321. package/dist/models/section.d.ts +22 -0
  322. package/dist/models/section.d.ts.map +1 -0
  323. package/dist/models/section.js +47 -0
  324. package/dist/models/section.js.map +1 -0
  325. package/dist/models/sequential-hyperedge.d.ts +32 -0
  326. package/dist/models/sequential-hyperedge.d.ts.map +1 -0
  327. package/dist/models/sequential-hyperedge.js +49 -0
  328. package/dist/models/sequential-hyperedge.js.map +1 -0
  329. package/dist/models/sequential-member.d.ts +8 -0
  330. package/dist/models/sequential-member.d.ts.map +1 -0
  331. package/{src/models/sequential-member.ts → dist/models/sequential-member.js} +4 -9
  332. package/dist/models/sequential-member.js.map +1 -0
  333. package/dist/models/shared-non-verbal-entity.d.ts +16 -0
  334. package/dist/models/shared-non-verbal-entity.d.ts.map +1 -0
  335. package/dist/models/shared-non-verbal-entity.js +28 -0
  336. package/dist/models/shared-non-verbal-entity.js.map +1 -0
  337. package/dist/models/table.d.ts +15 -0
  338. package/dist/models/table.d.ts.map +1 -0
  339. package/dist/models/table.js +27 -0
  340. package/dist/models/table.js.map +1 -0
  341. package/dist/rdf/agents-emitter.d.ts +37 -0
  342. package/dist/rdf/agents-emitter.d.ts.map +1 -0
  343. package/dist/rdf/agents-emitter.js +107 -0
  344. package/dist/rdf/agents-emitter.js.map +1 -0
  345. package/dist/rdf/bibliography-emitter.d.ts +16 -0
  346. package/dist/rdf/bibliography-emitter.d.ts.map +1 -0
  347. package/dist/rdf/bibliography-emitter.js +84 -0
  348. package/dist/rdf/bibliography-emitter.js.map +1 -0
  349. package/dist/rdf/bnode-id.d.ts +2 -0
  350. package/dist/rdf/bnode-id.d.ts.map +1 -0
  351. package/dist/rdf/bnode-id.js +57 -0
  352. package/dist/rdf/bnode-id.js.map +1 -0
  353. package/dist/rdf/build-activity-emitter.d.ts +42 -0
  354. package/dist/rdf/build-activity-emitter.d.ts.map +1 -0
  355. package/dist/rdf/build-activity-emitter.js +103 -0
  356. package/dist/rdf/build-activity-emitter.js.map +1 -0
  357. package/dist/rdf/curie.d.ts +7 -0
  358. package/dist/rdf/curie.d.ts.map +1 -0
  359. package/dist/rdf/curie.js +45 -0
  360. package/dist/rdf/curie.js.map +1 -0
  361. package/dist/rdf/dataset-emitter.d.ts +37 -0
  362. package/dist/rdf/dataset-emitter.d.ts.map +1 -0
  363. package/dist/rdf/dataset-emitter.js +126 -0
  364. package/dist/rdf/dataset-emitter.js.map +1 -0
  365. package/dist/rdf/deterministic-id.d.ts +3 -0
  366. package/dist/rdf/deterministic-id.d.ts.map +1 -0
  367. package/dist/rdf/deterministic-id.js +68 -0
  368. package/dist/rdf/deterministic-id.js.map +1 -0
  369. package/dist/rdf/document-writer.d.ts +11 -0
  370. package/dist/rdf/document-writer.d.ts.map +1 -0
  371. package/dist/rdf/document-writer.js +77 -0
  372. package/dist/rdf/document-writer.js.map +1 -0
  373. package/dist/rdf/gloss-concept.d.ts +27 -0
  374. package/dist/rdf/gloss-concept.d.ts.map +1 -0
  375. package/dist/rdf/gloss-concept.js +95 -0
  376. package/dist/rdf/gloss-concept.js.map +1 -0
  377. package/dist/rdf/gloss-designation.d.ts +17 -0
  378. package/dist/rdf/gloss-designation.d.ts.map +1 -0
  379. package/dist/rdf/gloss-designation.js +46 -0
  380. package/dist/rdf/gloss-designation.js.map +1 -0
  381. package/dist/rdf/gloss-detailed-definition.d.ts +14 -0
  382. package/dist/rdf/gloss-detailed-definition.d.ts.map +1 -0
  383. package/dist/rdf/gloss-detailed-definition.js +53 -0
  384. package/dist/rdf/gloss-detailed-definition.js.map +1 -0
  385. package/dist/rdf/gloss-generic-hyperedge.d.ts +27 -0
  386. package/dist/rdf/gloss-generic-hyperedge.d.ts.map +1 -0
  387. package/{src/rdf/gloss-generic-hyperedge.ts → dist/rdf/gloss-generic-hyperedge.js} +36 -50
  388. package/dist/rdf/gloss-generic-hyperedge.js.map +1 -0
  389. package/dist/rdf/gloss-localized-concept.d.ts +24 -0
  390. package/dist/rdf/gloss-localized-concept.d.ts.map +1 -0
  391. package/dist/rdf/gloss-localized-concept.js +71 -0
  392. package/dist/rdf/gloss-localized-concept.js.map +1 -0
  393. package/dist/rdf/gloss-non-verbal-rep.d.ts +33 -0
  394. package/dist/rdf/gloss-non-verbal-rep.d.ts.map +1 -0
  395. package/dist/rdf/gloss-non-verbal-rep.js +163 -0
  396. package/dist/rdf/gloss-non-verbal-rep.js.map +1 -0
  397. package/dist/rdf/gloss-partitive-member.d.ts +8 -0
  398. package/dist/rdf/gloss-partitive-member.d.ts.map +1 -0
  399. package/{src/rdf/gloss-partitive-member.ts → dist/rdf/gloss-partitive-member.js} +23 -41
  400. package/dist/rdf/gloss-partitive-member.js.map +1 -0
  401. package/dist/rdf/gloss-partitive-relation.d.ts +26 -0
  402. package/dist/rdf/gloss-partitive-relation.d.ts.map +1 -0
  403. package/dist/rdf/gloss-partitive-relation.js +73 -0
  404. package/dist/rdf/gloss-partitive-relation.js.map +1 -0
  405. package/dist/rdf/gloss-source.d.ts +23 -0
  406. package/dist/rdf/gloss-source.d.ts.map +1 -0
  407. package/dist/rdf/gloss-source.js +52 -0
  408. package/dist/rdf/gloss-source.js.map +1 -0
  409. package/dist/rdf/group-emitter.d.ts +46 -0
  410. package/dist/rdf/group-emitter.d.ts.map +1 -0
  411. package/dist/rdf/group-emitter.js +107 -0
  412. package/dist/rdf/group-emitter.js.map +1 -0
  413. package/dist/rdf/image-variant-emitter.d.ts +12 -0
  414. package/dist/rdf/image-variant-emitter.d.ts.map +1 -0
  415. package/dist/rdf/image-variant-emitter.js +55 -0
  416. package/dist/rdf/image-variant-emitter.js.map +1 -0
  417. package/dist/rdf/index.d.ts +26 -0
  418. package/dist/rdf/index.d.ts.map +1 -0
  419. package/{src/rdf/index.ts → dist/rdf/index.js} +8 -37
  420. package/dist/rdf/index.js.map +1 -0
  421. package/dist/rdf/normalize-enum.d.ts +3 -0
  422. package/dist/rdf/normalize-enum.d.ts.map +1 -0
  423. package/{src/rdf/normalize-enum.ts → dist/rdf/normalize-enum.js} +11 -10
  424. package/dist/rdf/normalize-enum.js.map +1 -0
  425. package/dist/rdf/predicates.d.ts +277 -0
  426. package/dist/rdf/predicates.d.ts.map +1 -0
  427. package/dist/rdf/predicates.js +279 -0
  428. package/dist/rdf/predicates.js.map +1 -0
  429. package/dist/rdf/prefixes.d.ts +16 -0
  430. package/dist/rdf/prefixes.d.ts.map +1 -0
  431. package/{src/rdf/prefixes.ts → dist/rdf/prefixes.js} +10 -12
  432. package/dist/rdf/prefixes.js.map +1 -0
  433. package/dist/rdf/provenance-emitter.d.ts +28 -0
  434. package/dist/rdf/provenance-emitter.d.ts.map +1 -0
  435. package/dist/rdf/provenance-emitter.js +74 -0
  436. package/dist/rdf/provenance-emitter.js.map +1 -0
  437. package/dist/rdf/sections-builder.d.ts +17 -0
  438. package/dist/rdf/sections-builder.d.ts.map +1 -0
  439. package/dist/rdf/sections-builder.js +137 -0
  440. package/dist/rdf/sections-builder.js.map +1 -0
  441. package/dist/rdf/shacl-entry.d.ts +2 -0
  442. package/dist/rdf/shacl-entry.d.ts.map +1 -0
  443. package/{src/rdf/shacl-entry.ts → dist/rdf/shacl-entry.js} +1 -1
  444. package/dist/rdf/shacl-entry.js.map +1 -0
  445. package/dist/rdf/shacl.d.ts +10 -0
  446. package/dist/rdf/shacl.d.ts.map +1 -0
  447. package/{src/rdf/shacl.ts → dist/rdf/shacl.js} +38 -56
  448. package/dist/rdf/shacl.js.map +1 -0
  449. package/dist/rdf/terms.d.ts +10 -0
  450. package/dist/rdf/terms.d.ts.map +1 -0
  451. package/{src/rdf/terms.ts → dist/rdf/terms.js} +6 -3
  452. package/dist/rdf/terms.js.map +1 -0
  453. package/dist/rdf/version-emitter.d.ts +57 -0
  454. package/dist/rdf/version-emitter.d.ts.map +1 -0
  455. package/dist/rdf/version-emitter.js +68 -0
  456. package/dist/rdf/version-emitter.js.map +1 -0
  457. package/dist/rdf/vocabulary-emitter.d.ts +32 -0
  458. package/dist/rdf/vocabulary-emitter.d.ts.map +1 -0
  459. package/dist/rdf/vocabulary-emitter.js +46 -0
  460. package/dist/rdf/vocabulary-emitter.js.map +1 -0
  461. package/dist/rdf/write-turtle-sync.d.ts +7 -0
  462. package/dist/rdf/write-turtle-sync.d.ts.map +1 -0
  463. package/dist/rdf/write-turtle-sync.js +130 -0
  464. package/dist/rdf/write-turtle-sync.js.map +1 -0
  465. package/dist/reference-mention.d.ts +49 -0
  466. package/dist/reference-mention.d.ts.map +1 -0
  467. package/dist/reference-mention.js +98 -0
  468. package/dist/reference-mention.js.map +1 -0
  469. package/dist/reference-resolver.d.ts +52 -0
  470. package/dist/reference-resolver.d.ts.map +1 -0
  471. package/dist/reference-resolver.js +311 -0
  472. package/dist/reference-resolver.js.map +1 -0
  473. package/dist/render-classification.d.ts +19 -0
  474. package/dist/render-classification.d.ts.map +1 -0
  475. package/dist/render-classification.js +82 -0
  476. package/dist/render-classification.js.map +1 -0
  477. package/dist/sort.d.ts +5 -0
  478. package/dist/sort.d.ts.map +1 -0
  479. package/dist/sort.js +25 -0
  480. package/dist/sort.js.map +1 -0
  481. package/dist/transforms/concept-to-gloss.transform.d.ts +32 -0
  482. package/dist/transforms/concept-to-gloss.transform.d.ts.map +1 -0
  483. package/dist/transforms/concept-to-gloss.transform.js +60 -0
  484. package/dist/transforms/concept-to-gloss.transform.js.map +1 -0
  485. package/dist/transforms/index.d.ts +2 -0
  486. package/dist/transforms/index.d.ts.map +1 -0
  487. package/{src/transforms/index.ts → dist/transforms/index.js} +1 -0
  488. package/dist/transforms/index.js.map +1 -0
  489. package/dist/utils/assertions.d.ts +4 -0
  490. package/dist/utils/assertions.d.ts.map +1 -0
  491. package/dist/utils/assertions.js +17 -0
  492. package/dist/utils/assertions.js.map +1 -0
  493. package/dist/uuid.d.ts +4 -0
  494. package/dist/uuid.d.ts.map +1 -0
  495. package/dist/uuid.js +23 -0
  496. package/dist/uuid.js.map +1 -0
  497. package/dist/v1-reader.d.ts +8 -0
  498. package/dist/v1-reader.d.ts.map +1 -0
  499. package/dist/v1-reader.js +56 -0
  500. package/dist/v1-reader.js.map +1 -0
  501. package/dist/validators/asset-index.d.ts +23 -0
  502. package/dist/validators/asset-index.d.ts.map +1 -0
  503. package/dist/validators/asset-index.js +58 -0
  504. package/dist/validators/asset-index.js.map +1 -0
  505. package/dist/validators/binary-has-part-redundancy-rule.d.ts +8 -0
  506. package/dist/validators/binary-has-part-redundancy-rule.d.ts.map +1 -0
  507. package/dist/validators/binary-has-part-redundancy-rule.js +57 -0
  508. package/dist/validators/binary-has-part-redundancy-rule.js.map +1 -0
  509. package/dist/validators/concept-validator.d.ts +21 -0
  510. package/dist/validators/concept-validator.d.ts.map +1 -0
  511. package/dist/validators/concept-validator.js +76 -0
  512. package/dist/validators/concept-validator.js.map +1 -0
  513. package/dist/validators/delimiting-coherence-rule.d.ts +8 -0
  514. package/dist/validators/delimiting-coherence-rule.d.ts.map +1 -0
  515. package/dist/validators/delimiting-coherence-rule.js +72 -0
  516. package/dist/validators/delimiting-coherence-rule.js.map +1 -0
  517. package/dist/validators/external-concept-shape-rule.d.ts +8 -0
  518. package/dist/validators/external-concept-shape-rule.d.ts.map +1 -0
  519. package/dist/validators/external-concept-shape-rule.js +48 -0
  520. package/dist/validators/external-concept-shape-rule.js.map +1 -0
  521. package/dist/validators/gcr-validator.d.ts +11 -0
  522. package/dist/validators/gcr-validator.d.ts.map +1 -0
  523. package/dist/validators/gcr-validator.js +76 -0
  524. package/dist/validators/gcr-validator.js.map +1 -0
  525. package/dist/validators/hyperedge-coherence-rule.d.ts +9 -0
  526. package/dist/validators/hyperedge-coherence-rule.d.ts.map +1 -0
  527. package/dist/validators/hyperedge-coherence-rule.js +78 -0
  528. package/dist/validators/hyperedge-coherence-rule.js.map +1 -0
  529. package/dist/validators/index.d.ts +21 -0
  530. package/dist/validators/index.d.ts.map +1 -0
  531. package/{src/validators/index.ts → dist/validators/index.js} +25 -51
  532. package/dist/validators/index.js.map +1 -0
  533. package/dist/validators/partitive-relation-coherence-rule.d.ts +2 -0
  534. package/dist/validators/partitive-relation-coherence-rule.d.ts.map +1 -0
  535. package/{src/validators/partitive-relation-coherence-rule.ts → dist/validators/partitive-relation-coherence-rule.js} +1 -1
  536. package/dist/validators/partitive-relation-coherence-rule.js.map +1 -0
  537. package/dist/validators/ref-keys.d.ts +8 -0
  538. package/dist/validators/ref-keys.d.ts.map +1 -0
  539. package/dist/validators/ref-keys.js +27 -0
  540. package/dist/validators/ref-keys.js.map +1 -0
  541. package/dist/validators/register-validator.d.ts +10 -0
  542. package/dist/validators/register-validator.d.ts.map +1 -0
  543. package/dist/validators/register-validator.js +18 -0
  544. package/dist/validators/register-validator.js.map +1 -0
  545. package/dist/validators/relationship-type-rule.d.ts +13 -0
  546. package/dist/validators/relationship-type-rule.d.ts.map +1 -0
  547. package/dist/validators/relationship-type-rule.js +34 -0
  548. package/dist/validators/relationship-type-rule.js.map +1 -0
  549. package/dist/validators/sourced-from-locality-rule.d.ts +8 -0
  550. package/dist/validators/sourced-from-locality-rule.d.ts.map +1 -0
  551. package/dist/validators/sourced-from-locality-rule.js +37 -0
  552. package/dist/validators/sourced-from-locality-rule.js.map +1 -0
  553. package/dist/validators/v3-rules.d.ts +60 -0
  554. package/dist/validators/v3-rules.d.ts.map +1 -0
  555. package/dist/validators/v3-rules.js +327 -0
  556. package/dist/validators/v3-rules.js.map +1 -0
  557. package/dist/validators/validation-error.d.ts +13 -0
  558. package/dist/validators/validation-error.d.ts.map +1 -0
  559. package/dist/validators/validation-error.js +17 -0
  560. package/dist/validators/validation-error.js.map +1 -0
  561. package/dist/validators/validation-result.d.ts +17 -0
  562. package/dist/validators/validation-result.d.ts.map +1 -0
  563. package/dist/validators/validation-result.js +47 -0
  564. package/dist/validators/validation-result.js.map +1 -0
  565. package/dist/validators/validation-rule.d.ts +10 -0
  566. package/dist/validators/validation-rule.d.ts.map +1 -0
  567. package/dist/validators/validation-rule.js +17 -0
  568. package/dist/validators/validation-rule.js.map +1 -0
  569. package/package.json +37 -42
  570. package/src/concept-collection.ts +0 -166
  571. package/src/concept-parser.ts +0 -229
  572. package/src/concept-reader.d.ts +0 -13
  573. package/src/concept-serializer.ts +0 -99
  574. package/src/concept-writer.d.ts +0 -7
  575. package/src/concept-writer.ts +0 -43
  576. package/src/diff/canonical-json.ts +0 -29
  577. package/src/diff/change.ts +0 -175
  578. package/src/diff/collection-diff.ts +0 -197
  579. package/src/diff/concept-diff.ts +0 -702
  580. package/src/diff/diff-patch.ts +0 -260
  581. package/src/diff/diff-renderer.ts +0 -293
  582. package/src/diff/identity.ts +0 -33
  583. package/src/diff/index.d.ts +0 -242
  584. package/src/diff/index.ts +0 -50
  585. package/src/diff/list-diff.ts +0 -231
  586. package/src/diff/similarity.ts +0 -20
  587. package/src/diff/text-diff.ts +0 -167
  588. package/src/entity-directory.ts +0 -43
  589. package/src/errors.d.ts +0 -11
  590. package/src/errors.ts +0 -24
  591. package/src/gcr-reader.d.ts +0 -65
  592. package/src/gcr-reader.ts +0 -487
  593. package/src/gcr-writer.d.ts +0 -22
  594. package/src/gcr-writer.ts +0 -97
  595. package/src/index.d.ts +0 -124
  596. package/src/managed-concept-collection.ts +0 -95
  597. package/src/migration/hyperedge-migrator.ts +0 -104
  598. package/src/models/abstract-hyperedge.ts +0 -164
  599. package/src/models/base.ts +0 -110
  600. package/src/models/bibliography-data.ts +0 -64
  601. package/src/models/bibliography-entry.ts +0 -40
  602. package/src/models/citation.ts +0 -98
  603. package/src/models/concept-date.ts +0 -48
  604. package/src/models/concept-ref.ts +0 -64
  605. package/src/models/concept-reference.ts +0 -50
  606. package/src/models/concept-source.ts +0 -96
  607. package/src/models/concept-system-type.ts +0 -39
  608. package/src/models/concept-system.ts +0 -152
  609. package/src/models/concept.ts +0 -499
  610. package/src/models/dataset-color.ts +0 -88
  611. package/src/models/designation-relationship.ts +0 -39
  612. package/src/models/designation.ts +0 -297
  613. package/src/models/detailed-definition.ts +0 -92
  614. package/src/models/enum.ts +0 -60
  615. package/src/models/equivalence-degree.ts +0 -34
  616. package/src/models/figure.ts +0 -110
  617. package/src/models/formula.ts +0 -36
  618. package/src/models/gcr-metadata.ts +0 -118
  619. package/src/models/gcr-statistics.ts +0 -76
  620. package/src/models/generic-hyperedge.ts +0 -72
  621. package/src/models/generic-member.ts +0 -80
  622. package/src/models/grammar-info.ts +0 -78
  623. package/src/models/hyperedge-colors.ts +0 -87
  624. package/src/models/hyperedge-index.ts +0 -101
  625. package/src/models/hyperedge-member.ts +0 -121
  626. package/src/models/hyperedge-registry.ts +0 -145
  627. package/src/models/index.d.ts +0 -586
  628. package/src/models/locality.ts +0 -34
  629. package/src/models/localized-concept.ts +0 -284
  630. package/src/models/localized-string.ts +0 -32
  631. package/src/models/multiplicity.ts +0 -134
  632. package/src/models/non-verb-rep.ts +0 -48
  633. package/src/models/non-verbal-entity.ts +0 -65
  634. package/src/models/non-verbal-reference.ts +0 -73
  635. package/src/models/non-verbal-references.ts +0 -29
  636. package/src/models/partitive-enumeration.ts +0 -27
  637. package/src/models/partitive-hyperedge.ts +0 -90
  638. package/src/models/partitive-member.ts +0 -56
  639. package/src/models/plurality-marker.ts +0 -31
  640. package/src/models/pronunciation.ts +0 -40
  641. package/src/models/register.ts +0 -315
  642. package/src/models/registrable.ts +0 -48
  643. package/src/models/related-concept.ts +0 -117
  644. package/src/models/relation-categories.ts +0 -167
  645. package/src/models/relation-colors.ts +0 -90
  646. package/src/models/relation-loader.ts +0 -115
  647. package/src/models/section.ts +0 -61
  648. package/src/models/sequential-hyperedge.ts +0 -70
  649. package/src/models/shared-non-verbal-entity.ts +0 -36
  650. package/src/models/table.ts +0 -36
  651. package/src/rdf/agents-emitter.ts +0 -134
  652. package/src/rdf/bibliography-emitter.ts +0 -126
  653. package/src/rdf/bnode-id.ts +0 -55
  654. package/src/rdf/build-activity-emitter.ts +0 -129
  655. package/src/rdf/curie.ts +0 -47
  656. package/src/rdf/dataset-emitter.ts +0 -170
  657. package/src/rdf/deterministic-id.ts +0 -69
  658. package/src/rdf/document-writer.ts +0 -87
  659. package/src/rdf/gloss-concept.ts +0 -115
  660. package/src/rdf/gloss-designation.ts +0 -72
  661. package/src/rdf/gloss-detailed-definition.ts +0 -69
  662. package/src/rdf/gloss-localized-concept.ts +0 -79
  663. package/src/rdf/gloss-non-verbal-rep.ts +0 -192
  664. package/src/rdf/gloss-partitive-relation.ts +0 -89
  665. package/src/rdf/gloss-source.ts +0 -56
  666. package/src/rdf/group-emitter.ts +0 -133
  667. package/src/rdf/image-variant-emitter.ts +0 -80
  668. package/src/rdf/index.d.ts +0 -371
  669. package/src/rdf/predicates.d.ts +0 -527
  670. package/src/rdf/predicates.ts +0 -287
  671. package/src/rdf/provenance-emitter.ts +0 -87
  672. package/src/rdf/sections-builder.ts +0 -178
  673. package/src/rdf/shacl-entry.d.ts +0 -6
  674. package/src/rdf/version-emitter.ts +0 -97
  675. package/src/rdf/vocabulary-emitter.ts +0 -67
  676. package/src/rdf/write-turtle-sync.ts +0 -167
  677. package/src/reference-mention.ts +0 -114
  678. package/src/reference-resolver.ts +0 -331
  679. package/src/render-classification.ts +0 -76
  680. package/src/sort.ts +0 -22
  681. package/src/transforms/concept-to-gloss.transform.ts +0 -81
  682. package/src/transforms/index.d.ts +0 -26
  683. package/src/uuid.ts +0 -32
  684. package/src/v1-reader.ts +0 -64
  685. package/src/validators/asset-index.ts +0 -67
  686. package/src/validators/binary-has-part-redundancy-rule.ts +0 -67
  687. package/src/validators/concept-validator.ts +0 -93
  688. package/src/validators/delimiting-coherence-rule.ts +0 -105
  689. package/src/validators/external-concept-shape-rule.ts +0 -60
  690. package/src/validators/gcr-validator.ts +0 -75
  691. package/src/validators/hyperedge-coherence-rule.ts +0 -98
  692. package/src/validators/index.d.ts +0 -43
  693. package/src/validators/ref-keys.ts +0 -31
  694. package/src/validators/register-validator.ts +0 -18
  695. package/src/validators/relationship-type-rule.ts +0 -39
  696. package/src/validators/sourced-from-locality-rule.ts +0 -53
  697. package/src/validators/v3-rules.ts +0 -378
  698. package/src/validators/validation-error.ts +0 -19
  699. package/src/validators/validation-result.ts +0 -52
  700. package/src/validators/validation-rule.ts +0 -21
@@ -0,0 +1,59 @@
1
+ import { GlossaristModel } from './base.js';
2
+ export const GRAMMAR_GENDERS = Object.freeze([
3
+ 'm', 'f', 'n', 'c',
4
+ ]);
5
+ export const GRAMMAR_NUMBERS = Object.freeze([
6
+ 'singular', 'dual', 'plural',
7
+ ]);
8
+ export const GRAMMAR_PARTS_OF_SPEECH = Object.freeze([
9
+ 'noun', 'verb', 'adj', 'adverb', 'preposition', 'participle',
10
+ ]);
11
+ export class GrammarInfo extends GlossaristModel {
12
+ gender;
13
+ number;
14
+ partOfSpeech;
15
+ noun;
16
+ verb;
17
+ adj;
18
+ adverb;
19
+ preposition;
20
+ participle;
21
+ constructor(data = {}) {
22
+ super();
23
+ this.gender = data.gender ?? null;
24
+ this.number = data.number ?? null;
25
+ this.partOfSpeech = data.part_of_speech ?? data.partOfSpeech ?? null;
26
+ this.noun = data.noun ?? false;
27
+ this.verb = data.verb ?? false;
28
+ this.adj = data.adj ?? false;
29
+ this.adverb = data.adverb ?? false;
30
+ this.preposition = data.preposition ?? false;
31
+ this.participle = data.participle ?? false;
32
+ }
33
+ toJSON() {
34
+ const obj = {};
35
+ if (this.gender != null)
36
+ obj.gender = this.gender;
37
+ if (this.number != null)
38
+ obj.number = this.number;
39
+ if (this.partOfSpeech != null)
40
+ obj.part_of_speech = this.partOfSpeech;
41
+ if (this.noun)
42
+ obj.noun = true;
43
+ if (this.verb)
44
+ obj.verb = true;
45
+ if (this.adj)
46
+ obj.adj = true;
47
+ if (this.adverb)
48
+ obj.adverb = true;
49
+ if (this.preposition)
50
+ obj.preposition = true;
51
+ if (this.participle)
52
+ obj.participle = true;
53
+ return obj;
54
+ }
55
+ static fromJSON(data) {
56
+ return new GrammarInfo(data);
57
+ }
58
+ }
59
+ //# sourceMappingURL=grammar-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grammar-info.js","sourceRoot":"","sources":["../../src/models/grammar-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAa5C,MAAM,CAAC,MAAM,eAAe,GAA0B,MAAM,CAAC,MAAM,CAAC;IAClE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACnB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAA0B,MAAM,CAAC,MAAM,CAAC;IAClE,UAAU,EAAE,MAAM,EAAE,QAAQ;CAC7B,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA0B,MAAM,CAAC,MAAM,CAAC;IAC1E,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY;CAC7D,CAAC,CAAC;AAeH,MAAM,OAAO,WAAY,SAAQ,eAAe;IACrC,MAAM,CAAuB;IAC7B,MAAM,CAAuB;IAC7B,YAAY,CAA6B;IACzC,IAAI,CAAU;IACd,IAAI,CAAU;IACd,GAAG,CAAU;IACb,MAAM,CAAU;IAChB,WAAW,CAAU;IACrB,UAAU,CAAU;IAE7B,YAAY,OAAwB,EAAE;QACpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QACrE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;IAC7C,CAAC;IAEQ,MAAM;QACb,MAAM,GAAG,GAAoB,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAClD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;YAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAC/B,IAAI,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG;YAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QACnC,IAAI,IAAI,CAAC,WAAW;YAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAC7C,IAAI,IAAI,CAAC,UAAU;YAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAU,QAAQ,CAAC,IAAqB;QAC5C,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { ColorPair } from './relation-colors.js';
2
+ export interface ResolveHyperedgeColorOptions {
3
+ category?: string;
4
+ overrides?: {
5
+ byCategory?: Record<string, Partial<ColorPair>>;
6
+ };
7
+ }
8
+ export interface ResolvedHyperedgeColor {
9
+ light: string;
10
+ dark: string;
11
+ pattern: 'dashed' | 'double' | null;
12
+ }
13
+ interface HyperedgeLike {
14
+ enumeration?: string;
15
+ markers?: ReadonlyArray<string>;
16
+ }
17
+ export declare function resolveHyperedgeColor(hyperedge: HyperedgeLike | null, options?: ResolveHyperedgeColorOptions): ResolvedHyperedgeColor | null;
18
+ export {};
19
+ //# sourceMappingURL=hyperedge-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-colors.d.ts","sourceRoot":"","sources":["../../src/models/hyperedge-colors.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAStD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,GAAG,IAAI,EAC/B,OAAO,GAAE,4BAAiC,GACzC,sBAAsB,GAAG,IAAI,CAe/B"}
@@ -0,0 +1,61 @@
1
+ // Hyperedge color resolver — resolves display colors for a
2
+ // PartitiveHyperedge based on its enumeration and the carrying
3
+ // concept's category color.
4
+ import { categoryColorPair } from './relation-colors.js';
5
+ const ENUMERATION_INTENSITY = Object.freeze({
6
+ closed: 1.0,
7
+ open: 0.55,
8
+ });
9
+ const DEFAULT_CATEGORY = 'hierarchical';
10
+ export function resolveHyperedgeColor(hyperedge, options = {}) {
11
+ if (!hyperedge)
12
+ return null;
13
+ const category = options.category ?? DEFAULT_CATEGORY;
14
+ const base = categoryColorPair(category, options.overrides);
15
+ if (!base)
16
+ return null;
17
+ const intensity = ENUMERATION_INTENSITY[hyperedge.enumeration ?? ''] ?? 1.0;
18
+ const pattern = derivePattern(hyperedge.markers);
19
+ return {
20
+ light: tint(base.light, intensity),
21
+ dark: tint(base.dark, intensity),
22
+ pattern,
23
+ };
24
+ }
25
+ function derivePattern(markers) {
26
+ const arr = markers ?? [];
27
+ if (arr.includes('dashed'))
28
+ return 'dashed';
29
+ if (arr.includes('double'))
30
+ return 'double';
31
+ return null;
32
+ }
33
+ /**
34
+ * Linear interpolation between the base color and white (light mode)
35
+ * or between the base and a neutral (dark mode). Pure-string inputs
36
+ * return the original color when intensity === 1.0.
37
+ */
38
+ function tint(hex, ratio) {
39
+ if (ratio >= 1.0)
40
+ return hex;
41
+ const rgb = parseHex(hex);
42
+ if (!rgb)
43
+ return hex;
44
+ const target = [255, 255, 255];
45
+ const mixed = rgb.map((c, i) => Math.round(c + ((target[i] ?? 255) - c) * (1 - ratio)));
46
+ return '#' + mixed.map((c) => c.toString(16).padStart(2, '0')).join('');
47
+ }
48
+ function parseHex(s) {
49
+ if (typeof s !== 'string')
50
+ return null;
51
+ const m = s.match(/^#?([0-9a-f]{6})$/i);
52
+ if (!m)
53
+ return null;
54
+ const n = m[1];
55
+ return [
56
+ parseInt(n.slice(0, 2), 16),
57
+ parseInt(n.slice(2, 4), 16),
58
+ parseInt(n.slice(4, 6), 16),
59
+ ];
60
+ }
61
+ //# sourceMappingURL=hyperedge-colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-colors.js","sourceRoot":"","sources":["../../src/models/hyperedge-colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { AbstractHyperedge } from './abstract-hyperedge.js';
2
+ interface HyperedgeLike {
3
+ comprehensive?: {
4
+ source?: string | null;
5
+ id?: string | null;
6
+ } | null;
7
+ members?: ReadonlyArray<{
8
+ ref?: {
9
+ source?: string | null;
10
+ id?: string | null;
11
+ } | null;
12
+ }>;
13
+ }
14
+ export declare class HyperedgeIndex {
15
+ private readonly _byComprehensive;
16
+ private readonly _byMember;
17
+ constructor(hyperedges?: ReadonlyArray<HyperedgeLike>);
18
+ forComprehensive(qualifiedId: string): HyperedgeLike[];
19
+ forMember(qualifiedId: string): HyperedgeLike[];
20
+ comprehensives(): string[];
21
+ members(): string[];
22
+ get size(): number;
23
+ }
24
+ /**
25
+ * Build a HyperedgeIndex across multiple Concepts' relations arrays
26
+ * (a dataset-wide view). Each Concept contributes its own .relations.
27
+ * Helper for the most common pattern: index once at collection load,
28
+ * query many times.
29
+ */
30
+ export declare function buildDatasetIndex(concepts?: ReadonlyArray<{
31
+ relations?: ReadonlyArray<AbstractHyperedge | HyperedgeLike>;
32
+ }>): HyperedgeIndex;
33
+ export {};
34
+ //# sourceMappingURL=hyperedge-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-index.d.ts","sourceRoot":"","sources":["../../src/models/hyperedge-index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,UAAU,aAAa;IACrB,aAAa,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACtE,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,GAAG,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAC1F;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;gBAE7C,UAAU,GAAE,aAAa,CAAC,aAAa,CAAM;IAgBzD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE;IAKtD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE;IAK/C,cAAc,IAAI,MAAM,EAAE;IAK1B,OAAO,IAAI,MAAM,EAAE;IAInB,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,GAAE,aAAa,CAAC;IAAE,SAAS,CAAC,EAAE,aAAa,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAA;CAAE,CAAM,GAC7F,cAAc,CAQhB"}
@@ -0,0 +1,85 @@
1
+ // HyperedgeIndex — directional index over a hyperedge set.
2
+ //
3
+ // A hyperedge is 1→N (one comprehensive, many members). The forward
4
+ // query ("which hyperedges have X as comprehensive?") and the reverse
5
+ // query ("which hyperedges have Y as a member?") are both useful. The
6
+ // reverse query is the load-bearing one: OIML V 2-200:2010 concept
7
+ // 5.13 is a member of one of 5.1's hyperedges AND the comprehensive
8
+ // of its own 2 hyperedges — without an index, every "find hyperedges
9
+ // mentioning X" turns into an O(N) walk over every hyperedge.
10
+ //
11
+ // The index is built on demand from a flat hyperedge list (typically
12
+ // Concept.relations or the union of all concepts' relations in a
13
+ // collection). It does not store state on Concept — Concept stays a
14
+ // simple value object.
15
+ //
16
+ // Identity key matches HyperedgeRegistry / ConceptRef conventions:
17
+ // `${source}:${id}` (empty source or id is rejected)
18
+ export class HyperedgeIndex {
19
+ _byComprehensive;
20
+ _byMember;
21
+ constructor(hyperedges = []) {
22
+ this._byComprehensive = new Map();
23
+ this._byMember = new Map();
24
+ for (const h of hyperedges) {
25
+ const cKey = _qualifiedId(h?.comprehensive);
26
+ if (cKey)
27
+ _addToMapList(this._byComprehensive, cKey, h);
28
+ const members = Array.isArray(h?.members) ? h.members : [];
29
+ for (const m of members) {
30
+ const mKey = _qualifiedId(m?.ref ?? m);
31
+ if (mKey)
32
+ _addToMapList(this._byMember, mKey, h);
33
+ }
34
+ }
35
+ }
36
+ // Hyperedges where the given concept is the comprehensive (the "1" side).
37
+ forComprehensive(qualifiedId) {
38
+ return this._byComprehensive.get(qualifiedId) ?? [];
39
+ }
40
+ // Hyperedges where the given concept appears as a member (the "many" side).
41
+ forMember(qualifiedId) {
42
+ return this._byMember.get(qualifiedId) ?? [];
43
+ }
44
+ // All concepts that appear as a comprehensive in any indexed hyperedge.
45
+ comprehensives() {
46
+ return [...this._byComprehensive.keys()];
47
+ }
48
+ // All concepts that appear as a member in any indexed hyperedge.
49
+ members() {
50
+ return [...this._byMember.keys()];
51
+ }
52
+ get size() {
53
+ return this._byComprehensive.size;
54
+ }
55
+ }
56
+ /**
57
+ * Build a HyperedgeIndex across multiple Concepts' relations arrays
58
+ * (a dataset-wide view). Each Concept contributes its own .relations.
59
+ * Helper for the most common pattern: index once at collection load,
60
+ * query many times.
61
+ */
62
+ export function buildDatasetIndex(concepts = []) {
63
+ const all = [];
64
+ for (const concept of concepts) {
65
+ for (const h of concept.relations ?? []) {
66
+ all.push(h);
67
+ }
68
+ }
69
+ return new HyperedgeIndex(all);
70
+ }
71
+ function _qualifiedId(ref) {
72
+ if (!ref)
73
+ return null;
74
+ const source = ref.source ?? '';
75
+ const id = ref.id ?? '';
76
+ if (!source && !id)
77
+ return null;
78
+ return `${source}:${id}`;
79
+ }
80
+ function _addToMapList(map, key, value) {
81
+ if (!map.has(key))
82
+ map.set(key, []);
83
+ map.get(key)?.push(value);
84
+ }
85
+ //# sourceMappingURL=hyperedge-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-index.js","sourceRoot":"","sources":["../../src/models/hyperedge-index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { GlossaristModel } from './base.js';
2
+ import { ConceptRef } from './concept-ref.js';
3
+ import type { ConceptRefJson } from './concept-ref.js';
4
+ import type { PartitivePresence } from './partitive-presence.js';
5
+ import type { PartitiveCount } from './partitive-count.js';
6
+ export interface HyperedgeMemberJson {
7
+ ref?: ConceptRefJson | ConceptRef;
8
+ presence?: PartitivePresence;
9
+ count?: PartitiveCount;
10
+ }
11
+ export declare abstract class HyperedgeMember extends GlossaristModel {
12
+ readonly ref: ConceptRef;
13
+ readonly presence: PartitivePresence;
14
+ readonly count: PartitiveCount;
15
+ constructor(data?: HyperedgeMemberJson);
16
+ get isRequired(): boolean;
17
+ get isOptional(): boolean;
18
+ identity(): string;
19
+ toJSON(): HyperedgeMemberJson;
20
+ static identityOf(value: {
21
+ ref?: {
22
+ source?: string | null;
23
+ id?: string | null;
24
+ } | null;
25
+ } | null | undefined): string;
26
+ static fromJSON(_data: HyperedgeMemberJson): HyperedgeMember;
27
+ }
28
+ //# sourceMappingURL=hyperedge-member.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-member.d.ts","sourceRoot":"","sources":["../../src/models/hyperedge-member.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC;IAClC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,8BAAsB,eAAgB,SAAQ,eAAe;IAC3D,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;gBAEnB,IAAI,GAAE,mBAAwB;IAS1C,IAAI,UAAU,IAAI,OAAO,CAAyC;IAClE,IAAI,UAAU,IAAI,OAAO,CAAyC;IAEzD,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,mBAAmB;IAOtC,MAAM,CAAC,UAAU,CACf,KAAK,EAAE;QAAE,GAAG,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,GACxF,MAAM;WAMO,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe;CAStE"}
@@ -0,0 +1,92 @@
1
+ // HyperedgeMember — abstract base shape for the members of any directed
2
+ // 1→N hyperedge (PartitiveMember, GenericMember, future AssociativeMember,
3
+ // SequentialMember).
4
+ //
5
+ // Carries ONLY the dimensions shared by every hyperedge member type:
6
+ // ref — ConceptRef [1] (the member concept)
7
+ // presence — 'required' | 'optional' (default: required)
8
+ // count — 'exactly_one' | 'at_least_one' | 'multiple' (default: exactly_one)
9
+ //
10
+ // These three form the ISO 704:2022 MECE pair (presence × count). The
11
+ // pair is the shared invariant across all hyperedge types — that's
12
+ // why it lives on the base.
13
+ //
14
+ // Type-specific extensions live on the leaves:
15
+ // PartitiveMember — is_delimiting (rake-diagram semantics, ISO 704 §5.5.4.2.2)
16
+ // GenericMember — delimitingCharacteristic (intension difference, ISO 704 §5.5.4.2.1)
17
+ //
18
+ // See docs/design/abstract-hyperedge.md (concept-model repo).
19
+ import { GlossaristModel } from './base.js';
20
+ import { ConceptRef } from './concept-ref.js';
21
+ import { PARTITIVE_PRESENCE_VALUES, DEFAULT_PRESENCE, isValidPresence } from './partitive-presence.js';
22
+ import { PARTITIVE_COUNT_VALUES, DEFAULT_COUNT, isValidCount } from './partitive-count.js';
23
+ import { multiplicityFromPair } from './multiplicity.js';
24
+ export class HyperedgeMember extends GlossaristModel {
25
+ ref;
26
+ presence;
27
+ count;
28
+ constructor(data = {}) {
29
+ super();
30
+ this.ref = _ensureRef(data.ref);
31
+ this.presence = _resolvePresence(data.presence);
32
+ this.count = _resolveCount(data.count);
33
+ _assertValidPair(this.presence, this.count);
34
+ }
35
+ get isRequired() { return this.presence === 'required'; }
36
+ get isOptional() { return this.presence === 'optional'; }
37
+ identity() {
38
+ return HyperedgeMember.identityOf(this);
39
+ }
40
+ toJSON() {
41
+ const obj = { ref: this.ref.toJSON() };
42
+ if (this.presence !== DEFAULT_PRESENCE)
43
+ obj.presence = this.presence;
44
+ if (this.count !== DEFAULT_COUNT)
45
+ obj.count = this.count;
46
+ return obj;
47
+ }
48
+ static identityOf(value) {
49
+ const v = value ?? {};
50
+ const ref = v.ref ?? {};
51
+ return `${ref.source ?? ''}:${ref.id ?? ''}`;
52
+ }
53
+ static fromJSON(_data) {
54
+ // Abstract base — subclasses MUST override. The base
55
+ // implementation is a typed marker that dispatches to the wrong
56
+ // class would surface as a runtime error rather than silently
57
+ // returning a mis-typed instance.
58
+ throw new Error('HyperedgeMember.fromJSON must be overridden by a subclass');
59
+ }
60
+ }
61
+ function _ensureRef(value) {
62
+ const ref = value instanceof ConceptRef ? value : new ConceptRef(value ?? {});
63
+ if (!ref.source && !ref.id && !ref.text) {
64
+ throw new Error('HyperedgeMember.ref must be a non-empty ConceptRef ' +
65
+ '(source, id, or text required)');
66
+ }
67
+ return ref;
68
+ }
69
+ function _resolvePresence(value) {
70
+ const p = value ?? DEFAULT_PRESENCE;
71
+ if (!isValidPresence(p)) {
72
+ throw new Error(`invalid presence ${JSON.stringify(value)}; ` +
73
+ `must be one of: ${PARTITIVE_PRESENCE_VALUES.join(', ')}`);
74
+ }
75
+ return p;
76
+ }
77
+ function _resolveCount(value) {
78
+ const c = value ?? DEFAULT_COUNT;
79
+ if (!isValidCount(c)) {
80
+ throw new Error(`invalid count ${JSON.stringify(value)}; ` +
81
+ `must be one of: ${PARTITIVE_COUNT_VALUES.join(', ')}`);
82
+ }
83
+ return c;
84
+ }
85
+ function _assertValidPair(presence, count) {
86
+ // Delegate to the multiplicity SSOT. The canonical error string
87
+ // lives in one place: multiplicity.ts. Calling multiplicityFromPair
88
+ // throws on the invalid combination; we don't need to duplicate the
89
+ // error message here.
90
+ multiplicityFromPair(presence, count);
91
+ }
92
+ //# sourceMappingURL=hyperedge-member.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-member.js","sourceRoot":"","sources":["../../src/models/hyperedge-member.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { AbstractHyperedge } from './abstract-hyperedge.js';
2
+ /**
3
+ * Shape a registered hyperedge class must satisfy. Every leaf class
4
+ * in src/models/ matches this shape (declared as static fields).
5
+ */
6
+ export interface HyperedgeClass {
7
+ readonly wireKey: string;
8
+ readonly typeTag: string;
9
+ readonly rdfType: string;
10
+ readonly memberClass: new (...args: never[]) => unknown;
11
+ readonly v1WireKeys?: ReadonlyArray<string>;
12
+ readonly kindLabel?: string;
13
+ readonly name: string;
14
+ }
15
+ declare class HyperedgeRegistry {
16
+ static _byWireKey: Map<string, HyperedgeClass>;
17
+ static _byTypeTag: Map<string, HyperedgeClass>;
18
+ static _byRdfType: Map<string, HyperedgeClass>;
19
+ static register(cls: HyperedgeClass | undefined): boolean;
20
+ /**
21
+ * Test-only. Removes a class from all three indexes. Used by the OCP
22
+ * spec to clean up mock types it adds during a test run.
23
+ */
24
+ static unregister(cls: HyperedgeClass | undefined): boolean;
25
+ static forWireKey(key: string): HyperedgeClass | null;
26
+ static forTypeTag(tag: string): HyperedgeClass | null;
27
+ static forRdfType(type: string): HyperedgeClass | null;
28
+ static allClasses(): HyperedgeClass[];
29
+ static allWireKeys(): string[];
30
+ static allTypeTags(): string[];
31
+ /**
32
+ * Snapshot of every registered wire-shape identifier (v2 wireKey plus
33
+ * any v1 legacy keys). Used by the parser to reserve STRUCTURAL_KEYS
34
+ * and to know which top-level YAML keys to walk for hyperedge data.
35
+ */
36
+ static allWireAndLegacyKeys(): string[];
37
+ }
38
+ /**
39
+ * Helper: partition a unified hyperedge array by wire key. Used by
40
+ * Concept.toJSON, ConceptSerializer, and diff-patch to emit per-type
41
+ * wire keys without per-type branching in those files. Adding a new
42
+ * hyperedge type "just works" because the group is keyed by the
43
+ * class's static wireKey.
44
+ */
45
+ export declare function groupHyperedgesByWireKey(hyperedges: ReadonlyArray<AbstractHyperedge> | null | undefined): Record<string, AbstractHyperedge[]>;
46
+ export { HyperedgeRegistry };
47
+ //# sourceMappingURL=hyperedge-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-registry.d.ts","sourceRoot":"","sources":["../../src/models/hyperedge-registry.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,iBAAiB;IACrB,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAC3D,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAC3D,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAE3D,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IA2BzD;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO;IAQ3D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAGrD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAGrD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAItD,MAAM,CAAC,UAAU,IAAI,cAAc,EAAE;IAarC,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE;IAC9B,MAAM,CAAC,WAAW,IAAI,MAAM,EAAE;IAE9B;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,EAAE;CAQxC;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,IAAI,GAAG,SAAS,GAC9D,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CASrC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,118 @@
1
+ // HyperedgeRegistry — single source of truth for hyperedge type dispatch.
2
+ //
3
+ // Each hyperedge leaf class (PartitiveHyperedge, GenericHyperedge, future
4
+ // TemporalHyperedge, AssociativeHyperedge, etc.) registers itself once at
5
+ // module load. External systems (parser, serializer, diff, RDF emitter,
6
+ // validators) read from this registry instead of branching on instanceof
7
+ // or hardcoding per-type tables.
8
+ //
9
+ // Adding a new hyperedge type:
10
+ // 1. Declare the leaf class with the 6-field metadata block
11
+ // (wireKey, typeTag, rdfType, memberClass, v1WireKeys, kindLabel).
12
+ // 2. Call HyperedgeRegistry.register(MyClass) at the bottom of the file.
13
+ //
14
+ // Nothing else in the codebase changes. That is the OCP contract.
15
+ //
16
+ // Three indexes support three lookup patterns:
17
+ // byWireKey — parser/serializer/diff-patch dispatch by YAML/JSON key
18
+ // byTypeTag — per-file loader dispatch by `type: ...` discriminator
19
+ // byRdfType — RDF emitter dispatch by ontology class IRI
20
+ //
21
+ // The abstract base (AbstractHyperedge) has no wireKey and is skipped
22
+ // by register() — it cannot be instantiated through the registry.
23
+ class HyperedgeRegistry {
24
+ static _byWireKey = new Map();
25
+ static _byTypeTag = new Map();
26
+ static _byRdfType = new Map();
27
+ static register(cls) {
28
+ if (!cls || !cls.wireKey || !cls.typeTag || !cls.rdfType)
29
+ return false;
30
+ if (this._byWireKey.has(cls.wireKey)) {
31
+ throw new Error(`HyperedgeRegistry: duplicate wireKey '${cls.wireKey}' ` +
32
+ `(trying to register ${cls.name}; already registered to ` +
33
+ `${this._byWireKey.get(cls.wireKey)?.name})`);
34
+ }
35
+ if (this._byTypeTag.has(cls.typeTag)) {
36
+ throw new Error(`HyperedgeRegistry: duplicate typeTag '${cls.typeTag}' ` +
37
+ `(trying to register ${cls.name})`);
38
+ }
39
+ if (this._byRdfType.has(cls.rdfType)) {
40
+ throw new Error(`HyperedgeRegistry: duplicate rdfType '${cls.rdfType}' ` +
41
+ `(trying to register ${cls.name})`);
42
+ }
43
+ this._byWireKey.set(cls.wireKey, cls);
44
+ this._byTypeTag.set(cls.typeTag, cls);
45
+ this._byRdfType.set(cls.rdfType, cls);
46
+ return true;
47
+ }
48
+ /**
49
+ * Test-only. Removes a class from all three indexes. Used by the OCP
50
+ * spec to clean up mock types it adds during a test run.
51
+ */
52
+ static unregister(cls) {
53
+ if (!cls)
54
+ return false;
55
+ const r1 = this._byWireKey.delete(cls.wireKey);
56
+ const r2 = this._byTypeTag.delete(cls.typeTag);
57
+ const r3 = this._byRdfType.delete(cls.rdfType);
58
+ return r1 || r2 || r3;
59
+ }
60
+ static forWireKey(key) {
61
+ return this._byWireKey.get(key) ?? null;
62
+ }
63
+ static forTypeTag(tag) {
64
+ return this._byTypeTag.get(tag) ?? null;
65
+ }
66
+ static forRdfType(type) {
67
+ return this._byRdfType.get(type) ?? null;
68
+ }
69
+ static allClasses() {
70
+ // Dedup in case the same class is reachable via multiple indexes.
71
+ const seen = new Set();
72
+ const out = [];
73
+ for (const cls of this._byTypeTag.values()) {
74
+ if (!seen.has(cls)) {
75
+ seen.add(cls);
76
+ out.push(cls);
77
+ }
78
+ }
79
+ return out;
80
+ }
81
+ static allWireKeys() { return [...this._byWireKey.keys()]; }
82
+ static allTypeTags() { return [...this._byTypeTag.keys()]; }
83
+ /**
84
+ * Snapshot of every registered wire-shape identifier (v2 wireKey plus
85
+ * any v1 legacy keys). Used by the parser to reserve STRUCTURAL_KEYS
86
+ * and to know which top-level YAML keys to walk for hyperedge data.
87
+ */
88
+ static allWireAndLegacyKeys() {
89
+ const out = [];
90
+ for (const cls of this.allClasses()) {
91
+ out.push(cls.wireKey);
92
+ for (const k of cls.v1WireKeys ?? [])
93
+ out.push(k);
94
+ }
95
+ return out;
96
+ }
97
+ }
98
+ /**
99
+ * Helper: partition a unified hyperedge array by wire key. Used by
100
+ * Concept.toJSON, ConceptSerializer, and diff-patch to emit per-type
101
+ * wire keys without per-type branching in those files. Adding a new
102
+ * hyperedge type "just works" because the group is keyed by the
103
+ * class's static wireKey.
104
+ */
105
+ export function groupHyperedgesByWireKey(hyperedges) {
106
+ const out = {};
107
+ for (const h of hyperedges ?? []) {
108
+ const key = h?.constructor?.wireKey;
109
+ if (!key)
110
+ continue;
111
+ if (!out[key])
112
+ out[key] = [];
113
+ out[key].push(h);
114
+ }
115
+ return out;
116
+ }
117
+ export { HyperedgeRegistry };
118
+ //# sourceMappingURL=hyperedge-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hyperedge-registry.js","sourceRoot":"","sources":["../../src/models/hyperedge-registry.ts"],"names":[],"mappings":"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"}