@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,364 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, U as isResource, Z as namedNode, z as isLiteral } from "./Term-CFLG1qu4.mjs";
3
+ import { A as objectsOf } from "./Dataset-BlmlcI7J.mjs";
4
+ import { n as Vocabulary_exports } from "./Vocabulary-CnQl-_Z4.mjs";
5
+ import { n as SparqlEvaluationError } from "./Sparql-BiYFMSpl.mjs";
6
+ import { A as pathPattern, D as oneOrMore, F as sequence, H as zeroOrMore, R as triplePattern, U as zeroOrOne, j as projectedVariables, r as alternative, w as link, y as inverse } from "./Ast-CPRZmBvk.mjs";
7
+ import { a as parseQueryResult } from "./Parser-xARsOWXk.mjs";
8
+ import * as Arr from "effect/Array";
9
+ import { pipe } from "effect/Function";
10
+ import * as MutableHashSet from "effect/MutableHashSet";
11
+ import * as Option from "effect/Option";
12
+ import * as Predicate from "effect/Predicate";
13
+ import * as Effect from "effect/Effect";
14
+ import * as Match from "effect/Match";
15
+ import * as Record from "effect/Record";
16
+ import * as Result from "effect/Result";
17
+ // src/sparql/shacl/Query.ts
18
+ /**
19
+ * SHACL-SPARQL queries: reading the `sh:select` / `sh:ask` queries of a
20
+ * shapes graph with their prefix declarations (§5.2.1), enforcing the
21
+ * syntactic restrictions of pre-binding (Appendix A) and substituting the
22
+ * `$PATH` variable with a property path (§5.3, §6.3).
23
+ *
24
+ * ```ts
25
+ * import { Effect } from "effect"
26
+ * import { Query } from "@thomasfosterau/effect-rdf/sparql/shacl"
27
+ *
28
+ * const program = Effect.gen(function* () {
29
+ * const query = yield* Query.compile(shapesGraph, constraintNode, {
30
+ * form: "select",
31
+ * prebound: ["this", "shapesGraph", "currentShape"],
32
+ * path: shape.path,
33
+ * })
34
+ * })
35
+ * ```
36
+ *
37
+ * @since 0.1.0
38
+ */
39
+ var Query_exports = /* @__PURE__ */ __exportAll({
40
+ checkPrebinding: () => checkPrebinding,
41
+ compile: () => compile,
42
+ compileResult: () => compileResult,
43
+ optionalPrebound: () => optionalPrebound,
44
+ prefixes: () => prefixes,
45
+ substitutePath: () => substitutePath,
46
+ toSparqlPath: () => toSparqlPath
47
+ });
48
+ const { sh } = Vocabulary_exports;
49
+ const owlImports = namedNode("http://www.w3.org/2002/07/owl#imports");
50
+ /**
51
+ * The variables that are optional to pre-bind (and to project from
52
+ * sub-queries): `$shapesGraph` and `$currentShape`.
53
+ *
54
+ * @since 0.1.0
55
+ * @category constants
56
+ */
57
+ const optionalPrebound = /* @__PURE__ */ new Set(["shapesGraph", "currentShape"]);
58
+ const fail = (message) => Result.fail(new SparqlEvaluationError({ message }));
59
+ const noPrefixes = Result.succeed({});
60
+ /**
61
+ * The prefix mappings of a SPARQL executable: the union of the
62
+ * `sh:prefix` / `sh:namespace` pairs reachable via
63
+ * `sh:prefixes/owl:imports* /sh:declare`. Fails when a prefix is declared
64
+ * with two different namespaces (an ill-formed shapes graph) or a
65
+ * declaration is malformed.
66
+ *
67
+ * @since 0.1.0
68
+ * @category prefixes
69
+ */
70
+ const prefixes = (shapesGraph, node) => Arr.reduce(Arr.flatMap(prefixNodes(shapesGraph, node), (current) => Arr.map(objectsOf(shapesGraph, current, sh.declare), (declaration) => [current, declaration])), noPrefixes, (acc, [current, declaration]) => Result.flatMap(acc, (declared) => declare(shapesGraph, declared, current, declaration)));
71
+ /**
72
+ * The nodes reachable via `sh:prefixes/owl:imports*` from `node`, depth
73
+ * first (the order in which their declarations are read).
74
+ */
75
+ const prefixNodes = (shapesGraph, node) => {
76
+ const seen = MutableHashSet.empty();
77
+ const visit = (stack) => {
78
+ const [rest, current] = Arr.unappend(stack);
79
+ if (MutableHashSet.has(seen, current.key) || !isResource(current)) return [Option.none(), rest];
80
+ MutableHashSet.add(seen, current.key);
81
+ return [Option.some(current), [...rest, ...objectsOf(shapesGraph, current, owlImports)]];
82
+ };
83
+ return Arr.getSomes(Arr.unfold(objectsOf(shapesGraph, node, sh.prefixes), (stack) => Arr.isReadonlyArrayNonEmpty(stack) ? Option.some(visit(stack)) : Option.none()));
84
+ };
85
+ const singleOf = (values, refinement) => values.length === 1 ? Option.filter(Arr.head(values), refinement) : Option.none();
86
+ const isLiteralOrIri = (t) => isLiteral(t) || isNamedNode(t);
87
+ /** Adds one `sh:declare` prefix declaration to those read before it. */
88
+ const declare = (shapesGraph, declared, current, declaration) => {
89
+ if (!isResource(declaration)) return fail(`sh:declare of ${current.key} must be an IRI or blank node`);
90
+ const prefix = singleOf(objectsOf(shapesGraph, declaration, sh.prefix), isLiteral);
91
+ const namespace = singleOf(objectsOf(shapesGraph, declaration, sh.namespace), isLiteralOrIri);
92
+ if (Option.isNone(prefix) || Option.isNone(namespace)) return fail(`prefix declaration ${declaration.key} needs exactly one literal sh:prefix and sh:namespace`);
93
+ const name = prefix.value.value;
94
+ const iri = namespace.value.value;
95
+ const existing = Record.get(declared, name);
96
+ if (Option.isSome(existing) && existing.value !== iri) return fail(`prefix "${name}" is declared with two namespaces: <${existing.value}> and <${iri}>`);
97
+ return Result.succeed(Record.set(declared, name, iri));
98
+ };
99
+ const noError = () => Option.none();
100
+ const visitNothing = {
101
+ pattern: noError,
102
+ query: noError,
103
+ variable: noError
104
+ };
105
+ const isSelect = (q) => Predicate.isTagged(q, "Select");
106
+ const termVariables = (t, out) => {
107
+ if (Predicate.isTagged(t, "Variable")) out(t.value);
108
+ else if (Predicate.isTagged(t, "Triple")) {
109
+ termVariables(t.subject, out);
110
+ termVariables(t.predicate, out);
111
+ termVariables(t.object, out);
112
+ }
113
+ };
114
+ /** Visits every pattern, (sub-)query and variable occurrence; returns the first error. */
115
+ const walk = (root, visitor) => {
116
+ const visit = {
117
+ ...visitNothing,
118
+ ...visitor
119
+ };
120
+ let error = Option.none();
121
+ const report = (e) => {
122
+ if (Option.isNone(error)) error = e;
123
+ };
124
+ const variable = (name) => report(visit.variable(name));
125
+ const term = (t) => termVariables(t, variable);
126
+ const expression = (expr) => {
127
+ return Match.value(expr).pipe(Match.tag("Variable", "Triple", (e) => {
128
+ term(e);
129
+ }), Match.tag("Operation", "FunctionCall", (e) => {
130
+ e.args.forEach(expression);
131
+ }), Match.tag("Aggregate", (e) => {
132
+ if (e.expression !== "*") expression(e.expression);
133
+ }), Match.tag("Exists", (e) => {
134
+ pattern(e.pattern);
135
+ }), Match.orElse(() => void 0));
136
+ };
137
+ const pathTerms = (p) => {
138
+ Match.value(p).pipe(Match.tag("PathLink", "PathNegated", () => void 0), Match.tag("PathSequence", "PathAlternative", (list) => list.paths.forEach(pathTerms)), Match.orElse((unary) => pathTerms(unary.path)));
139
+ };
140
+ const pattern = (pat) => {
141
+ report(visit.pattern(pat));
142
+ return Match.value(pat).pipe(Match.tag("Bgp", (p) => {
143
+ Arr.forEach(p.triples, (t) => {
144
+ term(t.subject);
145
+ if (Predicate.isTagged(t, "TriplePattern")) term(t.predicate);
146
+ else pathTerms(t.path);
147
+ term(t.object);
148
+ });
149
+ }), Match.tag("Group", (p) => {
150
+ p.patterns.forEach(pattern);
151
+ }), Match.tag("Optional", "Minus", (p) => {
152
+ pattern(p.pattern);
153
+ }), Match.tag("Union", (p) => {
154
+ p.patterns.forEach(pattern);
155
+ }), Match.tag("Graph", "Service", (p) => {
156
+ term(p.name);
157
+ pattern(p.pattern);
158
+ }), Match.tag("Filter", (p) => {
159
+ expression(p.expression);
160
+ }), Match.tag("Bind", (p) => {
161
+ expression(p.expression);
162
+ variable(p.variable.value);
163
+ }), Match.tag("Values", (p) => {
164
+ p.variables.forEach((v) => variable(v.value));
165
+ }), Match.tag("SubSelect", (p) => {
166
+ query(p.query, true);
167
+ }), Match.exhaustive);
168
+ };
169
+ const query = (q, nested) => {
170
+ report(visit.query(q, nested));
171
+ if (isSelect(q) && q.projection !== "*") Arr.forEach(q.projection, (p) => {
172
+ if (Predicate.isTagged(p, "Variable")) variable(p.value);
173
+ else {
174
+ expression(p.expression);
175
+ variable(p.variable.value);
176
+ }
177
+ });
178
+ if (Predicate.isTagged(q, "Construct")) Arr.forEach(q.template, (t) => [
179
+ t.subject,
180
+ t.predicate,
181
+ t.object
182
+ ].forEach(term));
183
+ if (Predicate.isTagged(q, "Describe") && q.terms !== "*") q.terms.forEach(term);
184
+ pattern(q.where);
185
+ Arr.forEach(q.groupBy, (g) => {
186
+ expression(g.expression);
187
+ if (g.variable !== void 0) variable(g.variable.value);
188
+ });
189
+ q.having.forEach(expression);
190
+ Arr.forEach(q.orderBy, (o) => expression(o.expression));
191
+ if (q.values !== void 0) pattern(q.values);
192
+ };
193
+ query(root, false);
194
+ return error;
195
+ };
196
+ /**
197
+ * Checks the restrictions that SHACL places on queries evaluated with
198
+ * pre-bound variables (Appendix A "Pre-binding of Variables in SPARQL
199
+ * Queries"): no `MINUS`, no `SERVICE`, no `VALUES`, no `AS ?var` for a
200
+ * potentially pre-bound variable, and sub-queries must project every
201
+ * potentially pre-bound variable (except `shapesGraph` and `currentShape`).
202
+ *
203
+ * @since 0.1.0
204
+ * @category validation
205
+ */
206
+ const checkPrebinding = (query, prebound) => {
207
+ const ordered = Arr.dedupe(Arr.fromIterable(prebound));
208
+ const potential = MutableHashSet.fromIterable(ordered);
209
+ const rebinds = (v) => MutableHashSet.has(potential, v.value) ? Option.some(`the pre-bound variable ?${v.value} must not be assigned with AS`) : Option.none();
210
+ const unprojected = (q) => {
211
+ const projected = MutableHashSet.fromIterable(projectedVariables(q));
212
+ return Option.map(Arr.findFirst(ordered, (v) => !optionalPrebound.has(v) && !MutableHashSet.has(projected, v)), (v) => `sub-queries must project the pre-bound variable ?${v}`);
213
+ };
214
+ const error = walk(query, {
215
+ pattern: (pat) => {
216
+ return Match.value(pat).pipe(Match.withReturnType(), Match.tag("Minus", () => Option.some("MINUS is not allowed in SHACL-SPARQL queries with pre-bound variables")), Match.tag("Service", () => Option.some("SERVICE is not allowed in SHACL-SPARQL queries with pre-bound variables")), Match.tag("Values", () => Option.some("VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables")), Match.tag("Bind", (p) => rebinds(p.variable)), Match.orElse(() => Option.none()));
217
+ },
218
+ query: (q, nested) => {
219
+ if (q.values !== void 0) return Option.some("VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables");
220
+ const projections = isSelect(q) && q.projection !== "*" ? Arr.filter(q.projection, (p) => Predicate.isTagged(p, "Projection")) : [];
221
+ return pipe(Arr.findFirst(projections, (p) => rebinds(p.variable)), Option.orElse(() => Arr.findFirst(q.groupBy, (g) => g.variable === void 0 ? Option.none() : rebinds(g.variable))), Option.orElse(() => nested && isSelect(q) ? unprojected(q) : Option.none()));
222
+ }
223
+ });
224
+ return Option.match(error, {
225
+ onNone: () => Result.succeed(query),
226
+ onSome: fail
227
+ });
228
+ };
229
+ /**
230
+ * Converts a SHACL property path to a SPARQL property path.
231
+ *
232
+ * @since 0.1.0
233
+ * @category paths
234
+ */
235
+ const toSparqlPath = (path) => {
236
+ return Match.value(path).pipe(Match.tag("PredicatePath", (step) => link(step.predicate)), Match.tag("SequencePath", (step) => sequence(...step.paths.map(toSparqlPath))), Match.tag("AlternativePath", (step) => alternative(...step.paths.map(toSparqlPath))), Match.tag("InversePath", (step) => inverse(toSparqlPath(step.path))), Match.tag("ZeroOrMorePath", (step) => zeroOrMore(toSparqlPath(step.path))), Match.tag("OneOrMorePath", (step) => oneOrMore(toSparqlPath(step.path))), Match.tag("ZeroOrOnePath", (step) => zeroOrOne(toSparqlPath(step.path))), Match.exhaustive);
237
+ };
238
+ const PATH = "PATH";
239
+ const isPathLink = (p) => Predicate.isTagged(p, "PathLink");
240
+ const mapGroup = (g, f) => ({
241
+ ...g,
242
+ patterns: g.patterns.map((p) => mapPattern(p, f))
243
+ });
244
+ const mapExpression = (expr, f) => {
245
+ return Match.value(expr).pipe(Match.tag("Operation", (e) => ({
246
+ ...e,
247
+ args: e.args.map((a) => mapExpression(a, f))
248
+ })), Match.tag("FunctionCall", (e) => ({
249
+ ...e,
250
+ args: e.args.map((a) => mapExpression(a, f))
251
+ })), Match.tag("Aggregate", (e) => e.expression === "*" ? e : {
252
+ ...e,
253
+ expression: mapExpression(e.expression, f)
254
+ }), Match.tag("Exists", (e) => ({
255
+ ...e,
256
+ pattern: mapGroup(e.pattern, f)
257
+ })), Match.orElse((e) => e));
258
+ };
259
+ const mapPattern = (pat, f) => {
260
+ return Match.value(pat).pipe(Match.tag("Bgp", (p) => ({
261
+ ...p,
262
+ triples: p.triples.map(f)
263
+ })), Match.tag("Group", (p) => mapGroup(p, f)), Match.tag("Optional", "Minus", "Graph", "Service", (p) => ({
264
+ ...p,
265
+ pattern: mapGroup(p.pattern, f)
266
+ })), Match.tag("Union", (p) => ({
267
+ ...p,
268
+ patterns: p.patterns.map((g) => mapGroup(g, f))
269
+ })), Match.tag("Filter", (p) => ({
270
+ ...p,
271
+ expression: mapExpression(p.expression, f)
272
+ })), Match.tag("Bind", (p) => ({
273
+ ...p,
274
+ expression: mapExpression(p.expression, f)
275
+ })), Match.tag("Values", (p) => p), Match.tag("SubSelect", (p) => ({
276
+ ...p,
277
+ query: mapQuery(p.query, f)
278
+ })), Match.exhaustive);
279
+ };
280
+ const mapQuery = (q, f) => {
281
+ const expression = (e) => mapExpression(e, f);
282
+ const mapped = {
283
+ ...q,
284
+ where: mapGroup(q.where, f),
285
+ having: q.having.map(expression),
286
+ orderBy: q.orderBy.map((o) => ({
287
+ ...o,
288
+ expression: expression(o.expression)
289
+ })),
290
+ groupBy: q.groupBy.map((g) => ({
291
+ ...g,
292
+ expression: expression(g.expression)
293
+ }))
294
+ };
295
+ if (!isSelect(q) || q.projection === "*") return mapped;
296
+ return {
297
+ ...mapped,
298
+ projection: q.projection.map((p) => Predicate.isTagged(p, "Projection") ? {
299
+ ...p,
300
+ expression: expression(p.expression)
301
+ } : p)
302
+ };
303
+ };
304
+ /**
305
+ * Substitutes the variable `$PATH` in the predicate position of triple
306
+ * patterns with a property path (the `sh:path` of the current property
307
+ * shape). Any other use of `$PATH` makes the query ill-formed.
308
+ *
309
+ * @since 0.1.0
310
+ * @category paths
311
+ */
312
+ const substitutePath = (query, path) => {
313
+ const sparqlPath = toSparqlPath(path);
314
+ const substituted = mapQuery(query, (t) => Predicate.isTagged(t, "TriplePattern") && Predicate.isTagged(t.predicate, "Variable") && t.predicate.value === PATH ? isPathLink(sparqlPath) ? triplePattern(t.subject, sparqlPath.iri, t.object) : pathPattern(t.subject, sparqlPath, t.object) : t);
315
+ const error = walk(substituted, { variable: (name) => name === PATH ? Option.some("$PATH may only be used in the predicate position of triple patterns") : Option.none() });
316
+ return Option.match(error, {
317
+ onNone: () => Result.succeed(substituted),
318
+ onSome: fail
319
+ });
320
+ };
321
+ /** The first of `required` that a `SELECT` query does not project. */
322
+ const unprojectedOf = (query, required) => {
323
+ const projected = MutableHashSet.fromIterable(projectedVariables(query));
324
+ return Arr.findFirst(required, (v) => !MutableHashSet.has(projected, v));
325
+ };
326
+ /**
327
+ * Reads, parses and checks the `sh:select` or `sh:ask` query of a node of
328
+ * the shapes graph (a SPARQL-based constraint, validator, target or target
329
+ * type), using its prefix declarations. Fails with a
330
+ * `SparqlEvaluationError` when the query is missing, ambiguous, does not
331
+ * parse, has the wrong form or violates the pre-binding restrictions.
332
+ *
333
+ * @since 0.1.0
334
+ * @category compiling
335
+ */
336
+ const compileResult = (shapesGraph, node, options) => {
337
+ const property = options.form === "select" ? sh.select : sh.ask;
338
+ const literal = singleOf(objectsOf(shapesGraph, node, property), isLiteral);
339
+ if (Option.isNone(literal)) return fail(`${node.key} must have exactly one literal value for ${property.key}`);
340
+ const text = literal.value.value;
341
+ return Result.flatMap(prefixes(shapesGraph, node), (declared) => {
342
+ const parsed = parseQueryResult(text, { prefixes: declared });
343
+ if (Result.isFailure(parsed)) return Result.fail(new SparqlEvaluationError({
344
+ message: `the ${property.key} query of ${node.key} does not parse: ${parsed.failure.message}`,
345
+ cause: parsed.failure
346
+ }));
347
+ const query = parsed.success;
348
+ const expected = options.form === "select" ? "Select" : "Ask";
349
+ if (!Predicate.isTagged(query, expected)) return fail(`the ${property.key} query of ${node.key} must be a ${expected.toUpperCase()} query`);
350
+ const missing = isSelect(query) ? unprojectedOf(query, options.project ?? []) : Option.none();
351
+ if (Option.isSome(missing)) return fail(`the query of ${node.key} must project ?${missing.value}`);
352
+ return Result.flatMap(checkPrebinding(query, options.prebound), (checked) => options.path === void 0 ? Result.succeed(checked) : substitutePath(checked, options.path));
353
+ });
354
+ };
355
+ /**
356
+ * `compileResult` as an `Effect`.
357
+ *
358
+ * @since 0.1.0
359
+ * @category compiling
360
+ */
361
+ const compile = (shapesGraph, node, options) => Effect.suspend(() => Effect.fromResult(compileResult(shapesGraph, node, options)));
362
+ export { optionalPrebound as a, toSparqlPath as c, compileResult as i, checkPrebinding as n, prefixes as o, compile as r, substitutePath as s, Query_exports as t };
363
+
364
+ //# sourceMappingURL=Query-D9A6LOpP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query-D9A6LOpP.mjs","names":["Vocabulary","Term.namedNode","Sparql.SparqlEvaluationError","Dataset.objectsOf","Term.isResource","Term.isLiteral","Term.isNamedNode","Ast.projectedVariables","Ast.link","Ast.sequence","Ast.alternative","Ast.inverse","Ast.zeroOrMore","Ast.oneOrMore","Ast.zeroOrOne","Ast.triplePattern","Ast.pathPattern","Parser.parseQueryResult"],"sources":["../src/sparql/shacl/Query.ts"],"sourcesContent":["/**\n * SHACL-SPARQL queries: reading the `sh:select` / `sh:ask` queries of a\n * shapes graph with their prefix declarations (§5.2.1), enforcing the\n * syntactic restrictions of pre-binding (Appendix A) and substituting the\n * `$PATH` variable with a property path (§5.3, §6.3).\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Query } from \"@thomasfosterau/effect-rdf/sparql/shacl\"\n *\n * const program = Effect.gen(function* () {\n * const query = yield* Query.compile(shapesGraph, constraintNode, {\n * form: \"select\",\n * prebound: [\"this\", \"shapesGraph\", \"currentShape\"],\n * path: shape.path,\n * })\n * })\n * ```\n *\n * @since 0.1.0\n */\nimport { Dataset, Term } from '../../index.ts';\nimport { Path, Sparql, Vocabulary } from '../../shacl/index.ts';\nimport { Ast, Parser } from '../index.ts';\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport { pipe } from 'effect/Function';\nimport * as Match from 'effect/Match';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Record from 'effect/Record';\nimport * as Result from 'effect/Result';\n\nconst { sh } = Vocabulary;\nconst owlImports = Term.namedNode('http://www.w3.org/2002/07/owl#imports');\n\n/**\n * The variables that are optional to pre-bind (and to project from\n * sub-queries): `$shapesGraph` and `$currentShape`.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const optionalPrebound: ReadonlySet<string> = new Set(['shapesGraph', 'currentShape']);\n\nconst fail = (message: string): Result.Result<never, Sparql.SparqlEvaluationError> =>\n Result.fail(new Sparql.SparqlEvaluationError({ message }));\n\n// -----------------------------------------------------------------------------\n// Prefixes\n// -----------------------------------------------------------------------------\n\nconst noPrefixes: Result.Result<\n Record.ReadonlyRecord<string, string>,\n Sparql.SparqlEvaluationError\n> = Result.succeed({});\n\n/**\n * The prefix mappings of a SPARQL executable: the union of the\n * `sh:prefix` / `sh:namespace` pairs reachable via\n * `sh:prefixes/owl:imports* /sh:declare`. Fails when a prefix is declared\n * with two different namespaces (an ill-formed shapes graph) or a\n * declaration is malformed.\n *\n * @since 0.1.0\n * @category prefixes\n */\nexport const prefixes = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n): Result.Result<Record.ReadonlyRecord<string, string>, Sparql.SparqlEvaluationError> =>\n Arr.reduce(\n Arr.flatMap(prefixNodes(shapesGraph, node), (current) =>\n Arr.map(\n Dataset.objectsOf(shapesGraph, current, sh.declare),\n (declaration) => [current, declaration] as const,\n ),\n ),\n noPrefixes,\n (acc, [current, declaration]) =>\n Result.flatMap(acc, (declared) => declare(shapesGraph, declared, current, declaration)),\n );\n\n/**\n * The nodes reachable via `sh:prefixes/owl:imports*` from `node`, depth\n * first (the order in which their declarations are read).\n */\nconst prefixNodes = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n): ReadonlyArray<Term.Resource> => {\n const seen = MutableHashSet.empty<string>();\n const visit = (\n stack: Arr.NonEmptyReadonlyArray<Term.GroundTerm>,\n ): readonly [Option.Option<Term.Resource>, ReadonlyArray<Term.GroundTerm>] => {\n const [rest, current] = Arr.unappend(stack);\n if (MutableHashSet.has(seen, current.key) || !Term.isResource(current))\n return [Option.none(), rest];\n MutableHashSet.add(seen, current.key);\n return [\n Option.some(current),\n [...rest, ...Dataset.objectsOf(shapesGraph, current, owlImports)],\n ];\n };\n return Arr.getSomes(\n Arr.unfold(Dataset.objectsOf(shapesGraph, node, sh.prefixes), (stack) =>\n Arr.isReadonlyArrayNonEmpty(stack) ? Option.some(visit(stack)) : Option.none(),\n ),\n );\n};\n\nconst singleOf = <A extends Term.GroundTerm>(\n values: ReadonlyArray<Term.GroundTerm>,\n refinement: (t: Term.GroundTerm) => t is A,\n): Option.Option<A> =>\n values.length === 1 ? Option.filter(Arr.head(values), refinement) : Option.none();\n\nconst isLiteralOrIri = (t: Term.GroundTerm): t is Term.Literal | Term.NamedNode =>\n Term.isLiteral(t) || Term.isNamedNode(t);\n\n/** Adds one `sh:declare` prefix declaration to those read before it. */\nconst declare = (\n shapesGraph: Dataset.Dataset,\n declared: Record.ReadonlyRecord<string, string>,\n current: Term.Resource,\n declaration: Term.GroundTerm,\n): Result.Result<Record.ReadonlyRecord<string, string>, Sparql.SparqlEvaluationError> => {\n if (!Term.isResource(declaration))\n return fail(`sh:declare of ${current.key} must be an IRI or blank node`);\n const prefix = singleOf(Dataset.objectsOf(shapesGraph, declaration, sh.prefix), Term.isLiteral);\n const namespace = singleOf(\n Dataset.objectsOf(shapesGraph, declaration, sh.namespace),\n isLiteralOrIri,\n );\n if (Option.isNone(prefix) || Option.isNone(namespace)) {\n return fail(\n `prefix declaration ${declaration.key} needs exactly one literal sh:prefix and sh:namespace`,\n );\n }\n const name = prefix.value.value;\n const iri = namespace.value.value;\n const existing = Record.get(declared, name);\n if (Option.isSome(existing) && existing.value !== iri) {\n return fail(\n `prefix \"${name}\" is declared with two namespaces: <${existing.value}> and <${iri}>`,\n );\n }\n return Result.succeed(Record.set(declared, name, iri));\n};\n\n// -----------------------------------------------------------------------------\n// Walking queries\n// -----------------------------------------------------------------------------\n\n/** A check of a query part: the error it finds, if any. */\ntype Check<A extends ReadonlyArray<unknown>> = (...args: A) => Option.Option<string>;\n\ninterface Visitor {\n readonly pattern: Check<[p: Ast.Pattern]>;\n readonly query: Check<[q: Ast.Query, nested: boolean]>;\n readonly variable: Check<[name: string]>;\n}\n\nconst noError = (): Option.Option<string> => Option.none();\n\nconst visitNothing: Visitor = { pattern: noError, query: noError, variable: noError };\n\nconst isSelect = (q: Ast.Query): q is Ast.SelectQuery => Predicate.isTagged(q, 'Select');\n\nconst termVariables = (t: Ast.TermPattern | Term.Term, out: (name: string) => void): void => {\n if (Predicate.isTagged(t, 'Variable')) out(t.value);\n else if (Predicate.isTagged(t, 'Triple')) {\n termVariables(t.subject, out);\n termVariables(t.predicate, out);\n termVariables(t.object, out);\n }\n};\n\n/** Visits every pattern, (sub-)query and variable occurrence; returns the first error. */\nconst walk = (root: Ast.Query, visitor: Partial<Visitor>): Option.Option<string> => {\n const visit: Visitor = { ...visitNothing, ...visitor };\n let error = Option.none<string>();\n const report = (e: Option.Option<string>) => {\n if (Option.isNone(error)) error = e;\n };\n const variable = (name: string) => report(visit.variable(name));\n const term = (t: Ast.TermPattern | Term.Term) => termVariables(t, variable);\n\n const expression = (expr: Ast.Expression): void => {\n return Match.value(expr).pipe(\n Match.tag('Variable', 'Triple', (e) => {\n term(e);\n return;\n }),\n Match.tag('Operation', 'FunctionCall', (e) => {\n e.args.forEach(expression);\n return;\n }),\n Match.tag('Aggregate', (e) => {\n if (e.expression !== '*') expression(e.expression);\n return;\n }),\n Match.tag('Exists', (e) => {\n pattern(e.pattern);\n return;\n }),\n Match.orElse(() => undefined),\n );\n };\n\n const pathTerms = (p: Ast.Path): void => {\n Match.value(p).pipe(\n Match.tag('PathLink', 'PathNegated', () => undefined),\n Match.tag('PathSequence', 'PathAlternative', (list) => list.paths.forEach(pathTerms)),\n Match.orElse((unary) => pathTerms(unary.path)),\n );\n };\n\n const pattern = (pat: Ast.Pattern): void => {\n report(visit.pattern(pat));\n return Match.value(pat).pipe(\n Match.tag('Bgp', (p) => {\n Arr.forEach(p.triples, (t) => {\n term(t.subject);\n if (Predicate.isTagged(t, 'TriplePattern')) term(t.predicate);\n else pathTerms(t.path);\n term(t.object);\n });\n return;\n }),\n Match.tag('Group', (p) => {\n p.patterns.forEach(pattern);\n return;\n }),\n Match.tag('Optional', 'Minus', (p) => {\n pattern(p.pattern);\n return;\n }),\n Match.tag('Union', (p) => {\n p.patterns.forEach(pattern);\n return;\n }),\n Match.tag('Graph', 'Service', (p) => {\n term(p.name);\n pattern(p.pattern);\n return;\n }),\n Match.tag('Filter', (p) => {\n expression(p.expression);\n return;\n }),\n Match.tag('Bind', (p) => {\n expression(p.expression);\n variable(p.variable.value);\n return;\n }),\n Match.tag('Values', (p) => {\n p.variables.forEach((v) => variable(v.value));\n return;\n }),\n Match.tag('SubSelect', (p) => {\n query(p.query, true);\n return;\n }),\n Match.exhaustive,\n );\n };\n\n const query = (q: Ast.Query, nested: boolean): void => {\n report(visit.query(q, nested));\n if (isSelect(q) && q.projection !== '*') {\n Arr.forEach(q.projection, (p) => {\n if (Predicate.isTagged(p, 'Variable')) variable(p.value);\n else {\n expression(p.expression);\n variable(p.variable.value);\n }\n });\n }\n if (Predicate.isTagged(q, 'Construct'))\n Arr.forEach(q.template, (t) => [t.subject, t.predicate, t.object].forEach(term));\n if (Predicate.isTagged(q, 'Describe') && q.terms !== '*') q.terms.forEach(term);\n pattern(q.where);\n Arr.forEach(q.groupBy, (g) => {\n expression(g.expression);\n if (g.variable !== undefined) variable(g.variable.value);\n });\n q.having.forEach(expression);\n Arr.forEach(q.orderBy, (o) => expression(o.expression));\n if (q.values !== undefined) pattern(q.values);\n };\n\n query(root, false);\n return error;\n};\n\n/**\n * Checks the restrictions that SHACL places on queries evaluated with\n * pre-bound variables (Appendix A \"Pre-binding of Variables in SPARQL\n * Queries\"): no `MINUS`, no `SERVICE`, no `VALUES`, no `AS ?var` for a\n * potentially pre-bound variable, and sub-queries must project every\n * potentially pre-bound variable (except `shapesGraph` and `currentShape`).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const checkPrebinding = (\n query: Ast.Query,\n prebound: Iterable<string>,\n): Result.Result<Ast.Query, Sparql.SparqlEvaluationError> => {\n const ordered = Arr.dedupe(Arr.fromIterable(prebound));\n const potential = MutableHashSet.fromIterable(ordered);\n const rebinds = (v: Term.Variable): Option.Option<string> =>\n MutableHashSet.has(potential, v.value)\n ? Option.some(`the pre-bound variable ?${v.value} must not be assigned with AS`)\n : Option.none();\n const unprojected = (q: Ast.SelectQuery): Option.Option<string> => {\n const projected = MutableHashSet.fromIterable(Ast.projectedVariables(q));\n return Option.map(\n Arr.findFirst(ordered, (v) => !optionalPrebound.has(v) && !MutableHashSet.has(projected, v)),\n (v) => `sub-queries must project the pre-bound variable ?${v}`,\n );\n };\n const error = walk(query, {\n pattern: (pat) => {\n return Match.value(pat).pipe(\n Match.withReturnType<Option.Option<string>>(),\n Match.tag('Minus', () =>\n Option.some('MINUS is not allowed in SHACL-SPARQL queries with pre-bound variables'),\n ),\n Match.tag('Service', () =>\n Option.some('SERVICE is not allowed in SHACL-SPARQL queries with pre-bound variables'),\n ),\n Match.tag('Values', () =>\n Option.some('VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables'),\n ),\n Match.tag('Bind', (p) => rebinds(p.variable)),\n Match.orElse(() => Option.none()),\n );\n },\n query: (q, nested) => {\n if (q.values !== undefined)\n return Option.some(\n 'VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables',\n );\n const projections =\n isSelect(q) && q.projection !== '*'\n ? Arr.filter(q.projection, (p): p is Ast.Projection =>\n Predicate.isTagged(p, 'Projection'),\n )\n : [];\n return pipe(\n Arr.findFirst(projections, (p) => rebinds(p.variable)),\n Option.orElse(() =>\n Arr.findFirst(q.groupBy, (g) =>\n g.variable === undefined ? Option.none() : rebinds(g.variable),\n ),\n ),\n Option.orElse(() => (nested && isSelect(q) ? unprojected(q) : Option.none())),\n );\n },\n });\n return Option.match(error, { onNone: () => Result.succeed(query), onSome: fail });\n};\n\n// -----------------------------------------------------------------------------\n// $PATH substitution\n// -----------------------------------------------------------------------------\n\n/**\n * Converts a SHACL property path to a SPARQL property path.\n *\n * @since 0.1.0\n * @category paths\n */\nexport const toSparqlPath = (path: Path.Path): Ast.Path => {\n return Match.value(path).pipe(\n Match.tag('PredicatePath', (step) => Ast.link(step.predicate)),\n Match.tag('SequencePath', (step) => Ast.sequence(...step.paths.map(toSparqlPath))),\n Match.tag('AlternativePath', (step) => Ast.alternative(...step.paths.map(toSparqlPath))),\n Match.tag('InversePath', (step) => Ast.inverse(toSparqlPath(step.path))),\n Match.tag('ZeroOrMorePath', (step) => Ast.zeroOrMore(toSparqlPath(step.path))),\n Match.tag('OneOrMorePath', (step) => Ast.oneOrMore(toSparqlPath(step.path))),\n Match.tag('ZeroOrOnePath', (step) => Ast.zeroOrOne(toSparqlPath(step.path))),\n Match.exhaustive,\n );\n};\n\nconst PATH = 'PATH';\n\nconst isPathLink = (p: Ast.Path): p is Ast.PathLink => Predicate.isTagged(p, 'PathLink');\n\nconst mapGroup = (\n g: Ast.GroupPattern,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Ast.GroupPattern => ({ ...g, patterns: g.patterns.map((p) => mapPattern(p, f)) });\n\nconst mapExpression = (\n expr: Ast.Expression,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Ast.Expression => {\n return Match.value(expr).pipe(\n Match.tag('Operation', (e) => ({ ...e, args: e.args.map((a) => mapExpression(a, f)) })),\n Match.tag('FunctionCall', (e) => ({ ...e, args: e.args.map((a) => mapExpression(a, f)) })),\n Match.tag('Aggregate', (e) =>\n e.expression === '*' ? e : { ...e, expression: mapExpression(e.expression, f) },\n ),\n Match.tag('Exists', (e) => ({ ...e, pattern: mapGroup(e.pattern, f) })),\n Match.orElse((e) => e),\n );\n};\n\nconst mapPattern = (\n pat: Ast.Pattern,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Ast.Pattern => {\n return Match.value(pat).pipe(\n Match.tag('Bgp', (p) => ({ ...p, triples: p.triples.map(f) })),\n Match.tag('Group', (p) => mapGroup(p, f)),\n Match.tag('Optional', 'Minus', 'Graph', 'Service', (p) => ({\n ...p,\n pattern: mapGroup(p.pattern, f),\n })),\n Match.tag('Union', (p) => ({ ...p, patterns: p.patterns.map((g) => mapGroup(g, f)) })),\n Match.tag('Filter', (p) => ({ ...p, expression: mapExpression(p.expression, f) })),\n Match.tag('Bind', (p) => ({ ...p, expression: mapExpression(p.expression, f) })),\n Match.tag('Values', (p) => p),\n Match.tag('SubSelect', (p) => ({ ...p, query: mapQuery(p.query, f) })),\n Match.exhaustive,\n );\n};\n\nconst mapQuery = <Q extends Ast.Query>(\n q: Q,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Q => {\n const expression = (e: Ast.Expression) => mapExpression(e, f);\n const mapped: Q = {\n ...q,\n where: mapGroup(q.where, f),\n having: q.having.map(expression),\n orderBy: q.orderBy.map((o) => ({ ...o, expression: expression(o.expression) })),\n groupBy: q.groupBy.map((g) => ({ ...g, expression: expression(g.expression) })),\n };\n if (!isSelect(q) || q.projection === '*') return mapped;\n return {\n ...mapped,\n projection: q.projection.map((p) =>\n Predicate.isTagged(p, 'Projection') ? { ...p, expression: expression(p.expression) } : p,\n ),\n };\n};\n\n/**\n * Substitutes the variable `$PATH` in the predicate position of triple\n * patterns with a property path (the `sh:path` of the current property\n * shape). Any other use of `$PATH` makes the query ill-formed.\n *\n * @since 0.1.0\n * @category paths\n */\nexport const substitutePath = <Q extends Ast.Query>(\n query: Q,\n path: Path.Path,\n): Result.Result<Q, Sparql.SparqlEvaluationError> => {\n const sparqlPath = toSparqlPath(path);\n const substituted = mapQuery(query, (t) =>\n Predicate.isTagged(t, 'TriplePattern') &&\n Predicate.isTagged(t.predicate, 'Variable') &&\n t.predicate.value === PATH\n ? isPathLink(sparqlPath)\n ? Ast.triplePattern(t.subject, sparqlPath.iri, t.object)\n : Ast.pathPattern(t.subject, sparqlPath, t.object)\n : t,\n );\n const error = walk(substituted, {\n variable: (name) =>\n name === PATH\n ? Option.some('$PATH may only be used in the predicate position of triple patterns')\n : Option.none(),\n });\n return Option.match(error, { onNone: () => Result.succeed(substituted), onSome: fail });\n};\n\n// -----------------------------------------------------------------------------\n// Compiling\n// -----------------------------------------------------------------------------\n\n/** The first of `required` that a `SELECT` query does not project. */\nconst unprojectedOf = (\n query: Ast.SelectQuery,\n required: ReadonlyArray<string>,\n): Option.Option<string> => {\n const projected = MutableHashSet.fromIterable(Ast.projectedVariables(query));\n return Arr.findFirst(required, (v) => !MutableHashSet.has(projected, v));\n};\n\n/**\n * How to compile a SHACL-SPARQL query.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface CompileOptions {\n /** Read `sh:select` (a `SELECT` query) or `sh:ask` (an `ASK` query). */\n readonly form: 'select' | 'ask';\n /** The potentially pre-bound variables (checked against the pre-binding restrictions). */\n readonly prebound: ReadonlyArray<string>;\n /** The property path substituted for `$PATH`, for property shapes. */\n readonly path?: Path.Path | undefined;\n /** Variables a `SELECT` query must project (e.g. `this`). */\n readonly project?: ReadonlyArray<string> | undefined;\n}\n\n/**\n * Reads, parses and checks the `sh:select` or `sh:ask` query of a node of\n * the shapes graph (a SPARQL-based constraint, validator, target or target\n * type), using its prefix declarations. Fails with a\n * `SparqlEvaluationError` when the query is missing, ambiguous, does not\n * parse, has the wrong form or violates the pre-binding restrictions.\n *\n * @since 0.1.0\n * @category compiling\n */\nexport const compileResult = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n options: CompileOptions,\n): Result.Result<Ast.Query, Sparql.SparqlEvaluationError> => {\n const property = options.form === 'select' ? sh.select : sh.ask;\n const literal = singleOf(Dataset.objectsOf(shapesGraph, node, property), Term.isLiteral);\n if (Option.isNone(literal)) {\n return fail(`${node.key} must have exactly one literal value for ${property.key}`);\n }\n const text = literal.value.value;\n return Result.flatMap(prefixes(shapesGraph, node), (declared) => {\n const parsed = Parser.parseQueryResult(text, { prefixes: declared });\n if (Result.isFailure(parsed)) {\n return Result.fail(\n new Sparql.SparqlEvaluationError({\n message: `the ${property.key} query of ${node.key} does not parse: ${parsed.failure.message}`,\n cause: parsed.failure,\n }),\n );\n }\n const query = parsed.success;\n const expected = options.form === 'select' ? 'Select' : 'Ask';\n if (!Predicate.isTagged(query, expected)) {\n return fail(\n `the ${property.key} query of ${node.key} must be a ${expected.toUpperCase()} query`,\n );\n }\n const missing = isSelect(query) ? unprojectedOf(query, options.project ?? []) : Option.none();\n if (Option.isSome(missing))\n return fail(`the query of ${node.key} must project ?${missing.value}`);\n return Result.flatMap(checkPrebinding(query, options.prebound), (checked) =>\n options.path === undefined ? Result.succeed(checked) : substitutePath(checked, options.path),\n );\n });\n};\n\n/**\n * `compileResult` as an `Effect`.\n *\n * @since 0.1.0\n * @category compiling\n */\nexport const compile = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n options: CompileOptions,\n): Effect.Effect<Ast.Query, Sparql.SparqlEvaluationError> =>\n Effect.suspend(() => Effect.fromResult(compileResult(shapesGraph, node, options)));\n"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { d as NamedNode, t as BlankNode } from "./Term-B_4ezyXq.mjs";
2
+ import { n as Dataset } from "./Dataset-DS3ESOcO.mjs";
3
+ import "./index-Cms2TYfC.mjs";
4
+ import { i as Path } from "./Path-DRB8e-Zn.mjs";
5
+ import { r as SparqlEvaluationError } from "./Sparql-DecpWTPh.mjs";
6
+ import "./index-Ct8xFmRs.mjs";
7
+ import { N as Path$1, q as Query } from "./Ast-vcw2W-lf.mjs";
8
+ import "./index-D4QFwOjm.mjs";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Record from "effect/Record";
11
+ import * as Result from "effect/Result";
12
+ declare namespace Query_d_exports {
13
+ export { CompileOptions, checkPrebinding, compile, compileResult, optionalPrebound, prefixes, substitutePath, toSparqlPath };
14
+ }
15
+ /**
16
+ * The variables that are optional to pre-bind (and to project from
17
+ * sub-queries): `$shapesGraph` and `$currentShape`.
18
+ *
19
+ * @since 0.1.0
20
+ * @category constants
21
+ */
22
+ declare const optionalPrebound: ReadonlySet<string>;
23
+ /**
24
+ * The prefix mappings of a SPARQL executable: the union of the
25
+ * `sh:prefix` / `sh:namespace` pairs reachable via
26
+ * `sh:prefixes/owl:imports* /sh:declare`. Fails when a prefix is declared
27
+ * with two different namespaces (an ill-formed shapes graph) or a
28
+ * declaration is malformed.
29
+ *
30
+ * @since 0.1.0
31
+ * @category prefixes
32
+ */
33
+ declare const prefixes: (shapesGraph: Dataset, node: NamedNode | BlankNode) => Result.Result<Record.ReadonlyRecord<string, string>, SparqlEvaluationError>;
34
+ /**
35
+ * Checks the restrictions that SHACL places on queries evaluated with
36
+ * pre-bound variables (Appendix A "Pre-binding of Variables in SPARQL
37
+ * Queries"): no `MINUS`, no `SERVICE`, no `VALUES`, no `AS ?var` for a
38
+ * potentially pre-bound variable, and sub-queries must project every
39
+ * potentially pre-bound variable (except `shapesGraph` and `currentShape`).
40
+ *
41
+ * @since 0.1.0
42
+ * @category validation
43
+ */
44
+ declare const checkPrebinding: (query: Query, prebound: Iterable<string>) => Result.Result<Query, SparqlEvaluationError>;
45
+ /**
46
+ * Converts a SHACL property path to a SPARQL property path.
47
+ *
48
+ * @since 0.1.0
49
+ * @category paths
50
+ */
51
+ declare const toSparqlPath: (path: Path) => Path$1;
52
+ /**
53
+ * Substitutes the variable `$PATH` in the predicate position of triple
54
+ * patterns with a property path (the `sh:path` of the current property
55
+ * shape). Any other use of `$PATH` makes the query ill-formed.
56
+ *
57
+ * @since 0.1.0
58
+ * @category paths
59
+ */
60
+ declare const substitutePath: <Q extends Query>(query: Q, path: Path) => Result.Result<Q, SparqlEvaluationError>;
61
+ /**
62
+ * How to compile a SHACL-SPARQL query.
63
+ *
64
+ * @since 0.1.0
65
+ * @category models
66
+ */
67
+ interface CompileOptions {
68
+ /** Read `sh:select` (a `SELECT` query) or `sh:ask` (an `ASK` query). */
69
+ readonly form: 'select' | 'ask';
70
+ /** The potentially pre-bound variables (checked against the pre-binding restrictions). */
71
+ readonly prebound: ReadonlyArray<string>;
72
+ /** The property path substituted for `$PATH`, for property shapes. */
73
+ readonly path?: Path | undefined;
74
+ /** Variables a `SELECT` query must project (e.g. `this`). */
75
+ readonly project?: ReadonlyArray<string> | undefined;
76
+ }
77
+ /**
78
+ * Reads, parses and checks the `sh:select` or `sh:ask` query of a node of
79
+ * the shapes graph (a SPARQL-based constraint, validator, target or target
80
+ * type), using its prefix declarations. Fails with a
81
+ * `SparqlEvaluationError` when the query is missing, ambiguous, does not
82
+ * parse, has the wrong form or violates the pre-binding restrictions.
83
+ *
84
+ * @since 0.1.0
85
+ * @category compiling
86
+ */
87
+ declare const compileResult: (shapesGraph: Dataset, node: NamedNode | BlankNode, options: CompileOptions) => Result.Result<Query, SparqlEvaluationError>;
88
+ /**
89
+ * `compileResult` as an `Effect`.
90
+ *
91
+ * @since 0.1.0
92
+ * @category compiling
93
+ */
94
+ declare const compile: (shapesGraph: Dataset, node: NamedNode | BlankNode, options: CompileOptions) => Effect.Effect<Query, SparqlEvaluationError>;
95
+ export { compileResult as a, substitutePath as c, compile as i, toSparqlPath as l, Query_d_exports as n, optionalPrebound as o, checkPrebinding as r, prefixes as s, CompileOptions as t };
96
+ //# sourceMappingURL=Query-KqSkTYyG.d.mts.map