@thomasfosterau/effect-rdf 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (776) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2251 -2
  3. package/dist/Algebra-CGG4oae3.mjs +433 -0
  4. package/dist/Algebra-CGG4oae3.mjs.map +1 -0
  5. package/dist/Algebra-uGsIEOUA.d.mts +446 -0
  6. package/dist/Ast-CPRZmBvk.mjs +552 -0
  7. package/dist/Ast-CPRZmBvk.mjs.map +1 -0
  8. package/dist/Ast-vcw2W-lf.d.mts +827 -0
  9. package/dist/Bindings-Ck3m7JRC.mjs +249 -0
  10. package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
  11. package/dist/Bindings-DiKpBd7f.d.mts +153 -0
  12. package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
  13. package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
  14. package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
  15. package/dist/ClientFormats-CXomkXLV.mjs +73 -0
  16. package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
  17. package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
  18. package/dist/Csv2Json-DynEcwCh.mjs +194 -0
  19. package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
  20. package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
  21. package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
  22. package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
  23. package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
  24. package/dist/Dataset-BlmlcI7J.mjs +782 -0
  25. package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
  26. package/dist/Dataset-DS3ESOcO.d.mts +426 -0
  27. package/dist/Dataset.d.mts +2 -0
  28. package/dist/Dataset.mjs +1 -0
  29. package/dist/Datatype-CxMpamHC.d.mts +212 -0
  30. package/dist/Datatype-DQvkNkiH.mjs +1001 -0
  31. package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
  32. package/dist/Dialect-8ChFj5EX.d.mts +113 -0
  33. package/dist/Dialect-CzVH38uo.mjs +165 -0
  34. package/dist/Dialect-CzVH38uo.mjs.map +1 -0
  35. package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
  36. package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
  37. package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
  38. package/dist/DublinCore-AnwqxRx6.mjs +137 -0
  39. package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
  40. package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
  41. package/dist/Engine-CYPB3g4h.d.mts +144 -0
  42. package/dist/Engine-DF8PN7g-.mjs +872 -0
  43. package/dist/Engine-DF8PN7g-.mjs.map +1 -0
  44. package/dist/Errors-CMdV1RhU.mjs +37 -0
  45. package/dist/Errors-CMdV1RhU.mjs.map +1 -0
  46. package/dist/Errors-u2bDjUeM.d.mts +30 -0
  47. package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
  48. package/dist/Evaluator-DOY2-guC.mjs +281 -0
  49. package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
  50. package/dist/Exif-CpqniYQd.d.mts +78 -0
  51. package/dist/Exif-DjkCfEB-.mjs +89 -0
  52. package/dist/Exif-DjkCfEB-.mjs.map +1 -0
  53. package/dist/Expression-BIMMvduQ.mjs +230 -0
  54. package/dist/Expression-BIMMvduQ.mjs.map +1 -0
  55. package/dist/Expression-W8A9cyX7.d.mts +89 -0
  56. package/dist/Extract-Bop85jES.mjs +220 -0
  57. package/dist/Extract-Bop85jES.mjs.map +1 -0
  58. package/dist/Extract-C_pCvuTC.d.mts +88 -0
  59. package/dist/Federation-BcNrozc1.d.mts +52 -0
  60. package/dist/Federation-CHScBkaK.mjs +130 -0
  61. package/dist/Federation-CHScBkaK.mjs.map +1 -0
  62. package/dist/Functions-AvjNcId_.mjs +1346 -0
  63. package/dist/Functions-AvjNcId_.mjs.map +1 -0
  64. package/dist/Functions-OQJZP-F6.d.mts +111 -0
  65. package/dist/Generator-C52mmq01.d.mts +50 -0
  66. package/dist/Generator-D3utCJC7.mjs +205 -0
  67. package/dist/Generator-D3utCJC7.mjs.map +1 -0
  68. package/dist/Grammar-CPlSxGH6.mjs +200 -0
  69. package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
  70. package/dist/Grammar-CRhnRoCu.d.mts +148 -0
  71. package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
  72. package/dist/Grammar-mQ8CgE1M.mjs +258 -0
  73. package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
  74. package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
  75. package/dist/GraphStore-DvbqwKy1.mjs +212 -0
  76. package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
  77. package/dist/Iri-BB8Ks-BF.d.mts +84 -0
  78. package/dist/Iri-Cr92gsQV.mjs +232 -0
  79. package/dist/Iri-Cr92gsQV.mjs.map +1 -0
  80. package/dist/Iri.d.mts +2 -0
  81. package/dist/Iri.mjs +1 -0
  82. package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
  83. package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
  84. package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
  85. package/dist/Isomorphism-DInKnWIy.mjs +390 -0
  86. package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
  87. package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
  88. package/dist/Isomorphism.d.mts +2 -0
  89. package/dist/Isomorphism.mjs +1 -0
  90. package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
  91. package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
  92. package/dist/JsonLd-DobFrQNa.d.mts +242 -0
  93. package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
  94. package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
  95. package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
  96. package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
  97. package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
  98. package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
  99. package/dist/LanguageTag.d.mts +2 -0
  100. package/dist/LanguageTag.mjs +1 -0
  101. package/dist/Lexical-Cg0JHrf6.mjs +243 -0
  102. package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
  103. package/dist/Lexical-D3zySYVS.d.mts +163 -0
  104. package/dist/Manifest-B6xf6mUc.mjs +148 -0
  105. package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
  106. package/dist/Manifest-DQUMRBFr.d.mts +98 -0
  107. package/dist/Mapping-BgG74x3U.d.mts +63 -0
  108. package/dist/Mapping-Dc1ZGirk.mjs +259 -0
  109. package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
  110. package/dist/Mcp-1DwTTKOK.mjs +48 -0
  111. package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
  112. package/dist/Mcp-d-pX9erx.d.mts +25 -0
  113. package/dist/Message-CK_DGQuu.mjs +95 -0
  114. package/dist/Message-CK_DGQuu.mjs.map +1 -0
  115. package/dist/Message-fIvTJSXM.d.mts +49 -0
  116. package/dist/Metadata-BbffwGDZ.mjs +445 -0
  117. package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
  118. package/dist/Metadata-CEt3yc1-.d.mts +901 -0
  119. package/dist/Metadata-D4HsQNXr.mjs +1273 -0
  120. package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
  121. package/dist/Metadata-nzS7QKRj.d.mts +350 -0
  122. package/dist/Model-DaMmxurZ.d.mts +293 -0
  123. package/dist/Model-DlPzRYhF.mjs +528 -0
  124. package/dist/Model-DlPzRYhF.mjs.map +1 -0
  125. package/dist/N3-BzyV-KIH.mjs +974 -0
  126. package/dist/N3-BzyV-KIH.mjs.map +1 -0
  127. package/dist/N3-DSLnonDn.d.mts +100 -0
  128. package/dist/NQuads-C1VBOJ3-.mjs +117 -0
  129. package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
  130. package/dist/NQuads-FjFZikFg.d.mts +76 -0
  131. package/dist/NTriples-D-kLSEAf.mjs +120 -0
  132. package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
  133. package/dist/NTriples-D34OspfW.d.mts +76 -0
  134. package/dist/Namespace-ClTUO_ya.d.mts +42 -0
  135. package/dist/Namespace-DHFIsORd.mjs +75 -0
  136. package/dist/Namespace-DHFIsORd.mjs.map +1 -0
  137. package/dist/Namespace.d.mts +2 -0
  138. package/dist/Namespace.mjs +1 -0
  139. package/dist/Namespaces-Bz85vpjW.mjs +235 -0
  140. package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
  141. package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
  142. package/dist/Optimizer-BWWQRQPY.mjs +168 -0
  143. package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
  144. package/dist/Optimizer-DUpUow6k.d.mts +26 -0
  145. package/dist/Options-BLBGL4HE.mjs +72 -0
  146. package/dist/Options-BLBGL4HE.mjs.map +1 -0
  147. package/dist/Options-BommQwP9.d.mts +127 -0
  148. package/dist/Packet-CA76wVX3.mjs +197 -0
  149. package/dist/Packet-CA76wVX3.mjs.map +1 -0
  150. package/dist/Packet-Cy5g6XuW.d.mts +130 -0
  151. package/dist/Parser-p1Gyr0QN.d.mts +85 -0
  152. package/dist/Parser-xARsOWXk.mjs +1317 -0
  153. package/dist/Parser-xARsOWXk.mjs.map +1 -0
  154. package/dist/Path-B20Yp8KE.mjs +284 -0
  155. package/dist/Path-B20Yp8KE.mjs.map +1 -0
  156. package/dist/Path-DRB8e-Zn.d.mts +181 -0
  157. package/dist/Pdf-B9RZn--8.d.mts +77 -0
  158. package/dist/Pdf-CKK6dkZn.mjs +89 -0
  159. package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
  160. package/dist/PdfA-CUjSuntT.d.mts +109 -0
  161. package/dist/PdfA-CleOhuL6.mjs +124 -0
  162. package/dist/PdfA-CleOhuL6.mjs.map +1 -0
  163. package/dist/Photoshop-CiHo80qV.mjs +233 -0
  164. package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
  165. package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
  166. package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
  167. package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
  168. package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
  169. package/dist/PrefixMap.d.mts +2 -0
  170. package/dist/PrefixMap.mjs +1 -0
  171. package/dist/Processor-CMmecFsb.mjs +198 -0
  172. package/dist/Processor-CMmecFsb.mjs.map +1 -0
  173. package/dist/Processor-FJPvO0CB.d.mts +435 -0
  174. package/dist/Protocol-BA7OkNgp.mjs +202 -0
  175. package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
  176. package/dist/Protocol-DlSoiIKB.d.mts +108 -0
  177. package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
  178. package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
  179. package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
  180. package/dist/Query-D9A6LOpP.mjs +364 -0
  181. package/dist/Query-D9A6LOpP.mjs.map +1 -0
  182. package/dist/Query-KqSkTYyG.d.mts +96 -0
  183. package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
  184. package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
  185. package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
  186. package/dist/RdfJs-D6-49XB5.mjs +86 -0
  187. package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
  188. package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
  189. package/dist/RdfJs.d.mts +2 -0
  190. package/dist/RdfJs.mjs +1 -0
  191. package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
  192. package/dist/RdfJson-BNocgW4f.mjs +548 -0
  193. package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
  194. package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
  195. package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
  196. package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
  197. package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
  198. package/dist/Rdfs-CyY2wVHI.mjs +167 -0
  199. package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
  200. package/dist/Rdfs.d.mts +2 -0
  201. package/dist/Rdfs.mjs +1 -0
  202. package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
  203. package/dist/Reasoner-Cw90zrjv.mjs +798 -0
  204. package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
  205. package/dist/Reification-BmN4EfnM.d.mts +40 -0
  206. package/dist/Reification-dpqQvjDE.mjs +82 -0
  207. package/dist/Reification-dpqQvjDE.mjs.map +1 -0
  208. package/dist/Reification.d.mts +2 -0
  209. package/dist/Reification.mjs +1 -0
  210. package/dist/Report-XHs8htzK.mjs +121 -0
  211. package/dist/Report-XHs8htzK.mjs.map +1 -0
  212. package/dist/Report-hcXsc_19.d.mts +115 -0
  213. package/dist/Resource-B1cI8FyJ.d.mts +218 -0
  214. package/dist/Resource-sIEeNh15.mjs +374 -0
  215. package/dist/Resource-sIEeNh15.mjs.map +1 -0
  216. package/dist/Resource.d.mts +2 -0
  217. package/dist/Resource.mjs +1 -0
  218. package/dist/Results-BVNEC-Wt.d.mts +277 -0
  219. package/dist/Results-peJjGA2V.mjs +621 -0
  220. package/dist/Results-peJjGA2V.mjs.map +1 -0
  221. package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
  222. package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
  223. package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
  224. package/dist/SemAct-CDchtk49.d.mts +96 -0
  225. package/dist/SemAct-CmyT4yI8.mjs +118 -0
  226. package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
  227. package/dist/Serialization-DP9H5bYQ.mjs +514 -0
  228. package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
  229. package/dist/Serialization-Df8iVauT.d.mts +392 -0
  230. package/dist/Serialization.d.mts +2 -0
  231. package/dist/Serialization.mjs +1 -0
  232. package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
  233. package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
  234. package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
  235. package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
  236. package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
  237. package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
  238. package/dist/ShExC-Ctf-06CL.d.mts +67 -0
  239. package/dist/ShExC-DJbB19i3.mjs +1181 -0
  240. package/dist/ShExC-DJbB19i3.mjs.map +1 -0
  241. package/dist/ShExError-BeYFD9rv.d.mts +61 -0
  242. package/dist/ShExError-CVtq2NnM.mjs +64 -0
  243. package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
  244. package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
  245. package/dist/ShExJ-COiPd9Xw.mjs +532 -0
  246. package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
  247. package/dist/ShExR-ByR4mCh-.mjs +480 -0
  248. package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
  249. package/dist/ShExR-CqONNNBz.d.mts +40 -0
  250. package/dist/ShapeMap-C422pxKl.d.mts +140 -0
  251. package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
  252. package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
  253. package/dist/Shapes-18GjfyBV.mjs +597 -0
  254. package/dist/Shapes-18GjfyBV.mjs.map +1 -0
  255. package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
  256. package/dist/Sparql-BiYFMSpl.mjs +29 -0
  257. package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
  258. package/dist/Sparql-DecpWTPh.d.mts +97 -0
  259. package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
  260. package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
  261. package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
  262. package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
  263. package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
  264. package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
  265. package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
  266. package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
  267. package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
  268. package/dist/Store-D0jmVfb3.d.mts +166 -0
  269. package/dist/Store-DH3Ow1GO.mjs +162 -0
  270. package/dist/Store-DH3Ow1GO.mjs.map +1 -0
  271. package/dist/Structure-BjMo4Bkc.mjs +334 -0
  272. package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
  273. package/dist/Structure-n4CmDiab.d.mts +63 -0
  274. package/dist/Table-BGgm9nbM.mjs +538 -0
  275. package/dist/Table-BGgm9nbM.mjs.map +1 -0
  276. package/dist/Table-C3reiVrb.d.mts +261 -0
  277. package/dist/Term-B_4ezyXq.d.mts +619 -0
  278. package/dist/Term-CFLG1qu4.mjs +991 -0
  279. package/dist/Term-CFLG1qu4.mjs.map +1 -0
  280. package/dist/Term.d.mts +2 -0
  281. package/dist/Term.mjs +1 -0
  282. package/dist/TermCodec-CDZiEztW.mjs +397 -0
  283. package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
  284. package/dist/TermCodec-_03bDXr0.d.mts +209 -0
  285. package/dist/TermCodec.d.mts +2 -0
  286. package/dist/TermCodec.mjs +1 -0
  287. package/dist/TermJson-BOPe0yve.d.mts +232 -0
  288. package/dist/TermJson-FAg3lvjl.mjs +142 -0
  289. package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
  290. package/dist/TermJson.d.mts +2 -0
  291. package/dist/TermJson.mjs +1 -0
  292. package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
  293. package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
  294. package/dist/TermSchema-DBO6MroX.d.mts +6 -0
  295. package/dist/Testing-B-aPCpmu.mjs +63 -0
  296. package/dist/Testing-B-aPCpmu.mjs.map +1 -0
  297. package/dist/Testing-CF6s8P3O.d.mts +53 -0
  298. package/dist/Tiff-CR-2QeSI.d.mts +148 -0
  299. package/dist/Tiff-DlsOlZPM.mjs +169 -0
  300. package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
  301. package/dist/Tools-7MdRKccr.d.mts +583 -0
  302. package/dist/Tools-ryxphZbI.mjs +329 -0
  303. package/dist/Tools-ryxphZbI.mjs.map +1 -0
  304. package/dist/Translate-B0YKKANS.d.mts +37 -0
  305. package/dist/Translate-gzWPq0Ia.mjs +308 -0
  306. package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
  307. package/dist/Translation-DC9rLm2y.mjs +1535 -0
  308. package/dist/Translation-DC9rLm2y.mjs.map +1 -0
  309. package/dist/Translation-K4L9XBqX.d.mts +103 -0
  310. package/dist/TriG-BkqtqZ6Y.mjs +125 -0
  311. package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
  312. package/dist/TriG-xDjdDatp.d.mts +86 -0
  313. package/dist/Turtle-Bv1_bisW.d.mts +85 -0
  314. package/dist/Turtle-CZVUOtwl.mjs +133 -0
  315. package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
  316. package/dist/ValidationReport-DBdJshW5.mjs +285 -0
  317. package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
  318. package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
  319. package/dist/Validator-227ff9Rn.d.mts +179 -0
  320. package/dist/Validator-BzXMKDeJ.mjs +1162 -0
  321. package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
  322. package/dist/Validator-Dl8cih5V.d.mts +207 -0
  323. package/dist/Validator-DmUfMbpL.mjs +568 -0
  324. package/dist/Validator-DmUfMbpL.mjs.map +1 -0
  325. package/dist/Vocab-DceKywpq.mjs +168 -0
  326. package/dist/Vocab-DceKywpq.mjs.map +1 -0
  327. package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
  328. package/dist/Vocab-Do56UgBX.d.mts +81 -0
  329. package/dist/Vocab-TfpWG1Ne.mjs +118 -0
  330. package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
  331. package/dist/Vocab.d.mts +2 -0
  332. package/dist/Vocab.mjs +1 -0
  333. package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
  334. package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
  335. package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
  336. package/dist/Xml-B7iihYCS.mjs +976 -0
  337. package/dist/Xml-B7iihYCS.mjs.map +1 -0
  338. package/dist/Xml-CmfHS7SW.d.mts +267 -0
  339. package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
  340. package/dist/Xmp-DCGN9pOD.mjs +307 -0
  341. package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
  342. package/dist/XmpBasic-CP38jpR_.mjs +73 -0
  343. package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
  344. package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
  345. package/dist/XmpMM-BfL_TgJF.mjs +73 -0
  346. package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
  347. package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
  348. package/dist/XmpRights-BKPtoI5L.mjs +73 -0
  349. package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
  350. package/dist/XmpRights-CaALZQz2.d.mts +63 -0
  351. package/dist/Xsd-Cdgx5zRB.mjs +405 -0
  352. package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
  353. package/dist/Xsd-D2elNhSm.d.mts +187 -0
  354. package/dist/Xsd.d.mts +2 -0
  355. package/dist/Xsd.mjs +1 -0
  356. package/dist/accessors-CEjaojuQ.mjs +28 -0
  357. package/dist/accessors-CEjaojuQ.mjs.map +1 -0
  358. package/dist/codec-Lb2T96rv.d.mts +20 -0
  359. package/dist/codec-QNo7IdJF.mjs +389 -0
  360. package/dist/codec-QNo7IdJF.mjs.map +1 -0
  361. package/dist/csvw/Csv2Json.d.mts +2 -0
  362. package/dist/csvw/Csv2Json.mjs +1 -0
  363. package/dist/csvw/Csv2Rdf.d.mts +2 -0
  364. package/dist/csvw/Csv2Rdf.mjs +1 -0
  365. package/dist/csvw/Datatype.d.mts +2 -0
  366. package/dist/csvw/Datatype.mjs +1 -0
  367. package/dist/csvw/Metadata.d.mts +2 -0
  368. package/dist/csvw/Metadata.mjs +1 -0
  369. package/dist/csvw/Processor.d.mts +2 -0
  370. package/dist/csvw/Processor.mjs +1 -0
  371. package/dist/csvw/Report.d.mts +2 -0
  372. package/dist/csvw/Report.mjs +1 -0
  373. package/dist/csvw/Table.d.mts +2 -0
  374. package/dist/csvw/Table.mjs +1 -0
  375. package/dist/csvw/index.d.mts +8 -0
  376. package/dist/csvw/index.mjs +8 -0
  377. package/dist/index-Cms2TYfC.d.mts +16 -0
  378. package/dist/index-Ct8xFmRs.d.mts +7 -0
  379. package/dist/index-D4QFwOjm.d.mts +28 -0
  380. package/dist/index.d.mts +18 -0
  381. package/dist/index.mjs +17 -0
  382. package/dist/jsonld/DocumentLoader.d.mts +2 -0
  383. package/dist/jsonld/DocumentLoader.mjs +1 -0
  384. package/dist/jsonld/JsonLd.d.mts +2 -0
  385. package/dist/jsonld/JsonLd.mjs +1 -0
  386. package/dist/jsonld/JsonLdError.d.mts +2 -0
  387. package/dist/jsonld/JsonLdError.mjs +1 -0
  388. package/dist/jsonld/index.d.mts +4 -0
  389. package/dist/jsonld/index.mjs +4 -0
  390. package/dist/lists-D-OpQ0Ir.mjs +77 -0
  391. package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
  392. package/dist/loop-D5-gNx9K.mjs +21 -0
  393. package/dist/loop-D5-gNx9K.mjs.map +1 -0
  394. package/dist/loop-DZ2hXlr_.mjs +21 -0
  395. package/dist/loop-DZ2hXlr_.mjs.map +1 -0
  396. package/dist/n3/Isomorphism.d.mts +2 -0
  397. package/dist/n3/Isomorphism.mjs +1 -0
  398. package/dist/n3/Mapping.d.mts +2 -0
  399. package/dist/n3/Mapping.mjs +1 -0
  400. package/dist/n3/Model.d.mts +2 -0
  401. package/dist/n3/Model.mjs +1 -0
  402. package/dist/n3/N3.d.mts +2 -0
  403. package/dist/n3/N3.mjs +1 -0
  404. package/dist/n3/Reasoner.d.mts +2 -0
  405. package/dist/n3/Reasoner.mjs +2 -0
  406. package/dist/n3/Vocab.d.mts +2 -0
  407. package/dist/n3/Vocab.mjs +1 -0
  408. package/dist/n3/index.d.mts +7 -0
  409. package/dist/n3/index.mjs +7 -0
  410. package/dist/ntriples/Grammar.d.mts +2 -0
  411. package/dist/ntriples/Grammar.mjs +1 -0
  412. package/dist/ntriples/Lexical.d.mts +2 -0
  413. package/dist/ntriples/Lexical.mjs +1 -0
  414. package/dist/ntriples/NQuads.d.mts +2 -0
  415. package/dist/ntriples/NQuads.mjs +1 -0
  416. package/dist/ntriples/NTriples.d.mts +2 -0
  417. package/dist/ntriples/NTriples.mjs +1 -0
  418. package/dist/ntriples/index.d.mts +5 -0
  419. package/dist/ntriples/index.mjs +5 -0
  420. package/dist/rdfjson/RdfJson.d.mts +2 -0
  421. package/dist/rdfjson/RdfJson.mjs +1 -0
  422. package/dist/rdfjson/index.d.mts +2 -0
  423. package/dist/rdfjson/index.mjs +1 -0
  424. package/dist/rdfxml/RdfXml.d.mts +2 -0
  425. package/dist/rdfxml/RdfXml.mjs +1 -0
  426. package/dist/rdfxml/Xml.d.mts +2 -0
  427. package/dist/rdfxml/Xml.mjs +1 -0
  428. package/dist/rdfxml/index.d.mts +3 -0
  429. package/dist/rdfxml/index.mjs +3 -0
  430. package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
  431. package/dist/serialize-96KBvKaf.mjs +1463 -0
  432. package/dist/serialize-96KBvKaf.mjs.map +1 -0
  433. package/dist/serialize-DsoXdM6n.d.mts +37 -0
  434. package/dist/shacl/Message.d.mts +2 -0
  435. package/dist/shacl/Message.mjs +1 -0
  436. package/dist/shacl/Path.d.mts +2 -0
  437. package/dist/shacl/Path.mjs +1 -0
  438. package/dist/shacl/Shapes.d.mts +2 -0
  439. package/dist/shacl/Shapes.mjs +1 -0
  440. package/dist/shacl/Sparql.d.mts +2 -0
  441. package/dist/shacl/Sparql.mjs +1 -0
  442. package/dist/shacl/ValidationReport.d.mts +2 -0
  443. package/dist/shacl/ValidationReport.mjs +1 -0
  444. package/dist/shacl/Validator.d.mts +2 -0
  445. package/dist/shacl/Validator.mjs +1 -0
  446. package/dist/shacl/Vocabulary.d.mts +2 -0
  447. package/dist/shacl/Vocabulary.mjs +1 -0
  448. package/dist/shacl/index.d.mts +9 -0
  449. package/dist/shacl/index.mjs +8 -0
  450. package/dist/shex/SemAct.d.mts +2 -0
  451. package/dist/shex/SemAct.mjs +1 -0
  452. package/dist/shex/ShExC.d.mts +2 -0
  453. package/dist/shex/ShExC.mjs +1 -0
  454. package/dist/shex/ShExError.d.mts +2 -0
  455. package/dist/shex/ShExError.mjs +1 -0
  456. package/dist/shex/ShExJ.d.mts +2 -0
  457. package/dist/shex/ShExJ.mjs +2 -0
  458. package/dist/shex/ShExR.d.mts +2 -0
  459. package/dist/shex/ShExR.mjs +1 -0
  460. package/dist/shex/ShapeMap.d.mts +2 -0
  461. package/dist/shex/ShapeMap.mjs +1 -0
  462. package/dist/shex/Structure.d.mts +2 -0
  463. package/dist/shex/Structure.mjs +2 -0
  464. package/dist/shex/Validator.d.mts +2 -0
  465. package/dist/shex/Validator.mjs +4 -0
  466. package/dist/shex/index.d.mts +9 -0
  467. package/dist/shex/index.mjs +9 -0
  468. package/dist/sparql/Algebra.d.mts +2 -0
  469. package/dist/sparql/Algebra.mjs +1 -0
  470. package/dist/sparql/Ast.d.mts +2 -0
  471. package/dist/sparql/Ast.mjs +1 -0
  472. package/dist/sparql/Bindings.d.mts +2 -0
  473. package/dist/sparql/Bindings.mjs +1 -0
  474. package/dist/sparql/ClientErrors.d.mts +2 -0
  475. package/dist/sparql/ClientErrors.mjs +1 -0
  476. package/dist/sparql/ClientFormats.d.mts +2 -0
  477. package/dist/sparql/ClientFormats.mjs +1 -0
  478. package/dist/sparql/Engine.d.mts +2 -0
  479. package/dist/sparql/Engine.mjs +1 -0
  480. package/dist/sparql/Errors.d.mts +2 -0
  481. package/dist/sparql/Errors.mjs +1 -0
  482. package/dist/sparql/Expression.d.mts +2 -0
  483. package/dist/sparql/Expression.mjs +1 -0
  484. package/dist/sparql/Federation.d.mts +2 -0
  485. package/dist/sparql/Federation.mjs +1 -0
  486. package/dist/sparql/Functions.d.mts +2 -0
  487. package/dist/sparql/Functions.mjs +1 -0
  488. package/dist/sparql/Generator.d.mts +2 -0
  489. package/dist/sparql/Generator.mjs +1 -0
  490. package/dist/sparql/GraphStore.d.mts +2 -0
  491. package/dist/sparql/GraphStore.mjs +1 -0
  492. package/dist/sparql/Optimizer.d.mts +2 -0
  493. package/dist/sparql/Optimizer.mjs +1 -0
  494. package/dist/sparql/Options.d.mts +2 -0
  495. package/dist/sparql/Options.mjs +1 -0
  496. package/dist/sparql/Parser.d.mts +2 -0
  497. package/dist/sparql/Parser.mjs +1 -0
  498. package/dist/sparql/Protocol.d.mts +2 -0
  499. package/dist/sparql/Protocol.mjs +1 -0
  500. package/dist/sparql/ProtocolErrors.d.mts +2 -0
  501. package/dist/sparql/ProtocolErrors.mjs +1 -0
  502. package/dist/sparql/QueryBuilder.d.mts +2 -0
  503. package/dist/sparql/QueryBuilder.mjs +1 -0
  504. package/dist/sparql/Results.d.mts +2 -0
  505. package/dist/sparql/Results.mjs +1 -0
  506. package/dist/sparql/ResultsStream.d.mts +2 -0
  507. package/dist/sparql/ResultsStream.mjs +1 -0
  508. package/dist/sparql/ServerFormats.d.mts +2 -0
  509. package/dist/sparql/ServerFormats.mjs +1 -0
  510. package/dist/sparql/ServiceDescription.d.mts +2 -0
  511. package/dist/sparql/ServiceDescription.mjs +1 -0
  512. package/dist/sparql/SparqlClient.d.mts +2 -0
  513. package/dist/sparql/SparqlClient.mjs +1 -0
  514. package/dist/sparql/SparqlServer.d.mts +2 -0
  515. package/dist/sparql/SparqlServer.mjs +1 -0
  516. package/dist/sparql/Store.d.mts +2 -0
  517. package/dist/sparql/Store.mjs +1 -0
  518. package/dist/sparql/TermSchema.d.mts +3 -0
  519. package/dist/sparql/TermSchema.mjs +2 -0
  520. package/dist/sparql/Testing.d.mts +2 -0
  521. package/dist/sparql/Testing.mjs +1 -0
  522. package/dist/sparql/Translate.d.mts +2 -0
  523. package/dist/sparql/Translate.mjs +1 -0
  524. package/dist/sparql/ai/Mcp.d.mts +2 -0
  525. package/dist/sparql/ai/Mcp.mjs +1 -0
  526. package/dist/sparql/ai/Tools.d.mts +2 -0
  527. package/dist/sparql/ai/Tools.mjs +1 -0
  528. package/dist/sparql/ai/index.d.mts +3 -0
  529. package/dist/sparql/ai/index.mjs +3 -0
  530. package/dist/sparql/index.d.mts +30 -0
  531. package/dist/sparql/index.mjs +29 -0
  532. package/dist/sparql/shacl/Evaluator.d.mts +2 -0
  533. package/dist/sparql/shacl/Evaluator.mjs +1 -0
  534. package/dist/sparql/shacl/Query.d.mts +2 -0
  535. package/dist/sparql/shacl/Query.mjs +1 -0
  536. package/dist/sparql/shacl/index.d.mts +3 -0
  537. package/dist/sparql/shacl/index.mjs +3 -0
  538. package/dist/sparql/sql/Dialect.d.mts +2 -0
  539. package/dist/sparql/sql/Dialect.mjs +1 -0
  540. package/dist/sparql/sql/SqlStore.d.mts +2 -0
  541. package/dist/sparql/sql/SqlStore.mjs +1 -0
  542. package/dist/sparql/sql/Translation.d.mts +2 -0
  543. package/dist/sparql/sql/Translation.mjs +1 -0
  544. package/dist/sparql/sql/index.d.mts +4 -0
  545. package/dist/sparql/sql/index.mjs +4 -0
  546. package/dist/stringMap-D5YIpYtR.mjs +38 -0
  547. package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
  548. package/dist/tokens-C6BzeodQ.mjs +24 -0
  549. package/dist/tokens-C6BzeodQ.mjs.map +1 -0
  550. package/dist/turtle/Grammar.d.mts +3 -0
  551. package/dist/turtle/Grammar.mjs +3 -0
  552. package/dist/turtle/Manifest.d.mts +2 -0
  553. package/dist/turtle/Manifest.mjs +1 -0
  554. package/dist/turtle/TriG.d.mts +2 -0
  555. package/dist/turtle/TriG.mjs +1 -0
  556. package/dist/turtle/Turtle.d.mts +2 -0
  557. package/dist/turtle/Turtle.mjs +1 -0
  558. package/dist/turtle/index.d.mts +5 -0
  559. package/dist/turtle/index.mjs +5 -0
  560. package/dist/xmp/DublinCore.d.mts +2 -0
  561. package/dist/xmp/DublinCore.mjs +1 -0
  562. package/dist/xmp/Exif.d.mts +2 -0
  563. package/dist/xmp/Exif.mjs +1 -0
  564. package/dist/xmp/Extract.d.mts +2 -0
  565. package/dist/xmp/Extract.mjs +1 -0
  566. package/dist/xmp/Metadata.d.mts +2 -0
  567. package/dist/xmp/Metadata.mjs +1 -0
  568. package/dist/xmp/Namespaces.d.mts +2 -0
  569. package/dist/xmp/Namespaces.mjs +1 -0
  570. package/dist/xmp/Packet.d.mts +2 -0
  571. package/dist/xmp/Packet.mjs +1 -0
  572. package/dist/xmp/Pdf.d.mts +2 -0
  573. package/dist/xmp/Pdf.mjs +1 -0
  574. package/dist/xmp/PdfA.d.mts +2 -0
  575. package/dist/xmp/PdfA.mjs +1 -0
  576. package/dist/xmp/Photoshop.d.mts +2 -0
  577. package/dist/xmp/Photoshop.mjs +1 -0
  578. package/dist/xmp/Tiff.d.mts +2 -0
  579. package/dist/xmp/Tiff.mjs +1 -0
  580. package/dist/xmp/Xmp.d.mts +2 -0
  581. package/dist/xmp/Xmp.mjs +3 -0
  582. package/dist/xmp/XmpBasic.d.mts +2 -0
  583. package/dist/xmp/XmpBasic.mjs +1 -0
  584. package/dist/xmp/XmpMM.d.mts +2 -0
  585. package/dist/xmp/XmpMM.mjs +1 -0
  586. package/dist/xmp/XmpRights.d.mts +2 -0
  587. package/dist/xmp/XmpRights.mjs +1 -0
  588. package/dist/xmp/index.d.mts +15 -0
  589. package/dist/xmp/index.mjs +15 -0
  590. package/package.json +195 -3
  591. package/src/Dataset.ts +1085 -0
  592. package/src/Iri.ts +322 -0
  593. package/src/Isomorphism.ts +319 -0
  594. package/src/LanguageTag.ts +98 -0
  595. package/src/Namespace.ts +100 -0
  596. package/src/PrefixMap.ts +117 -0
  597. package/src/RdfJs.ts +146 -0
  598. package/src/Rdfs.ts +241 -0
  599. package/src/Reification.ts +103 -0
  600. package/src/Resource.ts +873 -0
  601. package/src/Serialization.ts +775 -0
  602. package/src/Term.ts +1300 -0
  603. package/src/TermCodec.ts +505 -0
  604. package/src/TermJson.ts +313 -0
  605. package/src/Vocab.ts +161 -0
  606. package/src/Xsd.ts +573 -0
  607. package/src/csvw/Csv2Json.ts +265 -0
  608. package/src/csvw/Csv2Rdf.ts +268 -0
  609. package/src/csvw/Datatype.ts +589 -0
  610. package/src/csvw/Metadata.ts +1523 -0
  611. package/src/csvw/Processor.ts +276 -0
  612. package/src/csvw/Report.ts +135 -0
  613. package/src/csvw/Table.ts +759 -0
  614. package/src/csvw/index.ts +22 -0
  615. package/src/csvw/internal/dateFormat.ts +202 -0
  616. package/src/csvw/internal/json.ts +104 -0
  617. package/src/csvw/internal/numberFormat.ts +369 -0
  618. package/src/csvw/internal/object.ts +23 -0
  619. package/src/csvw/internal/uriTemplate.ts +130 -0
  620. package/src/csvw/internal/url.ts +93 -0
  621. package/src/csvw/internal/vocab.ts +282 -0
  622. package/src/index.ts +40 -0
  623. package/src/internal/arbitrary.ts +148 -0
  624. package/src/internal/loop.ts +24 -0
  625. package/src/internal/pending.ts +20 -0
  626. package/src/internal/textDecoder.ts +183 -0
  627. package/src/jsonld/DocumentLoader.ts +512 -0
  628. package/src/jsonld/JsonLd.ts +847 -0
  629. package/src/jsonld/JsonLdError.ts +105 -0
  630. package/src/jsonld/index.ts +13 -0
  631. package/src/jsonld/internal/compact.ts +852 -0
  632. package/src/jsonld/internal/context.ts +781 -0
  633. package/src/jsonld/internal/expand.ts +614 -0
  634. package/src/jsonld/internal/flatten.ts +243 -0
  635. package/src/jsonld/internal/frame.ts +559 -0
  636. package/src/jsonld/internal/iri.ts +52 -0
  637. package/src/jsonld/internal/json.ts +19 -0
  638. package/src/jsonld/internal/linkHeader.ts +60 -0
  639. package/src/jsonld/internal/rdf.ts +481 -0
  640. package/src/jsonld/internal/util.ts +367 -0
  641. package/src/n3/Isomorphism.ts +476 -0
  642. package/src/n3/Mapping.ts +332 -0
  643. package/src/n3/Model.ts +696 -0
  644. package/src/n3/N3.ts +237 -0
  645. package/src/n3/Reasoner.ts +568 -0
  646. package/src/n3/Vocab.ts +111 -0
  647. package/src/n3/index.ts +21 -0
  648. package/src/n3/internal/builtins.ts +668 -0
  649. package/src/n3/internal/guards.ts +23 -0
  650. package/src/n3/internal/lists.ts +106 -0
  651. package/src/n3/internal/loop.ts +28 -0
  652. package/src/n3/internal/parser.ts +1032 -0
  653. package/src/n3/internal/writer.ts +344 -0
  654. package/src/ntriples/Grammar.ts +317 -0
  655. package/src/ntriples/Lexical.ts +321 -0
  656. package/src/ntriples/NQuads.ts +140 -0
  657. package/src/ntriples/NTriples.ts +143 -0
  658. package/src/ntriples/index.ts +14 -0
  659. package/src/ntriples/internal/codec.ts +229 -0
  660. package/src/ntriples/internal/lineParser.ts +326 -0
  661. package/src/ntriples/internal/loop.ts +14 -0
  662. package/src/rdfjson/RdfJson.ts +806 -0
  663. package/src/rdfjson/index.ts +9 -0
  664. package/src/rdfjson/internal/json.ts +19 -0
  665. package/src/rdfxml/RdfXml.ts +1408 -0
  666. package/src/rdfxml/Xml.ts +419 -0
  667. package/src/rdfxml/index.ts +11 -0
  668. package/src/rdfxml/internal/chars.ts +73 -0
  669. package/src/rdfxml/internal/loop.ts +24 -0
  670. package/src/rdfxml/internal/parser.ts +1265 -0
  671. package/src/shacl/Message.ts +102 -0
  672. package/src/shacl/Path.ts +483 -0
  673. package/src/shacl/Shapes.ts +913 -0
  674. package/src/shacl/Sparql.ts +128 -0
  675. package/src/shacl/ValidationReport.ts +438 -0
  676. package/src/shacl/Validator.ts +1156 -0
  677. package/src/shacl/Vocabulary.ts +180 -0
  678. package/src/shacl/index.ts +22 -0
  679. package/src/shacl/internal/compare.ts +128 -0
  680. package/src/shacl/internal/regex.ts +56 -0
  681. package/src/shex/SemAct.ts +197 -0
  682. package/src/shex/ShExC.ts +415 -0
  683. package/src/shex/ShExError.ts +71 -0
  684. package/src/shex/ShExJ.ts +893 -0
  685. package/src/shex/ShExR.ts +640 -0
  686. package/src/shex/ShapeMap.ts +385 -0
  687. package/src/shex/Structure.ts +467 -0
  688. package/src/shex/Validator.ts +395 -0
  689. package/src/shex/index.ts +24 -0
  690. package/src/shex/internal/engine.ts +682 -0
  691. package/src/shex/internal/iterate.ts +14 -0
  692. package/src/shex/internal/json.ts +12 -0
  693. package/src/shex/internal/lexer.ts +56 -0
  694. package/src/shex/internal/nodeConstraint.ts +368 -0
  695. package/src/shex/internal/shexcLexer.ts +387 -0
  696. package/src/shex/internal/shexcParser.ts +1312 -0
  697. package/src/shex/internal/tokens.ts +41 -0
  698. package/src/shex/internal/xpathRegex.ts +290 -0
  699. package/src/sparql/Algebra.ts +914 -0
  700. package/src/sparql/Ast.ts +1344 -0
  701. package/src/sparql/Bindings.ts +272 -0
  702. package/src/sparql/ClientErrors.ts +156 -0
  703. package/src/sparql/ClientFormats.ts +70 -0
  704. package/src/sparql/Engine.ts +699 -0
  705. package/src/sparql/Errors.ts +30 -0
  706. package/src/sparql/Expression.ts +360 -0
  707. package/src/sparql/Federation.ts +187 -0
  708. package/src/sparql/Functions.ts +689 -0
  709. package/src/sparql/Generator.ts +426 -0
  710. package/src/sparql/GraphStore.ts +341 -0
  711. package/src/sparql/Optimizer.ts +230 -0
  712. package/src/sparql/Options.ts +191 -0
  713. package/src/sparql/Parser.ts +173 -0
  714. package/src/sparql/Protocol.ts +342 -0
  715. package/src/sparql/ProtocolErrors.ts +113 -0
  716. package/src/sparql/QueryBuilder.ts +953 -0
  717. package/src/sparql/Results.ts +844 -0
  718. package/src/sparql/ResultsStream.ts +771 -0
  719. package/src/sparql/ServerFormats.ts +75 -0
  720. package/src/sparql/ServiceDescription.ts +130 -0
  721. package/src/sparql/SparqlClient.ts +947 -0
  722. package/src/sparql/SparqlServer.ts +528 -0
  723. package/src/sparql/Store.ts +311 -0
  724. package/src/sparql/TermSchema.ts +20 -0
  725. package/src/sparql/Testing.ts +114 -0
  726. package/src/sparql/Translate.ts +407 -0
  727. package/src/sparql/ai/Mcp.ts +43 -0
  728. package/src/sparql/ai/Tools.ts +481 -0
  729. package/src/sparql/ai/index.ts +11 -0
  730. package/src/sparql/index.ts +64 -0
  731. package/src/sparql/internal/evaluator.ts +947 -0
  732. package/src/sparql/internal/hash.ts +418 -0
  733. package/src/sparql/internal/json.ts +12 -0
  734. package/src/sparql/internal/lexer.ts +488 -0
  735. package/src/sparql/internal/loop.ts +24 -0
  736. package/src/sparql/internal/parser.ts +2215 -0
  737. package/src/sparql/internal/prefetch.ts +46 -0
  738. package/src/sparql/internal/stringMap.ts +39 -0
  739. package/src/sparql/internal/textResults.ts +226 -0
  740. package/src/sparql/internal/values.ts +550 -0
  741. package/src/sparql/shacl/Evaluator.ts +478 -0
  742. package/src/sparql/shacl/Query.ts +574 -0
  743. package/src/sparql/shacl/index.ts +12 -0
  744. package/src/sparql/sql/Dialect.ts +246 -0
  745. package/src/sparql/sql/SqlStore.ts +1080 -0
  746. package/src/sparql/sql/Translation.ts +1898 -0
  747. package/src/sparql/sql/index.ts +17 -0
  748. package/src/sparql/sql/internal/encoding.ts +313 -0
  749. package/src/turtle/Grammar.ts +286 -0
  750. package/src/turtle/Manifest.ts +215 -0
  751. package/src/turtle/TriG.ts +158 -0
  752. package/src/turtle/Turtle.ts +166 -0
  753. package/src/turtle/index.ts +14 -0
  754. package/src/turtle/internal/loop.ts +23 -0
  755. package/src/turtle/internal/parse.ts +112 -0
  756. package/src/turtle/internal/parser.ts +1303 -0
  757. package/src/turtle/internal/serialize.ts +79 -0
  758. package/src/turtle/internal/streamWriter.ts +128 -0
  759. package/src/turtle/internal/writer.ts +898 -0
  760. package/src/xmp/DublinCore.ts +147 -0
  761. package/src/xmp/Exif.ts +109 -0
  762. package/src/xmp/Extract.ts +351 -0
  763. package/src/xmp/Metadata.ts +703 -0
  764. package/src/xmp/Namespaces.ts +228 -0
  765. package/src/xmp/Packet.ts +297 -0
  766. package/src/xmp/Pdf.ts +99 -0
  767. package/src/xmp/PdfA.ts +280 -0
  768. package/src/xmp/Photoshop.ts +275 -0
  769. package/src/xmp/Tiff.ts +196 -0
  770. package/src/xmp/Xmp.ts +430 -0
  771. package/src/xmp/XmpBasic.ts +90 -0
  772. package/src/xmp/XmpMM.ts +82 -0
  773. package/src/xmp/XmpRights.ts +83 -0
  774. package/src/xmp/index.ts +36 -0
  775. package/src/xmp/internal/accessors.ts +72 -0
  776. package/src/xmp/internal/xml.ts +63 -0
@@ -0,0 +1,215 @@
1
+ /**
2
+ * A reader for W3C test-suite manifests (`manifest.ttl`) as used by the RDF,
3
+ * SPARQL, SHACL, ShEx and JSON-LD test suites.
4
+ *
5
+ * Manifests are parsed with the Turtle parser. `load` follows `mf:include`
6
+ * recursively; reading files is delegated to a caller-supplied function so
7
+ * that the module stays platform independent.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import * as fs from 'node:fs'
12
+ * import { Effect } from 'effect'
13
+ * import { Manifest } from '@thomasfosterau/effect-rdf/turtle'
14
+ *
15
+ * const entries = Manifest.load(
16
+ * 'https://w3c.github.io/rdf-tests/rdf/rdf12/rdf-turtle/manifest.ttl',
17
+ * Manifest.fileReader('https://w3c.github.io/rdf-tests/', '/path/to/rdf-tests/', (path) =>
18
+ * Effect.sync(() => fs.readFileSync(path, 'utf8')),
19
+ * ),
20
+ * )
21
+ * ```
22
+ *
23
+ * @since 0.1.0
24
+ */
25
+ import * as Dataset from '../Dataset.ts';
26
+ import * as Namespace from '../Namespace.ts';
27
+ import type * as Serialization from '../Serialization.ts';
28
+ import * as Term from '../Term.ts';
29
+ import { rdf, rdfs } from '../Vocab.ts';
30
+ import * as Arr from 'effect/Array';
31
+ import * as Effect from 'effect/Effect';
32
+ import * as MutableHashSet from 'effect/MutableHashSet';
33
+ import * as Option from 'effect/Option';
34
+ import * as Turtle from './Turtle.ts';
35
+
36
+ /**
37
+ * The W3C test manifest vocabulary.
38
+ *
39
+ * @since 0.1.0
40
+ * @category vocabularies
41
+ */
42
+ export const mf = Namespace.vocabulary(
43
+ 'http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#',
44
+ ['Manifest', 'entries', 'include', 'name', 'action', 'result', 'assumedTestBase'],
45
+ );
46
+
47
+ /**
48
+ * The RDF test vocabulary.
49
+ *
50
+ * @since 0.1.0
51
+ * @category vocabularies
52
+ */
53
+ export const rdft = Namespace.make('http://www.w3.org/ns/rdftest#');
54
+
55
+ /**
56
+ * A single test entry.
57
+ *
58
+ * @since 0.1.0
59
+ * @category models
60
+ */
61
+ export interface Entry {
62
+ /** The test IRI (or blank node key). */
63
+ readonly id: string;
64
+ /** The test node itself, for reading further properties from `dataset`. */
65
+ readonly node: Term.Subject;
66
+ /** The IRI of the test's `rdf:type`. */
67
+ readonly type: string;
68
+ /** The local name of the test type, e.g. `TestTurtleEval`. */
69
+ readonly kind: string;
70
+ /** `mf:name` (falls back to the local name of the test IRI). */
71
+ readonly name: string;
72
+ /** `rdfs:comment`, if any. */
73
+ readonly comment: Option.Option<string>;
74
+ /** The `mf:action` IRI, if the action is an IRI. */
75
+ readonly action: Option.Option<string>;
76
+ /** The `mf:result` IRI, if the result is an IRI. */
77
+ readonly result: Option.Option<string>;
78
+ /** The IRI of the manifest that lists this entry. */
79
+ readonly manifest: string;
80
+ /** The parsed manifest document. */
81
+ readonly dataset: Dataset.Dataset;
82
+ }
83
+
84
+ /**
85
+ * A parsed manifest.
86
+ *
87
+ * @since 0.1.0
88
+ * @category models
89
+ */
90
+ export interface Manifest {
91
+ readonly iri: string;
92
+ readonly label: Option.Option<string>;
93
+ readonly assumedTestBase: Option.Option<string>;
94
+ readonly entries: ReadonlyArray<Entry>;
95
+ readonly includes: ReadonlyArray<string>;
96
+ readonly dataset: Dataset.Dataset;
97
+ }
98
+
99
+ const localName = (iri: string): string => iri.replace(/^.*[#/]/, '');
100
+
101
+ const iriOf = (term: Option.Option<Term.Object>): Option.Option<string> =>
102
+ Option.flatMap(term, (t) => (Term.isNamedNode(t) ? Option.some(t.value) : Option.none()));
103
+
104
+ const stringOf = (term: Option.Option<Term.Object>): Option.Option<string> =>
105
+ Option.flatMap(term, (t) => (Term.isLiteral(t) ? Option.some(t.value) : Option.none()));
106
+
107
+ /**
108
+ * Parses a manifest document. `iri` is the manifest's own IRI, used as the
109
+ * base IRI.
110
+ *
111
+ * @since 0.1.0
112
+ * @category parsing
113
+ */
114
+ export const parse = (
115
+ text: string,
116
+ iri: string,
117
+ ): Effect.Effect<Manifest, Serialization.RdfParseError> =>
118
+ Effect.map(Turtle.parse(text, { baseIri: iri }), ({ dataset }) => {
119
+ const subjects = Dataset.subjectsOf(dataset, rdf.type, mf.Manifest);
120
+ const manifest: Term.Subject =
121
+ subjects.find((s) => Term.isNamedNode(s) && s.value === iri) ??
122
+ subjects[0] ??
123
+ Term.namedNode(iri);
124
+ const listAt = (p: Term.NamedNode): ReadonlyArray<Term.Object> =>
125
+ Dataset.objectsOf(dataset, manifest, p).flatMap((head) =>
126
+ Option.getOrElse(Dataset.list(dataset, head), () => []),
127
+ );
128
+ const entries = listAt(mf.entries).flatMap((node): ReadonlyArray<Entry> => {
129
+ if (!Term.isResource(node)) return [];
130
+ const type = iriOf(Dataset.objectOf(dataset, node, rdf.type));
131
+ const id = Term.isNamedNode(node) ? node.value : node.key;
132
+ return [
133
+ {
134
+ id,
135
+ node,
136
+ type: Option.getOrElse(type, () => ''),
137
+ kind: Option.match(type, { onNone: () => '', onSome: localName }),
138
+ name: Option.getOrElse(stringOf(Dataset.objectOf(dataset, node, mf.name)), () =>
139
+ localName(id),
140
+ ),
141
+ comment: stringOf(Dataset.objectOf(dataset, node, rdfs.comment)),
142
+ action: iriOf(Dataset.objectOf(dataset, node, mf.action)),
143
+ result: iriOf(Dataset.objectOf(dataset, node, mf.result)),
144
+ manifest: iri,
145
+ dataset,
146
+ },
147
+ ];
148
+ });
149
+ return {
150
+ iri,
151
+ label: stringOf(Dataset.objectOf(dataset, manifest, rdfs.label)),
152
+ assumedTestBase: iriOf(Dataset.objectOf(dataset, manifest, mf.assumedTestBase)),
153
+ entries,
154
+ includes: listAt(mf.include).flatMap((t) => (Term.isNamedNode(t) ? [t.value] : [])),
155
+ dataset,
156
+ };
157
+ });
158
+
159
+ /**
160
+ * Loads a manifest and, recursively, every manifest it includes, returning
161
+ * all entries (each manifest is read at most once).
162
+ *
163
+ * @since 0.1.0
164
+ * @category loading
165
+ */
166
+ export const load = <E, R>(
167
+ iri: string,
168
+ read: (iri: string) => Effect.Effect<string, E, R>,
169
+ ): Effect.Effect<ReadonlyArray<Entry>, E | Serialization.RdfParseError, R> =>
170
+ Effect.suspend(() => {
171
+ const seen = MutableHashSet.empty<string>();
172
+ const entries: Array<Entry> = [];
173
+ // Breadth first: a manifest's entries, then those of each include in turn
174
+ const visit = (
175
+ queue: ReadonlyArray<string>,
176
+ ): Effect.Effect<ReadonlyArray<Entry>, E | Serialization.RdfParseError, R> => {
177
+ if (!Arr.isReadonlyArrayNonEmpty(queue)) return Effect.succeed(entries);
178
+ const [next, ...rest] = queue;
179
+ if (MutableHashSet.has(seen, next)) return visit(rest);
180
+ MutableHashSet.add(seen, next);
181
+ return read(next).pipe(
182
+ Effect.flatMap((text) => parse(text, next)),
183
+ Effect.flatMap((manifest) => {
184
+ entries.push(...manifest.entries);
185
+ return visit([...rest, ...manifest.includes]);
186
+ }),
187
+ );
188
+ };
189
+ return visit([iri]);
190
+ });
191
+
192
+ /**
193
+ * Builds a `read` function for `load` that maps IRIs under `iriPrefix` to
194
+ * paths under `pathPrefix` and reads them with `readFile`.
195
+ *
196
+ * @since 0.1.0
197
+ * @category loading
198
+ */
199
+ export const fileReader =
200
+ <E, R>(
201
+ iriPrefix: string,
202
+ pathPrefix: string,
203
+ readFile: (path: string) => Effect.Effect<string, E, R>,
204
+ ) =>
205
+ (iri: string): Effect.Effect<string, E, R> =>
206
+ readFile(toPath(iri, iriPrefix, pathPrefix));
207
+
208
+ /**
209
+ * Maps an IRI under `iriPrefix` to a path under `pathPrefix`.
210
+ *
211
+ * @since 0.1.0
212
+ * @category loading
213
+ */
214
+ export const toPath = (iri: string, iriPrefix: string, pathPrefix: string): string =>
215
+ iri.startsWith(iriPrefix) ? pathPrefix + iri.slice(iriPrefix.length) : iri;
@@ -0,0 +1,158 @@
1
+ /**
2
+ * RDF 1.2 TriG: Turtle extended with named graphs.
3
+ *
4
+ * Supports the same RDF 1.2 features as `Turtle`, plus `GRAPH` blocks and
5
+ * `{ ... }` default-graph blocks. The serializer writes default-graph
6
+ * triples at the top level followed by one block per named graph, with the
7
+ * same pretty-printing as the Turtle serializer.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { Effect } from 'effect'
12
+ * import { TriG } from '@thomasfosterau/effect-rdf/turtle'
13
+ *
14
+ * const program = Effect.gen(function* () {
15
+ * const { dataset, prefixes } = yield* TriG.parse(`
16
+ * PREFIX ex: <http://example.org/>
17
+ * ex:g { ex:s ex:p ex:o }
18
+ * `)
19
+ * return yield* TriG.serialize(dataset, { prefixes })
20
+ * })
21
+ * ```
22
+ *
23
+ * @since 0.1.0
24
+ */
25
+ import * as Serialization from '../Serialization.ts';
26
+ import type * as Term from '../Term.ts';
27
+ import type * as Effect from 'effect/Effect';
28
+ import * as Option from 'effect/Option';
29
+ import type * as Stream from 'effect/Stream';
30
+ import * as internal from './internal/parse.ts';
31
+ import * as internalSerialize from './internal/serialize.ts';
32
+
33
+ /**
34
+ * The result of `parseQuads`: statements in document order with the
35
+ * document's prefixes and final base IRI.
36
+ *
37
+ * @since 0.1.0
38
+ * @category models
39
+ */
40
+ export type QuadsResult = internal.QuadsResult;
41
+
42
+ /**
43
+ * Options for the TriG serializer.
44
+ *
45
+ * @since 0.1.0
46
+ * @category models
47
+ */
48
+ export type SerializeOptions = internalSerialize.SerializeOptions;
49
+
50
+ /**
51
+ * @since 0.1.0
52
+ * @category formats
53
+ */
54
+ export const format: Serialization.Format = Serialization.makeFormat({
55
+ name: 'TriG',
56
+ mediaType: 'application/trig',
57
+ extensions: ['trig'],
58
+ datasets: true,
59
+ });
60
+
61
+ // The span names are `TriG.parse`, `TriG.serialize`, …
62
+ const syntax: internal.Syntax = {
63
+ name: 'TriG',
64
+ trig: true,
65
+ trace: Option.some({ module: 'TriG', format }),
66
+ };
67
+
68
+ /**
69
+ * Parses a TriG document, returning the dataset together with the declared
70
+ * prefixes and the final base IRI.
71
+ *
72
+ * @since 0.1.0
73
+ * @category parsing
74
+ */
75
+ export const parse = (
76
+ input: string,
77
+ options?: Serialization.ParseOptions,
78
+ ): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>
79
+ internal.parse(syntax, input, options);
80
+
81
+ /**
82
+ * Parses a TriG document into statements in document order.
83
+ *
84
+ * @since 0.1.0
85
+ * @category parsing
86
+ */
87
+ export const parseQuads = (
88
+ input: string,
89
+ options?: Serialization.ParseOptions,
90
+ ): Effect.Effect<QuadsResult, Serialization.RdfParseError> =>
91
+ internal.parseQuads(syntax, input, options);
92
+
93
+ /**
94
+ * Parses a stream of text chunks incrementally. Statements are emitted as
95
+ * soon as they are complete (statements inside graph blocks individually);
96
+ * chunk boundaries may fall anywhere.
97
+ *
98
+ * @since 0.1.0
99
+ * @category parsing
100
+ */
101
+ export const parseStream: <E, R>(
102
+ input: Stream.Stream<string, E, R>,
103
+ options?: Serialization.ParseOptions,
104
+ ) => Stream.Stream<Term.Quad, Serialization.RdfParseError | E, R> = internal.parseStream(syntax);
105
+
106
+ /**
107
+ * Serialises quads as pretty TriG. Fails for triple terms in the subject
108
+ * position (not expressible in TriG 1.2).
109
+ *
110
+ * @since 0.1.0
111
+ * @category serializing
112
+ */
113
+ export const serialize = (
114
+ quads: Iterable<Term.Quad>,
115
+ options?: SerializeOptions,
116
+ ): Effect.Effect<string, Serialization.RdfSerializeError> =>
117
+ internalSerialize.serialize(syntax, quads, options);
118
+
119
+ /**
120
+ * Serialises a stream of quads incrementally in constant memory. Only
121
+ * consecutive statements are grouped (a graph block is opened whenever the
122
+ * graph changes), and blank nodes keep their labels.
123
+ *
124
+ * @since 0.1.0
125
+ * @category serializing
126
+ */
127
+ export const serializeStream: <E, R>(
128
+ quads: Stream.Stream<Term.Quad, E, R>,
129
+ options?: SerializeOptions,
130
+ ) => Stream.Stream<string, Serialization.RdfSerializeError | E, R> =
131
+ internalSerialize.serializeStream(syntax);
132
+
133
+ /**
134
+ * @since 0.1.0
135
+ * @category parsing
136
+ */
137
+ export const parser: Serialization.Parser = Serialization.makeParser({
138
+ format,
139
+ parse,
140
+ parseStream,
141
+ });
142
+
143
+ /**
144
+ * @since 0.1.0
145
+ * @category serializing
146
+ */
147
+ export const serializer: Serialization.Serializer<SerializeOptions> = Serialization.makeSerializer({
148
+ format,
149
+ serialize,
150
+ serializeStream,
151
+ });
152
+
153
+ /**
154
+ * @since 0.1.0
155
+ * @category codecs
156
+ */
157
+ export const codec: Serialization.Codec<Serialization.ParseOptions, SerializeOptions> =
158
+ Serialization.makeCodec(parser, serializer);
@@ -0,0 +1,166 @@
1
+ /**
2
+ * RDF 1.2 Turtle: the terse RDF triple language.
3
+ *
4
+ * The parser supports the full RDF 1.2 grammar (triple terms `<<( s p o )>>`,
5
+ * reified triples `<< s p o ~ r >>`, annotations `{| ... |}`, `VERSION`,
6
+ * directional language tags) as well as RDF 1.1 documents, and reports the
7
+ * declared prefixes and final base IRI. `parseStream` parses incrementally,
8
+ * emitting statements as soon as they are complete.
9
+ *
10
+ * The serializer produces idiomatic output: prefixed names, `@base`
11
+ * relativisation, subject grouping with `;` and `,`, `a` for `rdf:type`,
12
+ * inline `[ ... ]` blank nodes, `( ... )` collections, numeric and boolean
13
+ * shorthand, annotation syntax for reified asserted triples, and a
14
+ * deterministic statement order.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { Effect } from 'effect'
19
+ * import { PrefixMap } from '@thomasfosterau/effect-rdf'
20
+ * import { Turtle } from '@thomasfosterau/effect-rdf/turtle'
21
+ *
22
+ * const program = Effect.gen(function* () {
23
+ * const { dataset, prefixes } = yield* Turtle.parse(`
24
+ * PREFIX ex: <http://example.org/>
25
+ * ex:alice a ex:Person ; ex:knows [ ex:name "Bob" ] .
26
+ * `)
27
+ * return yield* Turtle.serialize(dataset, { prefixes })
28
+ * })
29
+ * ```
30
+ *
31
+ * @since 0.1.0
32
+ */
33
+ import * as Serialization from '../Serialization.ts';
34
+ import type * as Term from '../Term.ts';
35
+ import type * as Effect from 'effect/Effect';
36
+ import * as Option from 'effect/Option';
37
+ import type * as Stream from 'effect/Stream';
38
+ import * as internal from './internal/parse.ts';
39
+ import * as internalSerialize from './internal/serialize.ts';
40
+
41
+ /**
42
+ * The result of `parseQuads`: statements in document order with the
43
+ * document's prefixes and final base IRI.
44
+ *
45
+ * @since 0.1.0
46
+ * @category models
47
+ */
48
+ export type QuadsResult = internal.QuadsResult;
49
+
50
+ /**
51
+ * Options for the Turtle serializer.
52
+ *
53
+ * @since 0.1.0
54
+ * @category models
55
+ */
56
+ export type SerializeOptions = internalSerialize.SerializeOptions;
57
+
58
+ /**
59
+ * @since 0.1.0
60
+ * @category formats
61
+ */
62
+ export const format: Serialization.Format = Serialization.makeFormat({
63
+ name: 'Turtle',
64
+ mediaType: 'text/turtle',
65
+ mediaTypes: ['text/turtle', 'application/x-turtle'],
66
+ extensions: ['ttl'],
67
+ datasets: false,
68
+ });
69
+
70
+ // The span names are `Turtle.parse`, `Turtle.serialize`, …
71
+ const syntax: internal.Syntax = {
72
+ name: 'Turtle',
73
+ trig: false,
74
+ trace: Option.some({ module: 'Turtle', format }),
75
+ };
76
+
77
+ /**
78
+ * Parses a Turtle document, returning the dataset together with the
79
+ * declared prefixes and the final base IRI. Triples are placed in
80
+ * `options.graph` (the default graph when omitted).
81
+ *
82
+ * @since 0.1.0
83
+ * @category parsing
84
+ */
85
+ export const parse = (
86
+ input: string,
87
+ options?: Serialization.ParseOptions,
88
+ ): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>
89
+ internal.parse(syntax, input, options);
90
+
91
+ /**
92
+ * Parses a Turtle document into statements in document order.
93
+ *
94
+ * @since 0.1.0
95
+ * @category parsing
96
+ */
97
+ export const parseQuads = (
98
+ input: string,
99
+ options?: Serialization.ParseOptions,
100
+ ): Effect.Effect<QuadsResult, Serialization.RdfParseError> =>
101
+ internal.parseQuads(syntax, input, options);
102
+
103
+ /**
104
+ * Parses a stream of text chunks incrementally. Statements are emitted as
105
+ * soon as they are complete; chunk boundaries may fall anywhere.
106
+ *
107
+ * @since 0.1.0
108
+ * @category parsing
109
+ */
110
+ export const parseStream: <E, R>(
111
+ input: Stream.Stream<string, E, R>,
112
+ options?: Serialization.ParseOptions,
113
+ ) => Stream.Stream<Term.Quad, Serialization.RdfParseError | E, R> = internal.parseStream(syntax);
114
+
115
+ /**
116
+ * Serialises triples as pretty Turtle. Fails for quads in named graphs and
117
+ * for triple terms in the subject position (not expressible in Turtle 1.2).
118
+ *
119
+ * @since 0.1.0
120
+ * @category serializing
121
+ */
122
+ export const serialize = (
123
+ quads: Iterable<Term.Quad>,
124
+ options?: SerializeOptions,
125
+ ): Effect.Effect<string, Serialization.RdfSerializeError> =>
126
+ internalSerialize.serialize(syntax, quads, options);
127
+
128
+ /**
129
+ * Serialises a stream of triples incrementally in constant memory. Only
130
+ * consecutive statements are grouped, and blank nodes keep their labels.
131
+ *
132
+ * @since 0.1.0
133
+ * @category serializing
134
+ */
135
+ export const serializeStream: <E, R>(
136
+ quads: Stream.Stream<Term.Quad, E, R>,
137
+ options?: SerializeOptions,
138
+ ) => Stream.Stream<string, Serialization.RdfSerializeError | E, R> =
139
+ internalSerialize.serializeStream(syntax);
140
+
141
+ /**
142
+ * @since 0.1.0
143
+ * @category parsing
144
+ */
145
+ export const parser: Serialization.Parser = Serialization.makeParser({
146
+ format,
147
+ parse,
148
+ parseStream,
149
+ });
150
+
151
+ /**
152
+ * @since 0.1.0
153
+ * @category serializing
154
+ */
155
+ export const serializer: Serialization.Serializer<SerializeOptions> = Serialization.makeSerializer({
156
+ format,
157
+ serialize,
158
+ serializeStream,
159
+ });
160
+
161
+ /**
162
+ * @since 0.1.0
163
+ * @category codecs
164
+ */
165
+ export const codec: Serialization.Codec<Serialization.ParseOptions, SerializeOptions> =
166
+ Serialization.makeCodec(parser, serializer);
@@ -0,0 +1,14 @@
1
+ /**
2
+ * RDF 1.2 Turtle and TriG for `@thomasfosterau/effect-rdf`.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+
7
+ /** @since 0.1.0 */
8
+ export * as Grammar from './Grammar.ts';
9
+ /** @since 0.1.0 */
10
+ export * as Manifest from './Manifest.ts';
11
+ /** @since 0.1.0 */
12
+ export * as TriG from './TriG.ts';
13
+ /** @since 0.1.0 */
14
+ export * as Turtle from './Turtle.ts';
@@ -0,0 +1,23 @@
1
+ /**
2
+ * A loop as a function, for the scans that step a cursor until a condition
3
+ * holds (decoding an escape, walking a list, counting line breaks).
4
+ *
5
+ * @internal
6
+ */
7
+ import * as Iterable from 'effect/Iterable';
8
+
9
+ const BLOCK = 1024;
10
+
11
+ /** `0 … BLOCK - 1`: the steps of one block run as an array scan, which engines optimise well. */
12
+ const offsets: ReadonlyArray<number> = Array.from({ length: BLOCK }, (_, i) => i);
13
+
14
+ /** The first step of each block after the first: `BLOCK, 2 * BLOCK, …`. */
15
+ const blocks: Iterable<number> = Iterable.makeBy((b) => (b + 1) * BLOCK);
16
+
17
+ /** Calls `step` with 0, 1, 2, … until it returns `false`. */
18
+ export const loop = (step: (i: number) => boolean): void => {
19
+ // Most loops end within the first block, which needs no iterator
20
+ if (offsets.every((i) => step(i))) {
21
+ Iterable.some(blocks, (base) => offsets.some((i) => !step(base + i)));
22
+ }
23
+ };
@@ -0,0 +1,112 @@
1
+ import * as Dataset from '../../Dataset.ts';
2
+ import * as PrefixMap from '../../PrefixMap.ts';
3
+ import * as Serialization from '../../Serialization.ts';
4
+ import * as Term from '../../Term.ts';
5
+ import * as Arr from 'effect/Array';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Option from 'effect/Option';
8
+ import * as Predicate from 'effect/Predicate';
9
+ import * as Stream from 'effect/Stream';
10
+ import { SyntaxFailure, TurtleParser } from './parser.ts';
11
+
12
+ /** @internal */
13
+ export interface Syntax {
14
+ readonly name: string;
15
+ readonly trig: boolean;
16
+ /** The span prefix and format for tracing (`<module>.parse`, …); untraced when `None`. */
17
+ readonly trace: Option.Option<Serialization.SpanTarget>;
18
+ }
19
+
20
+ /**
21
+ * The result of parsing a document into quads in document order.
22
+ *
23
+ * @internal
24
+ */
25
+ export interface QuadsResult {
26
+ readonly quads: ReadonlyArray<Term.Quad>;
27
+ readonly prefixes: PrefixMap.PrefixMap;
28
+ readonly baseIri: string | undefined;
29
+ }
30
+
31
+ const makeParser = (syntax: Syntax, options?: Serialization.ParseOptions): TurtleParser =>
32
+ new TurtleParser({
33
+ trig: syntax.trig,
34
+ baseIri: Option.fromUndefinedOr(options?.baseIri),
35
+ blankNodePrefix: options?.blankNodePrefix ?? Serialization.freshBlankNodePrefix(),
36
+ graph: (syntax.trig ? undefined : options?.graph) ?? Term.defaultGraph,
37
+ });
38
+
39
+ /**
40
+ * Maps what a parse threw — a `SyntaxFailure`, or a defect as an `Error` or
41
+ * its string form — to an `RdfParseError`.
42
+ */
43
+ const toParseError = (syntax: Syntax, error: Error | string): Serialization.RdfParseError =>
44
+ error instanceof SyntaxFailure
45
+ ? new Serialization.RdfParseError({
46
+ format: syntax.name,
47
+ message: error.message,
48
+ line: error.line,
49
+ column: error.column,
50
+ })
51
+ : new Serialization.RdfParseError({
52
+ format: syntax.name,
53
+ message: Predicate.isString(error) ? error : error.message,
54
+ });
55
+
56
+ /** @internal */
57
+ export const parseQuads = (
58
+ syntax: Syntax,
59
+ input: string,
60
+ options?: Serialization.ParseOptions,
61
+ ): Effect.Effect<QuadsResult, Serialization.RdfParseError> =>
62
+ Effect.try({
63
+ try: () => {
64
+ const parser = makeParser(syntax, options);
65
+ const quads = parser.parseDocument(input);
66
+ return {
67
+ quads,
68
+ prefixes: PrefixMap.make(parser.prefixes),
69
+ baseIri: Option.getOrUndefined(parser.base),
70
+ };
71
+ },
72
+ catch: (error) => toParseError(syntax, Predicate.isError(error) ? error : String(error)),
73
+ });
74
+
75
+ /** @internal */
76
+ export const parse = (
77
+ syntax: Syntax,
78
+ input: string,
79
+ options?: Serialization.ParseOptions,
80
+ ): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>
81
+ Effect.map(parseQuads(syntax, input, options), (result) => ({
82
+ dataset: Dataset.fromIterable(result.quads),
83
+ prefixes: result.prefixes,
84
+ baseIri: result.baseIri,
85
+ })).pipe(Serialization.withParseSpan(Option.getOrUndefined(syntax.trace), input));
86
+
87
+ const END: unique symbol = Symbol('end');
88
+
89
+ /** @internal */
90
+ export const parseStream =
91
+ (syntax: Syntax) =>
92
+ <E, R>(
93
+ input: Stream.Stream<string, E, R>,
94
+ options?: Serialization.ParseOptions,
95
+ ): Stream.Stream<Term.Quad, Serialization.RdfParseError | E, R> =>
96
+ Stream.suspend(() => {
97
+ const parser = makeParser(syntax, options);
98
+ return Stream.concat(input, Stream.succeed(END)).pipe(
99
+ Stream.mapAccumArrayEffect(
100
+ () => undefined,
101
+ (_, chunks) =>
102
+ Effect.try({
103
+ try: (): readonly [undefined, ReadonlyArray<Term.Quad>] => [
104
+ undefined,
105
+ Arr.flatMap(chunks, (chunk) => (chunk === END ? parser.end() : parser.feed(chunk))),
106
+ ],
107
+ catch: (error) =>
108
+ toParseError(syntax, Predicate.isError(error) ? error : String(error)),
109
+ }),
110
+ ),
111
+ );
112
+ }).pipe(Serialization.withStreamSpan(Option.getOrUndefined(syntax.trace), 'parseStream'));