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
@@ -1,69 +0,0 @@
1
- // Stable ID helpers for RDF emission. Mirrors glossarist-ruby's
2
- // Digest::MD5.hexdigest(content)[0..11] for cross-runtime stability.
3
- //
4
- // Browser safety: node:crypto is loaded lazily so bundlers don't
5
- // tree-shake the import into browser bundles. The runtime check uses
6
- // `createRequire` from `node:module` (also lazy) which is the
7
- // documented way to use CommonJS `require` from ESM.
8
-
9
- let nodeCreateHash: ((alg: string) => { update(data: string): { digest(enc: string): string } }) | null = null;
10
- let nodeCryptoChecked = false;
11
-
12
- function getNodeCreateHash() {
13
- if (nodeCryptoChecked) return nodeCreateHash;
14
- nodeCryptoChecked = true;
15
- try {
16
- // Lazy require — works in both CJS and ESM (Node ≥ 12).
17
- // Wrapped in Function() so bundlers don't statically resolve it.
18
- let requireFn;
19
- try {
20
- // ESM: use createRequire from node:module
21
- const mod = (Function('m', 'return require(m)'))('node:module');
22
- requireFn = mod.createRequire(import.meta.url);
23
- } catch {
24
- // CJS or already-require-available environment
25
- requireFn = (m: string) => (Function('m', 'return require(m)'))(m);
26
- }
27
- const crypto = requireFn('node:crypto');
28
- nodeCreateHash = crypto.createHash.bind(crypto);
29
- } catch {
30
- nodeCreateHash = null;
31
- }
32
- return nodeCreateHash;
33
- }
34
-
35
- // 12-char hex prefix, mirroring glossarist-ruby's
36
- // `Digest::MD5.hexdigest(content)[0..11]`. Same content → same ID across
37
- // processes, machines, and language runtimes (Ruby vs JS) when MD5 is
38
- // available. Falls back to a 12-char FNV-1a hash in the browser.
39
- export function deterministicId(...parts: ReadonlyArray<unknown>): string {
40
- const seed = parts.filter(p => p !== null && p !== undefined).join('|');
41
- const createHash = getNodeCreateHash();
42
- if (createHash) {
43
- return createHash('md5').update(seed).digest('hex').slice(0, 12);
44
- }
45
- return fnv1a12(seed);
46
- }
47
-
48
- // Stable blank-node label for an RDF fragment identified by its parent
49
- // subject + role + index.
50
- export function deterministicBnode(subject: string, role: string, index: number): string {
51
- return `_:b${deterministicId(subject, role, index)}`;
52
- }
53
-
54
- // 12-char FNV-1a hash.
55
- function fnv1a12(seed: string): string {
56
- let h1 = 0x811c9dc5;
57
- for (let i = 0; i < seed.length; i++) {
58
- h1 ^= seed.charCodeAt(i);
59
- h1 = Math.imul(h1, 0x01000193);
60
- }
61
- const seed2 = `${seed}|fnv2`;
62
- let h2 = 0x811c9dc5;
63
- for (let i = 0; i < seed2.length; i++) {
64
- h2 ^= seed2.charCodeAt(i);
65
- h2 = Math.imul(h2, 0x01000193);
66
- }
67
- return ((h1 >>> 0).toString(16).padStart(8, '0')
68
- + (h2 >>> 0).toString(16).padStart(8, '0')).slice(0, 12);
69
- }
@@ -1,87 +0,0 @@
1
- // Quads → canonical Turtle / N-Triples / JSON-LD document.
2
- //
3
- // Turtle is produced via N3.Writer. JSON-LD via the `jsonld` package
4
- // (fromRDF + compact against the canonical context). N-Triples is provided
5
- // as a stable fallback that doesn't depend on prefix maps.
6
- import { Writer as N3Writer } from 'n3';
7
- import jsonld from 'jsonld';
8
- import { PREFIXES } from './prefixes.js';
9
-
10
- // Collects all quads yielded by an emitter into an array. Useful for tests
11
- // and for callers that want to inspect the quad stream directly.
12
- export function collectQuads(quadsIterable) {
13
- const out: unknown[] = [];
14
- for (const q of quadsIterable) out.push(q);
15
- return out;
16
- }
17
-
18
- // Returns a Turtle serialization of `quads` using the canonical prefix map
19
- // generated from the vendored concept-model JSON-LD context. Quads are
20
- // sorted deterministically so the same input always produces byte-equivalent
21
- // output across runs.
22
- export function writeTurtle(quads, { prefixes = PREFIXES } = {}) {
23
- const sorted = sortQuads(quads);
24
- return new Promise((resolve, reject) => {
25
- const writer = new N3Writer({ prefixes, format: 'Turtle' });
26
- for (const q of sorted) writer.addQuad(q);
27
- writer.end((err, result) => {
28
- if (err) reject(err);
29
- else resolve(result);
30
- });
31
- });
32
- }
33
-
34
- // Returns an N-Triples serialization of `quads` — no prefixes, no bnode
35
- // shortening. Useful when consumers need a totally stable wire format.
36
- export function writeNTriples(quads) {
37
- const sorted = sortQuads(quads);
38
- return new Promise((resolve, reject) => {
39
- const writer = new N3Writer({ format: 'N-Triples' });
40
- for (const q of sorted) writer.addQuad(q);
41
- writer.end((err, result) => {
42
- if (err) reject(err);
43
- else resolve(result);
44
- });
45
- });
46
- }
47
-
48
- // Returns a compacted JSON-LD serialization of `quads`. The context defaults
49
- // to the canonical glossarist JSON-LD context derived from the vendored
50
- // PREFIXES. Quads are sorted first for deterministic output.
51
- export async function writeJsonld(quads, { context = defaultJsonldContext() } = {}) {
52
- const sorted = sortQuads(quads);
53
- const nquads = await writeNTriples(sorted);
54
- const expanded = await jsonld.fromRDF(nquads, { format: 'application/n-quads' });
55
- const compacted = await jsonld.compact(expanded, context);
56
- return JSON.stringify(compacted, null, 2);
57
- }
58
-
59
- function defaultJsonldContext() {
60
- const ctx = {};
61
- for (const [prefix, uri] of Object.entries(PREFIXES)) {
62
- ctx[prefix] = uri;
63
- }
64
- return ctx;
65
- }
66
-
67
- // Sort by (subject.value, predicate.value, object.termType, object.value,
68
- // graph.value). Bnodes sort by their generated ID which is deterministic
69
- // because we use content-addressed IDs.
70
- export function sortQuads(quads) {
71
- return [...quads].sort(compareQuad);
72
- }
73
-
74
- function compareQuad(a, b) {
75
- let cmp = cmpTerm(a.subject, b.subject);
76
- if (cmp !== 0) return cmp;
77
- cmp = cmpTerm(a.predicate, b.predicate);
78
- if (cmp !== 0) return cmp;
79
- cmp = cmpTerm(a.object, b.object);
80
- if (cmp !== 0) return cmp;
81
- return cmpTerm(a.graph, b.graph);
82
- }
83
-
84
- function cmpTerm(a, b) {
85
- if (a.termType !== b.termType) return a.termType.localeCompare(b.termType);
86
- return String(a.value).localeCompare(String(b.value));
87
- }
@@ -1,115 +0,0 @@
1
- // @ts-nocheck — TEMPORARY during TS migration. TODO(Phase 2e): remove and type fully.
2
- // Concept → RDF quads. Mirrors glossarist-ruby's `Rdf::GlossConcept`.
3
- //
4
- // URI shape: `<uriBase>/<registerId>/concept/<conceptId>`.
5
- // Localized concepts: `<uriBase>/<registerId>/concept/<conceptId>/<lang>`.
6
- // Figure/Table/Formula references: `<uriBase>/<registerId>/<kind>/<entityId>`.
7
- import { PRED } from './predicates.js';
8
- import { WELL_KNOWN } from './prefixes.js';
9
- import { localizedConceptToQuads } from './gloss-localized-concept.js';
10
- import { conceptSourceToQuads } from './gloss-source.js';
11
- import { partitiveRelationToQuads, partitiveRelationSubjectUri } from './gloss-partitive-relation.js';
12
- import { genericHyperedgeToQuads, genericHyperedgeSubjectUri, GENERIC_HYPEREDGE_LINK_PREDICATE } from './gloss-generic-hyperedge.js';
13
- import { PartitiveHyperedge } from '../models/partitive-hyperedge.js';
14
- import { GenericHyperedge } from '../models/generic-hyperedge.js';
15
- import { namedNode, literal, quad } from './terms.js';
16
-
17
- // Per-type RDF emitter dispatch. Keyed by class. Adding a new hyperedge
18
- // type with its own emitter means: (1) write the emitter module,
19
- // (2) add one entry here. Per TODO Phase 6e this should be a
20
- // self-registering registry; for the two current types, the dispatch
21
- // table is simpler and keeps the dependency graph acyclic.
22
- const HYPEREDGE_EMITTERS: Map<unknown, Record<string, unknown>> = new Map([
23
- [PartitiveHyperedge, {
24
- linkPredicate: PRED.gloss.hasPartitiveRelation,
25
- subjectUri: partitiveRelationSubjectUri,
26
- toQuads: partitiveRelationToQuads,
27
- }],
28
- [GenericHyperedge, {
29
- linkPredicate: GENERIC_HYPEREDGE_LINK_PREDICATE,
30
- subjectUri: genericHyperedgeSubjectUri,
31
- toQuads: genericHyperedgeToQuads,
32
- }],
33
- ]);
34
-
35
- // Kind tag → URI segment. Each NonVerbalReference subtype has a
36
- // predictable URL path so the same entity is reachable from any
37
- // concept that references it.
38
- const NVR_KIND_SEGMENT = {
39
- FigureReference: 'figure',
40
- TableReference: 'table',
41
- FormulaReference: 'formula',
42
- };
43
-
44
- // Builds the URI for a NonVerbalReference target entity. Returns null
45
- // when the reference has no entityId (e.g., inline display-only refs).
46
- function nonVerbalReferenceUri(ref, options) {
47
- const kind = NVR_KIND_SEGMENT[ref.constructor.name];
48
- if (!kind || !ref.entityId) return null;
49
- const base = String(options.uriBase ?? '').replace(/\/+$/, '');
50
- return `${base}/${options.registerId}/${kind}/${ref.entityId}`;
51
- }
52
-
53
- export function conceptUri(concept, { registerId, uriBase }) {
54
- const id = String(concept.id ?? concept.termid ?? '');
55
- const base = String(uriBase ?? '').replace(/\/+$/, '');
56
- return `${base}/${registerId}/concept/${id}`;
57
- }
58
-
59
- export function* conceptToQuads(concept, options) {
60
- const subjectUri = conceptUri(concept, options);
61
- const s = namedNode(subjectUri);
62
-
63
- yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.Concept));
64
- yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(WELL_KNOWN.skosConcept));
65
-
66
- yield quad(s, namedNode(PRED.gloss.identifier), literal(String(concept.id ?? concept.termid ?? '')));
67
-
68
- if (concept.status) {
69
- yield quad(s, namedNode(PRED.gloss.hasStatus), namedNode(`${PRED.gloss.$ns}status/${concept.status}`));
70
- }
71
-
72
- // NonVerbal references — emit the link quad only. The actual
73
- // Figure/Table/Formula entity quads are emitted by `nonVerbalEntityToQuads`
74
- // when the dataset's NVR collection is iterated.
75
- for (const ref of [...(concept.figures ?? []), ...(concept.tables ?? []), ...(concept.formulas ?? [])]) {
76
- const targetUri = nonVerbalReferenceUri(ref, options);
77
- if (targetUri) {
78
- yield quad(s, namedNode(PRED.gloss.hasNonVerbalRep), namedNode(targetUri));
79
- }
80
- }
81
-
82
- for (const lang of concept.languages) {
83
- const lc = concept.localization(lang);
84
- if (!lc) continue;
85
- const lcUri = `${subjectUri}/${lang}`;
86
- yield quad(s, namedNode(PRED.gloss.hasLocalization), namedNode(lcUri));
87
- yield* localizedConceptToQuads(lc, { parentUri: subjectUri, language: lang });
88
- }
89
-
90
- let srcIndex = 0;
91
- for (const source of concept.sources ?? []) {
92
- yield* conceptSourceToQuads(source, { subjectUri, index: srcIndex });
93
- srcIndex += 1;
94
- }
95
-
96
- // Iterate the unified relations array. Dispatch via per-type
97
- // emitter table.
98
- let relIdx = 0;
99
- for (const relation of concept.relations ?? []) {
100
- const emitter = HYPEREDGE_EMITTERS.get(relation.constructor) as unknown as { linkPredicate: string; subjectUri: (a: string, b: unknown, c: number) => string; toQuads: (a: unknown, b: { parentUri: string; index: number }) => Iterable<unknown> } | undefined;
101
- if (!emitter) {
102
- // Unknown hyperedge type — skip rather than crash. The OCP
103
- // contract (Phase 11) tests that new types register an emitter;
104
- // skipping here gives external consumers a soft-failure path
105
- // when they pass around abstract hyperedges the JS layer doesn't
106
- // recognize yet.
107
- relIdx += 1;
108
- continue;
109
- }
110
- const relSubject = emitter.subjectUri(subjectUri, relation, relIdx);
111
- yield quad(s, namedNode(emitter.linkPredicate), namedNode(relSubject));
112
- yield* emitter.toQuads(relation, { parentUri: subjectUri, index: relIdx });
113
- relIdx += 1;
114
- }
115
- }
@@ -1,72 +0,0 @@
1
- // Designation → RDF quads. Mirrors glossarist-ruby's
2
- // `Rdf::GlossDesignation` + the per-subtype classes (GlossExpression,
3
- // GlossAbbreviation, etc.). The ontology class for each subtype is
4
- // provided by the model itself via Designation#rdfClass (OCP: new
5
- // subtypes register without editing this emitter).
6
- import { PRED, PREFIXES } from './predicates.js';
7
- import { SKOSXL, WELL_KNOWN } from './prefixes.js';
8
- import { deterministicBnode } from './deterministic-id.js';
9
- import { normalizeEnum } from './normalize-enum.js';
10
- import { namedNode, literal, quad } from './terms.js';
11
-
12
- const XSD_BOOLEAN = 'http://www.w3.org/2001/XMLSchema#boolean';
13
-
14
- // Boolean flag fields on designation subtypes. Each entry maps a model
15
- // field name to its ontology predicate. Only emitted when the value is
16
- // truthy, so legacy data without the fields round-trips unchanged.
17
- const BOOLEAN_FLAGS = [
18
- ['acronym', PRED.gloss.isAcronym],
19
- ['initialism', PRED.gloss.isInitialism],
20
- ['truncation', PRED.gloss.isTruncation],
21
- ['international', PRED.gloss.isInternational],
22
- ['absent', PRED.gloss.isAbsent],
23
- ];
24
-
25
- // Returns the SKOS-XL predicate (as a string URI) appropriate for this
26
- // designation's normative status. Mirrors `skosxl_label_for` in Ruby.
27
- // The dispatch lives on the Designation model so a new status requires
28
- // a single edit there, not here.
29
- export function skosxlLabelPredicate(designation) {
30
- return designation.skosxlLabelPredicate(PREFIXES.skosxl);
31
- }
32
-
33
- // Returns the matching plain-SKOS predicate URI (skos:prefLabel etc.).
34
- // Used when emitting direct SKOS alongside reified SKOS-XL.
35
- export function skosLabelPredicate(designation) {
36
- return designation.skosLabelPredicate(PREFIXES.skos);
37
- }
38
-
39
- // Emits quads for one designation. Yields them lazily so callers can
40
- // compose many designations into a single stream without intermediate
41
- // arrays.
42
- //
43
- // `subjectUri` is the URI of the LocalizedConcept that owns this designation.
44
- // `index` is the position of the designation within its parent's terms list
45
- // — used to make the bnode ID deterministic.
46
- export function* designationToQuads(designation, { subjectUri, language, index }) {
47
- const desigSubject = deterministicBnode(subjectUri, 'desig', index);
48
-
49
- const labelPredicate = namedNode(skosxlLabelPredicate(designation));
50
- yield quad(namedNode(subjectUri), labelPredicate, namedNode(desigSubject));
51
-
52
- yield quad(namedNode(desigSubject), namedNode(WELL_KNOWN.rdfType), namedNode(`${PRED.gloss.$ns}${designation.rdfClass()}`));
53
- yield quad(namedNode(desigSubject), namedNode(WELL_KNOWN.rdfType), namedNode(WELL_KNOWN.skosxlLabel));
54
- yield quad(namedNode(desigSubject), namedNode(SKOSXL.literalForm), literal(designation.designation ?? '', language));
55
-
56
- if (designation.normativeStatus) {
57
- const statusToken = normalizeEnum(designation.normativeStatus);
58
- if (statusToken) {
59
- const statusUri = `${PRED.gloss.$ns}norm/${statusToken}`;
60
- yield quad(namedNode(desigSubject), namedNode(PRED.gloss.normativeStatus), namedNode(statusUri));
61
- }
62
- }
63
-
64
- // Subtype-specific boolean flags. Skipping when falsy preserves
65
- // backward compatibility with simpler designations.
66
- const booleanType = namedNode(XSD_BOOLEAN);
67
- for (const [field, predicate] of BOOLEAN_FLAGS) {
68
- if (designation[field as string]) {
69
- yield quad(namedNode(desigSubject), namedNode(predicate as string), literal('true', booleanType));
70
- }
71
- }
72
- }
@@ -1,69 +0,0 @@
1
- // DetailedDefinition → RDF quads. Mirrors glossarist-ruby's
2
- // `Rdf::GlossDetailedDefinition`. Used for definitions, notes, examples,
3
- // and annotations — they all share the same shape (content + optional
4
- // sources + nested examples).
5
- //
6
- // The emitter takes a `linkPredicate` (e.g. PRED.gloss.hasDefinition,
7
- // PRED.gloss.hasNote, PRED.gloss.hasExample) so callers can reuse it for
8
- // any role.
9
- import { PRED } from './predicates.js';
10
- import { WELL_KNOWN } from './prefixes.js';
11
- import { deterministicBnode } from './deterministic-id.js';
12
- import { namedNode, literal, quad } from './terms.js';
13
-
14
- export function* detailedDefinitionToQuads(definition, {
15
- subjectUri, language, index, role,
16
- }) {
17
- const linkPredicate = linkPredicateFor(role);
18
- const defSubject = deterministicBnode(subjectUri, role, index);
19
-
20
- yield quad(namedNode(subjectUri), namedNode(linkPredicate), namedNode(defSubject));
21
- yield quad(namedNode(defSubject), namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.DetailedDefinition));
22
-
23
- if (definition.content) {
24
- yield quad(
25
- namedNode(defSubject),
26
- namedNode(WELL_KNOWN.rdfValue),
27
- literal(definition.content, language),
28
- );
29
- }
30
-
31
- // Plain SKOS direct literal — so non-SKOS-XL consumers see definitions.
32
- // The reified form above carries the same text with sources/examples;
33
- // this direct literal makes SPARQL `?c skos:definition ?d` work.
34
- const directPredicate = directSkosPredicateFor(role);
35
- if (directPredicate && definition.content) {
36
- yield quad(namedNode(subjectUri), namedNode(directPredicate), literal(definition.content, language));
37
- }
38
-
39
- let exampleIndex = 0;
40
- for (const example of definition.examples ?? []) {
41
- yield* detailedDefinitionToQuads(example, {
42
- subjectUri: defSubject, language, index: exampleIndex, role: 'hasScopedExample',
43
- });
44
- exampleIndex += 1;
45
- }
46
- }
47
-
48
- function linkPredicateFor(role) {
49
- switch (role) {
50
- case 'hasDefinition': return PRED.gloss.hasDefinition;
51
- case 'hasNote': return PRED.gloss.hasNote;
52
- case 'hasExample': return PRED.gloss.hasExample;
53
- case 'hasScopedExample': return PRED.gloss.hasScopedExample;
54
- case 'hasAnnotation': return PRED.gloss.hasAnnotation;
55
- default: throw new Error(`Unknown detailed-definition role: ${role}`);
56
- }
57
- }
58
-
59
- function directSkosPredicateFor(role) {
60
- switch (role) {
61
- case 'hasDefinition': return PRED.skos.definition;
62
- case 'hasNote': return PRED.skos.scopeNote;
63
- case 'hasExample': return PRED.skos.example;
64
- case 'hasScopedExample': return PRED.skos.example;
65
- // No direct SKOS counterpart for annotations.
66
- case 'hasAnnotation': return null;
67
- default: return null;
68
- }
69
- }
@@ -1,79 +0,0 @@
1
- // LocalizedConcept → RDF quads. Mirrors glossarist-ruby's
2
- // `Rdf::GlossLocalizedConcept` + the `EmitsExtraTriples` hook.
3
- //
4
- // Emits BOTH reified SKOS-XL labels AND direct SKOS literals, so consumers
5
- // that don't implement SKOS-XL still see labels/definitions/notes/examples
6
- // as plain literals. This is the same shape glossarist-ruby emits after
7
- // WS-B Phase 1.
8
- import { PRED, PREFIXES } from './predicates.js';
9
- import { WELL_KNOWN } from './prefixes.js';
10
- import { designationToQuads, skosLabelPredicate } from './gloss-designation.js';
11
- import { detailedDefinitionToQuads } from './gloss-detailed-definition.js';
12
- import { conceptSourceToQuads } from './gloss-source.js';
13
- import { nonVerbalRepToQuads } from './gloss-non-verbal-rep.js';
14
- import { namedNode, literal, quad } from './terms.js';
15
- const DCTERMS_LANGUAGE = `${PREFIXES.dcterms}language`;
16
-
17
- export function localizedConceptUri(parentUri, language) {
18
- return `${parentUri}/${language}`;
19
- }
20
-
21
- export function* localizedConceptToQuads(localizedConcept, { parentUri, language }) {
22
- const subjectUri = localizedConceptUri(parentUri, language);
23
- const s = namedNode(subjectUri);
24
-
25
- yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(PRED.gloss.LocalizedConcept));
26
- yield quad(s, namedNode(WELL_KNOWN.rdfType), namedNode(WELL_KNOWN.skosConcept));
27
- yield quad(s, namedNode(PRED.gloss.isLocalizationOf), namedNode(parentUri));
28
- yield quad(s, namedNode(DCTERMS_LANGUAGE), literal(language));
29
-
30
- if (localizedConcept.entryStatus) {
31
- yield quad(s, namedNode(PRED.gloss.hasEntryStatus), namedNode(`${PRED.gloss.$ns}entstatus/${localizedConcept.entryStatus}`));
32
- }
33
- if (localizedConcept.domain) {
34
- yield quad(s, namedNode(PRED.gloss.domain), literal(localizedConcept.domain));
35
- }
36
- if (localizedConcept.release) {
37
- yield quad(s, namedNode(PRED.gloss.release), literal(localizedConcept.release));
38
- }
39
- if (localizedConcept.script) {
40
- yield quad(s, namedNode(PRED.gloss.script), literal(localizedConcept.script));
41
- }
42
- if (localizedConcept.system) {
43
- yield quad(s, namedNode(PRED.gloss.conversionSystem), literal(localizedConcept.system));
44
- }
45
-
46
- let desigIndex = 0;
47
- for (const designation of localizedConcept.terms ?? []) {
48
- yield* designationToQuads(designation, { subjectUri, language, index: desigIndex });
49
- // Direct SKOS literal alongside the reified SKOS-XL form.
50
- yield quad(s, namedNode(skosLabelPredicate(designation)), literal(designation.designation, language));
51
- desigIndex += 1;
52
- }
53
-
54
- yield* definitionsToQuads(localizedConcept.definitions, { subjectUri, language, role: 'hasDefinition' });
55
- yield* definitionsToQuads(localizedConcept.notes, { subjectUri, language, role: 'hasNote' });
56
- yield* definitionsToQuads(localizedConcept.examples, { subjectUri, language, role: 'hasExample' });
57
- yield* definitionsToQuads(localizedConcept.annotations, { subjectUri, language, role: 'hasAnnotation' });
58
-
59
- let nvrIndex = 0;
60
- for (const nvr of localizedConcept.nonVerbalRep ?? []) {
61
- yield* nonVerbalRepToQuads(nvr, { parentUri: subjectUri, index: nvrIndex, language });
62
- nvrIndex += 1;
63
- }
64
-
65
- let srcIndex = 0;
66
- for (const source of localizedConcept.sources ?? []) {
67
- yield* conceptSourceToQuads(source, { subjectUri, index: srcIndex });
68
- srcIndex += 1;
69
- }
70
- }
71
-
72
- function* definitionsToQuads(definitions, { subjectUri, language, role }) {
73
- if (!definitions) return;
74
- let i = 0;
75
- for (const def of definitions) {
76
- yield* detailedDefinitionToQuads(def, { subjectUri, language, index: i, role });
77
- i += 1;
78
- }
79
- }