@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,798 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { S as Variable, Y as literal, Z as namedNode, t as BlankNode } from "./Term-CFLG1qu4.mjs";
3
+ import { i as rdf, o as xsd } from "./Vocab-DceKywpq.mjs";
4
+ import { a as canonicalDouble, g as isNumericDatatype, m as isIntegerDatatype } from "./Xsd-Cdgx5zRB.mjs";
5
+ import { D as isBlankNode, E as loop, O as isLiteral, T as variables, _ as isCollection, j as isVariable, k as isNamedNode, m as emptyFormula, r as Formula, s as Statement, t as Collection, v as isFormula, w as substitute, y as isGround } from "./Model-DlPzRYhF.mjs";
6
+ import { r as isomorphic } from "./Isomorphism-DInKnWIy.mjs";
7
+ import { a as log, i as list, l as string, o as math } from "./Vocab-TfpWG1Ne.mjs";
8
+ import * as Arr from "effect/Array";
9
+ import * as MutableHashMap from "effect/MutableHashMap";
10
+ import * as MutableHashSet from "effect/MutableHashSet";
11
+ import * as Option from "effect/Option";
12
+ import * as Schema from "effect/Schema";
13
+ import * as Effect from "effect/Effect";
14
+ import * as Order from "effect/Order";
15
+ import * as Record from "effect/Record";
16
+ import * as Result from "effect/Result";
17
+ // src/n3/internal/builtins.ts
18
+ /**
19
+ * A small library of N3 builtins (`math:`, `string:`, `list:`, `log:`).
20
+ *
21
+ * A builtin receives its subject and object with the current bindings
22
+ * applied and returns the extended bindings for each solution, or
23
+ * `undefined` when it cannot be evaluated yet (an input is still unbound).
24
+ *
25
+ * @internal
26
+ */
27
+ const notReady = Option.none();
28
+ /** The builtin's solutions. */
29
+ const solutions = (bs) => Option.some(bs);
30
+ /** No solutions once `t` is ground, not ready while it is not. */
31
+ const noneOnceReady = (t) => ready(t) ? solutions([]) : notReady;
32
+ const TRUE = literal("true", xsd.boolean);
33
+ /** Whether a term contains no variables (blank nodes count as ground). */
34
+ const ground = (t) => isGround(t);
35
+ const NUMERIC = /^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?$/;
36
+ const toNum = (t) => {
37
+ if (!isLiteral(t)) return Option.none();
38
+ const v = t.value.trim();
39
+ const dt = t.datatype.value;
40
+ if ((dt === xsd.double.value || dt === xsd.float.value) && /^(?:[+-]?INF|NaN)$/.test(v)) return Option.some({
41
+ kind: "double",
42
+ value: v === "NaN" ? NaN : v.startsWith("-") ? -Infinity : Infinity
43
+ });
44
+ if (!NUMERIC.test(v)) return Option.none();
45
+ if (isIntegerDatatype(dt) || dt === "http://www.w3.org/2001/XMLSchema#string" && /^[+-]?\d+$/.test(v)) return Option.some({
46
+ kind: "integer",
47
+ value: BigInt(v)
48
+ });
49
+ if (dt === xsd.double.value || dt === xsd.float.value || /[eE]/.test(v)) return Option.some({
50
+ kind: "double",
51
+ value: Number(v)
52
+ });
53
+ if (dt === xsd.decimal.value || dt === "http://www.w3.org/2001/XMLSchema#string") return Option.some({
54
+ kind: "decimal",
55
+ value: Number(v)
56
+ });
57
+ return Option.none();
58
+ };
59
+ const asNumber = (n) => n.kind === "integer" ? Number(n.value) : n.value;
60
+ /** The literal of an arithmetic result. */
61
+ const fromNum = (n) => {
62
+ if (n.kind === "integer") return literal(n.value.toString(), xsd.integer);
63
+ if (n.kind === "double") return literal(canonicalDouble(n.value), xsd.double);
64
+ const s = String(Number(n.value.toPrecision(15)));
65
+ return Number.isFinite(n.value) && !/e/i.test(s) ? literal(s.includes(".") ? s : `${s}.0`, xsd.decimal) : literal(canonicalDouble(n.value), xsd.double);
66
+ };
67
+ const numEquals = (a, b) => {
68
+ if (a.kind === "integer" && b.kind === "integer") return a.value === b.value;
69
+ const x = asNumber(a);
70
+ const y = asNumber(b);
71
+ if (x === y) return true;
72
+ if (!Number.isFinite(x) || !Number.isFinite(y)) return false;
73
+ return Math.abs(x - y) <= 1e-12 * Math.max(Math.abs(x), Math.abs(y));
74
+ };
75
+ const resultKind = (ns) => ns.some((n) => n.kind === "double") ? "double" : ns.some((n) => n.kind === "decimal") ? "decimal" : "integer";
76
+ const numbersOf = (t) => isCollection(t) ? Option.all(t.items.map(toNum)) : Option.none();
77
+ /** Unifies the object with a computed value (or checks it). */
78
+ const output = (object, value, b, ctx) => {
79
+ if (Option.isNone(value)) return solutions([]);
80
+ if (ground(object)) {
81
+ const on = toNum(object);
82
+ const vn = toNum(value.value);
83
+ if (Option.isSome(on) && Option.isSome(vn)) return solutions(numEquals(on.value, vn.value) ? [b] : []);
84
+ }
85
+ return solutions(ctx.unify(object, value.value, b));
86
+ };
87
+ const ready = (t) => ground(t);
88
+ const listFunction = (f, arity = -1) => (s, o, b, ctx) => {
89
+ if (!ready(s)) return notReady;
90
+ const ns = numbersOf(s);
91
+ if (Option.isNone(ns) || arity >= 0 && ns.value.length !== arity) return solutions([]);
92
+ const r = f(ns.value);
93
+ return Option.isNone(r) ? solutions([]) : output(o, Option.some(fromNum(r.value)), b, ctx);
94
+ };
95
+ const unaryFunction = (f, inverse) => (s, o, b, ctx) => {
96
+ if (!ready(s)) {
97
+ if (inverse === void 0 || !ready(o)) return notReady;
98
+ const n = toNum(o);
99
+ return solutions(Option.isNone(n) ? [] : ctx.unify(s, fromNum(inverse(n.value)), b));
100
+ }
101
+ const n = toNum(s);
102
+ return Option.isNone(n) ? solutions([]) : output(o, Option.some(fromNum(f(n.value))), b, ctx);
103
+ };
104
+ const real = (f) => (n) => ({
105
+ kind: "double",
106
+ value: f(asNumber(n))
107
+ });
108
+ const comparison = (test) => (s, o, b) => {
109
+ if (!ready(s) || !ready(o)) return notReady;
110
+ const xs = toNum(s);
111
+ const ys = toNum(o);
112
+ if (Option.isNone(xs) || Option.isNone(ys)) return solutions([]);
113
+ const x = xs.value;
114
+ const y = ys.value;
115
+ const c = Number.isNaN(asNumber(x)) || Number.isNaN(asNumber(y)) ? NaN : numEquals(x, y) ? 0 : asNumber(x) < asNumber(y) ? -1 : 1;
116
+ return solutions(test(c) ? [b] : []);
117
+ };
118
+ /** Folds the numbers as integers when they all are, else as reals. */
119
+ const fold = (int, int0, float, float0) => (ns) => {
120
+ const kind = resultKind(ns);
121
+ return Option.some(kind === "integer" ? {
122
+ kind,
123
+ value: ns.reduce((a, n) => n.kind === "integer" ? int(a, n.value) : a, int0)
124
+ } : {
125
+ kind,
126
+ value: ns.reduce((a, n) => float(a, asNumber(n)), float0)
127
+ });
128
+ };
129
+ const sum = fold((a, n) => a + n, 0n, (a, n) => a + n, 0);
130
+ const product = fold((a, n) => a * n, 1n, (a, n) => a * n, 1);
131
+ const noInteger = () => Option.none();
132
+ const binary = (int, float, forceReal = false) => (ns) => {
133
+ const [a, c] = ns;
134
+ if (a === void 0 || c === void 0) return Option.none();
135
+ const kind = resultKind(ns);
136
+ let outKind = kind === "integer" ? "decimal" : kind;
137
+ if (a.kind === "integer" && c.kind === "integer" && !forceReal) {
138
+ const r = int(a.value, c.value);
139
+ if (Option.isSome(r)) return Option.some({
140
+ kind: "integer",
141
+ value: r.value
142
+ });
143
+ outKind = "double";
144
+ }
145
+ const r = float(asNumber(a), asNumber(c));
146
+ if (outKind !== "double" && !Number.isFinite(r)) return Option.none();
147
+ return Option.some({
148
+ kind: outKind,
149
+ value: r
150
+ });
151
+ };
152
+ const mathBuiltins = {
153
+ sum: listFunction(sum),
154
+ product: listFunction(product),
155
+ difference: listFunction(binary((a, b) => Option.some(a - b), (a, b) => a - b), 2),
156
+ quotient: listFunction(binary(noInteger, (a, b) => a / b, true), 2),
157
+ integerQuotient: listFunction((ns) => {
158
+ const [a, b] = ns.map(asNumber);
159
+ return a === void 0 || b === void 0 || b === 0 ? Option.none() : Option.some({
160
+ kind: "integer",
161
+ value: BigInt(Math.trunc(a / b))
162
+ });
163
+ }, 2),
164
+ remainder: listFunction((ns) => {
165
+ const [a, b] = ns;
166
+ if (a?.kind !== "integer" || b?.kind !== "integer" || b.value === 0n) return Option.none();
167
+ return Option.some({
168
+ kind: "integer",
169
+ value: (a.value % b.value + b.value) % b.value
170
+ });
171
+ }, 2),
172
+ exponentiation: listFunction(binary((a, b) => b >= 0n ? Option.some(a ** b) : Option.none(), (a, b) => a ** b), 2),
173
+ negation: unaryFunction((n) => n.kind === "integer" ? {
174
+ kind: n.kind,
175
+ value: -n.value
176
+ } : {
177
+ kind: n.kind,
178
+ value: -n.value
179
+ }, (n) => n.kind === "integer" ? {
180
+ kind: n.kind,
181
+ value: -n.value
182
+ } : {
183
+ kind: n.kind,
184
+ value: -n.value
185
+ }),
186
+ absoluteValue: unaryFunction((n) => n.kind === "integer" ? {
187
+ kind: n.kind,
188
+ value: n.value < 0n ? -n.value : n.value
189
+ } : {
190
+ kind: n.kind,
191
+ value: Math.abs(n.value)
192
+ }),
193
+ rounded: unaryFunction((n) => n.kind === "integer" ? n : {
194
+ kind: n.kind,
195
+ value: Math.round(n.value)
196
+ }),
197
+ floor: unaryFunction((n) => ({
198
+ kind: "integer",
199
+ value: BigInt(Math.floor(asNumber(n)))
200
+ })),
201
+ ceiling: unaryFunction((n) => ({
202
+ kind: "integer",
203
+ value: BigInt(Math.ceil(asNumber(n)))
204
+ })),
205
+ sin: unaryFunction(real(Math.sin), real(Math.asin)),
206
+ cos: unaryFunction(real(Math.cos), real(Math.acos)),
207
+ tan: unaryFunction(real(Math.tan), real(Math.atan)),
208
+ asin: unaryFunction(real(Math.asin), real(Math.sin)),
209
+ acos: unaryFunction(real(Math.acos), real(Math.cos)),
210
+ atan: unaryFunction(real(Math.atan), real(Math.tan)),
211
+ sinh: unaryFunction(real(Math.sinh), real(Math.asinh)),
212
+ cosh: unaryFunction(real(Math.cosh)),
213
+ tanh: unaryFunction(real(Math.tanh), real(Math.atanh)),
214
+ degrees: unaryFunction(real((x) => x * 180 / Math.PI), real((x) => x * Math.PI / 180)),
215
+ greaterThan: comparison((c) => c > 0),
216
+ lessThan: comparison((c) => c < 0),
217
+ notGreaterThan: comparison((c) => c <= 0),
218
+ notLessThan: comparison((c) => c >= 0),
219
+ equalTo: comparison((c) => c === 0),
220
+ notEqualTo: comparison((c) => !(c === 0))
221
+ };
222
+ /** The XPath string value of a literal (numbers and booleans in canonical form). */
223
+ const literalString = (t) => {
224
+ const dt = t.datatype.value;
225
+ if (dt === xsd.boolean.value) return t.value === "1" || t.value === "true" ? "true" : "false";
226
+ if (dt !== "http://www.w3.org/2001/XMLSchema#string" && isNumericDatatype(dt)) {
227
+ const num = toNum(t);
228
+ if (Option.isSome(num)) {
229
+ const n = num.value;
230
+ if (n.kind === "integer") return n.value.toString();
231
+ if (Number.isNaN(n.value)) return "NaN";
232
+ if (!Number.isFinite(n.value)) return n.value > 0 ? "INF" : "-INF";
233
+ return String(n.value);
234
+ }
235
+ }
236
+ return t.value;
237
+ };
238
+ /** The XPath string value of a term: of a literal or an IRI. */
239
+ const str = (t) => isLiteral(t) ? Option.some(literalString(t)) : isNamedNode(t) ? Option.some(t.value) : Option.none();
240
+ const stringTest = (test) => (s, o, b) => {
241
+ if (!ready(s) || !ready(o)) return notReady;
242
+ const x = str(s);
243
+ const y = str(o);
244
+ return solutions(Option.isSome(x) && Option.isSome(y) && test(x.value, y.value) ? [b] : []);
245
+ };
246
+ const stringsOf = (t) => isCollection(t) ? Option.all(t.items.map(str)) : Option.none();
247
+ const stringFunction = (f) => (s, o, b, ctx) => {
248
+ if (!ready(s)) return notReady;
249
+ const r = Option.flatMap(stringsOf(s), f);
250
+ return solutions(Option.isNone(r) ? [] : ctx.unify(o, literal(r.value), b));
251
+ };
252
+ const regex = (pattern, flags = "") => Result.getSuccess(Result.try(() => new RegExp(pattern, flags)));
253
+ const stringBuiltins = {
254
+ concatenation: stringFunction((args) => Option.some(args.join(""))),
255
+ contains: stringTest((a, b) => a.includes(b)),
256
+ containsIgnoringCase: stringTest((a, b) => a.toLowerCase().includes(b.toLowerCase())),
257
+ startsWith: stringTest((a, b) => a.startsWith(b)),
258
+ endsWith: stringTest((a, b) => a.endsWith(b)),
259
+ equalIgnoringCase: stringTest((a, b) => a.toLowerCase() === b.toLowerCase()),
260
+ notEqualIgnoringCase: stringTest((a, b) => a.toLowerCase() !== b.toLowerCase()),
261
+ greaterThan: stringTest((a, b) => a > b),
262
+ lessThan: stringTest((a, b) => a < b),
263
+ notGreaterThan: stringTest((a, b) => a <= b),
264
+ notLessThan: stringTest((a, b) => a >= b),
265
+ matches: stringTest((a, b) => Option.exists(regex(b), (re) => re.test(a))),
266
+ notMatches: stringTest((a, b) => !Option.match(regex(b), {
267
+ onNone: () => true,
268
+ onSome: (re) => re.test(a)
269
+ })),
270
+ replace: stringFunction(([s, p, r]) => {
271
+ if (s === void 0 || p === void 0 || r === void 0) return Option.none();
272
+ return Option.map(regex(p, "g"), (re) => s.replace(re, r.replace(/\\(\d)/g, "$$$1")));
273
+ }),
274
+ scrape: stringFunction(([s, p]) => {
275
+ if (s === void 0 || p === void 0) return Option.none();
276
+ return Option.flatMap(regex(p), (re) => Option.fromUndefinedOr(re.exec(s)?.[1]));
277
+ }),
278
+ format: stringFunction(([fmt, ...args]) => {
279
+ if (fmt === void 0) return Option.none();
280
+ let i = 0;
281
+ return Option.some(fmt.replace(/%s/g, () => args[i++] ?? ""));
282
+ })
283
+ };
284
+ /** The two items of a two-item collection. */
285
+ const pairOf = (t) => {
286
+ if (!isCollection(t)) return Option.none();
287
+ const [x, y] = t.items;
288
+ return t.items.length === 2 && x !== void 0 && y !== void 0 ? Option.some([x, y]) : Option.none();
289
+ };
290
+ /** The three items of a three-item collection. */
291
+ const tripleOf = (t) => {
292
+ if (!isCollection(t)) return Option.none();
293
+ const [x, y, z] = t.items;
294
+ return t.items.length === 3 && x !== void 0 && y !== void 0 && z !== void 0 ? Option.some([
295
+ x,
296
+ y,
297
+ z
298
+ ]) : Option.none();
299
+ };
300
+ const noSolutions = () => [];
301
+ const integerLiteral = (n) => literal(String(n), xsd.integer);
302
+ const listBuiltins = {
303
+ in: (s, o, b, ctx) => {
304
+ if (!isCollection(o)) return noneOnceReady(o);
305
+ return solutions(o.items.flatMap((item) => ctx.unify(s, item, b)));
306
+ },
307
+ member: (s, o, b, ctx) => {
308
+ if (!isCollection(s)) return noneOnceReady(s);
309
+ return solutions(s.items.flatMap((item) => ctx.unify(o, item, b)));
310
+ },
311
+ length: (s, o, b, ctx) => !isCollection(s) ? noneOnceReady(s) : output(o, Option.some(integerLiteral(s.items.length)), b, ctx),
312
+ first: (s, o, b, ctx) => !isCollection(s) ? noneOnceReady(s) : output(o, Option.fromUndefinedOr(s.items[0]), b, ctx),
313
+ last: (s, o, b, ctx) => !isCollection(s) ? noneOnceReady(s) : output(o, Option.fromUndefinedOr(s.items.at(-1)), b, ctx),
314
+ rest: (s, o, b, ctx) => !isCollection(s) || Arr.isReadonlyArrayEmpty(s.items) ? noneOnceReady(s) : solutions(ctx.unify(o, new Collection(s.items.slice(1)), b)),
315
+ append: (s, o, b, ctx) => {
316
+ if (!ready(s)) return notReady;
317
+ if (!isCollection(s) || !s.items.every(isCollection)) return solutions([]);
318
+ return solutions(ctx.unify(o, new Collection(s.items.flatMap((l) => isCollection(l) ? l.items : [])), b));
319
+ },
320
+ iterate: (s, o, b, ctx) => {
321
+ if (!isCollection(s)) return noneOnceReady(s);
322
+ return solutions(s.items.flatMap((item, i) => ctx.unify(o, new Collection([integerLiteral(i), item]), b)));
323
+ },
324
+ memberAt: (s, o, b, ctx) => {
325
+ if (!ready(s)) return notReady;
326
+ const found = Option.flatMap(pairOf(s), ([l, idx]) => isCollection(l) ? Option.map(toNum(idx), (n) => Option.fromUndefinedOr(l.items[asNumber(n)])) : Option.none());
327
+ return Option.isNone(found) ? solutions([]) : output(o, found.value, b, ctx);
328
+ },
329
+ remove: (s, o, b, ctx) => {
330
+ if (!ready(s)) return notReady;
331
+ return solutions(Option.match(pairOf(s), {
332
+ onNone: noSolutions,
333
+ onSome: ([l, x]) => isCollection(l) ? ctx.unify(o, new Collection(l.items.filter((i) => i.key !== x.key)), b) : []
334
+ }));
335
+ }
336
+ };
337
+ const scopeOf = (t, ctx) => isFormula(t) ? Option.some(t) : isLiteral(t) && t.key === TRUE.key ? Option.some(emptyFormula) : isBlankNode(t) ? Option.some(ctx.document()) : Option.none();
338
+ const noGoals$1 = [];
339
+ const goalsOf$1 = (t) => isFormula(t) ? Option.some(t.statements) : t.key === TRUE.key ? Option.some(noGoals$1) : Option.none();
340
+ /**
341
+ * `log:includes` / `log:notIncludes`: queries the subject formula for the
342
+ * object's statements and maps the solutions with `answer`. An unbound or
343
+ * non-formula operand gives no solutions once the subject is ground, and is
344
+ * not ready otherwise.
345
+ */
346
+ const included = (s, o, b, ctx, answer) => {
347
+ const scope = scopeOf(s, ctx);
348
+ const goals = goalsOf$1(o);
349
+ if (Option.isNone(scope) || Option.isNone(goals)) return noneOnceReady(s);
350
+ return solutions(answer(ctx.query(scope.value, goals.value, b, false)));
351
+ };
352
+ const logBuiltins = {
353
+ equalTo: (s, o, b, ctx) => solutions(ctx.unify(s, o, b)),
354
+ notEqualTo: (s, o, b) => !ready(s) || !ready(o) ? notReady : solutions(s.key !== o.key ? [b] : []),
355
+ includes: (s, o, b, ctx) => included(s, o, b, ctx, (found) => found),
356
+ notIncludes: (s, o, b, ctx) => included(s, o, b, ctx, (found) => Arr.isReadonlyArrayEmpty(found) ? [b] : []),
357
+ conjunction: (s, o, b, ctx) => {
358
+ if (!ready(s)) return notReady;
359
+ if (!isCollection(s)) return solutions([]);
360
+ const parts = Option.all(s.items.map(goalsOf$1));
361
+ if (Option.isNone(parts)) return solutions([]);
362
+ return solutions(ctx.unify(o, new Formula(parts.value.flat()), b));
363
+ },
364
+ conclusion: (s, o, b, ctx) => {
365
+ const f = s.key === TRUE.key ? emptyFormula : s;
366
+ if (!isFormula(f)) return noneOnceReady(s);
367
+ return solutions(ctx.unify(o, ctx.conclusion(f), b));
368
+ },
369
+ uri: (s, o, b, ctx) => {
370
+ if (isNamedNode(s)) return solutions(ctx.unify(o, literal(s.value), b));
371
+ if (isLiteral(o)) return solutions(ctx.unify(s, namedNode(o.value), b));
372
+ return noneOnceReady(s);
373
+ },
374
+ dtlit: (s, o, b, ctx) => {
375
+ const pair = pairOf(s);
376
+ if (Option.isSome(pair) && ready(s)) {
377
+ const [lex, dt] = pair.value;
378
+ if (!isLiteral(lex) || !isNamedNode(dt)) return solutions([]);
379
+ return solutions(ctx.unify(o, literal(lex.value, dt), b));
380
+ }
381
+ if (isLiteral(o)) return solutions(ctx.unify(s, new Collection([literal(o.value), o.datatype]), b));
382
+ return notReady;
383
+ },
384
+ langlit: (s, o, b, ctx) => {
385
+ const pair = pairOf(s);
386
+ if (Option.isSome(pair) && ready(s)) {
387
+ const [lex, lang] = pair.value;
388
+ if (!isLiteral(lex) || !isLiteral(lang)) return solutions([]);
389
+ return solutions(ctx.unify(o, literal(lex.value, lang.value), b));
390
+ }
391
+ if (isLiteral(o) && o.language !== "") return solutions(ctx.unify(s, new Collection([literal(o.value), literal(o.language)]), b));
392
+ return notReady;
393
+ },
394
+ rawType: (s, o, b, ctx) => {
395
+ if (!ready(s)) return notReady;
396
+ const type = isFormula(s) ? log.Formula : isLiteral(s) ? log.Literal : isCollection(s) ? log.List : log.Other;
397
+ return solutions(ctx.unify(o, type, b));
398
+ },
399
+ collectAllIn: (s, o, b, ctx) => solutions(Option.match(Option.flatMap(tripleOf(s), ([template, where, result]) => Option.map(Option.all([scopeOf(o, ctx), goalsOf$1(where)]), ([scope, goals]) => ({
400
+ template,
401
+ result,
402
+ scope,
403
+ goals
404
+ }))), {
405
+ onNone: noSolutions,
406
+ onSome: ({ template, result, scope, goals }) => {
407
+ const values = ctx.query(scope, goals, b, true).map((sol) => substitute(template, sol));
408
+ return ctx.unify(result, new Collection(values), b);
409
+ }
410
+ })),
411
+ forAllIn: (s, o, b, ctx) => solutions(Option.match(Option.flatMap(pairOf(s), ([w, t]) => {
412
+ const where = goalsOf$1(w);
413
+ const then = goalsOf$1(t);
414
+ return Option.all([
415
+ scopeOf(o, ctx),
416
+ where,
417
+ then
418
+ ]);
419
+ }), {
420
+ onNone: noSolutions,
421
+ onSome: ([scope, where, then]) => ctx.query(scope, where, b, true).every((sol) => Arr.isReadonlyArrayNonEmpty(ctx.query(scope, then, sol, true))) ? [b] : []
422
+ }))
423
+ };
424
+ const table = MutableHashMap.empty();
425
+ [
426
+ [math.base, mathBuiltins],
427
+ [string.base, stringBuiltins],
428
+ [list.base, listBuiltins],
429
+ [log.base, logBuiltins]
430
+ ].forEach(([ns, builtins]) => {
431
+ Record.toEntries(builtins).forEach(([name, f]) => MutableHashMap.set(table, ns + name, f));
432
+ });
433
+ /** @internal */
434
+ const builtinFor = (predicate) => isNamedNode(predicate) ? MutableHashMap.get(table, predicate.value) : Option.none();
435
+ Arr.fromIterable(MutableHashMap.keys(table));
436
+ // src/n3/Reasoner.ts
437
+ /**
438
+ * A simple forward-chaining N3 reasoner.
439
+ *
440
+ * Rules are the top-level statements `{ premise } => { conclusion }` (and
441
+ * `{ conclusion } <= { premise }`). The reasoner repeatedly matches every
442
+ * rule premise against the current statements — joining triple patterns with
443
+ * backtracking and evaluating builtins — and adds the instantiated
444
+ * conclusions, until a fixpoint is reached.
445
+ *
446
+ * - Variables (`?x`) and blank nodes in a premise are matched like query
447
+ * variables; blank nodes that occur only in a conclusion are instantiated
448
+ * with fresh blank nodes for each distinct set of bindings (so the closure
449
+ * is finite whenever the rules do not keep inventing new terms).
450
+ * - Rules inferred by other rules are applied too.
451
+ * - A conclusion `false` signals an inconsistency and fails with
452
+ * `ReasonerError`.
453
+ * - Builtins: a pragmatic subset of `math:` (arithmetic, comparisons,
454
+ * trigonometry), `string:` (concatenation, comparisons, regular
455
+ * expressions), `list:` (`in`, `member`, `length`, `first`, `last`, `rest`,
456
+ * `append`, `iterate`, `memberAt`, `remove`) and `log:` (`equalTo`,
457
+ * `notEqualTo`, `includes`, `notIncludes`, `conjunction`, `uri`, `dtlit`,
458
+ * `langlit`, `rawType`, `collectAllIn`, `forAllIn`). Builtins whose inputs
459
+ * are not yet bound are deferred until the other premise statements have
460
+ * been matched.
461
+ *
462
+ * @since 0.1.0
463
+ */
464
+ var Reasoner_exports = /* @__PURE__ */ __exportAll({
465
+ ReasonerError: () => ReasonerError,
466
+ query: () => query,
467
+ reason: () => reason,
468
+ rules: () => rules
469
+ });
470
+ /**
471
+ * Reasoning failed: an inconsistency was derived or a limit was exceeded.
472
+ *
473
+ * @since 0.1.0
474
+ * @category errors
475
+ */
476
+ var ReasonerError = class extends Schema.TaggedError()("N3ReasonerError", { message: Schema.String }) {};
477
+ const TRUE_KEY = literal("true", xsd.boolean).key;
478
+ const FALSE_KEY = literal("false", xsd.boolean).key;
479
+ const noGoals = [];
480
+ const goalsOf = (t) => isFormula(t) ? Option.some(t.statements) : t.key === TRUE_KEY ? Option.some(noGoals) : Option.none();
481
+ /** Premise blank nodes become rule-local variables. */
482
+ const BLANK_VAR = "\0b:";
483
+ /** Blank nodes at the top level of statements (not inside nested formulas). */
484
+ const topBlanks = (statements) => {
485
+ const out = MutableHashSet.empty();
486
+ const go = (t) => {
487
+ if (isBlankNode(t)) MutableHashSet.add(out, t.value);
488
+ else if (isCollection(t)) t.items.forEach(go);
489
+ };
490
+ statements.forEach((s) => {
491
+ go(s.subject);
492
+ go(s.predicate);
493
+ go(s.object);
494
+ });
495
+ return out;
496
+ };
497
+ /** Replaces the given blank nodes (outside nested formulas) by variables. */
498
+ const blanksToVariables = (t, blanks) => isBlankNode(t) && MutableHashSet.has(blanks, t.value) ? new Variable(BLANK_VAR + t.value) : isCollection(t) ? new Collection(t.items.map((x) => blanksToVariables(x, blanks))) : t;
499
+ const statementBlanksToVariables = (s, blanks) => new Statement(blanksToVariables(s.subject, blanks), blanksToVariables(s.predicate, blanks), blanksToVariables(s.object, blanks));
500
+ /**
501
+ * Extracts the rules (`=>` and `<=` statements between formulas) of a
502
+ * formula's top level.
503
+ *
504
+ * @since 0.1.0
505
+ * @category rules
506
+ */
507
+ const rules = (formula) => Arr.getSomes(formula.statements.map((s) => {
508
+ if (!isNamedNode(s.predicate)) return Option.none();
509
+ const forward = s.predicate.value === log.implies.value;
510
+ const backward = s.predicate.value === log.isImpliedBy.value;
511
+ if (!forward && !backward) return Option.none();
512
+ const premiseTerm = forward ? s.subject : s.object;
513
+ const conclusion = forward ? s.object : s.subject;
514
+ return Option.map(goalsOf(premiseTerm), (premise) => {
515
+ const blanks = topBlanks(premise);
516
+ return {
517
+ premise: premise.map((p) => statementBlanksToVariables(p, blanks)),
518
+ conclusion: isFormula(conclusion) ? new Formula(conclusion.statements.map((c) => statementBlanksToVariables(c, blanks))) : conclusion,
519
+ source: s
520
+ };
521
+ });
522
+ }));
523
+ /** The bindings that bind nothing. */
524
+ const noBindings = MutableHashMap.empty().backing;
525
+ /** `b` with `name` bound to `value` (a copy: bindings are shared between solutions). */
526
+ const extend = (b, name, value) => {
527
+ const next = MutableHashMap.fromIterable(b);
528
+ MutableHashMap.set(next, name, value);
529
+ return next.backing;
530
+ };
531
+ const noStatements = [];
532
+ var Store = class {
533
+ all = [];
534
+ keys = MutableHashSet.empty();
535
+ byPredicate = MutableHashMap.empty();
536
+ constructor(statements = []) {
537
+ Arr.fromIterable(statements).forEach((s) => this.add(s));
538
+ }
539
+ has(s) {
540
+ return MutableHashSet.has(this.keys, s.key);
541
+ }
542
+ add(s) {
543
+ if (this.has(s)) return false;
544
+ MutableHashSet.add(this.keys, s.key);
545
+ this.all.push(s);
546
+ const k = s.predicate.key;
547
+ const l = this.byPredicate.backing.get(k);
548
+ if (l === void 0) MutableHashMap.set(this.byPredicate, k, [s]);
549
+ else l.push(s);
550
+ return true;
551
+ }
552
+ /** The statements with the predicate `key`. */
553
+ withPredicate(key) {
554
+ return this.byPredicate.backing.get(key) ?? noStatements;
555
+ }
556
+ };
557
+ /** The term a variable is bound to, through chains of variables (it recurses once per link). */
558
+ const walk = (t, b) => {
559
+ if (!isVariable(t)) return t;
560
+ const next = b.get(t.value);
561
+ return next === void 0 ? t : walk(next, b);
562
+ };
563
+ const resolve = (t, b) => b.size === 0 ? t : substitute(t, b);
564
+ const unify = (pattern, term, b) => {
565
+ const p = walk(pattern, b);
566
+ if (isVariable(p)) {
567
+ if (isVariable(term) && term.value === p.value) return [b];
568
+ return [extend(b, p.value, term)];
569
+ }
570
+ const t = isVariable(term) ? walk(term, b) : term;
571
+ if (p instanceof Collection) {
572
+ if (!(t instanceof Collection) || t.items.length !== p.items.length) return [];
573
+ return p.items.reduce((results, item, i) => {
574
+ const other = t.items[i];
575
+ return other === void 0 ? [] : results.flatMap((r) => unify(item, other, r));
576
+ }, [b]);
577
+ }
578
+ if (p instanceof Formula) {
579
+ if (!(t instanceof Formula) || t.statements.length !== p.statements.length) return [];
580
+ if (isGround(p)) return p.key === t.key || isomorphic(p, t) ? [b] : [];
581
+ return matchFormula(p.statements, t.statements, b);
582
+ }
583
+ return p.key === t.key ? [b] : [];
584
+ };
585
+ /** Matches each pattern statement to a distinct statement of `target`. */
586
+ const matchFormula = (patterns, target, b) => {
587
+ const out = [];
588
+ const used = new Uint8Array(target.length);
589
+ const go = (i, cur) => {
590
+ const p = patterns[i];
591
+ if (p === void 0) {
592
+ out.push(cur);
593
+ return;
594
+ }
595
+ target.forEach((s, j) => {
596
+ if (used[j] === 1) return;
597
+ used[j] = 1;
598
+ unifyStatement(p, s, cur).forEach((r) => go(i + 1, r));
599
+ used[j] = 0;
600
+ });
601
+ };
602
+ go(0, b);
603
+ return out;
604
+ };
605
+ const unifyStatement = (p, s, b) => unify(p.predicate, s.predicate, b).flatMap((r) => unify(p.subject, s.subject, r)).flatMap((r) => unify(p.object, s.object, r));
606
+ const solve = (store, goals, b, engine) => {
607
+ const out = [];
608
+ const ctx = {
609
+ unify,
610
+ query: (scope, scopeGoals, bindings, builtins) => {
611
+ const blanks = topBlanks(scopeGoals);
612
+ return solve(new Store(scope.statements), scopeGoals.map((g) => statementBlanksToVariables(g, blanks)), bindings, {
613
+ ...engine,
614
+ builtins: engine.builtins && builtins
615
+ });
616
+ },
617
+ document: engine.document,
618
+ conclusion: engine.conclusion
619
+ };
620
+ const go = (remaining, cur, deferred) => {
621
+ if (!Arr.isReadonlyArrayNonEmpty(remaining)) {
622
+ out.push(cur);
623
+ return;
624
+ }
625
+ const [goal, ...rest] = remaining;
626
+ const builtin = engine.builtins ? builtinFor(walk(goal.predicate, cur)) : Option.none();
627
+ if (Option.isSome(builtin)) {
628
+ const results = builtin.value(resolve(goal.subject, cur), resolve(goal.object, cur), cur, ctx);
629
+ if (Option.isNone(results)) {
630
+ if (deferred < remaining.length) go([...rest, goal], cur, deferred + 1);
631
+ return;
632
+ }
633
+ results.value.forEach((r) => go(rest, r, 0));
634
+ return;
635
+ }
636
+ const predicate = walk(goal.predicate, cur);
637
+ const subject = walk(goal.subject, cur);
638
+ const listPredicate = predicate.key === rdf.first.key || predicate.key === rdf.rest.key;
639
+ if (listPredicate && isVariable(subject) && deferred < remaining.length) {
640
+ go([...rest, goal], cur, deferred + 1);
641
+ return;
642
+ }
643
+ if (listPredicate && subject instanceof Collection && Arr.isReadonlyArrayNonEmpty(subject.items)) {
644
+ const value = predicate.key === rdf.first.key ? subject.items[0] : subject.items.length === 1 ? rdf.nil : new Collection(subject.items.slice(1));
645
+ unify(goal.object, value, cur).forEach((r) => go(rest, r, 0));
646
+ return;
647
+ }
648
+ (isVariable(predicate) ? store.all : store.withPredicate(predicate.key)).forEach((s) => {
649
+ unifyStatement(goal, s, cur).forEach((r) => go(rest, r, 0));
650
+ });
651
+ };
652
+ go(goals, b, 0);
653
+ return out;
654
+ };
655
+ const hash = (s) => {
656
+ let h1 = 2166136261;
657
+ let h2 = 16777619;
658
+ loop((i) => {
659
+ if (i >= s.length) return false;
660
+ const c = s.charCodeAt(i);
661
+ h1 = Math.imul(h1 ^ c, 16777619);
662
+ h2 = Math.imul(h2 ^ c, 1540483477);
663
+ return true;
664
+ });
665
+ return (h1 >>> 0).toString(36) + (h2 >>> 0).toString(36);
666
+ };
667
+ var Inconsistency = class {
668
+ rule;
669
+ constructor(rule) {
670
+ this.rule = rule;
671
+ }
672
+ };
673
+ const instantiate = (rule, b) => {
674
+ const conclusion = walk(rule.conclusion, b);
675
+ if (conclusion.key === FALSE_KEY) throw new Inconsistency(rule.source);
676
+ if (conclusion !== rule.conclusion) return Option.getOrElse(goalsOf(resolve(conclusion, b)), () => noGoals);
677
+ const goals = goalsOf(conclusion);
678
+ if (Option.isNone(goals)) return noGoals;
679
+ const used = MutableHashSet.fromIterable(variables(conclusion).map((v) => v.value));
680
+ const entries = Arr.fromIterable(b).filter(([k]) => MutableHashSet.has(used, k)).map(([k, v]) => `${k}=${resolve(v, b).key}`);
681
+ const signature = Arr.sort(entries, Order.String).join("|");
682
+ const fresh = MutableHashMap.empty();
683
+ const skolem = (label) => {
684
+ const known = fresh.backing.get(label);
685
+ if (known !== void 0) return known;
686
+ const node = new BlankNode(`sk${hash(`${rule.source.key}|${signature}|${label}`)}`);
687
+ MutableHashMap.set(fresh, label, node);
688
+ return node;
689
+ };
690
+ const top = (t) => isBlankNode(t) ? skolem(t.value) : isCollection(t) ? new Collection(t.items.map(top)) : t;
691
+ return goals.value.map((s) => new Statement(resolve(top(s.subject), b), resolve(top(s.predicate), b), resolve(top(s.object), b)));
692
+ };
693
+ var LimitExceeded = class {
694
+ message;
695
+ constructor(message) {
696
+ this.message = message;
697
+ }
698
+ };
699
+ /** Forward chaining to a fixpoint; throws `Inconsistency` / `LimitExceeded`. */
700
+ const closureOf = (input, options, depth = 0) => {
701
+ const maxRounds = options?.maxRounds ?? 1e3;
702
+ const maxStatements = options?.maxStatements ?? 1e6;
703
+ const store = new Store(input.statements);
704
+ const inferred = [];
705
+ let snapshot = Option.none();
706
+ const engine = {
707
+ builtins: options?.builtins ?? true,
708
+ document: () => {
709
+ if (Option.isSome(snapshot)) return snapshot.value;
710
+ const f = new Formula(store.all);
711
+ snapshot = Option.some(f);
712
+ return f;
713
+ },
714
+ conclusion: (f) => {
715
+ if (depth > 8) throw new LimitExceeded("log:conclusion nested too deeply");
716
+ return closureOf(f, options, depth + 1).closure;
717
+ }
718
+ };
719
+ let result = Option.none();
720
+ loop((i) => {
721
+ const round = i + 1;
722
+ if (round > maxRounds) return false;
723
+ snapshot = Option.none();
724
+ const fresh = [];
725
+ rules(new Formula(store.all)).forEach((rule) => {
726
+ solve(store, rule.premise, noBindings, engine).forEach((b) => {
727
+ instantiate(rule, b).forEach((s) => {
728
+ if (!store.has(s)) fresh.push(s);
729
+ });
730
+ });
731
+ });
732
+ let added = 0;
733
+ fresh.forEach((s) => {
734
+ if (store.add(s)) {
735
+ inferred.push(s);
736
+ added++;
737
+ }
738
+ });
739
+ if (store.all.length > maxStatements) throw new LimitExceeded(`Closure exceeds ${maxStatements} statements`);
740
+ if (added > 0) return true;
741
+ result = Option.some({
742
+ closure: new Formula(store.all),
743
+ inferred: new Formula(inferred),
744
+ rounds: round
745
+ });
746
+ return false;
747
+ });
748
+ if (Option.isSome(result)) return result.value;
749
+ throw new LimitExceeded(`No fixpoint after ${maxRounds} rounds`);
750
+ };
751
+ /**
752
+ * Computes the deductive closure of a formula under its rules.
753
+ *
754
+ * @example
755
+ * ```ts
756
+ * import { Effect } from 'effect'
757
+ * import { N3, Reasoner } from '@thomasfosterau/effect-rdf/n3'
758
+ *
759
+ * const program = Effect.gen(function* () {
760
+ * const doc = yield* N3.parse(`@prefix : <http://example.org/> .
761
+ * :socrates a :Man .
762
+ * { ?x a :Man } => { ?x a :Mortal } .`)
763
+ * const { inferred } = yield* Reasoner.reason(doc.formula)
764
+ * return N3.serializeDocument(inferred) // :socrates a :Mortal .
765
+ * })
766
+ * ```
767
+ *
768
+ * @since 0.1.0
769
+ * @category reasoning
770
+ */
771
+ const reason = (formula, options) => Effect.sync(() => closureOf(isFormula(formula) ? formula : formula.formula, options)).pipe(Effect.catchDefect((e) => e instanceof Inconsistency ? Effect.fail(new ReasonerError({ message: `Inconsistency derived by rule ${e.rule.key}` })) : e instanceof LimitExceeded ? Effect.fail(new ReasonerError({ message: e.message })) : Effect.die(e)), Effect.tap((result) => Effect.annotateCurrentSpan("n3.statements", result.closure.size)), Effect.withSpan("Reasoner.reason", { attributes: { "n3.input.statements": (isFormula(formula) ? formula : formula.formula).size } }));
772
+ /**
773
+ * Answers a query: all bindings of the variables (and blank nodes) of
774
+ * `pattern` under which every statement of `pattern` holds in `formula`
775
+ * (builtins are evaluated).
776
+ *
777
+ * @since 0.1.0
778
+ * @category reasoning
779
+ */
780
+ const query = (formula, pattern) => {
781
+ const store = new Store(formula.statements);
782
+ const blanks = topBlanks(pattern.statements);
783
+ const goals = pattern.statements.map((s) => statementBlanksToVariables(s, blanks));
784
+ return solve(store, goals, noBindings, {
785
+ builtins: true,
786
+ document: () => formula,
787
+ conclusion: (f) => closureOf(f).closure
788
+ }).map((b) => {
789
+ const answer = MutableHashMap.empty();
790
+ b.forEach((v, k) => {
791
+ if (!k.startsWith(BLANK_VAR)) MutableHashMap.set(answer, k, resolve(v, b));
792
+ });
793
+ return answer.backing;
794
+ });
795
+ };
796
+ export { rules as a, reason as i, Reasoner_exports as n, query as r, ReasonerError as t };
797
+
798
+ //# sourceMappingURL=Reasoner-Cw90zrjv.mjs.map