@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,1344 @@
1
+ /**
2
+ * The abstract syntax tree of SPARQL 1.1 (and SPARQL 1.2) queries and
3
+ * updates.
4
+ *
5
+ * The AST stays close to the surface syntax (group graph patterns, solution
6
+ * modifiers, update operations) while using the core `Term` model for all
7
+ * IRIs, literals, blank nodes, variables and triple terms. Abbreviated
8
+ * syntax (prefixed names, `a`, blank node property lists, collections,
9
+ * reifiers and annotations) is expanded by the parser, so every IRI in the
10
+ * tree is absolute.
11
+ *
12
+ * All nodes are plain immutable objects discriminated by `_tag`; the
13
+ * constructors in this module are the recommended way to build them.
14
+ *
15
+ * @since 0.1.0
16
+ */
17
+ import * as Term from '../Term.ts';
18
+ import * as Predicate from 'effect/Predicate';
19
+ import * as Match from 'effect/Match';
20
+ import * as StringMap from './internal/stringMap.ts';
21
+
22
+ // -----------------------------------------------------------------------------
23
+ // Terms
24
+ // -----------------------------------------------------------------------------
25
+
26
+ /**
27
+ * A term that may appear in a triple pattern: an IRI, literal, blank node,
28
+ * variable or triple term (whose components may themselves be variables).
29
+ *
30
+ * @since 0.1.0
31
+ * @category models
32
+ */
33
+ export type TermPattern =
34
+ | Term.NamedNode
35
+ | Term.BlankNode
36
+ | Term.Literal
37
+ | Term.Variable
38
+ | Term.Triple<any, any, any>;
39
+
40
+ /**
41
+ * An IRI or a variable.
42
+ *
43
+ * @since 0.1.0
44
+ * @category models
45
+ */
46
+ export type VarOrIri = Term.NamedNode | Term.Variable;
47
+
48
+ // -----------------------------------------------------------------------------
49
+ // Property paths
50
+ // -----------------------------------------------------------------------------
51
+
52
+ /**
53
+ * A property path expression (SPARQL 1.1 §9).
54
+ *
55
+ * A path consisting of a single IRI is represented as `PathLink`; triple
56
+ * patterns whose predicate is a plain IRI use `TriplePattern` instead.
57
+ *
58
+ * @since 0.1.0
59
+ * @category models
60
+ */
61
+ export type Path =
62
+ | PathLink
63
+ | PathInverse
64
+ | PathSequence
65
+ | PathAlternative
66
+ | PathZeroOrMore
67
+ | PathOneOrMore
68
+ | PathZeroOrOne
69
+ | PathNegated;
70
+
71
+ /**
72
+ * @since 0.1.0
73
+ * @category models
74
+ */
75
+ export interface PathLink {
76
+ readonly _tag: 'PathLink';
77
+ readonly iri: Term.NamedNode;
78
+ }
79
+
80
+ /**
81
+ * `^path`
82
+ *
83
+ * @since 0.1.0
84
+ * @category models
85
+ */
86
+ export interface PathInverse {
87
+ readonly _tag: 'PathInverse';
88
+ readonly path: Path;
89
+ }
90
+
91
+ /**
92
+ * `path1 / path2 / …`
93
+ *
94
+ * @since 0.1.0
95
+ * @category models
96
+ */
97
+ export interface PathSequence {
98
+ readonly _tag: 'PathSequence';
99
+ readonly paths: ReadonlyArray<Path>;
100
+ }
101
+
102
+ /**
103
+ * `path1 | path2 | …`
104
+ *
105
+ * @since 0.1.0
106
+ * @category models
107
+ */
108
+ export interface PathAlternative {
109
+ readonly _tag: 'PathAlternative';
110
+ readonly paths: ReadonlyArray<Path>;
111
+ }
112
+
113
+ /**
114
+ * `path*`
115
+ *
116
+ * @since 0.1.0
117
+ * @category models
118
+ */
119
+ export interface PathZeroOrMore {
120
+ readonly _tag: 'PathZeroOrMore';
121
+ readonly path: Path;
122
+ }
123
+
124
+ /**
125
+ * `path+`
126
+ *
127
+ * @since 0.1.0
128
+ * @category models
129
+ */
130
+ export interface PathOneOrMore {
131
+ readonly _tag: 'PathOneOrMore';
132
+ readonly path: Path;
133
+ }
134
+
135
+ /**
136
+ * `path?`
137
+ *
138
+ * @since 0.1.0
139
+ * @category models
140
+ */
141
+ export interface PathZeroOrOne {
142
+ readonly _tag: 'PathZeroOrOne';
143
+ readonly path: Path;
144
+ }
145
+
146
+ /**
147
+ * A negated property set `!(iri1 | ^iri2 | …)`. `iris` are the forward
148
+ * IRIs and `inverse` the IRIs written with `^`.
149
+ *
150
+ * @since 0.1.0
151
+ * @category models
152
+ */
153
+ export interface PathNegated {
154
+ readonly _tag: 'PathNegated';
155
+ readonly iris: ReadonlyArray<Term.NamedNode>;
156
+ readonly inverse: ReadonlyArray<Term.NamedNode>;
157
+ }
158
+
159
+ /**
160
+ * @since 0.1.0
161
+ * @category guards
162
+ */
163
+ export const isPath = (u: unknown): u is Path =>
164
+ Predicate.hasProperty(u, '_tag') && Predicate.isString(u._tag) && u._tag.startsWith('Path');
165
+
166
+ // -----------------------------------------------------------------------------
167
+ // Triple and quad patterns
168
+ // -----------------------------------------------------------------------------
169
+
170
+ /**
171
+ * A triple pattern whose predicate is an IRI or a variable.
172
+ *
173
+ * @since 0.1.0
174
+ * @category models
175
+ */
176
+ export interface TriplePattern {
177
+ readonly _tag: 'TriplePattern';
178
+ readonly subject: TermPattern;
179
+ readonly predicate: VarOrIri;
180
+ readonly object: TermPattern;
181
+ }
182
+
183
+ /**
184
+ * A triple pattern whose predicate is a (non-trivial) property path.
185
+ *
186
+ * @since 0.1.0
187
+ * @category models
188
+ */
189
+ export interface PathPattern {
190
+ readonly _tag: 'PathPattern';
191
+ readonly subject: TermPattern;
192
+ readonly path: Path;
193
+ readonly object: TermPattern;
194
+ }
195
+
196
+ /**
197
+ * A triple pattern within a graph: used by update templates (`INSERT`,
198
+ * `DELETE`, `DELETE WHERE`). `graph` is the default graph for triples
199
+ * outside of a `GRAPH` block.
200
+ *
201
+ * @since 0.1.0
202
+ * @category models
203
+ */
204
+ export interface QuadPattern {
205
+ readonly _tag: 'QuadPattern';
206
+ readonly subject: TermPattern;
207
+ readonly predicate: VarOrIri;
208
+ readonly object: TermPattern;
209
+ readonly graph: Term.NamedNode | Term.Variable | Term.DefaultGraph;
210
+ }
211
+
212
+ // -----------------------------------------------------------------------------
213
+ // Expressions
214
+ // -----------------------------------------------------------------------------
215
+
216
+ /**
217
+ * The built-in operators and functions of SPARQL 1.1 and 1.2, in their
218
+ * canonical (upper case) spelling. Unary plus and minus are `UPLUS` and
219
+ * `UMINUS`; `IN` and `NOT IN` take the tested expression as their first
220
+ * argument.
221
+ *
222
+ * @since 0.1.0
223
+ * @category models
224
+ */
225
+ export type Operator =
226
+ | '||'
227
+ | '&&'
228
+ | '!'
229
+ | '='
230
+ | '!='
231
+ | '<'
232
+ | '>'
233
+ | '<='
234
+ | '>='
235
+ | '+'
236
+ | '-'
237
+ | '*'
238
+ | '/'
239
+ | 'UPLUS'
240
+ | 'UMINUS'
241
+ | 'IN'
242
+ | 'NOT IN'
243
+ | BuiltInName;
244
+
245
+ /**
246
+ * Names of the built-in function calls (`BuiltInCall` in the grammar,
247
+ * excluding aggregates and `EXISTS`).
248
+ *
249
+ * @since 0.1.0
250
+ * @category models
251
+ */
252
+ export type BuiltInName =
253
+ | 'STR'
254
+ | 'LANG'
255
+ | 'LANGMATCHES'
256
+ | 'LANGDIR'
257
+ | 'DATATYPE'
258
+ | 'BOUND'
259
+ | 'IRI'
260
+ | 'URI'
261
+ | 'BNODE'
262
+ | 'RAND'
263
+ | 'ABS'
264
+ | 'CEIL'
265
+ | 'FLOOR'
266
+ | 'ROUND'
267
+ | 'CONCAT'
268
+ | 'SUBSTR'
269
+ | 'STRLEN'
270
+ | 'REPLACE'
271
+ | 'UCASE'
272
+ | 'LCASE'
273
+ | 'ENCODE_FOR_URI'
274
+ | 'CONTAINS'
275
+ | 'STRSTARTS'
276
+ | 'STRENDS'
277
+ | 'STRBEFORE'
278
+ | 'STRAFTER'
279
+ | 'YEAR'
280
+ | 'MONTH'
281
+ | 'DAY'
282
+ | 'HOURS'
283
+ | 'MINUTES'
284
+ | 'SECONDS'
285
+ | 'TIMEZONE'
286
+ | 'TZ'
287
+ | 'NOW'
288
+ | 'UUID'
289
+ | 'STRUUID'
290
+ | 'MD5'
291
+ | 'SHA1'
292
+ | 'SHA256'
293
+ | 'SHA384'
294
+ | 'SHA512'
295
+ | 'COALESCE'
296
+ | 'IF'
297
+ | 'STRLANG'
298
+ | 'STRLANGDIR'
299
+ | 'STRDT'
300
+ | 'SAMETERM'
301
+ | 'ISIRI'
302
+ | 'ISURI'
303
+ | 'ISBLANK'
304
+ | 'ISLITERAL'
305
+ | 'ISNUMERIC'
306
+ | 'HASLANG'
307
+ | 'HASLANGDIR'
308
+ | 'REGEX'
309
+ | 'ISTRIPLE'
310
+ | 'TRIPLE'
311
+ | 'SUBJECT'
312
+ | 'PREDICATE'
313
+ | 'OBJECT';
314
+
315
+ /**
316
+ * Arity of each built-in function: `[min, max]` (`max` = `Infinity` for
317
+ * variadic functions).
318
+ *
319
+ * @since 0.1.0
320
+ * @category models
321
+ */
322
+ export const builtInArity: Readonly<Record<BuiltInName, readonly [number, number]>> = {
323
+ STR: [1, 1],
324
+ LANG: [1, 1],
325
+ LANGMATCHES: [2, 2],
326
+ LANGDIR: [1, 1],
327
+ DATATYPE: [1, 1],
328
+ BOUND: [1, 1],
329
+ IRI: [1, 1],
330
+ URI: [1, 1],
331
+ BNODE: [0, 1],
332
+ RAND: [0, 0],
333
+ ABS: [1, 1],
334
+ CEIL: [1, 1],
335
+ FLOOR: [1, 1],
336
+ ROUND: [1, 1],
337
+ CONCAT: [0, Infinity],
338
+ SUBSTR: [2, 3],
339
+ STRLEN: [1, 1],
340
+ REPLACE: [3, 4],
341
+ UCASE: [1, 1],
342
+ LCASE: [1, 1],
343
+ ENCODE_FOR_URI: [1, 1],
344
+ CONTAINS: [2, 2],
345
+ STRSTARTS: [2, 2],
346
+ STRENDS: [2, 2],
347
+ STRBEFORE: [2, 2],
348
+ STRAFTER: [2, 2],
349
+ YEAR: [1, 1],
350
+ MONTH: [1, 1],
351
+ DAY: [1, 1],
352
+ HOURS: [1, 1],
353
+ MINUTES: [1, 1],
354
+ SECONDS: [1, 1],
355
+ TIMEZONE: [1, 1],
356
+ TZ: [1, 1],
357
+ NOW: [0, 0],
358
+ UUID: [0, 0],
359
+ STRUUID: [0, 0],
360
+ MD5: [1, 1],
361
+ SHA1: [1, 1],
362
+ SHA256: [1, 1],
363
+ SHA384: [1, 1],
364
+ SHA512: [1, 1],
365
+ COALESCE: [0, Infinity],
366
+ IF: [3, 3],
367
+ STRLANG: [2, 2],
368
+ STRLANGDIR: [3, 3],
369
+ STRDT: [2, 2],
370
+ SAMETERM: [2, 2],
371
+ ISIRI: [1, 1],
372
+ ISURI: [1, 1],
373
+ ISBLANK: [1, 1],
374
+ ISLITERAL: [1, 1],
375
+ ISNUMERIC: [1, 1],
376
+ HASLANG: [1, 1],
377
+ HASLANGDIR: [1, 1],
378
+ REGEX: [2, 3],
379
+ ISTRIPLE: [1, 1],
380
+ TRIPLE: [3, 3],
381
+ SUBJECT: [1, 1],
382
+ PREDICATE: [1, 1],
383
+ OBJECT: [1, 1],
384
+ };
385
+
386
+ /**
387
+ * Whether a (case-insensitive) name is a built-in function.
388
+ *
389
+ * @since 0.1.0
390
+ * @category guards
391
+ */
392
+ export const isBuiltInName = (name: string): name is BuiltInName =>
393
+ Object.prototype.hasOwnProperty.call(builtInArity, name.toUpperCase());
394
+
395
+ /**
396
+ * A SPARQL expression. Variables and constant terms are expressions as-is.
397
+ *
398
+ * @since 0.1.0
399
+ * @category models
400
+ */
401
+ export type Expression =
402
+ | Term.Variable
403
+ | Term.NamedNode
404
+ | Term.Literal
405
+ | Term.BlankNode
406
+ | Term.Triple<any, any, any>
407
+ | OperationExpression
408
+ | FunctionCallExpression
409
+ | AggregateExpression
410
+ | ExistsExpression;
411
+
412
+ /**
413
+ * An operator or built-in function application.
414
+ *
415
+ * @since 0.1.0
416
+ * @category models
417
+ */
418
+ export interface OperationExpression {
419
+ readonly _tag: 'Operation';
420
+ readonly operator: Operator;
421
+ readonly args: ReadonlyArray<Expression>;
422
+ }
423
+
424
+ /**
425
+ * A call to an extension function (or a cast such as `xsd:integer(?x)`)
426
+ * identified by IRI.
427
+ *
428
+ * @since 0.1.0
429
+ * @category models
430
+ */
431
+ export interface FunctionCallExpression {
432
+ readonly _tag: 'FunctionCall';
433
+ readonly function: Term.NamedNode;
434
+ readonly args: ReadonlyArray<Expression>;
435
+ /** `DISTINCT` was given (only meaningful for custom aggregates). */
436
+ readonly distinct: boolean;
437
+ }
438
+
439
+ /**
440
+ * @since 0.1.0
441
+ * @category models
442
+ */
443
+ export type AggregateName = 'COUNT' | 'SUM' | 'MIN' | 'MAX' | 'AVG' | 'SAMPLE' | 'GROUP_CONCAT';
444
+
445
+ /**
446
+ * An aggregate. `expression` is `'*'` for `COUNT(*)`.
447
+ *
448
+ * @since 0.1.0
449
+ * @category models
450
+ */
451
+ export interface AggregateExpression {
452
+ readonly _tag: 'Aggregate';
453
+ readonly name: AggregateName;
454
+ readonly distinct: boolean;
455
+ readonly expression: Expression | '*';
456
+ /** The `SEPARATOR` of `GROUP_CONCAT` (defaults to a single space). */
457
+ readonly separator?: string | undefined;
458
+ }
459
+
460
+ /**
461
+ * `EXISTS { … }` / `NOT EXISTS { … }`.
462
+ *
463
+ * @since 0.1.0
464
+ * @category models
465
+ */
466
+ export interface ExistsExpression {
467
+ readonly _tag: 'Exists';
468
+ readonly negated: boolean;
469
+ readonly pattern: GroupPattern;
470
+ }
471
+
472
+ // -----------------------------------------------------------------------------
473
+ // Graph patterns
474
+ // -----------------------------------------------------------------------------
475
+
476
+ /**
477
+ * An element of a group graph pattern.
478
+ *
479
+ * @since 0.1.0
480
+ * @category models
481
+ */
482
+ export type Pattern =
483
+ | BgpPattern
484
+ | GroupPattern
485
+ | OptionalPattern
486
+ | UnionPattern
487
+ | MinusPattern
488
+ | GraphPattern
489
+ | ServicePattern
490
+ | FilterPattern
491
+ | BindPattern
492
+ | ValuesPattern
493
+ | SubSelectPattern;
494
+
495
+ /**
496
+ * A block of triple patterns (`TriplesBlock`).
497
+ *
498
+ * @since 0.1.0
499
+ * @category models
500
+ */
501
+ export interface BgpPattern {
502
+ readonly _tag: 'Bgp';
503
+ readonly triples: ReadonlyArray<TriplePattern | PathPattern>;
504
+ }
505
+
506
+ /**
507
+ * A group graph pattern `{ … }`.
508
+ *
509
+ * @since 0.1.0
510
+ * @category models
511
+ */
512
+ export interface GroupPattern {
513
+ readonly _tag: 'Group';
514
+ readonly patterns: ReadonlyArray<Pattern>;
515
+ }
516
+
517
+ /**
518
+ * @since 0.1.0
519
+ * @category models
520
+ */
521
+ export interface OptionalPattern {
522
+ readonly _tag: 'Optional';
523
+ readonly pattern: GroupPattern;
524
+ }
525
+
526
+ /**
527
+ * `{ … } UNION { … } UNION …`
528
+ *
529
+ * @since 0.1.0
530
+ * @category models
531
+ */
532
+ export interface UnionPattern {
533
+ readonly _tag: 'Union';
534
+ readonly patterns: ReadonlyArray<GroupPattern>;
535
+ }
536
+
537
+ /**
538
+ * @since 0.1.0
539
+ * @category models
540
+ */
541
+ export interface MinusPattern {
542
+ readonly _tag: 'Minus';
543
+ readonly pattern: GroupPattern;
544
+ }
545
+
546
+ /**
547
+ * `GRAPH ?g { … }`
548
+ *
549
+ * @since 0.1.0
550
+ * @category models
551
+ */
552
+ export interface GraphPattern {
553
+ readonly _tag: 'Graph';
554
+ readonly name: VarOrIri;
555
+ readonly pattern: GroupPattern;
556
+ }
557
+
558
+ /**
559
+ * `SERVICE [SILENT] <endpoint> { … }`
560
+ *
561
+ * @since 0.1.0
562
+ * @category models
563
+ */
564
+ export interface ServicePattern {
565
+ readonly _tag: 'Service';
566
+ readonly name: VarOrIri;
567
+ readonly silent: boolean;
568
+ readonly pattern: GroupPattern;
569
+ }
570
+
571
+ /**
572
+ * @since 0.1.0
573
+ * @category models
574
+ */
575
+ export interface FilterPattern {
576
+ readonly _tag: 'Filter';
577
+ readonly expression: Expression;
578
+ }
579
+
580
+ /**
581
+ * `BIND (expr AS ?var)`
582
+ *
583
+ * @since 0.1.0
584
+ * @category models
585
+ */
586
+ export interface BindPattern {
587
+ readonly _tag: 'Bind';
588
+ readonly expression: Expression;
589
+ readonly variable: Term.Variable;
590
+ }
591
+
592
+ /**
593
+ * Inline data. Each row has one entry per variable; `undefined` is `UNDEF`.
594
+ *
595
+ * @since 0.1.0
596
+ * @category models
597
+ */
598
+ export interface ValuesPattern {
599
+ readonly _tag: 'Values';
600
+ readonly variables: ReadonlyArray<Term.Variable>;
601
+ readonly rows: ReadonlyArray<ReadonlyArray<Term.GroundTerm | undefined>>;
602
+ }
603
+
604
+ /**
605
+ * A nested `SELECT` query.
606
+ *
607
+ * @since 0.1.0
608
+ * @category models
609
+ */
610
+ export interface SubSelectPattern {
611
+ readonly _tag: 'SubSelect';
612
+ readonly query: SelectQuery;
613
+ }
614
+
615
+ // -----------------------------------------------------------------------------
616
+ // Queries
617
+ // -----------------------------------------------------------------------------
618
+
619
+ /**
620
+ * The prologue of a query or update: the declared base IRI, prefixes and
621
+ * version. Declarations are kept for pretty printing only; the parser has
622
+ * already expanded all IRIs.
623
+ *
624
+ * @since 0.1.0
625
+ * @category models
626
+ */
627
+ export interface Prologue {
628
+ readonly base?: string | undefined;
629
+ readonly prefixes: Readonly<Record<string, string>>;
630
+ readonly version?: string | undefined;
631
+ }
632
+
633
+ /**
634
+ * `FROM` and `FROM NAMED` (or `USING` / `USING NAMED`) clauses.
635
+ *
636
+ * @since 0.1.0
637
+ * @category models
638
+ */
639
+ export interface DatasetClause {
640
+ readonly default: ReadonlyArray<Term.NamedNode>;
641
+ readonly named: ReadonlyArray<Term.NamedNode>;
642
+ }
643
+
644
+ /**
645
+ * A `GROUP BY` condition, optionally bound to a variable with `AS`.
646
+ *
647
+ * @since 0.1.0
648
+ * @category models
649
+ */
650
+ export interface GroupCondition {
651
+ readonly expression: Expression;
652
+ readonly variable?: Term.Variable | undefined;
653
+ }
654
+
655
+ /**
656
+ * An `ORDER BY` condition.
657
+ *
658
+ * @since 0.1.0
659
+ * @category models
660
+ */
661
+ export interface OrderCondition {
662
+ readonly expression: Expression;
663
+ readonly descending: boolean;
664
+ }
665
+
666
+ /**
667
+ * A projected `(expression AS ?variable)`.
668
+ *
669
+ * @since 0.1.0
670
+ * @category models
671
+ */
672
+ export interface Projection {
673
+ readonly _tag: 'Projection';
674
+ readonly expression: Expression;
675
+ readonly variable: Term.Variable;
676
+ }
677
+
678
+ /**
679
+ * Fields shared by all query forms.
680
+ *
681
+ * @since 0.1.0
682
+ * @category models
683
+ */
684
+ export interface QueryBase {
685
+ readonly prologue: Prologue;
686
+ readonly dataset?: DatasetClause | undefined;
687
+ readonly where: GroupPattern;
688
+ readonly groupBy: ReadonlyArray<GroupCondition>;
689
+ readonly having: ReadonlyArray<Expression>;
690
+ readonly orderBy: ReadonlyArray<OrderCondition>;
691
+ readonly limit?: number | undefined;
692
+ readonly offset?: number | undefined;
693
+ /** A trailing `VALUES` clause. */
694
+ readonly values?: ValuesPattern | undefined;
695
+ }
696
+
697
+ /**
698
+ * @since 0.1.0
699
+ * @category models
700
+ */
701
+ export interface SelectQuery extends QueryBase {
702
+ readonly _tag: 'Select';
703
+ readonly distinct: boolean;
704
+ readonly reduced: boolean;
705
+ readonly projection: '*' | ReadonlyArray<Term.Variable | Projection>;
706
+ }
707
+
708
+ /**
709
+ * @since 0.1.0
710
+ * @category models
711
+ */
712
+ export interface ConstructQuery extends QueryBase {
713
+ readonly _tag: 'Construct';
714
+ readonly template: ReadonlyArray<TriplePattern>;
715
+ /** Whether the short form `CONSTRUCT WHERE { … }` was used. */
716
+ readonly short?: boolean | undefined;
717
+ }
718
+
719
+ /**
720
+ * @since 0.1.0
721
+ * @category models
722
+ */
723
+ export interface AskQuery extends QueryBase {
724
+ readonly _tag: 'Ask';
725
+ }
726
+
727
+ /**
728
+ * @since 0.1.0
729
+ * @category models
730
+ */
731
+ export interface DescribeQuery extends QueryBase {
732
+ readonly _tag: 'Describe';
733
+ readonly terms: '*' | ReadonlyArray<VarOrIri>;
734
+ }
735
+
736
+ /**
737
+ * Any query.
738
+ *
739
+ * @since 0.1.0
740
+ * @category models
741
+ */
742
+ export type Query = SelectQuery | ConstructQuery | AskQuery | DescribeQuery;
743
+
744
+ // -----------------------------------------------------------------------------
745
+ // Updates
746
+ // -----------------------------------------------------------------------------
747
+
748
+ /**
749
+ * The target of `CLEAR` / `DROP`.
750
+ *
751
+ * @since 0.1.0
752
+ * @category models
753
+ */
754
+ export type GraphTarget =
755
+ | Term.NamedNode
756
+ | { readonly _tag: 'Default' }
757
+ | { readonly _tag: 'Named' }
758
+ | { readonly _tag: 'All' };
759
+
760
+ /**
761
+ * A graph or the default graph (`ADD`, `MOVE`, `COPY`).
762
+ *
763
+ * @since 0.1.0
764
+ * @category models
765
+ */
766
+ export type GraphOrDefault = Term.NamedNode | Term.DefaultGraph;
767
+
768
+ /**
769
+ * @since 0.1.0
770
+ * @category models
771
+ */
772
+ export interface InsertDataOperation {
773
+ readonly _tag: 'InsertData';
774
+ readonly quads: ReadonlyArray<Term.Quad>;
775
+ }
776
+
777
+ /**
778
+ * @since 0.1.0
779
+ * @category models
780
+ */
781
+ export interface DeleteDataOperation {
782
+ readonly _tag: 'DeleteData';
783
+ readonly quads: ReadonlyArray<Term.Quad>;
784
+ }
785
+
786
+ /**
787
+ * @since 0.1.0
788
+ * @category models
789
+ */
790
+ export interface DeleteWhereOperation {
791
+ readonly _tag: 'DeleteWhere';
792
+ readonly patterns: ReadonlyArray<QuadPattern>;
793
+ }
794
+
795
+ /**
796
+ * `[WITH <g>] DELETE { … } INSERT { … } [USING …] WHERE { … }`
797
+ *
798
+ * @since 0.1.0
799
+ * @category models
800
+ */
801
+ export interface ModifyOperation {
802
+ readonly _tag: 'Modify';
803
+ readonly with?: Term.NamedNode | undefined;
804
+ readonly delete: ReadonlyArray<QuadPattern>;
805
+ readonly insert: ReadonlyArray<QuadPattern>;
806
+ readonly using?: DatasetClause | undefined;
807
+ readonly where: GroupPattern;
808
+ }
809
+
810
+ /**
811
+ * @since 0.1.0
812
+ * @category models
813
+ */
814
+ export interface LoadOperation {
815
+ readonly _tag: 'Load';
816
+ readonly silent: boolean;
817
+ readonly source: Term.NamedNode;
818
+ readonly destination?: Term.NamedNode | undefined;
819
+ }
820
+
821
+ /**
822
+ * @since 0.1.0
823
+ * @category models
824
+ */
825
+ export interface ClearOperation {
826
+ readonly _tag: 'Clear';
827
+ readonly silent: boolean;
828
+ readonly target: GraphTarget;
829
+ }
830
+
831
+ /**
832
+ * @since 0.1.0
833
+ * @category models
834
+ */
835
+ export interface DropOperation {
836
+ readonly _tag: 'Drop';
837
+ readonly silent: boolean;
838
+ readonly target: GraphTarget;
839
+ }
840
+
841
+ /**
842
+ * @since 0.1.0
843
+ * @category models
844
+ */
845
+ export interface CreateOperation {
846
+ readonly _tag: 'Create';
847
+ readonly silent: boolean;
848
+ readonly graph: Term.NamedNode;
849
+ }
850
+
851
+ /**
852
+ * `ADD`, `MOVE` and `COPY`.
853
+ *
854
+ * @since 0.1.0
855
+ * @category models
856
+ */
857
+ export interface TransferOperation {
858
+ readonly _tag: 'Add' | 'Move' | 'Copy';
859
+ readonly silent: boolean;
860
+ readonly source: GraphOrDefault;
861
+ readonly destination: GraphOrDefault;
862
+ }
863
+
864
+ /**
865
+ * A single update operation.
866
+ *
867
+ * @since 0.1.0
868
+ * @category models
869
+ */
870
+ export type UpdateOperation =
871
+ | InsertDataOperation
872
+ | DeleteDataOperation
873
+ | DeleteWhereOperation
874
+ | ModifyOperation
875
+ | LoadOperation
876
+ | ClearOperation
877
+ | DropOperation
878
+ | CreateOperation
879
+ | TransferOperation;
880
+
881
+ /**
882
+ * An update request: a sequence of operations.
883
+ *
884
+ * @since 0.1.0
885
+ * @category models
886
+ */
887
+ export interface Update {
888
+ readonly _tag: 'Update';
889
+ readonly prologue: Prologue;
890
+ readonly operations: ReadonlyArray<UpdateOperation>;
891
+ }
892
+
893
+ // -----------------------------------------------------------------------------
894
+ // Guards
895
+ // -----------------------------------------------------------------------------
896
+
897
+ /**
898
+ * @since 0.1.0
899
+ * @category guards
900
+ */
901
+ export const isQuery = (u: unknown): u is Query =>
902
+ Predicate.isTagged(u, 'Select') ||
903
+ Predicate.isTagged(u, 'Construct') ||
904
+ Predicate.isTagged(u, 'Ask') ||
905
+ Predicate.isTagged(u, 'Describe');
906
+
907
+ /**
908
+ * @since 0.1.0
909
+ * @category guards
910
+ */
911
+ export const isUpdate = (u: unknown): u is Update => Predicate.isTagged(u, 'Update');
912
+
913
+ // -----------------------------------------------------------------------------
914
+ // Constructors
915
+ // -----------------------------------------------------------------------------
916
+
917
+ /**
918
+ * @since 0.1.0
919
+ * @category constructors
920
+ */
921
+ export const emptyPrologue: Prologue = { prefixes: {} };
922
+
923
+ /**
924
+ * @since 0.1.0
925
+ * @category constructors
926
+ */
927
+ export const triplePattern = (
928
+ subject: TermPattern,
929
+ predicate: VarOrIri,
930
+ object: TermPattern,
931
+ ): TriplePattern => ({ _tag: 'TriplePattern', subject, predicate, object });
932
+
933
+ /**
934
+ * @since 0.1.0
935
+ * @category constructors
936
+ */
937
+ export const pathPattern = (
938
+ subject: TermPattern,
939
+ path: Path,
940
+ object: TermPattern,
941
+ ): PathPattern => ({
942
+ _tag: 'PathPattern',
943
+ subject,
944
+ path,
945
+ object,
946
+ });
947
+
948
+ /**
949
+ * @since 0.1.0
950
+ * @category constructors
951
+ */
952
+ export const quadPattern = (
953
+ subject: TermPattern,
954
+ predicate: VarOrIri,
955
+ object: TermPattern,
956
+ graph: Term.NamedNode | Term.Variable | Term.DefaultGraph = Term.defaultGraph,
957
+ ): QuadPattern => ({ _tag: 'QuadPattern', subject, predicate, object, graph });
958
+
959
+ /**
960
+ * @since 0.1.0
961
+ * @category constructors
962
+ */
963
+ export const link = (iri: Term.NamedNode): PathLink => ({ _tag: 'PathLink', iri });
964
+
965
+ /**
966
+ * @since 0.1.0
967
+ * @category constructors
968
+ */
969
+ export const inverse = (path: Path): PathInverse => ({ _tag: 'PathInverse', path });
970
+
971
+ /**
972
+ * @since 0.1.0
973
+ * @category constructors
974
+ */
975
+ export const sequence = (...paths: ReadonlyArray<Path>): PathSequence => ({
976
+ _tag: 'PathSequence',
977
+ paths,
978
+ });
979
+
980
+ /**
981
+ * @since 0.1.0
982
+ * @category constructors
983
+ */
984
+ export const alternative = (...paths: ReadonlyArray<Path>): PathAlternative => ({
985
+ _tag: 'PathAlternative',
986
+ paths,
987
+ });
988
+
989
+ /**
990
+ * @since 0.1.0
991
+ * @category constructors
992
+ */
993
+ export const zeroOrMore = (path: Path): PathZeroOrMore => ({ _tag: 'PathZeroOrMore', path });
994
+
995
+ /**
996
+ * @since 0.1.0
997
+ * @category constructors
998
+ */
999
+ export const oneOrMore = (path: Path): PathOneOrMore => ({ _tag: 'PathOneOrMore', path });
1000
+
1001
+ /**
1002
+ * @since 0.1.0
1003
+ * @category constructors
1004
+ */
1005
+ export const zeroOrOne = (path: Path): PathZeroOrOne => ({ _tag: 'PathZeroOrOne', path });
1006
+
1007
+ /**
1008
+ * @since 0.1.0
1009
+ * @category constructors
1010
+ */
1011
+ export const negated = (
1012
+ iris: ReadonlyArray<Term.NamedNode>,
1013
+ inverse: ReadonlyArray<Term.NamedNode> = [],
1014
+ ): PathNegated => ({ _tag: 'PathNegated', iris, inverse });
1015
+
1016
+ /**
1017
+ * @since 0.1.0
1018
+ * @category constructors
1019
+ */
1020
+ export const operation = (
1021
+ operator: Operator,
1022
+ ...args: ReadonlyArray<Expression>
1023
+ ): OperationExpression => ({ _tag: 'Operation', operator, args });
1024
+
1025
+ /**
1026
+ * @since 0.1.0
1027
+ * @category constructors
1028
+ */
1029
+ export const functionCall = (
1030
+ fn: Term.NamedNode,
1031
+ args: ReadonlyArray<Expression>,
1032
+ distinct = false,
1033
+ ): FunctionCallExpression => ({ _tag: 'FunctionCall', function: fn, args, distinct });
1034
+
1035
+ /**
1036
+ * @since 0.1.0
1037
+ * @category constructors
1038
+ */
1039
+ export const aggregate = (
1040
+ name: AggregateName,
1041
+ expression: Expression | '*',
1042
+ options?: { readonly distinct?: boolean; readonly separator?: string },
1043
+ ): AggregateExpression => {
1044
+ const plain: AggregateExpression = {
1045
+ _tag: 'Aggregate',
1046
+ name,
1047
+ expression,
1048
+ distinct: options?.distinct ?? false,
1049
+ };
1050
+ return options?.separator === undefined ? plain : { ...plain, separator: options.separator };
1051
+ };
1052
+
1053
+ /**
1054
+ * @since 0.1.0
1055
+ * @category constructors
1056
+ */
1057
+ export const exists = (pattern: GroupPattern, negated = false): ExistsExpression => ({
1058
+ _tag: 'Exists',
1059
+ negated,
1060
+ pattern,
1061
+ });
1062
+
1063
+ /**
1064
+ * @since 0.1.0
1065
+ * @category constructors
1066
+ */
1067
+ export const bgp = (triples: ReadonlyArray<TriplePattern | PathPattern>): BgpPattern => ({
1068
+ _tag: 'Bgp',
1069
+ triples,
1070
+ });
1071
+
1072
+ /**
1073
+ * @since 0.1.0
1074
+ * @category constructors
1075
+ */
1076
+ export const group = (patterns: ReadonlyArray<Pattern>): GroupPattern => ({
1077
+ _tag: 'Group',
1078
+ patterns,
1079
+ });
1080
+
1081
+ /**
1082
+ * @since 0.1.0
1083
+ * @category constructors
1084
+ */
1085
+ export const optional = (pattern: GroupPattern): OptionalPattern => ({ _tag: 'Optional', pattern });
1086
+
1087
+ /**
1088
+ * @since 0.1.0
1089
+ * @category constructors
1090
+ */
1091
+ export const union = (patterns: ReadonlyArray<GroupPattern>): UnionPattern => ({
1092
+ _tag: 'Union',
1093
+ patterns,
1094
+ });
1095
+
1096
+ /**
1097
+ * @since 0.1.0
1098
+ * @category constructors
1099
+ */
1100
+ export const minus = (pattern: GroupPattern): MinusPattern => ({ _tag: 'Minus', pattern });
1101
+
1102
+ /**
1103
+ * @since 0.1.0
1104
+ * @category constructors
1105
+ */
1106
+ export const graph = (name: VarOrIri, pattern: GroupPattern): GraphPattern => ({
1107
+ _tag: 'Graph',
1108
+ name,
1109
+ pattern,
1110
+ });
1111
+
1112
+ /**
1113
+ * @since 0.1.0
1114
+ * @category constructors
1115
+ */
1116
+ export const service = (name: VarOrIri, pattern: GroupPattern, silent = false): ServicePattern => ({
1117
+ _tag: 'Service',
1118
+ name,
1119
+ pattern,
1120
+ silent,
1121
+ });
1122
+
1123
+ /**
1124
+ * @since 0.1.0
1125
+ * @category constructors
1126
+ */
1127
+ export const filter = (expression: Expression): FilterPattern => ({ _tag: 'Filter', expression });
1128
+
1129
+ /**
1130
+ * @since 0.1.0
1131
+ * @category constructors
1132
+ */
1133
+ export const bind = (expression: Expression, variable: Term.Variable): BindPattern => ({
1134
+ _tag: 'Bind',
1135
+ expression,
1136
+ variable,
1137
+ });
1138
+
1139
+ /**
1140
+ * @since 0.1.0
1141
+ * @category constructors
1142
+ */
1143
+ export const values = (
1144
+ variables: ReadonlyArray<Term.Variable>,
1145
+ rows: ReadonlyArray<ReadonlyArray<Term.GroundTerm | undefined>>,
1146
+ ): ValuesPattern => ({ _tag: 'Values', variables, rows });
1147
+
1148
+ /**
1149
+ * @since 0.1.0
1150
+ * @category constructors
1151
+ */
1152
+ export const subSelect = (query: SelectQuery): SubSelectPattern => ({ _tag: 'SubSelect', query });
1153
+
1154
+ /**
1155
+ * A projected `(expression AS ?variable)`.
1156
+ *
1157
+ * @since 0.1.0
1158
+ * @category constructors
1159
+ */
1160
+ export const projection = (expression: Expression, variable: Term.Variable): Projection => ({
1161
+ _tag: 'Projection',
1162
+ expression,
1163
+ variable,
1164
+ });
1165
+
1166
+ const queryDefaults = {
1167
+ prologue: emptyPrologue,
1168
+ groupBy: [],
1169
+ having: [],
1170
+ orderBy: [],
1171
+ } as const;
1172
+
1173
+ /**
1174
+ * Creates a `SELECT` query; omitted fields take their defaults.
1175
+ *
1176
+ * @since 0.1.0
1177
+ * @category constructors
1178
+ */
1179
+ export const select = (
1180
+ fields: Partial<Omit<SelectQuery, '_tag'>> & Pick<SelectQuery, 'where'>,
1181
+ ): SelectQuery => ({
1182
+ _tag: 'Select',
1183
+ ...queryDefaults,
1184
+ distinct: false,
1185
+ reduced: false,
1186
+ projection: '*',
1187
+ ...fields,
1188
+ });
1189
+
1190
+ /**
1191
+ * Creates a `CONSTRUCT` query.
1192
+ *
1193
+ * @since 0.1.0
1194
+ * @category constructors
1195
+ */
1196
+ export const construct = (
1197
+ fields: Partial<Omit<ConstructQuery, '_tag'>> & Pick<ConstructQuery, 'where' | 'template'>,
1198
+ ): ConstructQuery => ({ _tag: 'Construct', ...queryDefaults, ...fields });
1199
+
1200
+ /**
1201
+ * Creates an `ASK` query.
1202
+ *
1203
+ * @since 0.1.0
1204
+ * @category constructors
1205
+ */
1206
+ export const ask = (
1207
+ fields: Partial<Omit<AskQuery, '_tag'>> & Pick<AskQuery, 'where'>,
1208
+ ): AskQuery => ({ _tag: 'Ask', ...queryDefaults, ...fields });
1209
+
1210
+ /**
1211
+ * Creates a `DESCRIBE` query.
1212
+ *
1213
+ * @since 0.1.0
1214
+ * @category constructors
1215
+ */
1216
+ export const describe = (
1217
+ fields: Partial<Omit<DescribeQuery, '_tag'>> & Pick<DescribeQuery, 'terms'>,
1218
+ ): DescribeQuery => ({ _tag: 'Describe', ...queryDefaults, where: group([]), ...fields });
1219
+
1220
+ /**
1221
+ * Creates an update request.
1222
+ *
1223
+ * @since 0.1.0
1224
+ * @category constructors
1225
+ */
1226
+ export const update = (
1227
+ operations: ReadonlyArray<UpdateOperation>,
1228
+ prologue: Prologue = emptyPrologue,
1229
+ ): Update => ({ _tag: 'Update', prologue, operations });
1230
+
1231
+ // -----------------------------------------------------------------------------
1232
+ // Utilities
1233
+ // -----------------------------------------------------------------------------
1234
+
1235
+ /** Variable names in order of first appearance, as a string set. */
1236
+ type Names = Map<string, true>;
1237
+
1238
+ const addTermVariables = (term: TermPattern | Term.Term, out: Names): void => {
1239
+ if (Term.isVariable(term)) out.set(term.value, true);
1240
+ else if (Term.isTriple(term)) {
1241
+ addTermVariables(term.subject, out);
1242
+ addTermVariables(term.predicate, out);
1243
+ addTermVariables(term.object, out);
1244
+ }
1245
+ };
1246
+
1247
+ /**
1248
+ * The variables that are in-scope after a graph pattern (SPARQL 1.1 §18.2.1),
1249
+ * in order of first appearance. Blank nodes are not included.
1250
+ *
1251
+ * @since 0.1.0
1252
+ * @category utils
1253
+ */
1254
+ export const inScopeVariables = (pattern: Pattern): ReadonlyArray<string> => {
1255
+ const out: Names = StringMap.emptySet();
1256
+ collectInScope(pattern, out);
1257
+ return Array.from(out.keys());
1258
+ };
1259
+
1260
+ const collectInScope = (pattern: Pattern, out: Names): void => {
1261
+ Match.value(pattern).pipe(
1262
+ Match.tag('Bgp', (b) =>
1263
+ b.triples.forEach((t) => {
1264
+ addTermVariables(t.subject, out);
1265
+ if (Predicate.isTagged(t, 'TriplePattern')) addTermVariables(t.predicate, out);
1266
+ addTermVariables(t.object, out);
1267
+ }),
1268
+ ),
1269
+ Match.tag('Group', 'Union', (g) => g.patterns.forEach((p) => collectInScope(p, out))),
1270
+ Match.tag('Optional', (o) => collectInScope(o.pattern, out)),
1271
+ Match.tag('Minus', 'Filter', () => undefined),
1272
+ Match.tag('Graph', 'Service', (g) => {
1273
+ addTermVariables(g.name, out);
1274
+ collectInScope(g.pattern, out);
1275
+ }),
1276
+ Match.tag('Bind', (b) => {
1277
+ out.set(b.variable.value, true);
1278
+ }),
1279
+ Match.tag('Values', (v) => v.variables.forEach((x) => out.set(x.value, true))),
1280
+ Match.tag('SubSelect', (s) => projectedVariables(s.query).forEach((v) => out.set(v, true))),
1281
+ Match.exhaustive,
1282
+ );
1283
+ };
1284
+
1285
+ /**
1286
+ * The variables projected by a `SELECT` query (for `SELECT *`, the
1287
+ * in-scope variables of its pattern and trailing `VALUES`).
1288
+ *
1289
+ * @since 0.1.0
1290
+ * @category utils
1291
+ */
1292
+ export const projectedVariables = (query: SelectQuery): ReadonlyArray<string> => {
1293
+ if (query.projection === '*') {
1294
+ const out: Names = StringMap.emptySet();
1295
+ collectInScope(query.where, out);
1296
+ query.values?.variables.forEach((v) => out.set(v.value, true));
1297
+ return Array.from(out.keys());
1298
+ }
1299
+ return query.projection.map((p) => (Term.isVariable(p) ? p.value : p.variable.value));
1300
+ };
1301
+
1302
+ /**
1303
+ * All variables mentioned anywhere in an expression (including inside
1304
+ * `EXISTS` patterns when `deep` is set).
1305
+ *
1306
+ * @since 0.1.0
1307
+ * @category utils
1308
+ */
1309
+ export const expressionVariables = (
1310
+ expression: Expression,
1311
+ deep = false,
1312
+ ): ReadonlyArray<string> => {
1313
+ const out: Names = StringMap.emptySet();
1314
+ const go = (e: Expression): void => {
1315
+ Match.value(e).pipe(
1316
+ Match.tag('Variable', 'Triple', (t) => addTermVariables(t, out)),
1317
+ Match.tag('Operation', 'FunctionCall', (call) => call.args.forEach(go)),
1318
+ Match.tag('Aggregate', (a) => {
1319
+ if (a.expression !== '*') go(a.expression);
1320
+ }),
1321
+ Match.tag('Exists', (x) => {
1322
+ if (deep) collectInScope(x.pattern, out);
1323
+ }),
1324
+ Match.orElse(() => undefined),
1325
+ );
1326
+ };
1327
+ go(expression);
1328
+ return Array.from(out.keys());
1329
+ };
1330
+
1331
+ /**
1332
+ * Whether an expression contains an aggregate (outside of nested `EXISTS`
1333
+ * patterns).
1334
+ *
1335
+ * @since 0.1.0
1336
+ * @category utils
1337
+ */
1338
+ export const containsAggregate = (expression: Expression): boolean => {
1339
+ return Match.value(expression).pipe(
1340
+ Match.tag('Aggregate', () => true),
1341
+ Match.tag('Operation', 'FunctionCall', (call) => call.args.some(containsAggregate)),
1342
+ Match.orElse(() => false),
1343
+ );
1344
+ };