@thomasfosterau/effect-rdf 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2251 -2
  3. package/dist/Algebra-CGG4oae3.mjs +433 -0
  4. package/dist/Algebra-CGG4oae3.mjs.map +1 -0
  5. package/dist/Algebra-uGsIEOUA.d.mts +446 -0
  6. package/dist/Ast-CPRZmBvk.mjs +552 -0
  7. package/dist/Ast-CPRZmBvk.mjs.map +1 -0
  8. package/dist/Ast-vcw2W-lf.d.mts +827 -0
  9. package/dist/Bindings-Ck3m7JRC.mjs +249 -0
  10. package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
  11. package/dist/Bindings-DiKpBd7f.d.mts +153 -0
  12. package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
  13. package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
  14. package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
  15. package/dist/ClientFormats-CXomkXLV.mjs +73 -0
  16. package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
  17. package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
  18. package/dist/Csv2Json-DynEcwCh.mjs +194 -0
  19. package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
  20. package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
  21. package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
  22. package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
  23. package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
  24. package/dist/Dataset-BlmlcI7J.mjs +782 -0
  25. package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
  26. package/dist/Dataset-DS3ESOcO.d.mts +426 -0
  27. package/dist/Dataset.d.mts +2 -0
  28. package/dist/Dataset.mjs +1 -0
  29. package/dist/Datatype-CxMpamHC.d.mts +212 -0
  30. package/dist/Datatype-DQvkNkiH.mjs +1001 -0
  31. package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
  32. package/dist/Dialect-8ChFj5EX.d.mts +113 -0
  33. package/dist/Dialect-CzVH38uo.mjs +165 -0
  34. package/dist/Dialect-CzVH38uo.mjs.map +1 -0
  35. package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
  36. package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
  37. package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
  38. package/dist/DublinCore-AnwqxRx6.mjs +137 -0
  39. package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
  40. package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
  41. package/dist/Engine-CYPB3g4h.d.mts +144 -0
  42. package/dist/Engine-DF8PN7g-.mjs +872 -0
  43. package/dist/Engine-DF8PN7g-.mjs.map +1 -0
  44. package/dist/Errors-CMdV1RhU.mjs +37 -0
  45. package/dist/Errors-CMdV1RhU.mjs.map +1 -0
  46. package/dist/Errors-u2bDjUeM.d.mts +30 -0
  47. package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
  48. package/dist/Evaluator-DOY2-guC.mjs +281 -0
  49. package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
  50. package/dist/Exif-CpqniYQd.d.mts +78 -0
  51. package/dist/Exif-DjkCfEB-.mjs +89 -0
  52. package/dist/Exif-DjkCfEB-.mjs.map +1 -0
  53. package/dist/Expression-BIMMvduQ.mjs +230 -0
  54. package/dist/Expression-BIMMvduQ.mjs.map +1 -0
  55. package/dist/Expression-W8A9cyX7.d.mts +89 -0
  56. package/dist/Extract-Bop85jES.mjs +220 -0
  57. package/dist/Extract-Bop85jES.mjs.map +1 -0
  58. package/dist/Extract-C_pCvuTC.d.mts +88 -0
  59. package/dist/Federation-BcNrozc1.d.mts +52 -0
  60. package/dist/Federation-CHScBkaK.mjs +130 -0
  61. package/dist/Federation-CHScBkaK.mjs.map +1 -0
  62. package/dist/Functions-AvjNcId_.mjs +1346 -0
  63. package/dist/Functions-AvjNcId_.mjs.map +1 -0
  64. package/dist/Functions-OQJZP-F6.d.mts +111 -0
  65. package/dist/Generator-C52mmq01.d.mts +50 -0
  66. package/dist/Generator-D3utCJC7.mjs +205 -0
  67. package/dist/Generator-D3utCJC7.mjs.map +1 -0
  68. package/dist/Grammar-CPlSxGH6.mjs +200 -0
  69. package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
  70. package/dist/Grammar-CRhnRoCu.d.mts +148 -0
  71. package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
  72. package/dist/Grammar-mQ8CgE1M.mjs +258 -0
  73. package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
  74. package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
  75. package/dist/GraphStore-DvbqwKy1.mjs +212 -0
  76. package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
  77. package/dist/Iri-BB8Ks-BF.d.mts +84 -0
  78. package/dist/Iri-Cr92gsQV.mjs +232 -0
  79. package/dist/Iri-Cr92gsQV.mjs.map +1 -0
  80. package/dist/Iri.d.mts +2 -0
  81. package/dist/Iri.mjs +1 -0
  82. package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
  83. package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
  84. package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
  85. package/dist/Isomorphism-DInKnWIy.mjs +390 -0
  86. package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
  87. package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
  88. package/dist/Isomorphism.d.mts +2 -0
  89. package/dist/Isomorphism.mjs +1 -0
  90. package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
  91. package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
  92. package/dist/JsonLd-DobFrQNa.d.mts +242 -0
  93. package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
  94. package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
  95. package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
  96. package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
  97. package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
  98. package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
  99. package/dist/LanguageTag.d.mts +2 -0
  100. package/dist/LanguageTag.mjs +1 -0
  101. package/dist/Lexical-Cg0JHrf6.mjs +243 -0
  102. package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
  103. package/dist/Lexical-D3zySYVS.d.mts +163 -0
  104. package/dist/Manifest-B6xf6mUc.mjs +148 -0
  105. package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
  106. package/dist/Manifest-DQUMRBFr.d.mts +98 -0
  107. package/dist/Mapping-BgG74x3U.d.mts +63 -0
  108. package/dist/Mapping-Dc1ZGirk.mjs +259 -0
  109. package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
  110. package/dist/Mcp-1DwTTKOK.mjs +48 -0
  111. package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
  112. package/dist/Mcp-d-pX9erx.d.mts +25 -0
  113. package/dist/Message-CK_DGQuu.mjs +95 -0
  114. package/dist/Message-CK_DGQuu.mjs.map +1 -0
  115. package/dist/Message-fIvTJSXM.d.mts +49 -0
  116. package/dist/Metadata-BbffwGDZ.mjs +445 -0
  117. package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
  118. package/dist/Metadata-CEt3yc1-.d.mts +901 -0
  119. package/dist/Metadata-D4HsQNXr.mjs +1273 -0
  120. package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
  121. package/dist/Metadata-nzS7QKRj.d.mts +350 -0
  122. package/dist/Model-DaMmxurZ.d.mts +293 -0
  123. package/dist/Model-DlPzRYhF.mjs +528 -0
  124. package/dist/Model-DlPzRYhF.mjs.map +1 -0
  125. package/dist/N3-BzyV-KIH.mjs +974 -0
  126. package/dist/N3-BzyV-KIH.mjs.map +1 -0
  127. package/dist/N3-DSLnonDn.d.mts +100 -0
  128. package/dist/NQuads-C1VBOJ3-.mjs +117 -0
  129. package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
  130. package/dist/NQuads-FjFZikFg.d.mts +76 -0
  131. package/dist/NTriples-D-kLSEAf.mjs +120 -0
  132. package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
  133. package/dist/NTriples-D34OspfW.d.mts +76 -0
  134. package/dist/Namespace-ClTUO_ya.d.mts +42 -0
  135. package/dist/Namespace-DHFIsORd.mjs +75 -0
  136. package/dist/Namespace-DHFIsORd.mjs.map +1 -0
  137. package/dist/Namespace.d.mts +2 -0
  138. package/dist/Namespace.mjs +1 -0
  139. package/dist/Namespaces-Bz85vpjW.mjs +235 -0
  140. package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
  141. package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
  142. package/dist/Optimizer-BWWQRQPY.mjs +168 -0
  143. package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
  144. package/dist/Optimizer-DUpUow6k.d.mts +26 -0
  145. package/dist/Options-BLBGL4HE.mjs +72 -0
  146. package/dist/Options-BLBGL4HE.mjs.map +1 -0
  147. package/dist/Options-BommQwP9.d.mts +127 -0
  148. package/dist/Packet-CA76wVX3.mjs +197 -0
  149. package/dist/Packet-CA76wVX3.mjs.map +1 -0
  150. package/dist/Packet-Cy5g6XuW.d.mts +130 -0
  151. package/dist/Parser-p1Gyr0QN.d.mts +85 -0
  152. package/dist/Parser-xARsOWXk.mjs +1317 -0
  153. package/dist/Parser-xARsOWXk.mjs.map +1 -0
  154. package/dist/Path-B20Yp8KE.mjs +284 -0
  155. package/dist/Path-B20Yp8KE.mjs.map +1 -0
  156. package/dist/Path-DRB8e-Zn.d.mts +181 -0
  157. package/dist/Pdf-B9RZn--8.d.mts +77 -0
  158. package/dist/Pdf-CKK6dkZn.mjs +89 -0
  159. package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
  160. package/dist/PdfA-CUjSuntT.d.mts +109 -0
  161. package/dist/PdfA-CleOhuL6.mjs +124 -0
  162. package/dist/PdfA-CleOhuL6.mjs.map +1 -0
  163. package/dist/Photoshop-CiHo80qV.mjs +233 -0
  164. package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
  165. package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
  166. package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
  167. package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
  168. package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
  169. package/dist/PrefixMap.d.mts +2 -0
  170. package/dist/PrefixMap.mjs +1 -0
  171. package/dist/Processor-CMmecFsb.mjs +198 -0
  172. package/dist/Processor-CMmecFsb.mjs.map +1 -0
  173. package/dist/Processor-FJPvO0CB.d.mts +435 -0
  174. package/dist/Protocol-BA7OkNgp.mjs +202 -0
  175. package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
  176. package/dist/Protocol-DlSoiIKB.d.mts +108 -0
  177. package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
  178. package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
  179. package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
  180. package/dist/Query-D9A6LOpP.mjs +364 -0
  181. package/dist/Query-D9A6LOpP.mjs.map +1 -0
  182. package/dist/Query-KqSkTYyG.d.mts +96 -0
  183. package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
  184. package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
  185. package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
  186. package/dist/RdfJs-D6-49XB5.mjs +86 -0
  187. package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
  188. package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
  189. package/dist/RdfJs.d.mts +2 -0
  190. package/dist/RdfJs.mjs +1 -0
  191. package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
  192. package/dist/RdfJson-BNocgW4f.mjs +548 -0
  193. package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
  194. package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
  195. package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
  196. package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
  197. package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
  198. package/dist/Rdfs-CyY2wVHI.mjs +167 -0
  199. package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
  200. package/dist/Rdfs.d.mts +2 -0
  201. package/dist/Rdfs.mjs +1 -0
  202. package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
  203. package/dist/Reasoner-Cw90zrjv.mjs +798 -0
  204. package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
  205. package/dist/Reification-BmN4EfnM.d.mts +40 -0
  206. package/dist/Reification-dpqQvjDE.mjs +82 -0
  207. package/dist/Reification-dpqQvjDE.mjs.map +1 -0
  208. package/dist/Reification.d.mts +2 -0
  209. package/dist/Reification.mjs +1 -0
  210. package/dist/Report-XHs8htzK.mjs +121 -0
  211. package/dist/Report-XHs8htzK.mjs.map +1 -0
  212. package/dist/Report-hcXsc_19.d.mts +115 -0
  213. package/dist/Resource-B1cI8FyJ.d.mts +218 -0
  214. package/dist/Resource-sIEeNh15.mjs +374 -0
  215. package/dist/Resource-sIEeNh15.mjs.map +1 -0
  216. package/dist/Resource.d.mts +2 -0
  217. package/dist/Resource.mjs +1 -0
  218. package/dist/Results-BVNEC-Wt.d.mts +277 -0
  219. package/dist/Results-peJjGA2V.mjs +621 -0
  220. package/dist/Results-peJjGA2V.mjs.map +1 -0
  221. package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
  222. package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
  223. package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
  224. package/dist/SemAct-CDchtk49.d.mts +96 -0
  225. package/dist/SemAct-CmyT4yI8.mjs +118 -0
  226. package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
  227. package/dist/Serialization-DP9H5bYQ.mjs +514 -0
  228. package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
  229. package/dist/Serialization-Df8iVauT.d.mts +392 -0
  230. package/dist/Serialization.d.mts +2 -0
  231. package/dist/Serialization.mjs +1 -0
  232. package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
  233. package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
  234. package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
  235. package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
  236. package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
  237. package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
  238. package/dist/ShExC-Ctf-06CL.d.mts +67 -0
  239. package/dist/ShExC-DJbB19i3.mjs +1181 -0
  240. package/dist/ShExC-DJbB19i3.mjs.map +1 -0
  241. package/dist/ShExError-BeYFD9rv.d.mts +61 -0
  242. package/dist/ShExError-CVtq2NnM.mjs +64 -0
  243. package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
  244. package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
  245. package/dist/ShExJ-COiPd9Xw.mjs +532 -0
  246. package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
  247. package/dist/ShExR-ByR4mCh-.mjs +480 -0
  248. package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
  249. package/dist/ShExR-CqONNNBz.d.mts +40 -0
  250. package/dist/ShapeMap-C422pxKl.d.mts +140 -0
  251. package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
  252. package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
  253. package/dist/Shapes-18GjfyBV.mjs +597 -0
  254. package/dist/Shapes-18GjfyBV.mjs.map +1 -0
  255. package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
  256. package/dist/Sparql-BiYFMSpl.mjs +29 -0
  257. package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
  258. package/dist/Sparql-DecpWTPh.d.mts +97 -0
  259. package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
  260. package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
  261. package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
  262. package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
  263. package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
  264. package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
  265. package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
  266. package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
  267. package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
  268. package/dist/Store-D0jmVfb3.d.mts +166 -0
  269. package/dist/Store-DH3Ow1GO.mjs +162 -0
  270. package/dist/Store-DH3Ow1GO.mjs.map +1 -0
  271. package/dist/Structure-BjMo4Bkc.mjs +334 -0
  272. package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
  273. package/dist/Structure-n4CmDiab.d.mts +63 -0
  274. package/dist/Table-BGgm9nbM.mjs +538 -0
  275. package/dist/Table-BGgm9nbM.mjs.map +1 -0
  276. package/dist/Table-C3reiVrb.d.mts +261 -0
  277. package/dist/Term-B_4ezyXq.d.mts +619 -0
  278. package/dist/Term-CFLG1qu4.mjs +991 -0
  279. package/dist/Term-CFLG1qu4.mjs.map +1 -0
  280. package/dist/Term.d.mts +2 -0
  281. package/dist/Term.mjs +1 -0
  282. package/dist/TermCodec-CDZiEztW.mjs +397 -0
  283. package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
  284. package/dist/TermCodec-_03bDXr0.d.mts +209 -0
  285. package/dist/TermCodec.d.mts +2 -0
  286. package/dist/TermCodec.mjs +1 -0
  287. package/dist/TermJson-BOPe0yve.d.mts +232 -0
  288. package/dist/TermJson-FAg3lvjl.mjs +142 -0
  289. package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
  290. package/dist/TermJson.d.mts +2 -0
  291. package/dist/TermJson.mjs +1 -0
  292. package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
  293. package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
  294. package/dist/TermSchema-DBO6MroX.d.mts +6 -0
  295. package/dist/Testing-B-aPCpmu.mjs +63 -0
  296. package/dist/Testing-B-aPCpmu.mjs.map +1 -0
  297. package/dist/Testing-CF6s8P3O.d.mts +53 -0
  298. package/dist/Tiff-CR-2QeSI.d.mts +148 -0
  299. package/dist/Tiff-DlsOlZPM.mjs +169 -0
  300. package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
  301. package/dist/Tools-7MdRKccr.d.mts +583 -0
  302. package/dist/Tools-ryxphZbI.mjs +329 -0
  303. package/dist/Tools-ryxphZbI.mjs.map +1 -0
  304. package/dist/Translate-B0YKKANS.d.mts +37 -0
  305. package/dist/Translate-gzWPq0Ia.mjs +308 -0
  306. package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
  307. package/dist/Translation-DC9rLm2y.mjs +1535 -0
  308. package/dist/Translation-DC9rLm2y.mjs.map +1 -0
  309. package/dist/Translation-K4L9XBqX.d.mts +103 -0
  310. package/dist/TriG-BkqtqZ6Y.mjs +125 -0
  311. package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
  312. package/dist/TriG-xDjdDatp.d.mts +86 -0
  313. package/dist/Turtle-Bv1_bisW.d.mts +85 -0
  314. package/dist/Turtle-CZVUOtwl.mjs +133 -0
  315. package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
  316. package/dist/ValidationReport-DBdJshW5.mjs +285 -0
  317. package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
  318. package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
  319. package/dist/Validator-227ff9Rn.d.mts +179 -0
  320. package/dist/Validator-BzXMKDeJ.mjs +1162 -0
  321. package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
  322. package/dist/Validator-Dl8cih5V.d.mts +207 -0
  323. package/dist/Validator-DmUfMbpL.mjs +568 -0
  324. package/dist/Validator-DmUfMbpL.mjs.map +1 -0
  325. package/dist/Vocab-DceKywpq.mjs +168 -0
  326. package/dist/Vocab-DceKywpq.mjs.map +1 -0
  327. package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
  328. package/dist/Vocab-Do56UgBX.d.mts +81 -0
  329. package/dist/Vocab-TfpWG1Ne.mjs +118 -0
  330. package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
  331. package/dist/Vocab.d.mts +2 -0
  332. package/dist/Vocab.mjs +1 -0
  333. package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
  334. package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
  335. package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
  336. package/dist/Xml-B7iihYCS.mjs +976 -0
  337. package/dist/Xml-B7iihYCS.mjs.map +1 -0
  338. package/dist/Xml-CmfHS7SW.d.mts +267 -0
  339. package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
  340. package/dist/Xmp-DCGN9pOD.mjs +307 -0
  341. package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
  342. package/dist/XmpBasic-CP38jpR_.mjs +73 -0
  343. package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
  344. package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
  345. package/dist/XmpMM-BfL_TgJF.mjs +73 -0
  346. package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
  347. package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
  348. package/dist/XmpRights-BKPtoI5L.mjs +73 -0
  349. package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
  350. package/dist/XmpRights-CaALZQz2.d.mts +63 -0
  351. package/dist/Xsd-Cdgx5zRB.mjs +405 -0
  352. package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
  353. package/dist/Xsd-D2elNhSm.d.mts +187 -0
  354. package/dist/Xsd.d.mts +2 -0
  355. package/dist/Xsd.mjs +1 -0
  356. package/dist/accessors-CEjaojuQ.mjs +28 -0
  357. package/dist/accessors-CEjaojuQ.mjs.map +1 -0
  358. package/dist/codec-Lb2T96rv.d.mts +20 -0
  359. package/dist/codec-QNo7IdJF.mjs +389 -0
  360. package/dist/codec-QNo7IdJF.mjs.map +1 -0
  361. package/dist/csvw/Csv2Json.d.mts +2 -0
  362. package/dist/csvw/Csv2Json.mjs +1 -0
  363. package/dist/csvw/Csv2Rdf.d.mts +2 -0
  364. package/dist/csvw/Csv2Rdf.mjs +1 -0
  365. package/dist/csvw/Datatype.d.mts +2 -0
  366. package/dist/csvw/Datatype.mjs +1 -0
  367. package/dist/csvw/Metadata.d.mts +2 -0
  368. package/dist/csvw/Metadata.mjs +1 -0
  369. package/dist/csvw/Processor.d.mts +2 -0
  370. package/dist/csvw/Processor.mjs +1 -0
  371. package/dist/csvw/Report.d.mts +2 -0
  372. package/dist/csvw/Report.mjs +1 -0
  373. package/dist/csvw/Table.d.mts +2 -0
  374. package/dist/csvw/Table.mjs +1 -0
  375. package/dist/csvw/index.d.mts +8 -0
  376. package/dist/csvw/index.mjs +8 -0
  377. package/dist/index-Cms2TYfC.d.mts +16 -0
  378. package/dist/index-Ct8xFmRs.d.mts +7 -0
  379. package/dist/index-D4QFwOjm.d.mts +28 -0
  380. package/dist/index.d.mts +18 -0
  381. package/dist/index.mjs +17 -0
  382. package/dist/jsonld/DocumentLoader.d.mts +2 -0
  383. package/dist/jsonld/DocumentLoader.mjs +1 -0
  384. package/dist/jsonld/JsonLd.d.mts +2 -0
  385. package/dist/jsonld/JsonLd.mjs +1 -0
  386. package/dist/jsonld/JsonLdError.d.mts +2 -0
  387. package/dist/jsonld/JsonLdError.mjs +1 -0
  388. package/dist/jsonld/index.d.mts +4 -0
  389. package/dist/jsonld/index.mjs +4 -0
  390. package/dist/lists-D-OpQ0Ir.mjs +77 -0
  391. package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
  392. package/dist/loop-D5-gNx9K.mjs +21 -0
  393. package/dist/loop-D5-gNx9K.mjs.map +1 -0
  394. package/dist/loop-DZ2hXlr_.mjs +21 -0
  395. package/dist/loop-DZ2hXlr_.mjs.map +1 -0
  396. package/dist/n3/Isomorphism.d.mts +2 -0
  397. package/dist/n3/Isomorphism.mjs +1 -0
  398. package/dist/n3/Mapping.d.mts +2 -0
  399. package/dist/n3/Mapping.mjs +1 -0
  400. package/dist/n3/Model.d.mts +2 -0
  401. package/dist/n3/Model.mjs +1 -0
  402. package/dist/n3/N3.d.mts +2 -0
  403. package/dist/n3/N3.mjs +1 -0
  404. package/dist/n3/Reasoner.d.mts +2 -0
  405. package/dist/n3/Reasoner.mjs +2 -0
  406. package/dist/n3/Vocab.d.mts +2 -0
  407. package/dist/n3/Vocab.mjs +1 -0
  408. package/dist/n3/index.d.mts +7 -0
  409. package/dist/n3/index.mjs +7 -0
  410. package/dist/ntriples/Grammar.d.mts +2 -0
  411. package/dist/ntriples/Grammar.mjs +1 -0
  412. package/dist/ntriples/Lexical.d.mts +2 -0
  413. package/dist/ntriples/Lexical.mjs +1 -0
  414. package/dist/ntriples/NQuads.d.mts +2 -0
  415. package/dist/ntriples/NQuads.mjs +1 -0
  416. package/dist/ntriples/NTriples.d.mts +2 -0
  417. package/dist/ntriples/NTriples.mjs +1 -0
  418. package/dist/ntriples/index.d.mts +5 -0
  419. package/dist/ntriples/index.mjs +5 -0
  420. package/dist/rdfjson/RdfJson.d.mts +2 -0
  421. package/dist/rdfjson/RdfJson.mjs +1 -0
  422. package/dist/rdfjson/index.d.mts +2 -0
  423. package/dist/rdfjson/index.mjs +1 -0
  424. package/dist/rdfxml/RdfXml.d.mts +2 -0
  425. package/dist/rdfxml/RdfXml.mjs +1 -0
  426. package/dist/rdfxml/Xml.d.mts +2 -0
  427. package/dist/rdfxml/Xml.mjs +1 -0
  428. package/dist/rdfxml/index.d.mts +3 -0
  429. package/dist/rdfxml/index.mjs +3 -0
  430. package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
  431. package/dist/serialize-96KBvKaf.mjs +1463 -0
  432. package/dist/serialize-96KBvKaf.mjs.map +1 -0
  433. package/dist/serialize-DsoXdM6n.d.mts +37 -0
  434. package/dist/shacl/Message.d.mts +2 -0
  435. package/dist/shacl/Message.mjs +1 -0
  436. package/dist/shacl/Path.d.mts +2 -0
  437. package/dist/shacl/Path.mjs +1 -0
  438. package/dist/shacl/Shapes.d.mts +2 -0
  439. package/dist/shacl/Shapes.mjs +1 -0
  440. package/dist/shacl/Sparql.d.mts +2 -0
  441. package/dist/shacl/Sparql.mjs +1 -0
  442. package/dist/shacl/ValidationReport.d.mts +2 -0
  443. package/dist/shacl/ValidationReport.mjs +1 -0
  444. package/dist/shacl/Validator.d.mts +2 -0
  445. package/dist/shacl/Validator.mjs +1 -0
  446. package/dist/shacl/Vocabulary.d.mts +2 -0
  447. package/dist/shacl/Vocabulary.mjs +1 -0
  448. package/dist/shacl/index.d.mts +9 -0
  449. package/dist/shacl/index.mjs +8 -0
  450. package/dist/shex/SemAct.d.mts +2 -0
  451. package/dist/shex/SemAct.mjs +1 -0
  452. package/dist/shex/ShExC.d.mts +2 -0
  453. package/dist/shex/ShExC.mjs +1 -0
  454. package/dist/shex/ShExError.d.mts +2 -0
  455. package/dist/shex/ShExError.mjs +1 -0
  456. package/dist/shex/ShExJ.d.mts +2 -0
  457. package/dist/shex/ShExJ.mjs +2 -0
  458. package/dist/shex/ShExR.d.mts +2 -0
  459. package/dist/shex/ShExR.mjs +1 -0
  460. package/dist/shex/ShapeMap.d.mts +2 -0
  461. package/dist/shex/ShapeMap.mjs +1 -0
  462. package/dist/shex/Structure.d.mts +2 -0
  463. package/dist/shex/Structure.mjs +2 -0
  464. package/dist/shex/Validator.d.mts +2 -0
  465. package/dist/shex/Validator.mjs +4 -0
  466. package/dist/shex/index.d.mts +9 -0
  467. package/dist/shex/index.mjs +9 -0
  468. package/dist/sparql/Algebra.d.mts +2 -0
  469. package/dist/sparql/Algebra.mjs +1 -0
  470. package/dist/sparql/Ast.d.mts +2 -0
  471. package/dist/sparql/Ast.mjs +1 -0
  472. package/dist/sparql/Bindings.d.mts +2 -0
  473. package/dist/sparql/Bindings.mjs +1 -0
  474. package/dist/sparql/ClientErrors.d.mts +2 -0
  475. package/dist/sparql/ClientErrors.mjs +1 -0
  476. package/dist/sparql/ClientFormats.d.mts +2 -0
  477. package/dist/sparql/ClientFormats.mjs +1 -0
  478. package/dist/sparql/Engine.d.mts +2 -0
  479. package/dist/sparql/Engine.mjs +1 -0
  480. package/dist/sparql/Errors.d.mts +2 -0
  481. package/dist/sparql/Errors.mjs +1 -0
  482. package/dist/sparql/Expression.d.mts +2 -0
  483. package/dist/sparql/Expression.mjs +1 -0
  484. package/dist/sparql/Federation.d.mts +2 -0
  485. package/dist/sparql/Federation.mjs +1 -0
  486. package/dist/sparql/Functions.d.mts +2 -0
  487. package/dist/sparql/Functions.mjs +1 -0
  488. package/dist/sparql/Generator.d.mts +2 -0
  489. package/dist/sparql/Generator.mjs +1 -0
  490. package/dist/sparql/GraphStore.d.mts +2 -0
  491. package/dist/sparql/GraphStore.mjs +1 -0
  492. package/dist/sparql/Optimizer.d.mts +2 -0
  493. package/dist/sparql/Optimizer.mjs +1 -0
  494. package/dist/sparql/Options.d.mts +2 -0
  495. package/dist/sparql/Options.mjs +1 -0
  496. package/dist/sparql/Parser.d.mts +2 -0
  497. package/dist/sparql/Parser.mjs +1 -0
  498. package/dist/sparql/Protocol.d.mts +2 -0
  499. package/dist/sparql/Protocol.mjs +1 -0
  500. package/dist/sparql/ProtocolErrors.d.mts +2 -0
  501. package/dist/sparql/ProtocolErrors.mjs +1 -0
  502. package/dist/sparql/QueryBuilder.d.mts +2 -0
  503. package/dist/sparql/QueryBuilder.mjs +1 -0
  504. package/dist/sparql/Results.d.mts +2 -0
  505. package/dist/sparql/Results.mjs +1 -0
  506. package/dist/sparql/ResultsStream.d.mts +2 -0
  507. package/dist/sparql/ResultsStream.mjs +1 -0
  508. package/dist/sparql/ServerFormats.d.mts +2 -0
  509. package/dist/sparql/ServerFormats.mjs +1 -0
  510. package/dist/sparql/ServiceDescription.d.mts +2 -0
  511. package/dist/sparql/ServiceDescription.mjs +1 -0
  512. package/dist/sparql/SparqlClient.d.mts +2 -0
  513. package/dist/sparql/SparqlClient.mjs +1 -0
  514. package/dist/sparql/SparqlServer.d.mts +2 -0
  515. package/dist/sparql/SparqlServer.mjs +1 -0
  516. package/dist/sparql/Store.d.mts +2 -0
  517. package/dist/sparql/Store.mjs +1 -0
  518. package/dist/sparql/TermSchema.d.mts +3 -0
  519. package/dist/sparql/TermSchema.mjs +2 -0
  520. package/dist/sparql/Testing.d.mts +2 -0
  521. package/dist/sparql/Testing.mjs +1 -0
  522. package/dist/sparql/Translate.d.mts +2 -0
  523. package/dist/sparql/Translate.mjs +1 -0
  524. package/dist/sparql/ai/Mcp.d.mts +2 -0
  525. package/dist/sparql/ai/Mcp.mjs +1 -0
  526. package/dist/sparql/ai/Tools.d.mts +2 -0
  527. package/dist/sparql/ai/Tools.mjs +1 -0
  528. package/dist/sparql/ai/index.d.mts +3 -0
  529. package/dist/sparql/ai/index.mjs +3 -0
  530. package/dist/sparql/index.d.mts +30 -0
  531. package/dist/sparql/index.mjs +29 -0
  532. package/dist/sparql/shacl/Evaluator.d.mts +2 -0
  533. package/dist/sparql/shacl/Evaluator.mjs +1 -0
  534. package/dist/sparql/shacl/Query.d.mts +2 -0
  535. package/dist/sparql/shacl/Query.mjs +1 -0
  536. package/dist/sparql/shacl/index.d.mts +3 -0
  537. package/dist/sparql/shacl/index.mjs +3 -0
  538. package/dist/sparql/sql/Dialect.d.mts +2 -0
  539. package/dist/sparql/sql/Dialect.mjs +1 -0
  540. package/dist/sparql/sql/SqlStore.d.mts +2 -0
  541. package/dist/sparql/sql/SqlStore.mjs +1 -0
  542. package/dist/sparql/sql/Translation.d.mts +2 -0
  543. package/dist/sparql/sql/Translation.mjs +1 -0
  544. package/dist/sparql/sql/index.d.mts +4 -0
  545. package/dist/sparql/sql/index.mjs +4 -0
  546. package/dist/stringMap-D5YIpYtR.mjs +38 -0
  547. package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
  548. package/dist/tokens-C6BzeodQ.mjs +24 -0
  549. package/dist/tokens-C6BzeodQ.mjs.map +1 -0
  550. package/dist/turtle/Grammar.d.mts +3 -0
  551. package/dist/turtle/Grammar.mjs +3 -0
  552. package/dist/turtle/Manifest.d.mts +2 -0
  553. package/dist/turtle/Manifest.mjs +1 -0
  554. package/dist/turtle/TriG.d.mts +2 -0
  555. package/dist/turtle/TriG.mjs +1 -0
  556. package/dist/turtle/Turtle.d.mts +2 -0
  557. package/dist/turtle/Turtle.mjs +1 -0
  558. package/dist/turtle/index.d.mts +5 -0
  559. package/dist/turtle/index.mjs +5 -0
  560. package/dist/xmp/DublinCore.d.mts +2 -0
  561. package/dist/xmp/DublinCore.mjs +1 -0
  562. package/dist/xmp/Exif.d.mts +2 -0
  563. package/dist/xmp/Exif.mjs +1 -0
  564. package/dist/xmp/Extract.d.mts +2 -0
  565. package/dist/xmp/Extract.mjs +1 -0
  566. package/dist/xmp/Metadata.d.mts +2 -0
  567. package/dist/xmp/Metadata.mjs +1 -0
  568. package/dist/xmp/Namespaces.d.mts +2 -0
  569. package/dist/xmp/Namespaces.mjs +1 -0
  570. package/dist/xmp/Packet.d.mts +2 -0
  571. package/dist/xmp/Packet.mjs +1 -0
  572. package/dist/xmp/Pdf.d.mts +2 -0
  573. package/dist/xmp/Pdf.mjs +1 -0
  574. package/dist/xmp/PdfA.d.mts +2 -0
  575. package/dist/xmp/PdfA.mjs +1 -0
  576. package/dist/xmp/Photoshop.d.mts +2 -0
  577. package/dist/xmp/Photoshop.mjs +1 -0
  578. package/dist/xmp/Tiff.d.mts +2 -0
  579. package/dist/xmp/Tiff.mjs +1 -0
  580. package/dist/xmp/Xmp.d.mts +2 -0
  581. package/dist/xmp/Xmp.mjs +3 -0
  582. package/dist/xmp/XmpBasic.d.mts +2 -0
  583. package/dist/xmp/XmpBasic.mjs +1 -0
  584. package/dist/xmp/XmpMM.d.mts +2 -0
  585. package/dist/xmp/XmpMM.mjs +1 -0
  586. package/dist/xmp/XmpRights.d.mts +2 -0
  587. package/dist/xmp/XmpRights.mjs +1 -0
  588. package/dist/xmp/index.d.mts +15 -0
  589. package/dist/xmp/index.mjs +15 -0
  590. package/package.json +195 -3
  591. package/src/Dataset.ts +1085 -0
  592. package/src/Iri.ts +322 -0
  593. package/src/Isomorphism.ts +319 -0
  594. package/src/LanguageTag.ts +98 -0
  595. package/src/Namespace.ts +100 -0
  596. package/src/PrefixMap.ts +117 -0
  597. package/src/RdfJs.ts +146 -0
  598. package/src/Rdfs.ts +241 -0
  599. package/src/Reification.ts +103 -0
  600. package/src/Resource.ts +873 -0
  601. package/src/Serialization.ts +775 -0
  602. package/src/Term.ts +1300 -0
  603. package/src/TermCodec.ts +505 -0
  604. package/src/TermJson.ts +313 -0
  605. package/src/Vocab.ts +161 -0
  606. package/src/Xsd.ts +573 -0
  607. package/src/csvw/Csv2Json.ts +265 -0
  608. package/src/csvw/Csv2Rdf.ts +268 -0
  609. package/src/csvw/Datatype.ts +589 -0
  610. package/src/csvw/Metadata.ts +1523 -0
  611. package/src/csvw/Processor.ts +276 -0
  612. package/src/csvw/Report.ts +135 -0
  613. package/src/csvw/Table.ts +759 -0
  614. package/src/csvw/index.ts +22 -0
  615. package/src/csvw/internal/dateFormat.ts +202 -0
  616. package/src/csvw/internal/json.ts +104 -0
  617. package/src/csvw/internal/numberFormat.ts +369 -0
  618. package/src/csvw/internal/object.ts +23 -0
  619. package/src/csvw/internal/uriTemplate.ts +130 -0
  620. package/src/csvw/internal/url.ts +93 -0
  621. package/src/csvw/internal/vocab.ts +282 -0
  622. package/src/index.ts +40 -0
  623. package/src/internal/arbitrary.ts +148 -0
  624. package/src/internal/loop.ts +24 -0
  625. package/src/internal/pending.ts +20 -0
  626. package/src/internal/textDecoder.ts +183 -0
  627. package/src/jsonld/DocumentLoader.ts +512 -0
  628. package/src/jsonld/JsonLd.ts +847 -0
  629. package/src/jsonld/JsonLdError.ts +105 -0
  630. package/src/jsonld/index.ts +13 -0
  631. package/src/jsonld/internal/compact.ts +852 -0
  632. package/src/jsonld/internal/context.ts +781 -0
  633. package/src/jsonld/internal/expand.ts +614 -0
  634. package/src/jsonld/internal/flatten.ts +243 -0
  635. package/src/jsonld/internal/frame.ts +559 -0
  636. package/src/jsonld/internal/iri.ts +52 -0
  637. package/src/jsonld/internal/json.ts +19 -0
  638. package/src/jsonld/internal/linkHeader.ts +60 -0
  639. package/src/jsonld/internal/rdf.ts +481 -0
  640. package/src/jsonld/internal/util.ts +367 -0
  641. package/src/n3/Isomorphism.ts +476 -0
  642. package/src/n3/Mapping.ts +332 -0
  643. package/src/n3/Model.ts +696 -0
  644. package/src/n3/N3.ts +237 -0
  645. package/src/n3/Reasoner.ts +568 -0
  646. package/src/n3/Vocab.ts +111 -0
  647. package/src/n3/index.ts +21 -0
  648. package/src/n3/internal/builtins.ts +668 -0
  649. package/src/n3/internal/guards.ts +23 -0
  650. package/src/n3/internal/lists.ts +106 -0
  651. package/src/n3/internal/loop.ts +28 -0
  652. package/src/n3/internal/parser.ts +1032 -0
  653. package/src/n3/internal/writer.ts +344 -0
  654. package/src/ntriples/Grammar.ts +317 -0
  655. package/src/ntriples/Lexical.ts +321 -0
  656. package/src/ntriples/NQuads.ts +140 -0
  657. package/src/ntriples/NTriples.ts +143 -0
  658. package/src/ntriples/index.ts +14 -0
  659. package/src/ntriples/internal/codec.ts +229 -0
  660. package/src/ntriples/internal/lineParser.ts +326 -0
  661. package/src/ntriples/internal/loop.ts +14 -0
  662. package/src/rdfjson/RdfJson.ts +806 -0
  663. package/src/rdfjson/index.ts +9 -0
  664. package/src/rdfjson/internal/json.ts +19 -0
  665. package/src/rdfxml/RdfXml.ts +1408 -0
  666. package/src/rdfxml/Xml.ts +419 -0
  667. package/src/rdfxml/index.ts +11 -0
  668. package/src/rdfxml/internal/chars.ts +73 -0
  669. package/src/rdfxml/internal/loop.ts +24 -0
  670. package/src/rdfxml/internal/parser.ts +1265 -0
  671. package/src/shacl/Message.ts +102 -0
  672. package/src/shacl/Path.ts +483 -0
  673. package/src/shacl/Shapes.ts +913 -0
  674. package/src/shacl/Sparql.ts +128 -0
  675. package/src/shacl/ValidationReport.ts +438 -0
  676. package/src/shacl/Validator.ts +1156 -0
  677. package/src/shacl/Vocabulary.ts +180 -0
  678. package/src/shacl/index.ts +22 -0
  679. package/src/shacl/internal/compare.ts +128 -0
  680. package/src/shacl/internal/regex.ts +56 -0
  681. package/src/shex/SemAct.ts +197 -0
  682. package/src/shex/ShExC.ts +415 -0
  683. package/src/shex/ShExError.ts +71 -0
  684. package/src/shex/ShExJ.ts +893 -0
  685. package/src/shex/ShExR.ts +640 -0
  686. package/src/shex/ShapeMap.ts +385 -0
  687. package/src/shex/Structure.ts +467 -0
  688. package/src/shex/Validator.ts +395 -0
  689. package/src/shex/index.ts +24 -0
  690. package/src/shex/internal/engine.ts +682 -0
  691. package/src/shex/internal/iterate.ts +14 -0
  692. package/src/shex/internal/json.ts +12 -0
  693. package/src/shex/internal/lexer.ts +56 -0
  694. package/src/shex/internal/nodeConstraint.ts +368 -0
  695. package/src/shex/internal/shexcLexer.ts +387 -0
  696. package/src/shex/internal/shexcParser.ts +1312 -0
  697. package/src/shex/internal/tokens.ts +41 -0
  698. package/src/shex/internal/xpathRegex.ts +290 -0
  699. package/src/sparql/Algebra.ts +914 -0
  700. package/src/sparql/Ast.ts +1344 -0
  701. package/src/sparql/Bindings.ts +272 -0
  702. package/src/sparql/ClientErrors.ts +156 -0
  703. package/src/sparql/ClientFormats.ts +70 -0
  704. package/src/sparql/Engine.ts +699 -0
  705. package/src/sparql/Errors.ts +30 -0
  706. package/src/sparql/Expression.ts +360 -0
  707. package/src/sparql/Federation.ts +187 -0
  708. package/src/sparql/Functions.ts +689 -0
  709. package/src/sparql/Generator.ts +426 -0
  710. package/src/sparql/GraphStore.ts +341 -0
  711. package/src/sparql/Optimizer.ts +230 -0
  712. package/src/sparql/Options.ts +191 -0
  713. package/src/sparql/Parser.ts +173 -0
  714. package/src/sparql/Protocol.ts +342 -0
  715. package/src/sparql/ProtocolErrors.ts +113 -0
  716. package/src/sparql/QueryBuilder.ts +953 -0
  717. package/src/sparql/Results.ts +844 -0
  718. package/src/sparql/ResultsStream.ts +771 -0
  719. package/src/sparql/ServerFormats.ts +75 -0
  720. package/src/sparql/ServiceDescription.ts +130 -0
  721. package/src/sparql/SparqlClient.ts +947 -0
  722. package/src/sparql/SparqlServer.ts +528 -0
  723. package/src/sparql/Store.ts +311 -0
  724. package/src/sparql/TermSchema.ts +20 -0
  725. package/src/sparql/Testing.ts +114 -0
  726. package/src/sparql/Translate.ts +407 -0
  727. package/src/sparql/ai/Mcp.ts +43 -0
  728. package/src/sparql/ai/Tools.ts +481 -0
  729. package/src/sparql/ai/index.ts +11 -0
  730. package/src/sparql/index.ts +64 -0
  731. package/src/sparql/internal/evaluator.ts +947 -0
  732. package/src/sparql/internal/hash.ts +418 -0
  733. package/src/sparql/internal/json.ts +12 -0
  734. package/src/sparql/internal/lexer.ts +488 -0
  735. package/src/sparql/internal/loop.ts +24 -0
  736. package/src/sparql/internal/parser.ts +2215 -0
  737. package/src/sparql/internal/prefetch.ts +46 -0
  738. package/src/sparql/internal/stringMap.ts +39 -0
  739. package/src/sparql/internal/textResults.ts +226 -0
  740. package/src/sparql/internal/values.ts +550 -0
  741. package/src/sparql/shacl/Evaluator.ts +478 -0
  742. package/src/sparql/shacl/Query.ts +574 -0
  743. package/src/sparql/shacl/index.ts +12 -0
  744. package/src/sparql/sql/Dialect.ts +246 -0
  745. package/src/sparql/sql/SqlStore.ts +1080 -0
  746. package/src/sparql/sql/Translation.ts +1898 -0
  747. package/src/sparql/sql/index.ts +17 -0
  748. package/src/sparql/sql/internal/encoding.ts +313 -0
  749. package/src/turtle/Grammar.ts +286 -0
  750. package/src/turtle/Manifest.ts +215 -0
  751. package/src/turtle/TriG.ts +158 -0
  752. package/src/turtle/Turtle.ts +166 -0
  753. package/src/turtle/index.ts +14 -0
  754. package/src/turtle/internal/loop.ts +23 -0
  755. package/src/turtle/internal/parse.ts +112 -0
  756. package/src/turtle/internal/parser.ts +1303 -0
  757. package/src/turtle/internal/serialize.ts +79 -0
  758. package/src/turtle/internal/streamWriter.ts +128 -0
  759. package/src/turtle/internal/writer.ts +898 -0
  760. package/src/xmp/DublinCore.ts +147 -0
  761. package/src/xmp/Exif.ts +109 -0
  762. package/src/xmp/Extract.ts +351 -0
  763. package/src/xmp/Metadata.ts +703 -0
  764. package/src/xmp/Namespaces.ts +228 -0
  765. package/src/xmp/Packet.ts +297 -0
  766. package/src/xmp/Pdf.ts +99 -0
  767. package/src/xmp/PdfA.ts +280 -0
  768. package/src/xmp/Photoshop.ts +275 -0
  769. package/src/xmp/Tiff.ts +196 -0
  770. package/src/xmp/Xmp.ts +430 -0
  771. package/src/xmp/XmpBasic.ts +90 -0
  772. package/src/xmp/XmpMM.ts +82 -0
  773. package/src/xmp/XmpRights.ts +83 -0
  774. package/src/xmp/index.ts +36 -0
  775. package/src/xmp/internal/accessors.ts +72 -0
  776. package/src/xmp/internal/xml.ts +63 -0
@@ -0,0 +1,390 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { i as rdf } from "./Vocab-DceKywpq.mjs";
3
+ import { D as isBlankNode, E as loop, j as isVariable, k as isNamedNode, r as Formula, s as Statement, t as Collection } from "./Model-DlPzRYhF.mjs";
4
+ import { a as record, i as increment, n as count, o as single, r as followList, t as append } from "./lists-D-OpQ0Ir.mjs";
5
+ import * as Arr from "effect/Array";
6
+ import { dual } from "effect/Function";
7
+ import * as Iterable from "effect/Iterable";
8
+ import * as MutableHashMap from "effect/MutableHashMap";
9
+ import * as MutableHashSet from "effect/MutableHashSet";
10
+ import * as Option from "effect/Option";
11
+ import * as Order from "effect/Order";
12
+ // src/n3/Isomorphism.ts
13
+ /**
14
+ * Isomorphism of N3 formulas.
15
+ *
16
+ * Two formulas are isomorphic when they are equal up to a consistent
17
+ * renaming of blank nodes and of variables (alpha-equivalence). Unlike the
18
+ * core RDF isomorphism, blank nodes and variables may occur in any position
19
+ * (including predicates), and the comparison recurses into nested formulas.
20
+ *
21
+ * Well-formed explicit RDF lists (`rdf:first`/`rdf:rest` chains of blank
22
+ * nodes) are normalised to collections first, so `( 1 2 )` is isomorphic to
23
+ * the equivalent blank node chain produced by RDF-only syntaxes such as
24
+ * N-Triples.
25
+ *
26
+ * @since 0.1.0
27
+ */
28
+ var Isomorphism_exports = /* @__PURE__ */ __exportAll({
29
+ bijection: () => bijection,
30
+ isomorphic: () => isomorphic
31
+ });
32
+ const isNode = (atom) => atom.charCodeAt(0) !== 61;
33
+ const kindOf = (atom) => atom.slice(0, 2);
34
+ const RDF_FIRST = rdf.first.value;
35
+ const RDF_REST = rdf.rest.value;
36
+ const RDF_NIL = `=${rdf.nil.key}`;
37
+ /** The separator of the atoms in a tuple's key (no atom contains it). */
38
+ const SEP = "";
39
+ /** Whether a term contains a blank node or a variable (in any nested formula or collection). */
40
+ const hasNodes = (t) => t instanceof Statement ? hasNodes(t.subject) || hasNodes(t.predicate) || hasNodes(t.object) : t instanceof Formula ? t.statements.some(hasNodes) : t instanceof Collection ? t.items.some(hasNodes) : isBlankNode(t) || isVariable(t);
41
+ /** Counts the occurrences of each blank node label (plain refinements: it visits every term). */
42
+ const countBlanks = (self, out) => {
43
+ if (self instanceof Statement) {
44
+ countBlanks(self.subject, out);
45
+ countBlanks(self.predicate, out);
46
+ countBlanks(self.object, out);
47
+ } else if (self instanceof Formula) self.statements.forEach((st) => countBlanks(st, out));
48
+ else if (self instanceof Collection) self.items.forEach((i) => countBlanks(i, out));
49
+ else if (isBlankNode(self)) increment(out, self.value);
50
+ };
51
+ /**
52
+ * Rewrites well-formed `rdf:first`/`rdf:rest` chains of blank nodes into
53
+ * collections, so that explicit RDF lists compare equal to `( … )`.
54
+ */
55
+ const normalizeLists = (root) => {
56
+ const occ = MutableHashMap.empty();
57
+ countBlanks(root, occ);
58
+ const normalizeFormula = (f) => {
59
+ const first = MutableHashMap.empty();
60
+ const rest = MutableHashMap.empty();
61
+ const other = MutableHashMap.empty();
62
+ const restTargets = MutableHashSet.empty();
63
+ f.statements.forEach((st) => {
64
+ if (!isBlankNode(st.subject)) return;
65
+ const b = st.subject.value;
66
+ const p = isNamedNode(st.predicate) ? st.predicate.value : "";
67
+ if (p === RDF_FIRST) append(first, b, st);
68
+ else if (p === RDF_REST) append(rest, b, st);
69
+ else increment(other, b);
70
+ if (p === RDF_REST && isBlankNode(st.object)) MutableHashSet.add(restTargets, st.object.value);
71
+ });
72
+ const cellOf = (label, isHead) => !isHead && (count(other, label) > 0 || count(occ, label) !== 3) ? Option.none() : Option.zipWith(single(first, label), single(rest, label), (a, b) => [a, b]);
73
+ const heads = MutableHashMap.empty();
74
+ const consumed = /* @__PURE__ */ new WeakSet();
75
+ MutableHashMap.forEach(first, (_, h) => {
76
+ if (MutableHashSet.has(restTargets, h) || Option.isNone(cellOf(h, true))) return;
77
+ const o = count(other, h);
78
+ const total = count(occ, h);
79
+ if (!(o === 0 ? total <= 3 : total === 2 + o)) return;
80
+ const cells = followList(h, cellOf);
81
+ if (Option.isSome(cells)) record(heads, consumed, h, cells.value);
82
+ });
83
+ const term = (t) => normalizeTerm(t, heads);
84
+ return new Formula(f.statements.filter((st) => !consumed.has(st)).map((st) => new Statement(term(st.subject), term(st.predicate), term(st.object))));
85
+ };
86
+ const normalizeTerm = (t, heads) => {
87
+ if (isBlankNode(t)) {
88
+ const items = heads.backing.get(t.value);
89
+ return items === void 0 ? t : Arr.isReadonlyArrayEmpty(items) ? rdf.nil : new Collection(items.map((i) => normalizeTerm(i, heads)));
90
+ }
91
+ if (t instanceof Collection) return Arr.isReadonlyArrayEmpty(t.items) ? rdf.nil : new Collection(t.items.map((i) => normalizeTerm(i, heads)));
92
+ return t instanceof Formula ? normalizeFormula(t) : t;
93
+ };
94
+ return normalizeFormula(root);
95
+ };
96
+ const flatten = (self) => {
97
+ const out = MutableHashMap.empty();
98
+ let counter = 0;
99
+ const formulaNodes = MutableHashMap.empty();
100
+ const add = (t) => MutableHashMap.set(out, t.join(SEP), t);
101
+ const atom = (t) => {
102
+ if (isBlankNode(t)) return `b:${t.value}`;
103
+ if (isVariable(t)) return `v:${t.value}`;
104
+ if (t instanceof Collection) {
105
+ if (Arr.isReadonlyArrayEmpty(t.items)) return RDF_NIL;
106
+ if (!hasNodes(t)) return `=${t.key}`;
107
+ const l = `l:${counter++}`;
108
+ t.items.forEach((item, i) => add([
109
+ l,
110
+ `=#${i}`,
111
+ atom(item),
112
+ "=list"
113
+ ]));
114
+ add([
115
+ l,
116
+ "=length",
117
+ `=${t.items.length}`,
118
+ "=list"
119
+ ]);
120
+ return l;
121
+ }
122
+ if (t instanceof Formula) {
123
+ if (!hasNodes(t)) return `=${t.key}`;
124
+ const known = formulaNodes.backing.get(t.key);
125
+ if (known !== void 0) return known;
126
+ const g = `f:${counter++}`;
127
+ MutableHashMap.set(formulaNodes, t.key, g);
128
+ statements(t, g);
129
+ return g;
130
+ }
131
+ return `=${t.key}`;
132
+ };
133
+ const statements = (f, graph) => {
134
+ f.statements.forEach((st) => {
135
+ add([
136
+ atom(st.subject),
137
+ atom(st.predicate),
138
+ atom(st.object),
139
+ graph
140
+ ]);
141
+ });
142
+ };
143
+ statements(normalizeLists(self), "=");
144
+ return Arr.fromIterable(MutableHashMap.values(out));
145
+ };
146
+ const hashString = (s) => {
147
+ let h = 2166136261;
148
+ loop((i) => {
149
+ if (i >= s.length) return false;
150
+ h = Math.imul(h ^ s.charCodeAt(i), 16777619);
151
+ return true;
152
+ });
153
+ return h >>> 0;
154
+ };
155
+ const mix = (h, v) => {
156
+ let x = Math.imul(h ^ v, 1540483477);
157
+ x ^= x >>> 15;
158
+ return Math.imul(x, 668265261) >>> 0;
159
+ };
160
+ /** The number of distinct colours in a colouring. */
161
+ const countClasses = (c) => {
162
+ const sorted = c.toSorted();
163
+ return sorted.reduce((count, v, k) => k === 0 || v !== sorted[k - 1] ? count + 1 : count, 0);
164
+ };
165
+ /**
166
+ * Iterative colour refinement: a node's colour is repeatedly refined by the
167
+ * (multiset of) tuples it occurs in, and its positions in them, until the
168
+ * partition is stable.
169
+ */
170
+ const refine = (tuples) => {
171
+ const index = MutableHashMap.empty();
172
+ const nodes = [];
173
+ const byNode = [];
174
+ const fixed = MutableHashMap.empty();
175
+ const nT = tuples.length;
176
+ const nodeAt = new Int32Array(nT * 4);
177
+ const fixedAt = new Uint32Array(nT * 4);
178
+ const occurrences = [];
179
+ tuples.forEach((t, ti) => {
180
+ const seen = [];
181
+ const masks = [];
182
+ t.forEach((a, k) => {
183
+ if (!isNode(a)) {
184
+ let h = fixed.backing.get(a);
185
+ if (h === void 0) {
186
+ h = hashString(a);
187
+ MutableHashMap.set(fixed, a, h);
188
+ }
189
+ nodeAt[ti * 4 + k] = -1;
190
+ fixedAt[ti * 4 + k] = h;
191
+ return;
192
+ }
193
+ let n = index.backing.get(a);
194
+ if (n === void 0) {
195
+ n = nodes.length;
196
+ MutableHashMap.set(index, a, n);
197
+ nodes.push(a);
198
+ byNode.push([]);
199
+ occurrences.push([]);
200
+ }
201
+ nodeAt[ti * 4 + k] = n;
202
+ const j = seen.indexOf(n);
203
+ if (j < 0) {
204
+ seen.push(n);
205
+ masks.push(1 << k);
206
+ } else masks[j] = (masks[j] ?? 0) | 1 << k;
207
+ });
208
+ seen.forEach((n, j) => {
209
+ byNode[n]?.push(ti);
210
+ occurrences[n]?.push([ti, masks[j] ?? 0]);
211
+ });
212
+ });
213
+ const nN = nodes.length;
214
+ let colour = Uint32Array.from(nodes, (a) => hashString(kindOf(a)));
215
+ let classes = countClasses(colour);
216
+ const tupleHash = new Uint32Array(nT);
217
+ const valueAt = (p) => {
218
+ const n = nodeAt[p] ?? -1;
219
+ return n >= 0 ? colour[n] ?? 0 : fixedAt[p] ?? 0;
220
+ };
221
+ loop((round) => {
222
+ if (round > nN || classes >= nN) return false;
223
+ tupleHash.forEach((_, ti) => {
224
+ const at = ti * 4;
225
+ tupleHash[ti] = mix(mix(mix(mix(7, valueAt(at)), valueAt(at + 1)), valueAt(at + 2)), valueAt(at + 3));
226
+ });
227
+ const next = Uint32Array.from(occurrences, (occ, n) => mix(colour[n] ?? 0, occ.reduce((acc, [ti, mask]) => acc + mix(tupleHash[ti] ?? 0, mask) >>> 0, 0)));
228
+ const nextClasses = countClasses(next);
229
+ colour = next;
230
+ if (nextClasses === classes) return false;
231
+ classes = nextClasses;
232
+ return true;
233
+ });
234
+ return {
235
+ tuples,
236
+ nodes,
237
+ colour,
238
+ byNode,
239
+ nodeAt
240
+ };
241
+ };
242
+ const tupleKey = (t) => t.join(SEP);
243
+ /** Groups a partition's nodes (by index, in order) by their colour. */
244
+ const groupByColour = (p) => {
245
+ const groups = MutableHashMap.empty();
246
+ p.colour.forEach((c, n) => {
247
+ const g = groups.backing.get(c);
248
+ if (g === void 0) MutableHashMap.set(groups, c, [n]);
249
+ else g.push(n);
250
+ });
251
+ return groups;
252
+ };
253
+ const noNodes = [];
254
+ /**
255
+ * A renaming of the nodes of `a` to those of `b` under which the tuples are
256
+ * the same, as `[node of a, node of b]` pairs: those mapped directly, in
257
+ * order of first occurrence, then those found by backtracking.
258
+ */
259
+ const bijectionTuples = (a, b) => {
260
+ if (a.length !== b.length) return Option.none();
261
+ const target = MutableHashMap.empty();
262
+ b.forEach((t) => MutableHashMap.set(target, tupleKey(t), true));
263
+ const targets = target.backing;
264
+ const aNodes = [];
265
+ if (!a.every((t) => {
266
+ if (!t.some(isNode)) return targets.has(tupleKey(t));
267
+ aNodes.push(t);
268
+ return true;
269
+ })) return Option.none();
270
+ const bNodes = b.filter((t) => t.some(isNode));
271
+ if (aNodes.length !== bNodes.length) return Option.none();
272
+ if (Arr.isReadonlyArrayEmpty(aNodes)) return Option.some([]);
273
+ const pa = refine(aNodes);
274
+ const pb = refine(bNodes);
275
+ if (pa.nodes.length !== pb.nodes.length) return Option.none();
276
+ const groupsA = groupByColour(pa);
277
+ const groupsB = groupByColour(pb);
278
+ const candidatesOf = (n) => groupsB.backing.get(pa.colour[n] ?? 0) ?? noNodes;
279
+ if (Iterable.some(groupsA, ([c, g]) => groupsB.backing.get(c)?.length !== g.length)) return Option.none();
280
+ const mapping = new Int32Array(pa.nodes.length).fill(-1);
281
+ const used = new Uint8Array(pb.nodes.length);
282
+ /** Position `p` of tuple `t` under the mapping (`''` while its node is unmapped). */
283
+ const mapped = (t, p) => {
284
+ const n = pa.nodeAt[p] ?? -1;
285
+ const atom = t[p & 3] ?? "";
286
+ if (n < 0) return atom;
287
+ const m = mapping[n] ?? -1;
288
+ return m < 0 ? "" : pb.nodes[m] ?? "";
289
+ };
290
+ const consistent = (node) => (pa.byNode[node] ?? noNodes).every((ti) => {
291
+ const t = pa.tuples[ti] ?? emptyTuple;
292
+ const at = ti * 4;
293
+ const s = mapped(t, at);
294
+ const p = mapped(t, at + 1);
295
+ const o = mapped(t, at + 2);
296
+ const g = mapped(t, at + 3);
297
+ if (s === "" || p === "" || o === "" || g === "") return true;
298
+ return targets.has(`${s}${SEP}${p}${SEP}${o}${SEP}${g}`);
299
+ });
300
+ const direct = [];
301
+ const ambiguous = [];
302
+ pa.nodes.forEach((_, n) => {
303
+ const candidates = candidatesOf(n);
304
+ const only = candidates[0] ?? 0;
305
+ if (candidates.length === 1) {
306
+ mapping[n] = only;
307
+ used[only] = 1;
308
+ direct.push(n);
309
+ } else ambiguous.push(n);
310
+ });
311
+ if (!direct.every(consistent)) return Option.none();
312
+ const order = Arr.sort(ambiguous, Order.mapInput(Order.Number, (n) => groupsA.backing.get(pa.colour[n] ?? 0)?.length ?? 0));
313
+ const next = new Int32Array(order.length);
314
+ let i = 0;
315
+ let node = 0;
316
+ let candidates = noNodes;
317
+ let found = false;
318
+ const tryNext = () => {
319
+ const k = next[i] ?? 0;
320
+ if (k >= candidates.length) return false;
321
+ next[i] = k + 1;
322
+ const candidate = candidates[k] ?? 0;
323
+ if (used[candidate] === 1) return true;
324
+ mapping[node] = candidate;
325
+ used[candidate] = 1;
326
+ if (consistent(node)) {
327
+ found = true;
328
+ return false;
329
+ }
330
+ mapping[node] = -1;
331
+ used[candidate] = 0;
332
+ return true;
333
+ };
334
+ loop(() => {
335
+ if (i < 0 || i >= order.length) return false;
336
+ node = order[i] ?? 0;
337
+ const previous = mapping[node] ?? -1;
338
+ if (previous >= 0) {
339
+ mapping[node] = -1;
340
+ used[previous] = 0;
341
+ }
342
+ candidates = candidatesOf(node);
343
+ found = false;
344
+ loop(tryNext);
345
+ if (found) i++;
346
+ else {
347
+ next[i] = 0;
348
+ i--;
349
+ }
350
+ return true;
351
+ });
352
+ if (i !== order.length) return Option.none();
353
+ const pair = (n) => [pa.nodes[n] ?? "", pb.nodes[mapping[n] ?? 0] ?? ""];
354
+ return Option.some(Arr.appendAll(direct.map(pair), order.map(pair)));
355
+ };
356
+ const emptyTuple = [
357
+ "",
358
+ "",
359
+ "",
360
+ ""
361
+ ];
362
+ /** Renders an internal `b:` / `v:` node key as `_:label` / `?name`. */
363
+ const renderNode = (a) => a.startsWith("b:") ? `_:${a.slice(2)}` : `?${a.slice(2)}`;
364
+ /**
365
+ * Finds a renaming of blank nodes and variables from `self` to `that` under
366
+ * which the two formulas are equal. Keys of the returned map are
367
+ * `_:label` / `?name` of `self`, values those of `that` (nodes generated for
368
+ * collections and nested formulas are omitted).
369
+ *
370
+ * @since 0.1.0
371
+ * @category isomorphism
372
+ */
373
+ const bijection = (self, that) => Option.map(bijectionTuples(flatten(self), flatten(that)), (pairs) => {
374
+ const out = MutableHashMap.empty();
375
+ pairs.forEach(([k, v]) => {
376
+ if (!k.startsWith("l:") && !k.startsWith("f:")) MutableHashMap.set(out, renderNode(k), renderNode(v));
377
+ });
378
+ return out.backing;
379
+ });
380
+ /**
381
+ * Whether two formulas are isomorphic: equal up to a consistent renaming of
382
+ * blank nodes and variables, recursively through nested formulas.
383
+ *
384
+ * @since 0.1.0
385
+ * @category isomorphism
386
+ */
387
+ const isomorphic = dual(2, (self, that) => Option.isSome(bijectionTuples(flatten(self), flatten(that))));
388
+ export { bijection as n, isomorphic as r, Isomorphism_exports as t };
389
+
390
+ //# sourceMappingURL=Isomorphism-DInKnWIy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Isomorphism-DInKnWIy.mjs","names":["Model.Statement","Model.Formula","Model.Collection","Guards.isBlankNode","Guards.isVariable","Guards.isNamedNode","Lists.count","Lists.single","Lists.followList"],"sources":["../src/n3/Isomorphism.ts"],"sourcesContent":["/**\n * Isomorphism of N3 formulas.\n *\n * Two formulas are isomorphic when they are equal up to a consistent\n * renaming of blank nodes and of variables (alpha-equivalence). Unlike the\n * core RDF isomorphism, blank nodes and variables may occur in any position\n * (including predicates), and the comparison recurses into nested formulas.\n *\n * Well-formed explicit RDF lists (`rdf:first`/`rdf:rest` chains of blank\n * nodes) are normalised to collections first, so `( 1 2 )` is isomorphic to\n * the equivalent blank node chain produced by RDF-only syntaxes such as\n * N-Triples.\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport { dual } from 'effect/Function';\nimport * as Iterable from 'effect/Iterable';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Order from 'effect/Order';\nimport { rdf } from '../Vocab.ts';\nimport * as Guards from './internal/guards.ts';\nimport * as Lists from './internal/lists.ts';\nimport { loop } from './internal/loop.ts';\nimport * as Model from './Model.ts';\n\n// A flattened formula: 4-tuples (subject, predicate, object, graph) of atoms.\n// Atoms are either fixed (`=` + canonical key) or relabelable nodes\n// (`b:` blank node, `v:` variable, `f:` formula, `l:` collection). Formulas\n// and collections without blank nodes or variables are fixed atoms.\ntype Tuple = readonly [string, string, string, string];\n\nconst isNode = (atom: string): boolean => atom.charCodeAt(0) !== 0x3d; /* = */\nconst kindOf = (atom: string): string => atom.slice(0, 2);\n\nconst RDF_FIRST = rdf.first.value;\nconst RDF_REST = rdf.rest.value;\nconst RDF_NIL = `=${rdf.nil.key}`;\n\n/** The separator of the atoms in a tuple's key (no atom contains it). */\nconst SEP = '\\u0001';\n\n/** Whether a term contains a blank node or a variable (in any nested formula or collection). */\nconst hasNodes = (t: Model.N3Term | Model.Statement): boolean =>\n t instanceof Model.Statement\n ? hasNodes(t.subject) || hasNodes(t.predicate) || hasNodes(t.object)\n : t instanceof Model.Formula\n ? t.statements.some(hasNodes)\n : t instanceof Model.Collection\n ? t.items.some(hasNodes)\n : Guards.isBlankNode(t) || Guards.isVariable(t);\n\n/** Counts the occurrences of each blank node label (plain refinements: it visits every term). */\nconst countBlanks = (\n self: Model.N3Term | Model.Statement,\n out: MutableHashMap.MutableHashMap<string, number>,\n): void => {\n if (self instanceof Model.Statement) {\n countBlanks(self.subject, out);\n countBlanks(self.predicate, out);\n countBlanks(self.object, out);\n } else if (self instanceof Model.Formula) {\n self.statements.forEach((st) => countBlanks(st, out));\n } else if (self instanceof Model.Collection) {\n self.items.forEach((i) => countBlanks(i, out));\n } else if (Guards.isBlankNode(self)) {\n Lists.increment(out, self.value);\n }\n};\n\n/**\n * Rewrites well-formed `rdf:first`/`rdf:rest` chains of blank nodes into\n * collections, so that explicit RDF lists compare equal to `( … )`.\n */\nconst normalizeLists = (root: Model.Formula): Model.Formula => {\n const occ = MutableHashMap.empty<string, number>();\n countBlanks(root, occ);\n const normalizeFormula = (f: Model.Formula): Model.Formula => {\n const first = MutableHashMap.empty<string, Array<Model.Statement>>();\n const rest = MutableHashMap.empty<string, Array<Model.Statement>>();\n const other = MutableHashMap.empty<string, number>();\n const restTargets = MutableHashSet.empty<string>();\n f.statements.forEach((st) => {\n if (!Guards.isBlankNode(st.subject)) return;\n const b = st.subject.value;\n const p = Guards.isNamedNode(st.predicate) ? st.predicate.value : '';\n if (p === RDF_FIRST) Lists.append(first, b, st);\n else if (p === RDF_REST) Lists.append(rest, b, st);\n else Lists.increment(other, b);\n if (p === RDF_REST && Guards.isBlankNode(st.object)) {\n MutableHashSet.add(restTargets, st.object.value);\n }\n });\n // A cell: one `rdf:first` and one `rdf:rest`; after the head, used only by the list\n const cellOf = (label: string, isHead: boolean): Option.Option<Lists.Cell<Model.Statement>> =>\n !isHead && (Lists.count(other, label) > 0 || Lists.count(occ, label) !== 3)\n ? Option.none()\n : Option.zipWith(Lists.single(first, label), Lists.single(rest, label), (a, b) => [a, b]);\n const heads = MutableHashMap.empty<string, Array<Model.N3Term>>();\n const consumed = new WeakSet<Model.Statement>();\n MutableHashMap.forEach(first, (_, h) => {\n if (MutableHashSet.has(restTargets, h) || Option.isNone(cellOf(h, true))) return;\n const o = Lists.count(other, h);\n const total = Lists.count(occ, h);\n if (!(o === 0 ? total <= 3 : total === 2 + o)) return;\n const cells = Lists.followList(h, cellOf);\n if (Option.isSome(cells)) Lists.record(heads, consumed, h, cells.value);\n });\n const term = (t: Model.N3Term): Model.N3Term => normalizeTerm(t, heads);\n return new Model.Formula(\n f.statements\n .filter((st) => !consumed.has(st))\n .map((st) => new Model.Statement(term(st.subject), term(st.predicate), term(st.object))),\n );\n };\n // Plain refinements rather than `Match`: it runs for every term.\n const normalizeTerm = (\n t: Model.N3Term,\n heads: MutableHashMap.MutableHashMap<string, Array<Model.N3Term>>,\n ): Model.N3Term => {\n if (Guards.isBlankNode(t)) {\n const items = heads.backing.get(t.value);\n return items === undefined\n ? t\n : Arr.isReadonlyArrayEmpty(items)\n ? rdf.nil\n : new Model.Collection(items.map((i) => normalizeTerm(i, heads)));\n }\n if (t instanceof Model.Collection) {\n return Arr.isReadonlyArrayEmpty(t.items)\n ? rdf.nil\n : new Model.Collection(t.items.map((i) => normalizeTerm(i, heads)));\n }\n return t instanceof Model.Formula ? normalizeFormula(t) : t;\n };\n return normalizeFormula(root);\n};\n\nconst flatten = (self: Model.Formula): Array<Tuple> => {\n const out = MutableHashMap.empty<string, Tuple>();\n let counter = 0;\n const formulaNodes = MutableHashMap.empty<string, string>();\n const add = (t: Tuple) => MutableHashMap.set(out, t.join(SEP), t);\n // Plain refinements rather than `Match`: it runs for every term.\n const atom = (t: Model.N3Term): string => {\n if (Guards.isBlankNode(t)) return `b:${t.value}`;\n if (Guards.isVariable(t)) return `v:${t.value}`;\n if (t instanceof Model.Collection) {\n if (Arr.isReadonlyArrayEmpty(t.items)) return RDF_NIL;\n if (!hasNodes(t)) return `=${t.key}`;\n const l = `l:${counter++}`;\n t.items.forEach((item, i) => add([l, `=#${i}`, atom(item), '=list']));\n add([l, '=length', `=${t.items.length}`, '=list']);\n return l;\n }\n if (t instanceof Model.Formula) {\n if (!hasNodes(t)) return `=${t.key}`;\n // Formulas are values: equal formulas share one node.\n const known = formulaNodes.backing.get(t.key);\n if (known !== undefined) return known;\n const g = `f:${counter++}`;\n MutableHashMap.set(formulaNodes, t.key, g);\n statements(t, g);\n return g;\n }\n return `=${t.key}`;\n };\n const statements = (f: Model.Formula, graph: string) => {\n f.statements.forEach((st) => {\n add([atom(st.subject), atom(st.predicate), atom(st.object), graph]);\n });\n };\n statements(normalizeLists(self), '=');\n return Arr.fromIterable(MutableHashMap.values(out));\n};\n\nconst hashString = (s: string): number => {\n let h = 0x811c9dc5;\n loop((i) => {\n if (i >= s.length) return false;\n h = Math.imul(h ^ s.charCodeAt(i), 0x01000193);\n return true;\n });\n return h >>> 0;\n};\n\nconst mix = (h: number, v: number): number => {\n let x = Math.imul(h ^ v, 0x5bd1e995);\n x ^= x >>> 15;\n return Math.imul(x, 0x27d4eb2d) >>> 0;\n};\n\n/** The tuples' nodes, indexed in order of first occurrence, with their stable colours. */\ninterface Partition {\n readonly tuples: ReadonlyArray<Tuple>;\n readonly nodes: ReadonlyArray<string>;\n readonly colour: Uint32Array;\n /** Per node: the indices of the tuples it occurs in. */\n readonly byNode: ReadonlyArray<ReadonlyArray<number>>;\n /** Per tuple position: the index of its node (>= 0), or -1 for a fixed atom. */\n readonly nodeAt: Int32Array;\n}\n\n/** The number of distinct colours in a colouring. */\nconst countClasses = (c: Uint32Array): number => {\n const sorted = c.toSorted();\n return sorted.reduce((count, v, k) => (k === 0 || v !== sorted[k - 1] ? count + 1 : count), 0);\n};\n\n/**\n * Iterative colour refinement: a node's colour is repeatedly refined by the\n * (multiset of) tuples it occurs in, and its positions in them, until the\n * partition is stable.\n */\nconst refine = (tuples: ReadonlyArray<Tuple>): Partition => {\n const index = MutableHashMap.empty<string, number>();\n const nodes: Array<string> = [];\n const byNode: Array<Array<number>> = [];\n const fixed = MutableHashMap.empty<string, number>();\n const nT = tuples.length;\n // Per tuple position: node index (>= 0) or -1, and the fixed hash.\n const nodeAt = new Int32Array(nT * 4);\n const fixedAt = new Uint32Array(nT * 4);\n // Per node: the tuples it occurs in, with the bitmask of its positions in each.\n const occurrences: Array<Array<readonly [tuple: number, mask: number]>> = [];\n tuples.forEach((t, ti) => {\n // The distinct nodes of the tuple, in order, with their position masks.\n const seen: Array<number> = [];\n const masks: Array<number> = [];\n t.forEach((a, k) => {\n if (!isNode(a)) {\n let h = fixed.backing.get(a);\n if (h === undefined) {\n h = hashString(a);\n MutableHashMap.set(fixed, a, h);\n }\n nodeAt[ti * 4 + k] = -1;\n fixedAt[ti * 4 + k] = h;\n return;\n }\n let n = index.backing.get(a);\n if (n === undefined) {\n n = nodes.length;\n MutableHashMap.set(index, a, n);\n nodes.push(a);\n byNode.push([]);\n occurrences.push([]);\n }\n nodeAt[ti * 4 + k] = n;\n const j = seen.indexOf(n);\n if (j < 0) {\n seen.push(n);\n masks.push(1 << k);\n } else masks[j] = (masks[j] ?? 0) | (1 << k);\n });\n seen.forEach((n, j) => {\n byNode[n]?.push(ti);\n occurrences[n]?.push([ti, masks[j] ?? 0]);\n });\n });\n const nN = nodes.length;\n let colour = Uint32Array.from(nodes, (a) => hashString(kindOf(a)));\n let classes = countClasses(colour);\n const tupleHash = new Uint32Array(nT);\n const valueAt = (p: number): number => {\n const n = nodeAt[p] ?? -1;\n return n >= 0 ? (colour[n] ?? 0) : (fixedAt[p] ?? 0);\n };\n loop((round) => {\n if (round > nN || classes >= nN) return false;\n tupleHash.forEach((_, ti) => {\n const at = ti * 4;\n tupleHash[ti] = mix(\n mix(mix(mix(7, valueAt(at)), valueAt(at + 1)), valueAt(at + 2)),\n valueAt(at + 3),\n );\n });\n const next = Uint32Array.from(occurrences, (occ, n) =>\n mix(\n colour[n] ?? 0,\n occ.reduce((acc, [ti, mask]) => (acc + mix(tupleHash[ti] ?? 0, mask)) >>> 0, 0),\n ),\n );\n const nextClasses = countClasses(next);\n colour = next;\n if (nextClasses === classes) return false;\n classes = nextClasses;\n return true;\n });\n return { tuples, nodes, colour, byNode, nodeAt };\n};\n\nconst tupleKey = (t: Tuple): string => t.join(SEP);\n\n/** Groups a partition's nodes (by index, in order) by their colour. */\nconst groupByColour = (p: Partition): MutableHashMap.MutableHashMap<number, Array<number>> => {\n const groups = MutableHashMap.empty<number, Array<number>>();\n p.colour.forEach((c, n) => {\n const g = groups.backing.get(c);\n if (g === undefined) MutableHashMap.set(groups, c, [n]);\n else g.push(n);\n });\n return groups;\n};\n\nconst noNodes: ReadonlyArray<number> = [];\n\n/**\n * A renaming of the nodes of `a` to those of `b` under which the tuples are\n * the same, as `[node of a, node of b]` pairs: those mapped directly, in\n * order of first occurrence, then those found by backtracking.\n */\nconst bijectionTuples = (\n a: ReadonlyArray<Tuple>,\n b: ReadonlyArray<Tuple>,\n): Option.Option<ReadonlyArray<readonly [string, string]>> => {\n if (a.length !== b.length) return Option.none();\n const target = MutableHashMap.empty<string, boolean>();\n b.forEach((t) => MutableHashMap.set(target, tupleKey(t), true));\n const targets = target.backing;\n const aNodes: Array<Tuple> = [];\n const fixedFound = a.every((t) => {\n if (!t.some(isNode)) return targets.has(tupleKey(t));\n aNodes.push(t);\n return true;\n });\n if (!fixedFound) return Option.none();\n const bNodes = b.filter((t) => t.some(isNode));\n if (aNodes.length !== bNodes.length) return Option.none();\n if (Arr.isReadonlyArrayEmpty(aNodes)) return Option.some([]);\n\n const pa = refine(aNodes);\n const pb = refine(bNodes);\n if (pa.nodes.length !== pb.nodes.length) return Option.none();\n const groupsA = groupByColour(pa);\n const groupsB = groupByColour(pb);\n const candidatesOf = (n: number): ReadonlyArray<number> =>\n groupsB.backing.get(pa.colour[n] ?? 0) ?? noNodes;\n if (Iterable.some(groupsA, ([c, g]) => groupsB.backing.get(c)?.length !== g.length)) {\n return Option.none();\n }\n\n // Per node of `a`: the index of the node of `b` it is mapped to, or -1.\n const mapping = new Int32Array(pa.nodes.length).fill(-1);\n const used = new Uint8Array(pb.nodes.length);\n /** Position `p` of tuple `t` under the mapping (`''` while its node is unmapped). */\n const mapped = (t: Tuple, p: number): string => {\n const n = pa.nodeAt[p] ?? -1;\n const atom = t[p & 3] ?? '';\n if (n < 0) return atom;\n const m = mapping[n] ?? -1;\n return m < 0 ? '' : (pb.nodes[m] ?? '');\n };\n const consistent = (node: number): boolean =>\n (pa.byNode[node] ?? noNodes).every((ti) => {\n const t = pa.tuples[ti] ?? emptyTuple;\n const at = ti * 4;\n const s = mapped(t, at);\n const p = mapped(t, at + 1);\n const o = mapped(t, at + 2);\n const g = mapped(t, at + 3);\n // Tuples with a node still unmapped are checked once it is\n if (s === '' || p === '' || o === '' || g === '') return true;\n return targets.has(`${s}${SEP}${p}${SEP}${o}${SEP}${g}`);\n });\n // Nodes in singleton classes are mapped directly.\n const direct: Array<number> = [];\n const ambiguous: Array<number> = [];\n pa.nodes.forEach((_, n) => {\n const candidates = candidatesOf(n);\n const only = candidates[0] ?? 0;\n if (candidates.length === 1) {\n mapping[n] = only;\n used[only] = 1;\n direct.push(n);\n } else ambiguous.push(n);\n });\n if (!direct.every(consistent)) return Option.none();\n // Iterative backtracking over the ambiguous nodes, smallest classes first.\n const order = Arr.sort(\n ambiguous,\n Order.mapInput(\n Order.Number,\n (n: number) => groupsA.backing.get(pa.colour[n] ?? 0)?.length ?? 0,\n ),\n );\n const next = new Int32Array(order.length);\n let i = 0;\n // The node being placed, its candidates, and whether one was found\n let node = 0;\n let candidates = noNodes;\n let found = false;\n const tryNext = (): boolean => {\n const k = next[i] ?? 0;\n if (k >= candidates.length) return false;\n next[i] = k + 1;\n const candidate = candidates[k] ?? 0;\n if (used[candidate] === 1) return true;\n mapping[node] = candidate;\n used[candidate] = 1;\n if (consistent(node)) {\n found = true;\n return false;\n }\n mapping[node] = -1;\n used[candidate] = 0;\n return true;\n };\n loop(() => {\n if (i < 0 || i >= order.length) return false;\n node = order[i] ?? 0;\n const previous = mapping[node] ?? -1;\n if (previous >= 0) {\n mapping[node] = -1;\n used[previous] = 0;\n }\n candidates = candidatesOf(node);\n found = false;\n loop(tryNext);\n if (found) i++;\n else {\n next[i] = 0;\n i--;\n }\n return true;\n });\n if (i !== order.length) return Option.none();\n const pair = (n: number): readonly [string, string] => [\n pa.nodes[n] ?? '',\n pb.nodes[mapping[n] ?? 0] ?? '',\n ];\n return Option.some(Arr.appendAll(direct.map(pair), order.map(pair)));\n};\n\nconst emptyTuple: Tuple = ['', '', '', ''];\n\n/** Renders an internal `b:` / `v:` node key as `_:label` / `?name`. */\nconst renderNode = (a: string) => (a.startsWith('b:') ? `_:${a.slice(2)}` : `?${a.slice(2)}`);\n\n/**\n * Finds a renaming of blank nodes and variables from `self` to `that` under\n * which the two formulas are equal. Keys of the returned map are\n * `_:label` / `?name` of `self`, values those of `that` (nodes generated for\n * collections and nested formulas are omitted).\n *\n * @since 0.1.0\n * @category isomorphism\n */\nexport const bijection = (\n self: Model.Formula,\n that: Model.Formula,\n): Option.Option<ReadonlyMap<string, string>> =>\n Option.map(bijectionTuples(flatten(self), flatten(that)), (pairs) => {\n const out = MutableHashMap.empty<string, string>();\n pairs.forEach(([k, v]) => {\n if (!k.startsWith('l:') && !k.startsWith('f:'))\n MutableHashMap.set(out, renderNode(k), renderNode(v));\n });\n return out.backing;\n });\n\n/**\n * Whether two formulas are isomorphic: equal up to a consistent renaming of\n * blank nodes and variables, recursively through nested formulas.\n *\n * @since 0.1.0\n * @category isomorphism\n */\nexport const isomorphic: {\n (that: Model.Formula): (self: Model.Formula) => boolean;\n (self: Model.Formula, that: Model.Formula): boolean;\n} = dual(2, (self: Model.Formula, that: Model.Formula): boolean =>\n Option.isSome(bijectionTuples(flatten(self), flatten(that))),\n);\n"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { n as Dataset } from "./Dataset-DS3ESOcO.mjs";
2
+ import * as Option from "effect/Option";
3
+ declare namespace Isomorphism_d_exports {
4
+ export { bijection, isomorphic, relabel };
5
+ }
6
+ /**
7
+ * Finds a blank node bijection from `self` to `that` under which the two
8
+ * datasets are equal, if one exists.
9
+ *
10
+ * @since 0.1.0
11
+ * @category isomorphism
12
+ */
13
+ declare const bijection: (self: Dataset, that: Dataset) => Option.Option<ReadonlyMap<string, string>>;
14
+ /**
15
+ * Whether two datasets are isomorphic: equal up to a consistent renaming of
16
+ * blank nodes.
17
+ *
18
+ * @since 0.1.0
19
+ * @category isomorphism
20
+ */
21
+ declare const isomorphic: {
22
+ (that: Dataset): (self: Dataset) => boolean;
23
+ (self: Dataset, that: Dataset): boolean;
24
+ };
25
+ /**
26
+ * Relabels blank nodes in a dataset with fresh labels `prefix0`, `prefix1`,
27
+ * … in a deterministic order derived from their structural signatures.
28
+ *
29
+ * Isomorphic datasets without automorphic blank nodes yield identical
30
+ * results; this is not a full canonicalisation algorithm.
31
+ *
32
+ * @since 0.1.0
33
+ * @category isomorphism
34
+ */
35
+ declare const relabel: (self: Dataset, prefix?: string) => Dataset;
36
+ export { relabel as i, bijection as n, isomorphic as r, Isomorphism_d_exports as t };
37
+ //# sourceMappingURL=Isomorphism-DvSfZXLR.d.mts.map
@@ -0,0 +1,2 @@
1
+ import { i as relabel, n as bijection, r as isomorphic } from "./Isomorphism-DvSfZXLR.mjs";
2
+ export { bijection, isomorphic, relabel };
@@ -0,0 +1 @@
1
+ export { n as bijection, r as isomorphic, i as relabel } from "./Isomorphism-BmqxhKyJ.mjs";