@thomasfosterau/effect-rdf 0.0.0 → 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 +2250 -1
  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 +187 -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,433 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, K as isTriple, it as variable, q as isVariable, rt as triple } from "./Term-CFLG1qu4.mjs";
3
+ import { a as setOf, r as emptySet } from "./stringMap-D5YIpYtR.mjs";
4
+ import * as Arr from "effect/Array";
5
+ import * as Match from "effect/Match";
6
+ // src/sparql/Algebra.ts
7
+ /**
8
+ * The SPARQL algebra (SPARQL 1.1 §18): the operator tree that queries are
9
+ * translated to and that the engine (or a storage backend) evaluates.
10
+ *
11
+ * Operators are plain immutable objects discriminated by `_tag`. Blank nodes
12
+ * of query patterns are replaced by internal variables (whose names start
13
+ * with `@` and therefore cannot clash with user variables); aggregates are
14
+ * computed by `Group` nodes and referenced through internal variables.
15
+ *
16
+ * Storage backends that evaluate (parts of) the algebra natively — such as a
17
+ * SQL backend translating SPARQL to SQL — pattern-match on these types; see
18
+ * `Store.QueryCapability`.
19
+ *
20
+ * @since 0.1.0
21
+ */
22
+ var Algebra_exports = /* @__PURE__ */ __exportAll({
23
+ bgp: () => bgp,
24
+ certainVariables: () => certainVariables,
25
+ containsExists: () => containsExists,
26
+ expressionVariables: () => expressionVariables,
27
+ extend: () => extend,
28
+ filter: () => filter,
29
+ format: () => format,
30
+ formatExpression: () => formatExpression,
31
+ internalVariable: () => internalVariable,
32
+ isInternalVariable: () => isInternalVariable,
33
+ join: () => join,
34
+ leftJoin: () => leftJoin,
35
+ mapChildren: () => mapChildren,
36
+ mapExpressionPatterns: () => mapExpressionPatterns,
37
+ minus: () => minus,
38
+ prebind: () => prebind,
39
+ project: () => project,
40
+ transform: () => transform,
41
+ union: () => union,
42
+ unit: () => unit,
43
+ variables: () => variables
44
+ });
45
+ /**
46
+ * The empty BGP: the join identity.
47
+ *
48
+ * @since 0.1.0
49
+ * @category constructors
50
+ */
51
+ const unit = {
52
+ _tag: "Bgp",
53
+ patterns: []
54
+ };
55
+ /**
56
+ * @since 0.1.0
57
+ * @category constructors
58
+ */
59
+ const bgp = (patterns) => ({
60
+ _tag: "Bgp",
61
+ patterns
62
+ });
63
+ /**
64
+ * @since 0.1.0
65
+ * @category constructors
66
+ */
67
+ const join = (left, right) => ({
68
+ _tag: "Join",
69
+ left,
70
+ right
71
+ });
72
+ /**
73
+ * @since 0.1.0
74
+ * @category constructors
75
+ */
76
+ const leftJoin = (left, right, expression) => expression === void 0 ? {
77
+ _tag: "LeftJoin",
78
+ left,
79
+ right
80
+ } : {
81
+ _tag: "LeftJoin",
82
+ left,
83
+ right,
84
+ expression
85
+ };
86
+ /**
87
+ * @since 0.1.0
88
+ * @category constructors
89
+ */
90
+ const filter = (expression, input) => ({
91
+ _tag: "Filter",
92
+ expression,
93
+ input
94
+ });
95
+ /**
96
+ * @since 0.1.0
97
+ * @category constructors
98
+ */
99
+ const union = (left, right) => ({
100
+ _tag: "Union",
101
+ left,
102
+ right
103
+ });
104
+ /**
105
+ * @since 0.1.0
106
+ * @category constructors
107
+ */
108
+ const minus = (left, right) => ({
109
+ _tag: "Minus",
110
+ left,
111
+ right
112
+ });
113
+ /**
114
+ * @since 0.1.0
115
+ * @category constructors
116
+ */
117
+ const extend = (input, variable, expression) => ({
118
+ _tag: "Extend",
119
+ input,
120
+ variable,
121
+ expression
122
+ });
123
+ /**
124
+ * @since 0.1.0
125
+ * @category constructors
126
+ */
127
+ const project = (input, variables) => ({
128
+ _tag: "Project",
129
+ input,
130
+ variables
131
+ });
132
+ /**
133
+ * Whether a variable name is internal (introduced by translation for blank
134
+ * nodes, property path sequences, group keys and aggregates).
135
+ *
136
+ * @since 0.1.0
137
+ * @category utils
138
+ */
139
+ const isInternalVariable = (name) => name.startsWith("@");
140
+ /**
141
+ * The public, native `ReadonlySet` of a variable set: the helpers below
142
+ * return `ReadonlySet` by contract, and only `new Set` makes one.
143
+ */
144
+ const toReadonlySet = (vars) => new Set(vars.keys());
145
+ const termVariables = (t, out) => {
146
+ if (isVariable(t)) out.set(t.value, true);
147
+ else if (isTriple(t)) {
148
+ termVariables(t.subject, out);
149
+ termVariables(t.predicate, out);
150
+ termVariables(t.object, out);
151
+ }
152
+ };
153
+ /**
154
+ * The variables that may be bound by solutions of an operator ("in-scope"
155
+ * variables, including internal ones).
156
+ *
157
+ * @since 0.1.0
158
+ * @category utils
159
+ */
160
+ const variables = (op) => toReadonlySet(variableSet(op));
161
+ const variableSet = (op) => {
162
+ const out = emptySet();
163
+ collectVariables(op, out);
164
+ return out;
165
+ };
166
+ const collectVariables = (op, out) => {
167
+ Match.value(op).pipe(Match.tag("Bgp", (o) => o.patterns.forEach((p) => {
168
+ termVariables(p.subject, out);
169
+ termVariables(p.predicate, out);
170
+ termVariables(p.object, out);
171
+ })), Match.tag("Path", (o) => {
172
+ termVariables(o.subject, out);
173
+ termVariables(o.object, out);
174
+ }), Match.tag("Join", "LeftJoin", "Union", (o) => {
175
+ collectVariables(o.left, out);
176
+ collectVariables(o.right, out);
177
+ }), Match.tag("Minus", (o) => collectVariables(o.left, out)), Match.tag("Filter", "OrderBy", "Distinct", "Reduced", "Slice", (o) => collectVariables(o.input, out)), Match.tag("Graph", "Service", (o) => {
178
+ termVariables(o.name, out);
179
+ collectVariables(o.input, out);
180
+ }), Match.tag("Extend", (o) => {
181
+ collectVariables(o.input, out);
182
+ out.set(o.variable.value, true);
183
+ }), Match.tag("Group", (o) => {
184
+ o.keys.forEach((k) => out.set(k.variable.value, true));
185
+ o.aggregates.forEach((a) => out.set(a.variable.value, true));
186
+ }), Match.tag("Project", "Values", (o) => o.variables.forEach((v) => out.set(v.value, true))), Match.exhaustive);
187
+ };
188
+ /**
189
+ * The variables that are bound in every solution of an operator (as far as
190
+ * can be determined statically).
191
+ *
192
+ * @since 0.1.0
193
+ * @category utils
194
+ */
195
+ const certainVariables = (op) => toReadonlySet(certainSet(op));
196
+ const certainSet = (op) => {
197
+ return Match.value(op).pipe(Match.tag("Bgp", "Path", (o) => variableSet(o)), Match.tag("Join", (o) => {
198
+ const out = certainSet(o.left);
199
+ certainSet(o.right).forEach((_, v) => out.set(v, true));
200
+ return out;
201
+ }), Match.tag("LeftJoin", "Minus", (o) => certainSet(o.left)), Match.tag("Union", (o) => {
202
+ const right = certainSet(o.right);
203
+ return setOf(Array.from(certainSet(o.left).keys()).filter((v) => right.has(v)));
204
+ }), Match.tag("Filter", "OrderBy", "Distinct", "Reduced", "Slice", "Extend", (o) => certainSet(o.input)), Match.tag("Graph", "Service", (o) => {
205
+ const out = certainSet(o.input);
206
+ if (isVariable(o.name)) out.set(o.name.value, true);
207
+ return out;
208
+ }), Match.tag("Group", () => emptySet()), Match.tag("Project", (o) => {
209
+ const inner = certainSet(o.input);
210
+ return setOf(o.variables.map((v) => v.value).filter((v) => inner.has(v)));
211
+ }), Match.tag("Values", (o) => setOf(o.variables.map((v) => v.value).filter((v) => o.bindings.every((b) => b.map.has(v))))), Match.exhaustive);
212
+ };
213
+ /**
214
+ * The variables mentioned by an expression (not looking into `EXISTS`).
215
+ *
216
+ * @since 0.1.0
217
+ * @category utils
218
+ */
219
+ const expressionVariables = (expression) => {
220
+ const out = emptySet();
221
+ const go = (e) => {
222
+ Match.value(e).pipe(Match.tag("Variable", "Triple", (t) => termVariables(t, out)), Match.tag("Operation", "FunctionCall", (call) => call.args.forEach(go)), Match.orElse(() => void 0));
223
+ };
224
+ go(expression);
225
+ return toReadonlySet(out);
226
+ };
227
+ /**
228
+ * Whether an expression contains `EXISTS` / `NOT EXISTS`.
229
+ *
230
+ * @since 0.1.0
231
+ * @category utils
232
+ */
233
+ const containsExists = (expression) => {
234
+ return Match.value(expression).pipe(Match.tag("Exists", () => true), Match.tag("Operation", "FunctionCall", (call) => call.args.some(containsExists)), Match.orElse(() => false));
235
+ };
236
+ /**
237
+ * Rewrites an operator tree bottom-up: `f` is applied to every node after
238
+ * its children have been rewritten.
239
+ *
240
+ * @since 0.1.0
241
+ * @category utils
242
+ */
243
+ const transform = (op, f) => {
244
+ const go = (o) => f(mapChildren(o, go));
245
+ return go(op);
246
+ };
247
+ /**
248
+ * Applies `f` to the direct children of an operator.
249
+ *
250
+ * @since 0.1.0
251
+ * @category utils
252
+ */
253
+ const mapChildren = (op, f) => {
254
+ return Match.value(op).pipe(Match.tag("Bgp", "Path", "Values", (o) => o), Match.tag("Join", "Union", "Minus", (o) => ({
255
+ ...o,
256
+ left: f(o.left),
257
+ right: f(o.right)
258
+ })), Match.tag("LeftJoin", (o) => ({
259
+ ...o,
260
+ left: f(o.left),
261
+ right: f(o.right)
262
+ })), Match.tag("Filter", "Graph", "Extend", "Group", "OrderBy", "Project", "Distinct", "Reduced", "Slice", "Service", (o) => ({
263
+ ...o,
264
+ input: f(o.input)
265
+ })), Match.exhaustive);
266
+ };
267
+ const termText = (t) => isTriple(t) ? `<<( ${termText(t.subject)} ${termText(t.predicate)} ${termText(t.object)} )>>` : t.toString();
268
+ const pathText = (p) => {
269
+ return Match.value(p).pipe(Match.tag("PathLink", (l) => termText(l.iri)), Match.tag("PathInverse", (i) => `(inv ${pathText(i.path)})`), Match.tag("PathSequence", (s) => `(seq ${s.paths.map(pathText).join(" ")})`), Match.tag("PathAlternative", (a) => `(alt ${a.paths.map(pathText).join(" ")})`), Match.tag("PathZeroOrMore", (z) => `(path* ${pathText(z.path)})`), Match.tag("PathOneOrMore", (o) => `(path+ ${pathText(o.path)})`), Match.tag("PathZeroOrOne", (z) => `(path? ${pathText(z.path)})`), Match.tag("PathNegated", (n) => `(notoneof ${[...n.iris.map(termText), ...n.inverse.map((i) => `^${termText(i)}`)].join(" ")})`), Match.exhaustive);
270
+ };
271
+ /**
272
+ * Formats an expression as an S-expression (for debugging and logging).
273
+ *
274
+ * @since 0.1.0
275
+ * @category formatting
276
+ */
277
+ const formatExpression = (e) => {
278
+ return Match.value(e).pipe(Match.tag("Operation", (o) => `(${o.operator.toLowerCase()} ${o.args.map(formatExpression).join(" ")})`), Match.tag("FunctionCall", (c) => `(${termText(c.function)} ${c.args.map(formatExpression).join(" ")})`), Match.tag("Exists", (x) => `(${x.negated ? "notexists" : "exists"} ${format(x.input)})`), Match.orElse((t) => termText(t)));
279
+ };
280
+ /**
281
+ * Formats an operator tree as an S-expression in the style of the SPARQL
282
+ * Algebra notation (for debugging and logging).
283
+ *
284
+ * @since 0.1.0
285
+ * @category formatting
286
+ */
287
+ const format = (op, indent = "") => {
288
+ const next = `${indent} `;
289
+ const sub = (o) => `\n${next}${format(o, next)}`;
290
+ return Match.value(op).pipe(Match.tag("Bgp", (o) => `(bgp${o.patterns.map((p) => ` (triple ${termText(p.subject)} ${termText(p.predicate)} ${termText(p.object)})`).join("")})`), Match.tag("Path", (o) => `(path ${termText(o.subject)} ${pathText(o.path)} ${termText(o.object)})`), Match.tag("Join", (o) => `(join${sub(o.left)}${sub(o.right)})`), Match.tag("LeftJoin", (o) => `(leftjoin${sub(o.left)}${sub(o.right)}${o.expression !== void 0 ? `\n${next}${formatExpression(o.expression)}` : ""})`), Match.tag("Filter", (o) => `(filter ${formatExpression(o.expression)}${sub(o.input)})`), Match.tag("Union", (o) => `(union${sub(o.left)}${sub(o.right)})`), Match.tag("Graph", (o) => `(graph ${termText(o.name)}${sub(o.input)})`), Match.tag("Extend", (o) => `(extend ((${termText(o.variable)} ${formatExpression(o.expression)}))${sub(o.input)})`), Match.tag("Minus", (o) => `(minus${sub(o.left)}${sub(o.right)})`), Match.tag("Group", (o) => `(group (${o.keys.map((k) => `(${termText(k.variable)} ${formatExpression(k.expression)})`).join(" ")}) (${o.aggregates.map((a) => `(${termText(a.variable)} (${a.aggregate.name.toLowerCase()}${a.aggregate.distinct ? " distinct" : ""} ${a.aggregate.expression === "*" ? "*" : formatExpression(a.aggregate.expression)}))`).join(" ")})${sub(o.input)})`), Match.tag("OrderBy", (o) => `(order (${o.conditions.map((c) => c.descending ? `(desc ${formatExpression(c.expression)})` : formatExpression(c.expression)).join(" ")})${sub(o.input)})`), Match.tag("Project", (o) => `(project (${o.variables.map(termText).join(" ")})${sub(o.input)})`), Match.tag("Distinct", (o) => `(distinct${sub(o.input)})`), Match.tag("Reduced", (o) => `(reduced${sub(o.input)})`), Match.tag("Slice", (o) => `(slice ${o.offset} ${o.limit ?? "_"}${sub(o.input)})`), Match.tag("Values", (o) => `(table (vars ${o.variables.map(termText).join(" ")}) ${o.bindings.length} rows)`), Match.tag("Service", (o) => `(service ${o.silent ? "silent " : ""}${termText(o.name)}${sub(o.input)})`), Match.exhaustive);
291
+ };
292
+ /**
293
+ * Creates an internal variable.
294
+ *
295
+ * @since 0.1.0
296
+ * @category constructors
297
+ */
298
+ const internalVariable = (name) => variable(`@${name}`);
299
+ /**
300
+ * Applies `f` to every graph pattern nested in an expression (the patterns
301
+ * of `EXISTS` / `NOT EXISTS`).
302
+ *
303
+ * @since 0.1.0
304
+ * @category utils
305
+ */
306
+ const mapExpressionPatterns = (expression, f) => {
307
+ return Match.value(expression).pipe(Match.tag("Exists", (x) => ({
308
+ ...x,
309
+ input: f(x.input)
310
+ })), Match.tag("Operation", (o) => ({
311
+ ...o,
312
+ args: o.args.map((a) => mapExpressionPatterns(a, f))
313
+ })), Match.tag("FunctionCall", (c) => ({
314
+ ...c,
315
+ args: c.args.map((a) => mapExpressionPatterns(a, f))
316
+ })), Match.orElse((e) => e));
317
+ };
318
+ /**
319
+ * Pre-binds variables in an algebra expression, following the "values
320
+ * insertion" definition of SHACL-SPARQL (Appendix "Pre-binding of
321
+ * Variables", aligned with the SPARQL `EXISTS` errata): every basic graph
322
+ * pattern, property path and `GRAPH ?var` pattern `Y` — including those
323
+ * nested in `EXISTS` — is replaced by `Join(Table(μ), Y)`, where `Table(μ)`
324
+ * is a one-row `VALUES` table holding the pre-bound solution `μ`.
325
+ *
326
+ * The pre-bound values are also substituted into the replaced patterns,
327
+ * which does not change the result (the join restores the bindings) but lets
328
+ * the optimizer and the store use them as constants.
329
+ *
330
+ * Unlike a trailing `VALUES` clause, pre-bound values are visible to every
331
+ * `FILTER` and `BIND`, including those of groups that never match the
332
+ * variable: `SELECT $this WHERE { FILTER ($this = ex:a) }` has one solution
333
+ * when `this` is pre-bound to `ex:a`. Queries using `MINUS`, `VALUES` or
334
+ * `SERVICE`, rebinding a pre-bound variable with `AS`, or with sub-queries
335
+ * that do not project the pre-bound variables, have no well-defined meaning
336
+ * under pre-binding.
337
+ *
338
+ * @since 0.1.0
339
+ * @category utils
340
+ */
341
+ const prebind = (op, bindings) => {
342
+ if (bindings.map.size === 0) return op;
343
+ const table = {
344
+ _tag: "Values",
345
+ variables: Array.from(bindings.map.keys(), (v) => variable(v)),
346
+ bindings: [bindings]
347
+ };
348
+ const term = (t) => {
349
+ if (isVariable(t)) return bindings.map.get(t.value) ?? t;
350
+ if (isTriple(t)) {
351
+ const s = term(t.subject);
352
+ const p = term(t.predicate);
353
+ const o = term(t.object);
354
+ return s === t.subject && p === t.predicate && o === t.object ? t : triple(s, p, o);
355
+ }
356
+ return t;
357
+ };
358
+ const predicate = (p) => {
359
+ if (!isVariable(p)) return p;
360
+ const v = bindings.map.get(p.value);
361
+ return isNamedNode(v) ? v : p;
362
+ };
363
+ const expr = (e) => mapExpressionPatterns(e, go);
364
+ const go = (o) => {
365
+ return Match.value(o).pipe(Match.tag("Bgp", (b) => Arr.isReadonlyArrayEmpty(b.patterns) ? table : join(table, bgp(b.patterns.map((p) => ({
366
+ _tag: "TriplePattern",
367
+ subject: term(p.subject),
368
+ predicate: predicate(p.predicate),
369
+ object: term(p.object)
370
+ }))))), Match.tag("Path", (p) => join(table, {
371
+ ...p,
372
+ subject: term(p.subject),
373
+ object: term(p.object)
374
+ })), Match.tag("Graph", (g) => {
375
+ const input = go(g.input);
376
+ const value = isVariable(g.name) ? bindings.map.get(g.name.value) : void 0;
377
+ if (value === void 0) return {
378
+ ...g,
379
+ input
380
+ };
381
+ return join(table, isNamedNode(value) ? {
382
+ ...g,
383
+ name: value,
384
+ input
385
+ } : {
386
+ ...g,
387
+ input
388
+ });
389
+ }), Match.tag("Filter", (x) => ({
390
+ ...x,
391
+ expression: expr(x.expression),
392
+ input: go(x.input)
393
+ })), Match.tag("LeftJoin", (l) => l.expression === void 0 ? {
394
+ ...l,
395
+ left: go(l.left),
396
+ right: go(l.right)
397
+ } : {
398
+ ...l,
399
+ left: go(l.left),
400
+ right: go(l.right),
401
+ expression: expr(l.expression)
402
+ }), Match.tag("Extend", (x) => ({
403
+ ...x,
404
+ expression: expr(x.expression),
405
+ input: go(x.input)
406
+ })), Match.tag("OrderBy", (x) => ({
407
+ ...x,
408
+ input: go(x.input),
409
+ conditions: x.conditions.map((c) => ({
410
+ ...c,
411
+ expression: expr(c.expression)
412
+ }))
413
+ })), Match.tag("Group", (x) => ({
414
+ ...x,
415
+ input: go(x.input),
416
+ keys: x.keys.map((k) => ({
417
+ ...k,
418
+ expression: expr(k.expression)
419
+ })),
420
+ aggregates: x.aggregates.map((a) => ({
421
+ ...a,
422
+ aggregate: a.aggregate.expression === "*" ? a.aggregate : {
423
+ ...a.aggregate,
424
+ expression: expr(a.aggregate.expression)
425
+ }
426
+ }))
427
+ })), Match.orElse((x) => mapChildren(x, go)));
428
+ };
429
+ return go(op);
430
+ };
431
+ export { variables as S, prebind as _, expressionVariables as a, union as b, format as c, isInternalVariable as d, join as f, minus as g, mapExpressionPatterns as h, containsExists as i, formatExpression as l, mapChildren as m, bgp as n, extend as o, leftJoin as p, certainVariables as r, filter as s, Algebra_exports as t, internalVariable as u, project as v, unit as x, transform as y };
432
+
433
+ //# sourceMappingURL=Algebra-CGG4oae3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Algebra-CGG4oae3.mjs","names":["Term.isVariable","Term.isTriple","StringMap.emptySet","StringMap.setOf","Term.variable","Term.triple","Term.isNamedNode"],"sources":["../src/sparql/Algebra.ts"],"sourcesContent":["/**\n * The SPARQL algebra (SPARQL 1.1 §18): the operator tree that queries are\n * translated to and that the engine (or a storage backend) evaluates.\n *\n * Operators are plain immutable objects discriminated by `_tag`. Blank nodes\n * of query patterns are replaced by internal variables (whose names start\n * with `@` and therefore cannot clash with user variables); aggregates are\n * computed by `Group` nodes and referenced through internal variables.\n *\n * Storage backends that evaluate (parts of) the algebra natively — such as a\n * SQL backend translating SPARQL to SQL — pattern-match on these types; see\n * `Store.QueryCapability`.\n *\n * @since 0.1.0\n */\nimport * as Term from '../Term.ts';\nimport type * as Ast from './Ast.ts';\nimport type { Bindings } from './Bindings.ts';\nimport * as Arr from 'effect/Array';\nimport * as Match from 'effect/Match';\nimport * as StringMap from './internal/stringMap.ts';\n\n// -----------------------------------------------------------------------------\n// Expressions\n// -----------------------------------------------------------------------------\n\n/**\n * An algebra expression: like `Ast.Expression`, but `EXISTS` patterns are\n * translated to algebra and aggregates have been replaced by variables.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Expression =\n | Term.Variable\n | Term.NamedNode\n | Term.Literal\n | Term.BlankNode\n | Term.Triple<any, any, any>\n | OperationExpression\n | FunctionCallExpression\n | ExistsExpression;\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface OperationExpression {\n readonly _tag: 'Operation';\n readonly operator: Ast.Operator;\n readonly args: ReadonlyArray<Expression>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface FunctionCallExpression {\n readonly _tag: 'FunctionCall';\n readonly function: Term.NamedNode;\n readonly args: ReadonlyArray<Expression>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface ExistsExpression {\n readonly _tag: 'Exists';\n readonly negated: boolean;\n readonly input: Operation;\n}\n\n/**\n * An aggregate computed by a `Group` operator.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Aggregate {\n readonly name: Ast.AggregateName;\n readonly distinct: boolean;\n readonly expression: Expression | '*';\n readonly separator?: string | undefined;\n}\n\n// -----------------------------------------------------------------------------\n// Operators\n// -----------------------------------------------------------------------------\n\n/**\n * An algebra operator.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Operation =\n | Bgp\n | Path\n | Join\n | LeftJoin\n | Filter\n | Union\n | Graph\n | Extend\n | Minus\n | Group\n | OrderBy\n | Project\n | Distinct\n | Reduced\n | Slice\n | Values\n | Service;\n\n/**\n * A basic graph pattern. The empty BGP is the join identity (one empty\n * solution).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Bgp {\n readonly _tag: 'Bgp';\n readonly patterns: ReadonlyArray<Ast.TriplePattern>;\n}\n\n/**\n * A property path pattern that could not be expanded to triple patterns.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Path {\n readonly _tag: 'Path';\n readonly subject: Ast.TermPattern;\n readonly path: Ast.Path;\n readonly object: Ast.TermPattern;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Join {\n readonly _tag: 'Join';\n readonly left: Operation;\n readonly right: Operation;\n}\n\n/**\n * `OPTIONAL`, with the filter of the optional group as `expression`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LeftJoin {\n readonly _tag: 'LeftJoin';\n readonly left: Operation;\n readonly right: Operation;\n readonly expression?: Expression | undefined;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Filter {\n readonly _tag: 'Filter';\n readonly expression: Expression;\n readonly input: Operation;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Union {\n readonly _tag: 'Union';\n readonly left: Operation;\n readonly right: Operation;\n}\n\n/**\n * Evaluates `input` against a named graph (`GRAPH`).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Graph {\n readonly _tag: 'Graph';\n readonly name: Term.NamedNode | Term.Variable;\n readonly input: Operation;\n}\n\n/**\n * Binds `variable` to the value of `expression` (`BIND` and select\n * expressions).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Extend {\n readonly _tag: 'Extend';\n readonly input: Operation;\n readonly variable: Term.Variable;\n readonly expression: Expression;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Minus {\n readonly _tag: 'Minus';\n readonly left: Operation;\n readonly right: Operation;\n}\n\n/**\n * A group key: the grouping expression and the variable it is bound to.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface GroupKey {\n readonly expression: Expression;\n readonly variable: Term.Variable;\n}\n\n/**\n * Grouping and aggregation (`Group` + `AggregateJoin`). Each output solution\n * binds the key variables and the aggregate variables of one group. With no\n * keys, all solutions form one group (which exists even if there are no\n * solutions).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Group {\n readonly _tag: 'Group';\n readonly input: Operation;\n readonly keys: ReadonlyArray<GroupKey>;\n readonly aggregates: ReadonlyArray<{\n readonly variable: Term.Variable;\n readonly aggregate: Aggregate;\n }>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface OrderCondition {\n readonly expression: Expression;\n readonly descending: boolean;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface OrderBy {\n readonly _tag: 'OrderBy';\n readonly input: Operation;\n readonly conditions: ReadonlyArray<OrderCondition>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Project {\n readonly _tag: 'Project';\n readonly input: Operation;\n readonly variables: ReadonlyArray<Term.Variable>;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Distinct {\n readonly _tag: 'Distinct';\n readonly input: Operation;\n}\n\n/**\n * @since 0.1.0\n * @category models\n */\nexport interface Reduced {\n readonly _tag: 'Reduced';\n readonly input: Operation;\n}\n\n/**\n * `OFFSET` / `LIMIT`.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Slice {\n readonly _tag: 'Slice';\n readonly input: Operation;\n readonly offset: number;\n readonly limit?: number | undefined;\n}\n\n/**\n * Inline data (`VALUES`).\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Values {\n readonly _tag: 'Values';\n readonly variables: ReadonlyArray<Term.Variable>;\n readonly bindings: ReadonlyArray<Bindings>;\n}\n\n/**\n * A federated `SERVICE` pattern. `pattern` keeps the original syntax so that\n * the pattern can be sent to the remote endpoint.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Service {\n readonly _tag: 'Service';\n readonly name: Term.NamedNode | Term.Variable;\n readonly silent: boolean;\n readonly input: Operation;\n readonly pattern: Ast.GroupPattern;\n readonly prefixes: Readonly<Record<string, string>>;\n}\n\n// -----------------------------------------------------------------------------\n// Queries\n// -----------------------------------------------------------------------------\n\n/**\n * A translated query: the algebra of the WHERE clause plus solution\n * modifiers, the query form and the dataset clause.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Query =\n | {\n readonly _tag: 'Select';\n readonly input: Operation;\n readonly variables: ReadonlyArray<Term.Variable>;\n readonly dataset?: Ast.DatasetClause | undefined;\n }\n | {\n readonly _tag: 'Construct';\n readonly input: Operation;\n readonly template: ReadonlyArray<Ast.TriplePattern>;\n readonly dataset?: Ast.DatasetClause | undefined;\n }\n | {\n readonly _tag: 'Ask';\n readonly input: Operation;\n readonly dataset?: Ast.DatasetClause | undefined;\n }\n | {\n readonly _tag: 'Describe';\n readonly input: Operation;\n readonly terms: ReadonlyArray<Term.NamedNode | Term.Variable>;\n readonly dataset?: Ast.DatasetClause | undefined;\n };\n\n// -----------------------------------------------------------------------------\n// Constructors\n// -----------------------------------------------------------------------------\n\n/**\n * The empty BGP: the join identity.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const unit: Bgp = { _tag: 'Bgp', patterns: [] };\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const bgp = (patterns: ReadonlyArray<Ast.TriplePattern>): Bgp => ({ _tag: 'Bgp', patterns });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const join = (left: Operation, right: Operation): Join => ({ _tag: 'Join', left, right });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const leftJoin = (left: Operation, right: Operation, expression?: Expression): LeftJoin =>\n expression === undefined\n ? { _tag: 'LeftJoin', left, right }\n : { _tag: 'LeftJoin', left, right, expression };\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const filter = (expression: Expression, input: Operation): Filter => ({\n _tag: 'Filter',\n expression,\n input,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const union = (left: Operation, right: Operation): Union => ({ _tag: 'Union', left, right });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const minus = (left: Operation, right: Operation): Minus => ({ _tag: 'Minus', left, right });\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const extend = (\n input: Operation,\n variable: Term.Variable,\n expression: Expression,\n): Extend => ({\n _tag: 'Extend',\n input,\n variable,\n expression,\n});\n\n/**\n * @since 0.1.0\n * @category constructors\n */\nexport const project = (input: Operation, variables: ReadonlyArray<Term.Variable>): Project => ({\n _tag: 'Project',\n input,\n variables,\n});\n\n// -----------------------------------------------------------------------------\n// Utilities\n// -----------------------------------------------------------------------------\n\n/**\n * Whether a variable name is internal (introduced by translation for blank\n * nodes, property path sequences, group keys and aggregates).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const isInternalVariable = (name: string): boolean => name.startsWith('@');\n\n/** A string set of the type the variable helpers below return. */\ntype VariableSet = Map<string, true>;\n\n/**\n * The public, native `ReadonlySet` of a variable set: the helpers below\n * return `ReadonlySet` by contract, and only `new Set` makes one.\n */\nconst toReadonlySet = (vars: VariableSet): ReadonlySet<string> => new Set(vars.keys());\n\nconst termVariables = (t: Term.Term | Ast.TermPattern, out: VariableSet): void => {\n if (Term.isVariable(t)) out.set(t.value, true);\n else if (Term.isTriple(t)) {\n termVariables(t.subject, out);\n termVariables(t.predicate, out);\n termVariables(t.object, out);\n }\n};\n\n/**\n * The variables that may be bound by solutions of an operator (\"in-scope\"\n * variables, including internal ones).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const variables = (op: Operation): ReadonlySet<string> => toReadonlySet(variableSet(op));\n\nconst variableSet = (op: Operation): VariableSet => {\n const out = StringMap.emptySet();\n collectVariables(op, out);\n return out;\n};\n\nconst collectVariables = (op: Operation, out: VariableSet): void => {\n Match.value(op).pipe(\n Match.tag('Bgp', (o) =>\n o.patterns.forEach((p) => {\n termVariables(p.subject, out);\n termVariables(p.predicate, out);\n termVariables(p.object, out);\n }),\n ),\n Match.tag('Path', (o) => {\n termVariables(o.subject, out);\n termVariables(o.object, out);\n }),\n Match.tag('Join', 'LeftJoin', 'Union', (o) => {\n collectVariables(o.left, out);\n collectVariables(o.right, out);\n }),\n Match.tag('Minus', (o) => collectVariables(o.left, out)),\n Match.tag('Filter', 'OrderBy', 'Distinct', 'Reduced', 'Slice', (o) =>\n collectVariables(o.input, out),\n ),\n Match.tag('Graph', 'Service', (o) => {\n termVariables(o.name, out);\n collectVariables(o.input, out);\n }),\n Match.tag('Extend', (o) => {\n collectVariables(o.input, out);\n out.set(o.variable.value, true);\n }),\n Match.tag('Group', (o) => {\n o.keys.forEach((k) => out.set(k.variable.value, true));\n o.aggregates.forEach((a) => out.set(a.variable.value, true));\n }),\n Match.tag('Project', 'Values', (o) => o.variables.forEach((v) => out.set(v.value, true))),\n Match.exhaustive,\n );\n};\n\n/**\n * The variables that are bound in every solution of an operator (as far as\n * can be determined statically).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const certainVariables = (op: Operation): ReadonlySet<string> =>\n toReadonlySet(certainSet(op));\n\nconst certainSet = (op: Operation): VariableSet => {\n return Match.value(op).pipe(\n Match.tag('Bgp', 'Path', (o): VariableSet => variableSet(o)),\n Match.tag('Join', (o) => {\n const out = certainSet(o.left);\n certainSet(o.right).forEach((_, v) => out.set(v, true));\n return out;\n }),\n Match.tag('LeftJoin', 'Minus', (o) => certainSet(o.left)),\n Match.tag('Union', (o) => {\n const right = certainSet(o.right);\n return StringMap.setOf(Array.from(certainSet(o.left).keys()).filter((v) => right.has(v)));\n }),\n Match.tag('Filter', 'OrderBy', 'Distinct', 'Reduced', 'Slice', 'Extend', (o) =>\n certainSet(o.input),\n ),\n Match.tag('Graph', 'Service', (o) => {\n const out = certainSet(o.input);\n if (Term.isVariable(o.name)) out.set(o.name.value, true);\n return out;\n }),\n Match.tag('Group', () => StringMap.emptySet()),\n Match.tag('Project', (o) => {\n const inner = certainSet(o.input);\n return StringMap.setOf(o.variables.map((v) => v.value).filter((v) => inner.has(v)));\n }),\n Match.tag('Values', (o) =>\n StringMap.setOf(\n o.variables.map((v) => v.value).filter((v) => o.bindings.every((b) => b.map.has(v))),\n ),\n ),\n Match.exhaustive,\n );\n};\n\n/**\n * The variables mentioned by an expression (not looking into `EXISTS`).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const expressionVariables = (expression: Expression): ReadonlySet<string> => {\n const out = StringMap.emptySet();\n const go = (e: Expression): void => {\n Match.value(e).pipe(\n Match.tag('Variable', 'Triple', (t) => termVariables(t, out)),\n Match.tag('Operation', 'FunctionCall', (call) => call.args.forEach(go)),\n Match.orElse(() => undefined),\n );\n };\n go(expression);\n return toReadonlySet(out);\n};\n\n/**\n * Whether an expression contains `EXISTS` / `NOT EXISTS`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const containsExists = (expression: Expression): boolean => {\n return Match.value(expression).pipe(\n Match.tag('Exists', () => true),\n Match.tag('Operation', 'FunctionCall', (call) => call.args.some(containsExists)),\n Match.orElse(() => false),\n );\n};\n\n/**\n * Rewrites an operator tree bottom-up: `f` is applied to every node after\n * its children have been rewritten.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const transform = (op: Operation, f: (op: Operation) => Operation): Operation => {\n const go = (o: Operation): Operation => f(mapChildren(o, go));\n return go(op);\n};\n\n/**\n * Applies `f` to the direct children of an operator.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const mapChildren = (op: Operation, f: (op: Operation) => Operation): Operation => {\n return Match.value(op).pipe(\n Match.tag('Bgp', 'Path', 'Values', (o): Operation => o),\n Match.tag('Join', 'Union', 'Minus', (o) => ({ ...o, left: f(o.left), right: f(o.right) })),\n Match.tag('LeftJoin', (o) => ({ ...o, left: f(o.left), right: f(o.right) })),\n Match.tag(\n 'Filter',\n 'Graph',\n 'Extend',\n 'Group',\n 'OrderBy',\n 'Project',\n 'Distinct',\n 'Reduced',\n 'Slice',\n 'Service',\n // SAFETY: every operator listed here has an `input`, and replacing it keeps the\n // operator's own tag.\n (o) => ({ ...o, input: f(o.input) }),\n ),\n Match.exhaustive,\n );\n};\n\nconst termText = (t: Term.Term | Ast.TermPattern): string =>\n Term.isTriple(t)\n ? `<<( ${termText(t.subject)} ${termText(t.predicate)} ${termText(t.object)} )>>`\n : t.toString();\n\nconst pathText = (p: Ast.Path): string => {\n return Match.value(p).pipe(\n Match.tag('PathLink', (l) => termText(l.iri)),\n Match.tag('PathInverse', (i) => `(inv ${pathText(i.path)})`),\n Match.tag('PathSequence', (s) => `(seq ${s.paths.map(pathText).join(' ')})`),\n Match.tag('PathAlternative', (a) => `(alt ${a.paths.map(pathText).join(' ')})`),\n Match.tag('PathZeroOrMore', (z) => `(path* ${pathText(z.path)})`),\n Match.tag('PathOneOrMore', (o) => `(path+ ${pathText(o.path)})`),\n Match.tag('PathZeroOrOne', (z) => `(path? ${pathText(z.path)})`),\n Match.tag(\n 'PathNegated',\n (n) =>\n `(notoneof ${[...n.iris.map(termText), ...n.inverse.map((i) => `^${termText(i)}`)].join(' ')})`,\n ),\n Match.exhaustive,\n );\n};\n\n/**\n * Formats an expression as an S-expression (for debugging and logging).\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const formatExpression = (e: Expression): string => {\n return Match.value(e).pipe(\n Match.tag(\n 'Operation',\n (o) => `(${o.operator.toLowerCase()} ${o.args.map(formatExpression).join(' ')})`,\n ),\n Match.tag(\n 'FunctionCall',\n (c) => `(${termText(c.function)} ${c.args.map(formatExpression).join(' ')})`,\n ),\n Match.tag('Exists', (x) => `(${x.negated ? 'notexists' : 'exists'} ${format(x.input)})`),\n Match.orElse((t) => termText(t)),\n );\n};\n\n/**\n * Formats an operator tree as an S-expression in the style of the SPARQL\n * Algebra notation (for debugging and logging).\n *\n * @since 0.1.0\n * @category formatting\n */\nexport const format = (op: Operation, indent = ''): string => {\n const next = `${indent} `;\n const sub = (o: Operation) => `\\n${next}${format(o, next)}`;\n return Match.value(op).pipe(\n Match.tag(\n 'Bgp',\n (o) =>\n `(bgp${o.patterns.map((p) => ` (triple ${termText(p.subject)} ${termText(p.predicate)} ${termText(p.object)})`).join('')})`,\n ),\n Match.tag(\n 'Path',\n (o) => `(path ${termText(o.subject)} ${pathText(o.path)} ${termText(o.object)})`,\n ),\n Match.tag('Join', (o) => `(join${sub(o.left)}${sub(o.right)})`),\n Match.tag(\n 'LeftJoin',\n (o) =>\n `(leftjoin${sub(o.left)}${sub(o.right)}${o.expression !== undefined ? `\\n${next}${formatExpression(o.expression)}` : ''})`,\n ),\n Match.tag('Filter', (o) => `(filter ${formatExpression(o.expression)}${sub(o.input)})`),\n Match.tag('Union', (o) => `(union${sub(o.left)}${sub(o.right)})`),\n Match.tag('Graph', (o) => `(graph ${termText(o.name)}${sub(o.input)})`),\n Match.tag(\n 'Extend',\n (o) =>\n `(extend ((${termText(o.variable)} ${formatExpression(o.expression)}))${sub(o.input)})`,\n ),\n Match.tag('Minus', (o) => `(minus${sub(o.left)}${sub(o.right)})`),\n Match.tag(\n 'Group',\n (o) =>\n `(group (${o.keys.map((k) => `(${termText(k.variable)} ${formatExpression(k.expression)})`).join(' ')}) (${o.aggregates\n .map(\n (a) =>\n `(${termText(a.variable)} (${a.aggregate.name.toLowerCase()}${a.aggregate.distinct ? ' distinct' : ''} ${a.aggregate.expression === '*' ? '*' : formatExpression(a.aggregate.expression)}))`,\n )\n .join(' ')})${sub(o.input)})`,\n ),\n Match.tag(\n 'OrderBy',\n (o) =>\n `(order (${o.conditions.map((c) => (c.descending ? `(desc ${formatExpression(c.expression)})` : formatExpression(c.expression))).join(' ')})${sub(o.input)})`,\n ),\n Match.tag(\n 'Project',\n (o) => `(project (${o.variables.map(termText).join(' ')})${sub(o.input)})`,\n ),\n Match.tag('Distinct', (o) => `(distinct${sub(o.input)})`),\n Match.tag('Reduced', (o) => `(reduced${sub(o.input)})`),\n Match.tag('Slice', (o) => `(slice ${o.offset} ${o.limit ?? '_'}${sub(o.input)})`),\n Match.tag(\n 'Values',\n (o) => `(table (vars ${o.variables.map(termText).join(' ')}) ${o.bindings.length} rows)`,\n ),\n Match.tag(\n 'Service',\n (o) => `(service ${o.silent ? 'silent ' : ''}${termText(o.name)}${sub(o.input)})`,\n ),\n Match.exhaustive,\n );\n};\n\n/**\n * Creates an internal variable.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const internalVariable = (name: string): Term.Variable => Term.variable(`@${name}`);\n\n// -----------------------------------------------------------------------------\n// Pre-binding\n// -----------------------------------------------------------------------------\n\n/**\n * Applies `f` to every graph pattern nested in an expression (the patterns\n * of `EXISTS` / `NOT EXISTS`).\n *\n * @since 0.1.0\n * @category utils\n */\nexport const mapExpressionPatterns = (\n expression: Expression,\n f: (op: Operation) => Operation,\n): Expression => {\n return Match.value(expression).pipe(\n Match.tag('Exists', (x): Expression => ({ ...x, input: f(x.input) })),\n Match.tag('Operation', (o) => ({\n ...o,\n args: o.args.map((a) => mapExpressionPatterns(a, f)),\n })),\n Match.tag('FunctionCall', (c) => ({\n ...c,\n args: c.args.map((a) => mapExpressionPatterns(a, f)),\n })),\n Match.orElse((e) => e),\n );\n};\n\n/**\n * Pre-binds variables in an algebra expression, following the \"values\n * insertion\" definition of SHACL-SPARQL (Appendix \"Pre-binding of\n * Variables\", aligned with the SPARQL `EXISTS` errata): every basic graph\n * pattern, property path and `GRAPH ?var` pattern `Y` — including those\n * nested in `EXISTS` — is replaced by `Join(Table(μ), Y)`, where `Table(μ)`\n * is a one-row `VALUES` table holding the pre-bound solution `μ`.\n *\n * The pre-bound values are also substituted into the replaced patterns,\n * which does not change the result (the join restores the bindings) but lets\n * the optimizer and the store use them as constants.\n *\n * Unlike a trailing `VALUES` clause, pre-bound values are visible to every\n * `FILTER` and `BIND`, including those of groups that never match the\n * variable: `SELECT $this WHERE { FILTER ($this = ex:a) }` has one solution\n * when `this` is pre-bound to `ex:a`. Queries using `MINUS`, `VALUES` or\n * `SERVICE`, rebinding a pre-bound variable with `AS`, or with sub-queries\n * that do not project the pre-bound variables, have no well-defined meaning\n * under pre-binding.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const prebind = (op: Operation, bindings: Bindings): Operation => {\n if (bindings.map.size === 0) return op;\n const table: Values = {\n _tag: 'Values',\n variables: Array.from(bindings.map.keys(), (v) => Term.variable(v)),\n bindings: [bindings],\n };\n const term = (t: Ast.TermPattern): Ast.TermPattern => {\n if (Term.isVariable(t)) return bindings.map.get(t.value) ?? t;\n if (Term.isTriple(t)) {\n const s = term(t.subject);\n const p = term(t.predicate);\n const o = term(t.object);\n // Substituting ground terms into a triple pattern keeps each position's kind.\n return s === t.subject && p === t.predicate && o === t.object\n ? t\n : Term.triple<any, any, any>(s, p, o);\n }\n return t;\n };\n const predicate = (p: Ast.VarOrIri): Ast.VarOrIri => {\n if (!Term.isVariable(p)) return p;\n const v = bindings.map.get(p.value);\n return Term.isNamedNode(v) ? v : p;\n };\n const expr = (e: Expression): Expression => mapExpressionPatterns(e, go);\n const go = (o: Operation): Operation => {\n return Match.value(o).pipe(\n Match.tag('Bgp', (b): Operation =>\n Arr.isReadonlyArrayEmpty(b.patterns)\n ? table\n : join(\n table,\n bgp(\n b.patterns.map((p): Ast.TriplePattern => ({\n _tag: 'TriplePattern',\n subject: term(p.subject),\n predicate: predicate(p.predicate),\n object: term(p.object),\n })),\n ),\n ),\n ),\n Match.tag('Path', (p) =>\n join(table, { ...p, subject: term(p.subject), object: term(p.object) }),\n ),\n Match.tag('Graph', (g) => {\n const input = go(g.input);\n const value = Term.isVariable(g.name) ? bindings.map.get(g.name.value) : undefined;\n if (value === undefined) return { ...g, input };\n return join(\n table,\n Term.isNamedNode(value) ? { ...g, name: value, input } : { ...g, input },\n );\n }),\n Match.tag('Filter', (x) => ({ ...x, expression: expr(x.expression), input: go(x.input) })),\n Match.tag('LeftJoin', (l) =>\n l.expression === undefined\n ? { ...l, left: go(l.left), right: go(l.right) }\n : { ...l, left: go(l.left), right: go(l.right), expression: expr(l.expression) },\n ),\n Match.tag('Extend', (x) => ({ ...x, expression: expr(x.expression), input: go(x.input) })),\n Match.tag('OrderBy', (x) => ({\n ...x,\n input: go(x.input),\n conditions: x.conditions.map((c) => ({ ...c, expression: expr(c.expression) })),\n })),\n Match.tag('Group', (x) => ({\n ...x,\n input: go(x.input),\n keys: x.keys.map((k) => ({ ...k, expression: expr(k.expression) })),\n aggregates: x.aggregates.map((a) => ({\n ...a,\n aggregate:\n a.aggregate.expression === '*'\n ? a.aggregate\n : { ...a.aggregate, expression: expr(a.aggregate.expression) },\n })),\n })),\n Match.orElse((x) => mapChildren(x, go)),\n );\n };\n return go(op);\n};\n"],"mappings":"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"}