@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 @@
1
+ {"version":3,"file":"RdfXml-DJ9G4gOq.mjs","names":["Serialization.makeFormat","Iri.resolve","Term.NamedNode","Term.Triple","Term.BlankNode","Xml.isNCName","Term.literal","Xml.isWhitespace","Term.Literal","Xml.canonicalize","Serialization.RdfParseError","Serialization.freshBlankNodePrefix","PrefixMap.make","Term.defaultGraph","Term.Quad","Dataset.fromIterable","XmlParser.parseText","XmlParser.Failure","Serialization.withParseSpan","Serialization.makeParser","Xml.NAME_START","Xml.NAME_CHAR","Xml.escapeAttribute","Xml.isValidText","Iri.relativize","Xml.escapeText","Term.Order","Term.isNamedNode","PrefixMap.empty","Term.isBlankNode","Term.isTriple","Term.compare","Term.isDefaultGraph","Serialization.RdfSerializeError","Serialization.withSerializeSpan","Serialization.makeSerializer","Serialization.makeCodec"],"sources":["../src/rdfxml/RdfXml.ts"],"sourcesContent":["/**\n * RDF 1.2 XML Syntax (RDF/XML): parser and serializer.\n *\n * The parser implements the RDF/XML grammar of\n * https://www.w3.org/TR/rdf-syntax-grammar/ together with the RDF 1.2\n * additions: `rdf:version`, base direction via `its:dir`, triple terms via\n * `rdf:parseType=\"Triple\"`, and annotations via `rdf:annotation` /\n * `rdf:annotationNodeID`. `rdf:parseType=\"Literal\"` content is turned into\n * an `rdf:XMLLiteral` using Exclusive XML Canonicalization.\n *\n * The serializer writes readable RDF/XML: typed node elements, nested blank\n * nodes where a blank node is referenced exactly once, namespace\n * declarations taken from `options.prefixes` and generated namespaces for the\n * rest.\n *\n * @since 0.1.0\n */\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport * as Match from 'effect/Match';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Result from 'effect/Result';\nimport * as Order from 'effect/Order';\nimport * as Dataset from '../Dataset.ts';\nimport * as Iri from '../Iri.ts';\nimport * as PrefixMap from '../PrefixMap.ts';\nimport * as Serialization from '../Serialization.ts';\nimport * as Term from '../Term.ts';\nimport * as Xml from './Xml.ts';\nimport * as XmlParser from './internal/parser.ts';\n\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nconst ITS = 'http://www.w3.org/2005/11/its';\nconst XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\nconst FORMAT_NAME = 'RDF/XML';\n\n/**\n * The RDF/XML format description (`application/rdf+xml`).\n *\n * @since 0.1.0\n * @category formats\n */\nexport const format: Serialization.Format = Serialization.makeFormat({\n name: FORMAT_NAME,\n mediaType: 'application/rdf+xml',\n extensions: ['rdf', 'owl'],\n datasets: false,\n});\n\n// Spans are named `RdfXml.parse`, `RdfXml.serialize`.\nconst trace: Serialization.SpanTarget = { module: 'RdfXml', format };\n\n// -----------------------------------------------------------------------------\n// Parsing\n// -----------------------------------------------------------------------------\n\n/**\n * Options for parsing RDF/XML.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ParseOptions extends Serialization.ParseOptions {\n /**\n * The RDF version assumed when the document does not announce one with\n * `rdf:version`. RDF 1.2 features that require a version announcement\n * (base direction and triple terms) are only enabled when a version other\n * than `\"1.0\"`/`\"1.1\"` is in scope. Defaults to none.\n */\n readonly version?: string | undefined;\n}\n\nconst rdf = (local: string) => RDF + local;\n\n/** The core syntax terms and the old terms, which are never node, property or attribute names. */\nconst RESERVED_TERMS = MutableHashSet.fromIterable(\n [\n 'RDF',\n 'ID',\n 'about',\n 'annotation',\n 'annotationNodeID',\n 'parseType',\n 'resource',\n 'nodeID',\n 'datatype',\n 'version',\n 'aboutEach',\n 'aboutEachPrefix',\n 'bagID',\n ].map(rdf),\n);\nconst UNQUALIFIED_RDF_ATTRIBUTES = MutableHashSet.make(\n 'ID',\n 'about',\n 'resource',\n 'parseType',\n 'type',\n 'version',\n);\n\nconst RDF_DESCRIPTION = rdf('Description');\nconst RDF_LI = rdf('li');\nconst RDF_TYPE = rdf('type');\nconst RDF_ID = rdf('ID');\nconst RDF_NODE_ID = rdf('nodeID');\nconst RDF_ABOUT = rdf('about');\nconst RDF_VERSION = rdf('version');\nconst RDF_ANNOTATION = rdf('annotation');\nconst RDF_ANNOTATION_NODE_ID = rdf('annotationNodeID');\nconst RDF_PARSE_TYPE = rdf('parseType');\nconst RDF_RESOURCE = rdf('resource');\nconst RDF_DATATYPE = rdf('datatype');\n\nconst isReserved = (iri: string): boolean => MutableHashSet.has(RESERVED_TERMS, iri);\nconst isForbiddenNodeElement = (iri: string) => isReserved(iri) || iri === RDF_LI;\nconst isForbiddenPropertyElement = (iri: string) => isReserved(iri) || iri === RDF_DESCRIPTION;\nconst isForbiddenPropertyAttribute = (iri: string) =>\n isReserved(iri) || iri === RDF_DESCRIPTION || iri === RDF_LI;\n\nconst isElement = Predicate.isTagged('Element');\nconst isText = Predicate.isTagged('Text');\n\nclass ParseFailure {\n readonly message: string;\n readonly position: Xml.Position;\n constructor(message: string, position: Xml.Position) {\n this.message = message;\n this.position = position;\n }\n}\n\ninterface Context {\n readonly base: Option.Option<string>;\n readonly language: string;\n readonly direction: '' | Term.Direction;\n readonly version: Option.Option<string>;\n}\n\n/** Resolves `reference` against the base IRI of `ctx`, if it has one. */\nconst resolveIn = (reference: string, base: Option.Option<string>): string =>\n Iri.resolve(reference, Option.getOrUndefined(base));\n\ninterface Attr {\n readonly iri: string;\n readonly value: string;\n readonly attribute: Xml.Attribute;\n}\n\nconst isRdf12 = (version: Option.Option<string>): boolean =>\n Option.isSome(version) && version.value !== '1.0' && version.value !== '1.1';\n\nconst rdfType = new Term.NamedNode(rdf('type'));\nconst rdfFirst = new Term.NamedNode(rdf('first'));\nconst rdfRest = new Term.NamedNode(rdf('rest'));\nconst rdfNil = new Term.NamedNode(rdf('nil'));\nconst rdfStatement = new Term.NamedNode(rdf('Statement'));\nconst rdfSubject = new Term.NamedNode(rdf('subject'));\nconst rdfPredicate = new Term.NamedNode(rdf('predicate'));\nconst rdfObject = new Term.NamedNode(rdf('object'));\nconst rdfReifies = new Term.NamedNode(rdf('reifies'));\nconst rdfXmlLiteral = new Term.NamedNode(rdf('XMLLiteral'));\n\n/** The syntax attributes of a node element, gathered by `nodeAttribute`. */\ninterface NodeAttributes {\n idAttr: Option.Option<Attr>;\n readonly props: Array<Attr>;\n}\n\n/**\n * Adds an attribute that is not a syntax attribute of its element to `props`\n * (`rdf:version` aside, which `context` reads).\n */\nconst propertyAttr = (a: Attr, parser: RdfXmlParser, props: Array<Attr>): void => {\n if (a.iri === RDF_VERSION) return;\n if (isForbiddenPropertyAttribute(a.iri)) {\n parser.fail(`${a.attribute.name} is not allowed as a property attribute`, a.attribute);\n }\n props.push(a);\n};\n\n/** Gathers an attribute of a node element (run for every one, so a chain of comparisons). */\nconst nodeAttribute = (a: Attr, parser: RdfXmlParser, attrs: NodeAttributes): void => {\n const iri = a.iri;\n if (iri !== RDF_ID && iri !== RDF_NODE_ID && iri !== RDF_ABOUT) {\n propertyAttr(a, parser, attrs.props);\n return;\n }\n if (Option.isSome(attrs.idAttr)) {\n parser.fail(\n `rdf:${attrs.idAttr.value.attribute.localName} and rdf:${a.attribute.localName} cannot be used together`,\n a.attribute,\n );\n }\n attrs.idAttr = Option.some(a);\n};\n\n/** The syntax attributes of a property element, gathered by `propertyAttribute`. */\ninterface PropertyAttributes {\n id: Option.Option<Attr>;\n annotation: Option.Option<Attr>;\n parseType: Option.Option<Attr>;\n resource: Option.Option<Attr>;\n nodeId: Option.Option<Attr>;\n datatype: Option.Option<Attr>;\n readonly props: Array<Attr>;\n}\n\n/** Gathers an attribute of a property element (run for every one, so a chain of comparisons). */\nconst propertyAttribute = (a: Attr, parser: RdfXmlParser, attrs: PropertyAttributes): void => {\n const iri = a.iri;\n if (iri === RDF_ID) attrs.id = Option.some(a);\n else if (iri === RDF_ANNOTATION || iri === RDF_ANNOTATION_NODE_ID) {\n if (Option.isSome(attrs.annotation)) {\n parser.fail('rdf:annotation and rdf:annotationNodeID cannot be used together', a.attribute);\n }\n attrs.annotation = Option.some(a);\n } else if (iri === RDF_PARSE_TYPE) attrs.parseType = Option.some(a);\n else if (iri === RDF_RESOURCE) attrs.resource = Option.some(a);\n else if (iri === RDF_NODE_ID) attrs.nodeId = Option.some(a);\n else if (iri === RDF_DATATYPE) attrs.datatype = Option.some(a);\n else propertyAttr(a, parser, attrs.props);\n};\n\nconst isRdfRoot = (root: Xml.Element): boolean =>\n root.namespace === RDF && root.localName === 'RDF';\n\nclass RdfXmlParser {\n sink: Array<Term.Triple> = [];\n readonly ids = MutableHashSet.empty<string>();\n counter = 0;\n\n readonly blankNodePrefix: string;\n readonly defaultVersion: Option.Option<string>;\n constructor(blankNodePrefix: string, defaultVersion: Option.Option<string>) {\n this.blankNodePrefix = blankNodePrefix;\n this.defaultVersion = defaultVersion;\n }\n\n fail(message: string, node: { readonly position: Xml.Position }): never {\n throw new ParseFailure(message, node.position);\n }\n\n /** Fails if any of `attrs` is present: the first `<name> <why>`. */\n reject(attrs: Iterable<Option.Option<Attr>>, why: string): void {\n const other = Option.firstSomeOf(attrs);\n if (Option.isSome(other)) {\n const { attribute } = other.value;\n this.fail(`${attribute.name} ${why}`, attribute);\n }\n }\n\n emit(s: Term.Subject, p: Term.NamedNode, o: Term.Object): Term.Triple {\n const t = new Term.Triple(s, p, o);\n this.sink.push(t);\n return t;\n }\n\n fresh(): Term.BlankNode {\n return new Term.BlankNode(`${this.blankNodePrefix}${this.counter++}`);\n }\n\n blank(id: string, node: { readonly position: Xml.Position }): Term.BlankNode {\n if (!Xml.isNCName(id)) this.fail(`Invalid blank node identifier \"${id}\"`, node);\n return new Term.BlankNode(`${this.blankNodePrefix}${id}`);\n }\n\n /** The IRIs of names and datatypes seen so far, which repeat throughout a document. */\n private readonly names = MutableHashMap.empty<string, Term.NamedNode>();\n\n /**\n * The IRIs of the names read so far, by local name, then namespace (a\n * local name rarely has more than one).\n */\n private readonly qualifiedNames = MutableHashMap.empty<\n string,\n Array<readonly [namespace: string, iri: string]>\n >();\n\n /**\n * The IRI of a name (`namespace` + `localName`), the same string each time\n * it is read: names repeat throughout a document, and each later lookup of\n * the IRI (in the reserved-term set, the node cache) then hashes nothing.\n */\n qualified(namespace: string, localName: string): string {\n const byLocalName = MutableHashMap.get(this.qualifiedNames, localName);\n if (Option.isNone(byLocalName)) {\n const iri = namespace + localName;\n MutableHashMap.set(this.qualifiedNames, localName, [[namespace, iri]]);\n return iri;\n }\n const byNamespace = byLocalName.value;\n const known = byNamespace.find(([ns]) => ns === namespace);\n if (known !== undefined) return known[1];\n const iri = namespace + localName;\n byNamespace.push([namespace, iri]);\n return iri;\n }\n\n /** The node for the IRI of an element or attribute name, or of a datatype. */\n named(iri: string): Term.NamedNode {\n const known = MutableHashMap.get(this.names, iri);\n if (Option.isSome(known)) return known.value;\n const node = new Term.NamedNode(iri);\n MutableHashMap.set(this.names, iri, node);\n return node;\n }\n\n iri(value: string, ctx: Context): Term.NamedNode {\n return new Term.NamedNode(resolveIn(value, ctx.base));\n }\n\n idIri(id: string, ctx: Context, node: { readonly position: Xml.Position }): Term.NamedNode {\n if (!Xml.isNCName(id)) this.fail(`Invalid rdf:ID \"${id}\"`, node);\n const iri = resolveIn(`#${id}`, ctx.base);\n if (MutableHashSet.has(this.ids, iri)) this.fail(`Duplicate rdf:ID \"${id}\"`, node);\n MutableHashSet.add(this.ids, iri);\n return new Term.NamedNode(iri);\n }\n\n literal(value: string, ctx: Context): Term.Literal {\n if (ctx.language === '') return Term.literal(value);\n return ctx.direction === ''\n ? Term.literal(value, ctx.language)\n : Term.literal(value, { language: ctx.language, direction: ctx.direction });\n }\n\n /** Computes the evaluation context of an element. */\n context(el: Xml.Element, parent: Context): Context {\n if (Arr.isReadonlyArrayEmpty(el.attributes)) return parent;\n let base = parent.base;\n let language = parent.language;\n let direction = parent.direction;\n let version = parent.version;\n let dir = Option.none<Xml.Attribute>();\n el.attributes.forEach((a) => {\n if (a.namespace === Xml.XML_NAMESPACE) {\n if (a.localName === 'base') base = Option.some(resolveIn(a.value, base));\n else if (a.localName === 'lang') language = a.value;\n } else if (a.namespace === ITS && a.localName === 'dir') {\n dir = Option.some(a);\n } else if ((a.namespace === RDF || a.namespace === undefined) && a.localName === 'version') {\n version = Option.some(a.value);\n }\n });\n if (Option.isSome(dir) && isRdf12(version)) {\n const value = dir.value.value;\n if (value !== 'ltr' && value !== 'rtl' && value !== '') {\n this.fail(`Invalid its:dir value \"${value}\"`, dir.value);\n }\n // SAFETY: the value was checked to be `ltr` or `rtl` above.\n direction = value;\n }\n return { base, language, direction, version };\n }\n\n /** The RDF-relevant attributes of an element, with their IRIs. */\n attributes(el: Xml.Element): Array<Attr> {\n const out: Array<Attr> = [];\n el.attributes.forEach((a) => {\n if (a.namespace === Xml.XML_NAMESPACE) return;\n if (a.prefix.toLowerCase().startsWith('xml')) return;\n if (a.namespace === undefined) {\n if (a.localName.toLowerCase().startsWith('xml')) return;\n if (!MutableHashSet.has(UNQUALIFIED_RDF_ATTRIBUTES, a.localName)) {\n this.fail(`Unqualified attribute \"${a.localName}\" is not allowed`, a);\n }\n out.push({ iri: this.qualified(RDF, a.localName), value: a.value, attribute: a });\n return;\n }\n if (a.namespace === ITS && (a.localName === 'dir' || a.localName === 'version')) return;\n out.push({ iri: this.qualified(a.namespace, a.localName), value: a.value, attribute: a });\n });\n return out;\n }\n\n elementIri(el: Xml.Element): string {\n if (el.namespace === undefined) {\n this.fail(`Element \"${el.name}\" is not in a namespace`, el);\n }\n return this.qualified(el.namespace, el.localName);\n }\n\n document(doc: Xml.Document, base: Option.Option<string>): void {\n const root = doc.root;\n const ctx: Context = { base, language: '', direction: '', version: this.defaultVersion };\n if (isRdfRoot(root)) this.nodeElementList(root.children, this.rdfRoot(root, ctx));\n else this.nodeElement(root, ctx);\n }\n\n /** The context of the node elements in an `rdf:RDF` root, after checking its attributes. */\n rdfRoot(root: Xml.Element, ctx: Context): Context {\n const rootCtx = this.context(root, ctx);\n this.attributes(root).forEach((a) => {\n if (a.iri !== RDF_VERSION) this.fail(`Unexpected attribute on rdf:RDF`, a.attribute);\n });\n return rootCtx;\n }\n\n nodeElementList(children: ReadonlyArray<Xml.Node>, ctx: Context): Array<Term.Subject> {\n const subjects: Array<Term.Subject> = [];\n children.forEach((c) => {\n if (isElement(c)) subjects.push(this.nodeElement(c, ctx));\n else if (isText(c) && !Xml.isWhitespace(c.value)) {\n this.fail('Unexpected text where node elements are expected', c);\n }\n });\n return subjects;\n }\n\n nodeElement(el: Xml.Element, parentCtx: Context): Term.Subject {\n const ctx = this.context(el, parentCtx);\n const iri = this.elementIri(el);\n if (isForbiddenNodeElement(iri)) this.fail(`<${el.name}> is not allowed as a node element`, el);\n const attrs: NodeAttributes = { idAttr: Option.none(), props: [] };\n this.attributes(el).forEach((a) => nodeAttribute(a, this, attrs));\n const s: Term.Subject = Option.match(attrs.idAttr, {\n onNone: () => this.fresh(),\n onSome: (idAttr) => {\n const local = idAttr.iri.slice(RDF.length);\n return local === 'ID'\n ? this.idIri(idAttr.value, ctx, idAttr.attribute)\n : local === 'nodeID'\n ? this.blank(idAttr.value, idAttr.attribute)\n : this.iri(idAttr.value, ctx);\n },\n });\n if (iri !== RDF_DESCRIPTION) this.emit(s, rdfType, this.named(iri));\n attrs.props.forEach((a) => {\n this.emit(\n s,\n this.named(a.iri),\n a.iri === RDF_TYPE ? this.iri(a.value, ctx) : this.literal(a.value, ctx),\n );\n });\n this.propertyEltList(el, s, ctx);\n return s;\n }\n\n propertyEltList(el: Xml.Element, subject: Term.Subject, ctx: Context): void {\n let li = 1;\n el.children.forEach((c) => {\n if (isElement(c)) {\n const name = this.elementIri(c);\n this.propertyElt(c, name === RDF_LI ? rdf(`_${li++}`) : name, subject, ctx);\n } else if (isText(c) && !Xml.isWhitespace(c.value)) {\n this.fail('Unexpected text where property elements are expected', c);\n }\n });\n }\n\n propertyElt(el: Xml.Element, iri: string, subject: Term.Subject, parentCtx: Context): void {\n if (isForbiddenPropertyElement(iri)) {\n this.fail(`<${el.name}> is not allowed as a property element`, el);\n }\n const ctx = this.context(el, parentCtx);\n const predicate = this.named(iri);\n const attrs: PropertyAttributes = {\n id: Option.none(),\n annotation: Option.none(),\n parseType: Option.none(),\n resource: Option.none(),\n nodeId: Option.none(),\n datatype: Option.none(),\n props: [],\n };\n this.attributes(el).forEach((a) => propertyAttribute(a, this, attrs));\n const { id, annotation, parseType, resource, nodeId, datatype, props } = attrs;\n const elements: Array<Xml.Element> = [];\n let text = '';\n let hasText = false;\n el.children.forEach((c) => {\n if (isElement(c)) elements.push(c);\n else if (isText(c)) {\n text += c.value;\n hasText = true;\n }\n });\n\n const finish = (object: Term.Object) => {\n const statement = this.emit(subject, predicate, object);\n this.reify(statement, id, annotation, ctx);\n };\n const firstProp = Arr.head(props);\n\n if (Option.isSome(parseType)) {\n this.reject([resource, nodeId, datatype, firstProp], 'cannot be used with rdf:parseType');\n Match.value(parseType.value.value).pipe(\n Match.when('Resource', () => {\n const n = this.fresh();\n finish(n);\n this.propertyEltList(el, n, ctx);\n }),\n Match.when('Collection', () => {\n const items = this.nodeElementList(el.children, ctx);\n if (!Arr.isArrayNonEmpty(items)) {\n finish(rdfNil);\n return;\n }\n const cells = Arr.map(items, () => this.fresh());\n finish(Arr.headNonEmpty(cells));\n Arr.zip(cells, items).forEach(([cell, item], i) => {\n this.emit(cell, rdfFirst, item);\n this.emit(cell, rdfRest, cells[i + 1] ?? rdfNil);\n });\n }),\n Match.when('Triple', () => {\n const saved = this.sink;\n this.sink = [];\n if (\n !Arr.isArrayNonEmpty(elements) ||\n elements.length !== 1 ||\n (hasText && !Xml.isWhitespace(text))\n ) {\n this.fail('rdf:parseType=\"Triple\" must contain exactly one node element', el);\n }\n this.nodeElement(Arr.headNonEmpty(elements), ctx);\n const triples = this.sink;\n this.sink = saved;\n if (!isRdf12(ctx.version)) {\n // Triple terms require an RDF 1.2 version announcement; without\n // one the property element is ignored.\n return;\n }\n if (!Arr.isArrayNonEmpty(triples) || triples.length !== 1) {\n this.fail(\n `rdf:parseType=\"Triple\" content must describe exactly one triple, found ${triples.length}`,\n el,\n );\n }\n finish(Arr.headNonEmpty(triples));\n }),\n Match.orElse(() => {\n finish(new Term.Literal(Xml.canonicalize(el.children), rdfXmlLiteral));\n }),\n );\n return;\n }\n\n if (Arr.isArrayNonEmpty(elements)) {\n if (elements.length > 1)\n this.fail('A property element can contain only one node element', el);\n if (!Xml.isWhitespace(text))\n this.fail('Mixed content is not allowed in a property element', el);\n this.reject(\n [resource, nodeId, datatype, firstProp],\n 'is not allowed on a property element with content',\n );\n finish(this.nodeElement(Arr.headNonEmpty(elements), ctx));\n return;\n }\n\n if (hasText && text !== '') {\n this.reject([resource, nodeId, firstProp], 'is not allowed on a literal property element');\n finish(\n Option.isSome(datatype)\n ? Term.literal(text, this.named(resolveIn(datatype.value.value, ctx.base)))\n : this.literal(text, ctx),\n );\n return;\n }\n\n // empty property element\n if (Option.isSome(resource) && Option.isSome(nodeId)) {\n this.fail('rdf:resource and rdf:nodeID cannot be used together', nodeId.value.attribute);\n }\n if (Option.isSome(datatype)) {\n this.reject([resource, nodeId, firstProp], 'cannot be used with rdf:datatype');\n finish(Term.literal('', this.named(resolveIn(datatype.value.value, ctx.base))));\n return;\n }\n if (Option.isNone(resource) && Option.isNone(nodeId) && Arr.isReadonlyArrayEmpty(props)) {\n finish(this.literal('', ctx));\n return;\n }\n const r: Term.NamedNode | Term.BlankNode = Option.isSome(resource)\n ? this.iri(resource.value.value, ctx)\n : Option.isSome(nodeId)\n ? this.blank(nodeId.value.value, nodeId.value.attribute)\n : this.fresh();\n props.forEach((a) => {\n this.emit(\n r,\n this.named(a.iri),\n a.iri === RDF_TYPE ? this.iri(a.value, ctx) : this.literal(a.value, ctx),\n );\n });\n finish(r);\n }\n\n reify(\n statement: Term.Triple,\n id: Option.Option<Attr>,\n annotation: Option.Option<Attr>,\n ctx: Context,\n ) {\n if (Option.isSome(id)) {\n const i = this.idIri(id.value.value, ctx, id.value.attribute);\n this.emit(i, rdfType, rdfStatement);\n this.emit(i, rdfSubject, statement.subject);\n this.emit(i, rdfPredicate, statement.predicate);\n this.emit(i, rdfObject, statement.object);\n }\n if (Option.isSome(annotation)) {\n const { iri, value, attribute } = annotation.value;\n const reifier = iri === RDF_ANNOTATION ? this.iri(value, ctx) : this.blank(value, attribute);\n this.emit(reifier, rdfReifies, statement);\n }\n }\n}\n\nconst toParseError = (message: string, position: Xml.Position) =>\n new Serialization.RdfParseError({\n format: FORMAT_NAME,\n message,\n line: position.line,\n column: position.column,\n });\n\nconst parseTriples = (\n doc: Xml.Document,\n options?: ParseOptions,\n): Effect.Effect<ReadonlyArray<Term.Triple>, Serialization.RdfParseError> =>\n Effect.try({\n try: () => {\n const parser = new RdfXmlParser(\n options?.blankNodePrefix ?? Serialization.freshBlankNodePrefix(),\n Option.fromUndefinedOr(options?.version),\n );\n parser.document(doc, Option.fromUndefinedOr(options?.baseIri));\n return parser.sink;\n },\n catch: (e) => {\n if (e instanceof ParseFailure) return toParseError(e.message, e.position);\n throw e;\n },\n });\n\n/** Prefixes in the order first declared, each with its first namespace. */\ntype Prefixes = Array<readonly [prefix: string, namespace: string]>;\n\n/**\n * Adds the namespace declarations of the elements among `nodes` (at\n * `depth`, the root's being 0) and of their descendants down to `maxDepth`\n * to `prefixes`, keeping the first declaration of each prefix.\n */\nconst declarePrefixes = (\n prefixes: Prefixes,\n nodes: ReadonlyArray<Xml.Node>,\n depth: number,\n maxDepth: number,\n): void => {\n nodes.forEach((node) => {\n if (!isElement(node)) return;\n node.namespaceDeclarations.forEach((d) => {\n if (d.prefix !== '' && d.namespace !== '' && !prefixes.some(([p]) => p === d.prefix)) {\n prefixes.push([d.prefix, d.namespace]);\n }\n });\n if (depth < maxDepth) declarePrefixes(prefixes, node.children, depth + 1, maxDepth);\n });\n};\n\n/** The prefixes declared on the root, its children and their children. */\nconst collectPrefixes = (doc: Xml.Document): PrefixMap.PrefixMap => {\n const prefixes: Prefixes = [];\n declarePrefixes(prefixes, [doc.root], 0, 2);\n return PrefixMap.make(prefixes);\n};\n\n/**\n * Converts the node elements of an `rdf:RDF` root while the XML is read, as\n * each one is closed, so that no more than one of them is held at a time.\n * The order of conversion (and so of triples, blank nodes and prefixes) and\n * which error is reported are as for a whole document: an XML error anywhere\n * comes first, so the first RDF/XML error is kept until the XML has been\n * read.\n */\nclass RootStream {\n readonly parser: RdfXmlParser;\n /** The context outside the root, and then that of its node elements. */\n private ctx: Context;\n readonly prefixes: Prefixes = [];\n readonly failures: Array<ParseFailure> = [];\n /** Whether the root has been seen, and whether it is `rdf:RDF`. */\n private started = false;\n private streaming = false;\n /** How many of the children the root kept have been converted. */\n private converted = 0;\n\n constructor(parser: RdfXmlParser, ctx: Context) {\n this.parser = parser;\n this.ctx = ctx;\n }\n\n /** The `RootChildHook`: takes the child if the root is `rdf:RDF`. */\n readonly take = (child: Xml.Element, root: Xml.Element): boolean => {\n if (!this.begin(root)) return false;\n this.guard(() => {\n this.drain(root);\n declarePrefixes(this.prefixes, [child], 1, 2);\n this.parser.nodeElement(child, this.ctx);\n });\n return true;\n };\n\n /** Converts what is left once the document has been read. */\n finish(doc: Xml.Document): void {\n if (this.begin(doc.root)) {\n this.guard(() => this.drain(doc.root));\n } else {\n this.parser.document(doc, this.ctx.base);\n declarePrefixes(this.prefixes, [doc.root], 0, 2);\n }\n const failure = this.failures.at(0);\n if (failure !== undefined) throw failure;\n }\n\n private begin(root: Xml.Element): boolean {\n if (!this.started) {\n this.started = true;\n this.streaming = isRdfRoot(root);\n if (this.streaming) {\n declarePrefixes(this.prefixes, [root], 0, 0);\n this.guard(() => {\n this.ctx = this.parser.rdfRoot(root, this.ctx);\n });\n }\n }\n return this.streaming;\n }\n\n /** Converts the children the root kept (text, and elements from entities) since the last time. */\n private drain(root: Xml.Element): void {\n const pending = root.children.slice(this.converted);\n this.converted = root.children.length;\n declarePrefixes(this.prefixes, pending, 1, 2);\n this.parser.nodeElementList(pending, this.ctx);\n }\n\n /** Runs a conversion step unless one has failed, keeping its failure. */\n private guard(step: () => void): void {\n if (Arr.isReadonlyArrayNonEmpty(this.failures)) return;\n const outcome = Result.try({ try: step, catch: (e) => e });\n if (Result.isSuccess(outcome)) return;\n if (!(outcome.failure instanceof ParseFailure)) throw outcome.failure;\n this.failures.push(outcome.failure);\n }\n}\n\n/**\n * Parses an already-parsed XML document as RDF/XML. The root element is\n * `rdf:RDF` or a single node element; `xml:base` on it is returned as the\n * base IRI and namespace declarations on it (and its children) as prefixes.\n * Formats that embed RDF/XML in a larger XML document (XMP, SVG metadata)\n * pass a document whose root is the embedded `rdf:RDF` element.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parseDocument = (\n doc: Xml.Document,\n options?: ParseOptions,\n): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>\n Effect.map(parseTriples(doc, options), (triples) =>\n toResult(toQuadsResult(triples, doc, collectPrefixes(doc), options)),\n );\n\n/** The result of a parse: the triples in their graph, with the document's prefixes and base. */\n/** The quads of a parse, in their graph, with the document's prefixes and base. */\nconst toQuadsResult = (\n triples: ReadonlyArray<Term.Triple>,\n doc: Xml.Document,\n prefixes: PrefixMap.PrefixMap,\n options?: ParseOptions,\n): QuadsResult => {\n const graph = options?.graph ?? Term.defaultGraph;\n let baseIri = options?.baseIri;\n const xmlBase = doc.root.attributes.find(\n (a) => a.namespace === Xml.XML_NAMESPACE && a.localName === 'base',\n );\n if (xmlBase !== undefined) baseIri = Iri.resolve(xmlBase.value, baseIri);\n return {\n quads: triples.map((t) => new Term.Quad(t.subject, t.predicate, t.object, graph)),\n prefixes,\n baseIri,\n };\n};\n\nconst toResult = (quads: QuadsResult): Serialization.ParseResult => ({\n dataset: Dataset.fromIterable(quads.quads),\n prefixes: quads.prefixes,\n baseIri: quads.baseIri,\n});\n\n/**\n * The statements of an RDF/XML document in document order (duplicates\n * kept), with the namespace declarations on the root element (and its\n * children) as prefixes and the document's base IRI.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface QuadsResult extends Omit<Serialization.ParseResult, 'dataset'> {\n readonly quads: ReadonlyArray<Term.Quad>;\n}\n\n/**\n * Parses a complete RDF/XML document into its statements in document order,\n * without building a dataset. Node elements are converted as they are read,\n * so the XML tree is never held whole.\n *\n * @since 0.1.0\n * @category parsing\n * @example\n * ```ts\n * import * as Effect from 'effect/Effect';\n * import { RdfXml } from '@thomasfosterau/effect-rdf/rdfxml';\n *\n * const { quads } = Effect.runSync(\n * RdfXml.parseQuads(\n * `<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n * xmlns:ex=\"http://example.org/\">\n * <rdf:Description rdf:about=\"http://example.org/a\" ex:p=\"1\"/>\n * </rdf:RDF>`,\n * ),\n * );\n * // quads.length === 1\n * ```\n */\nexport const parseQuads = (\n input: string,\n options?: ParseOptions,\n): Effect.Effect<QuadsResult, Serialization.RdfParseError> =>\n Effect.try({\n try: () => {\n const version = Option.fromUndefinedOr(options?.version);\n const parser = new RdfXmlParser(\n options?.blankNodePrefix ?? Serialization.freshBlankNodePrefix(),\n version,\n );\n const stream = new RootStream(parser, {\n base: Option.fromUndefinedOr(options?.baseIri),\n language: '',\n direction: '',\n version,\n });\n const doc = XmlParser.parseText(input, stream.take);\n stream.finish(doc);\n return toQuadsResult(parser.sink, doc, PrefixMap.make(stream.prefixes), options);\n },\n catch: (e) => {\n if (e instanceof XmlParser.Failure) return toParseError(e.message, e.position);\n if (e instanceof ParseFailure) return toParseError(e.message, e.position);\n throw e;\n },\n });\n\n/**\n * Parses a complete RDF/XML document. Namespace declarations on the root\n * element (and its children) are returned as prefixes.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parse = (\n input: string,\n options?: ParseOptions,\n): Effect.Effect<Serialization.ParseResult, Serialization.RdfParseError> =>\n Effect.map(parseQuads(input, options), toResult).pipe(Serialization.withParseSpan(trace, input));\n\n/**\n * The RDF/XML parser.\n *\n * @since 0.1.0\n * @category parsing\n */\nexport const parser: Serialization.Parser<ParseOptions> = Serialization.makeParser({\n format,\n parse,\n});\n\n// -----------------------------------------------------------------------------\n// Serializing\n// -----------------------------------------------------------------------------\n\n/**\n * Options for serialising RDF/XML.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface SerializeOptions extends Serialization.SerializeOptions {\n /** The indentation unit. Defaults to two spaces. */\n readonly indent?: string | undefined;\n /**\n * Whether to nest blank nodes that are the object of exactly one triple\n * inside the referencing property element. Defaults to `true`.\n */\n readonly nestBlankNodes?: boolean | undefined;\n /**\n * Whether to use typed node elements (`<ex:Person>`) for an `rdf:type`\n * of each node. Defaults to `true`.\n */\n readonly typedNodes?: boolean | undefined;\n /** Whether to write the `<?xml …?>` declaration. Defaults to `true`. */\n readonly xmlDeclaration?: boolean | undefined;\n}\n\nclass SerializeFailure {\n readonly message: string;\n constructor(message: string) {\n this.message = message;\n }\n}\n\nconst LOCAL_SUFFIX_RE = new RegExp(`[${Xml.NAME_START}][${Xml.NAME_CHAR}]*$`, 'u');\n\n/**\n * Splits an IRI into a namespace and a local name that is an XML `NCName`,\n * choosing the longest possible local name. Returns `None` when the IRI does\n * not end with an `NCName` (such IRIs cannot be used as element or\n * attribute names).\n *\n * @since 0.1.0\n * @category serializing\n */\nexport const splitIri = (iri: string): Option.Option<readonly [string, string]> => {\n // The leftmost match is the longest NCName suffix.\n const m = LOCAL_SUFFIX_RE.exec(iri);\n if (m === null || m.index === 0) return Option.none();\n return Option.some([iri.slice(0, m.index), m[0]] as const);\n};\n\nconst escapeAttr = Xml.escapeAttribute;\n\ninterface Namespaces {\n /** namespace → prefix, for configured and generated prefixes. */\n readonly byNamespace: MutableHashMap.MutableHashMap<string, string>;\n /** Prefixes taken (configured, generated or reserved). */\n readonly used: MutableHashSet.MutableHashSet<string>;\n /** Namespaces actually referenced by the output. */\n readonly declared: MutableHashSet.MutableHashSet<string>;\n counter: number;\n}\n\n/** Whether `prefix` may be declared for `ns` as configured in `options.prefixes`. */\nconst isConfigurable = (prefix: string, ns: string): boolean =>\n Xml.isNCName(prefix) &&\n !prefix.toLowerCase().startsWith('xml') &&\n ns !== ITS &&\n Xml.isValidText(ns) &&\n (ns === RDF) === (prefix === 'rdf') &&\n prefix !== 'its';\n\n/** The first of `name(1)`, `name(2)`, … (counting on from `from`) that `taken` does not hold. */\nconst freshName = (\n taken: MutableHashSet.MutableHashSet<string>,\n from: number,\n name: (n: number) => string,\n): readonly [name: string, n: number] => {\n const candidate = name(from + 1);\n return MutableHashSet.has(taken, candidate)\n ? freshName(taken, from + 1, name)\n : [candidate, from + 1];\n};\n\nclass Writer {\n readonly namespaces: Namespaces;\n readonly blankLabels = MutableHashMap.empty<string, string>();\n /** The QName of each IRI written so far, while no namespace has been added since. */\n private readonly qnames = MutableHashMap.empty<string, string>();\n needsVersion = false;\n needsIts = false;\n\n readonly options: SerializeOptions;\n constructor(options: SerializeOptions, prefixes: PrefixMap.PrefixMap) {\n this.options = options;\n const byNamespace = MutableHashMap.empty<string, string>();\n const used = MutableHashSet.empty<string>();\n prefixes.prefixes.forEach((ns, prefix) => {\n if (\n isConfigurable(prefix, ns) &&\n !MutableHashMap.has(byNamespace, ns) &&\n !MutableHashSet.has(used, prefix)\n ) {\n MutableHashMap.set(byNamespace, ns, prefix);\n MutableHashSet.add(used, prefix);\n }\n });\n if (!MutableHashMap.has(byNamespace, RDF)) {\n MutableHashMap.set(byNamespace, RDF, 'rdf');\n MutableHashSet.add(used, 'rdf');\n }\n MutableHashSet.add(used, 'its');\n this.namespaces = { byNamespace, used, declared: MutableHashSet.make(RDF), counter: 0 };\n }\n\n fail(message: string): never {\n throw new SerializeFailure(message);\n }\n\n qname(iri: string, what: string): string {\n const known = MutableHashMap.get(this.qnames, iri);\n if (Option.isSome(known)) return known.value;\n const name = this.newQname(iri, what);\n MutableHashMap.set(this.qnames, iri, name);\n return name;\n }\n\n private newQname(iri: string, what: string): string {\n if (!Xml.isValidText(iri)) this.fail(`The ${what} <${iri}> contains invalid XML characters`);\n const { byNamespace, used, declared } = this.namespaces;\n // Prefer the longest configured namespace that leaves an NCName.\n const configured = Arr.reduce(\n Arr.fromIterable(MutableHashMap.keys(byNamespace)),\n Option.none<readonly [string, string]>(),\n (best, ns) =>\n iri.startsWith(ns) &&\n (Option.isNone(best) || ns.length > best.value[0].length) &&\n Xml.isNCName(iri.slice(ns.length))\n ? Option.some([ns, iri.slice(ns.length)] as const)\n : best,\n );\n const [ns, local] = Option.getOrElse(\n Option.orElse(configured, () => splitIri(iri)),\n () => this.fail(`The ${what} <${iri}> cannot be written as an XML QName`),\n );\n MutableHashSet.add(declared, ns);\n const prefix = Option.getOrElse(MutableHashMap.get(byNamespace, ns), () => {\n const [generated, n] = freshName(used, this.namespaces.counter, (i) => `ns${i}`);\n this.namespaces.counter = n;\n MutableHashSet.add(used, generated);\n MutableHashMap.set(byNamespace, ns, generated);\n // A new namespace may be a better choice for the IRIs already named\n MutableHashMap.clear(this.qnames);\n return generated;\n });\n return `${prefix}:${local}`;\n }\n\n iriRef(iri: string): string {\n if (!Xml.isValidText(iri)) this.fail(`The IRI <${iri}> contains characters not allowed in XML`);\n const base = this.options.baseIri;\n if (base !== undefined) {\n const rel = Iri.relativize(iri, base);\n if (Option.isSome(rel)) return escapeAttr(rel.value);\n }\n return escapeAttr(iri);\n }\n\n blankLabel(node: Term.BlankNode): string {\n const known = MutableHashMap.get(this.blankLabels, node.value);\n if (Option.isSome(known)) return known.value;\n const label =\n Xml.isNCName(node.value) && !MutableHashSet.has(this.usedLabels, node.value)\n ? node.value\n : this.freshLabel();\n MutableHashSet.add(this.usedLabels, label);\n MutableHashMap.set(this.blankLabels, node.value, label);\n return label;\n }\n\n private freshLabel(): string {\n // `b0`, `b1`, …: `freshName` counts on from the one before the next\n const [label, n] = freshName(this.usedLabels, this.labelCounter - 1, (i) => `b${i}`);\n this.labelCounter = n + 1;\n return label;\n }\n\n readonly usedLabels = MutableHashSet.empty<string>();\n labelCounter = 0;\n}\n\n/** A subject with the triples it is the subject of. */\ninterface Description {\n readonly subject: Term.Subject;\n readonly triples: Array<Term.Triple>;\n}\n\ninterface Graph {\n readonly bySubject: MutableHashMap.MutableHashMap<string, Description>;\n readonly references: MutableHashMap.MutableHashMap<string, number>;\n}\n\nconst text = (value: string, writer: Writer): string => {\n if (!Xml.isValidText(value)) writer.fail('A literal contains characters not allowed in XML 1.0');\n return Xml.escapeText(value);\n};\n\nconst sortByPredicateObject = (ts: ReadonlyArray<Term.Triple>) =>\n Arr.sort(\n ts,\n Order.combine(\n Order.mapInput(Term.Order, (t: Term.Triple) => t.predicate),\n Order.mapInput(Term.Order, (t: Term.Triple) => t.object),\n ),\n );\n\n/** Whether `t` gives its subject an `rdf:type` that can be the name of a typed node element. */\nconst isTypeTriple = (t: Term.Triple): t is Term.Triple & { readonly object: Term.NamedNode } =>\n t.predicate.value === RDF_TYPE &&\n Term.isNamedNode(t.object) &&\n !isForbiddenNodeElement(t.object.value) &&\n Option.isSome(splitIri(t.object.value));\n\nconst serializeGraph = (triples: ReadonlyArray<Term.Triple>, options: SerializeOptions): string => {\n const writer = new Writer(options, options.prefixes ?? PrefixMap.empty);\n const indentUnit = options.indent ?? ' ';\n const nest = options.nestBlankNodes ?? true;\n const typed = options.typedNodes ?? true;\n\n const graph: Graph = { bySubject: MutableHashMap.empty(), references: MutableHashMap.empty() };\n const referenceCount = (label: string): number => {\n const count = MutableHashMap.get(graph.references, label);\n return Option.isSome(count) ? count.value : 0;\n };\n const inTripleTerm = MutableHashSet.empty<string>();\n const markTripleTerm = (t: Term.Term): void => {\n if (Term.isBlankNode(t)) MutableHashSet.add(inTripleTerm, t.value);\n else if (Term.isTriple(t)) {\n markTripleTerm(t.subject);\n markTripleTerm(t.object);\n }\n };\n triples.forEach((t) => {\n if (Term.isTriple(t.subject)) {\n writer.fail('RDF/XML cannot represent triple terms in the subject position');\n }\n const subject = t.subject;\n const key = subject.key;\n const entry = MutableHashMap.get(graph.bySubject, key);\n if (Option.isSome(entry)) entry.value.triples.push(t);\n else MutableHashMap.set(graph.bySubject, key, { subject, triples: [t] });\n const o = t.object;\n if (Term.isBlankNode(o)) {\n MutableHashMap.set(graph.references, o.value, referenceCount(o.value) + 1);\n } else if (Term.isTriple(o)) {\n markTripleTerm(o);\n }\n });\n\n // Blank nodes that can be written inline, inside their only reference.\n const nested = MutableHashSet.empty<string>();\n if (nest) {\n MutableHashMap.forEach(graph.references, (count, label) => {\n if (count === 1 && !MutableHashSet.has(inTripleTerm, label)) {\n MutableHashSet.add(nested, label);\n }\n });\n // Break cycles: every nested node must be reachable from a top-level node.\n const reachable = MutableHashSet.empty<string>();\n const visit = (subjectKey: string): void => {\n const entry = MutableHashMap.get(graph.bySubject, subjectKey);\n if (Option.isNone(entry)) return;\n entry.value.triples.forEach((t) => {\n const o = t.object;\n if (\n Term.isBlankNode(o) &&\n MutableHashSet.has(nested, o.value) &&\n !MutableHashSet.has(reachable, o.value)\n ) {\n MutableHashSet.add(reachable, o.value);\n visit(o.key);\n }\n });\n };\n MutableHashMap.forEach(graph.bySubject, (entry, key) => {\n const s = entry.subject;\n if (!Term.isBlankNode(s) || !MutableHashSet.has(nested, s.value)) visit(key);\n });\n MutableHashMap.forEach(graph.bySubject, (entry) => {\n const s = entry.subject;\n if (\n Term.isBlankNode(s) &&\n MutableHashSet.has(nested, s.value) &&\n !MutableHashSet.has(reachable, s.value)\n ) {\n MutableHashSet.remove(nested, s.value);\n visit(s.key);\n }\n });\n }\n\n const body: Array<string> = [];\n\n /** Writes a node element for `subject` at `depth`. */\n const node = (subject: Term.Subject, depth: number, inline: boolean, lines: Array<string>) => {\n const pad = indentUnit.repeat(depth);\n const sorted = Option.match(MutableHashMap.get(graph.bySubject, subject.key), {\n onNone: (): ReadonlyArray<Term.Triple> => [],\n onSome: (entry) => sortByPredicateObject(entry.triples),\n });\n const typeTriple = typed\n ? Arr.findFirst(sorted, (t) =>\n isTypeTriple(t) && Xml.isValidText(t.object.value)\n ? Option.some([t, t.object.value] as const)\n : Option.none(),\n )\n : Option.none();\n const element = Option.match(typeTriple, {\n onNone: () => 'rdf:Description',\n onSome: ([, type]) => writer.qname(type, 'type'),\n });\n const ts = Option.match(typeTriple, {\n onNone: () => sorted,\n onSome: ([typeT]) => sorted.filter((t) => t !== typeT),\n });\n const attrs = Term.isNamedNode(subject)\n ? ` rdf:about=\"${writer.iriRef(subject.value)}\"`\n : Term.isBlankNode(subject) &&\n !inline &&\n (referenceCount(subject.value) > 0 || MutableHashSet.has(inTripleTerm, subject.value))\n ? ` rdf:nodeID=\"${writer.blankLabel(subject)}\"`\n : '';\n if (Arr.isReadonlyArrayEmpty(ts)) {\n lines.push(`${pad}<${element}${attrs}/>`);\n return;\n }\n lines.push(`${pad}<${element}${attrs}>`);\n ts.forEach((t) => property(t, depth + 1, lines));\n lines.push(`${pad}</${element}>`);\n };\n const property = (t: Term.Triple, depth: number, lines: Array<string>) => {\n const pad = indentUnit.repeat(depth);\n const p = t.predicate.value;\n if (isForbiddenPropertyElement(p) || p === RDF_LI) {\n writer.fail(`The predicate <${p}> cannot be used as an RDF/XML property element`);\n }\n const name = writer.qname(p, 'predicate');\n propertyObject(t.object, pad, name, depth, lines);\n };\n\n // Built once per serialisation, not per triple.\n const propertyObject = Match.fn(\n (o: Term.Object, _pad: string, _name: string, _depth: number, _lines: Array<string>) => o,\n ).pipe(\n Match.withReturnType<void>(),\n Match.tag('NamedNode', (o, _o, pad, name, _depth, lines) => {\n lines.push(`${pad}<${name} rdf:resource=\"${writer.iriRef(o.value)}\"/>`);\n }),\n Match.tag('BlankNode', (o, _o, pad, name, depth, lines) => {\n if (MutableHashSet.has(nested, o.value) && !MutableHashSet.has(inTripleTerm, o.value)) {\n const described = Option.match(MutableHashMap.get(graph.bySubject, o.key), {\n onNone: (): ReadonlyArray<Term.Triple> => [],\n onSome: (entry) => entry.triples,\n });\n if (Arr.isReadonlyArrayEmpty(described)) {\n lines.push(`${pad}<${name} rdf:parseType=\"Resource\"/>`);\n return;\n }\n if (!(typed && described.some(isTypeTriple))) {\n lines.push(`${pad}<${name} rdf:parseType=\"Resource\">`);\n sortByPredicateObject(described).forEach((x) => property(x, depth + 1, lines));\n lines.push(`${pad}</${name}>`);\n return;\n }\n lines.push(`${pad}<${name}>`);\n node(o, depth + 1, true, lines);\n lines.push(`${pad}</${name}>`);\n return;\n }\n lines.push(`${pad}<${name} rdf:nodeID=\"${writer.blankLabel(o)}\"/>`);\n }),\n Match.tag('Literal', (o, _o, pad, name, _depth, lines) => {\n let attrs = '';\n if (o.language !== '') {\n attrs += ` xml:lang=\"${escapeAttr(o.language)}\"`;\n if (o.direction !== undefined) {\n writer.needsVersion = true;\n writer.needsIts = true;\n attrs += ` its:dir=\"${o.direction}\"`;\n }\n } else if (o.datatype.value !== XSD_STRING) {\n attrs += ` rdf:datatype=\"${writer.iriRef(o.datatype.value)}\"`;\n }\n if (o.value === '') lines.push(`${pad}<${name}${attrs}/>`);\n else lines.push(`${pad}<${name}${attrs}>${text(o.value, writer)}</${name}>`);\n }),\n Match.tag('Triple', (o, _o, pad, name, depth, lines) => {\n writer.needsVersion = true;\n lines.push(`${pad}<${name} rdf:parseType=\"Triple\">`);\n tripleTerm(o, depth + 1, lines);\n lines.push(`${pad}</${name}>`);\n }),\n Match.exhaustive,\n );\n\n const tripleTerm = (t: Term.Triple, depth: number, lines: Array<string>) => {\n const pad = indentUnit.repeat(depth);\n const s = t.subject;\n const attrs = Term.isNamedNode(s)\n ? ` rdf:about=\"${writer.iriRef(s.value)}\"`\n : Term.isBlankNode(s)\n ? ` rdf:nodeID=\"${writer.blankLabel(s)}\"`\n : writer.fail('RDF/XML cannot represent triple terms in the subject position');\n lines.push(`${pad}<rdf:Description${attrs}>`);\n const o = t.object;\n if (Term.isBlankNode(o)) {\n const name = writer.qname(t.predicate.value, 'predicate');\n if (isForbiddenPropertyElement(t.predicate.value) || t.predicate.value === RDF_LI) {\n writer.fail(\n `The predicate <${t.predicate.value}> cannot be used as an RDF/XML property element`,\n );\n }\n lines.push(`${pad}${indentUnit}<${name} rdf:nodeID=\"${writer.blankLabel(o)}\"/>`);\n } else {\n property(t, depth + 1, lines);\n }\n lines.push(`${pad}</rdf:Description>`);\n };\n\n const subjects = Arr.sort(\n Arr.map(Arr.fromIterable(MutableHashMap.values(graph.bySubject)), (e) => e.subject),\n // Not `Term.Order`, which puts blank nodes first: IRI subjects come first here, so named\n // descriptions lead the document and unnested blank nodes follow.\n Order.make<Term.Term>((a, b) =>\n a._tag === b._tag ? Term.compare(a, b) : Term.isNamedNode(a) ? -1 : 1,\n ),\n );\n subjects.forEach((s) => {\n if (!Term.isBlankNode(s) || !MutableHashSet.has(nested, s.value)) node(s, 1, false, body);\n });\n\n const nsEntries = Arr.sort(\n Arr.filter(Arr.fromIterable(writer.namespaces.byNamespace), ([ns]) =>\n MutableHashSet.has(writer.namespaces.declared, ns),\n ),\n Order.make<readonly [string, string]>((a, b) =>\n a[1] === 'rdf' ? -1 : b[1] === 'rdf' ? 1 : a[1] < b[1] ? -1 : 1,\n ),\n );\n const decls: Array<string> = [\n ...nsEntries.map(([ns, prefix]) => `xmlns:${prefix}=\"${escapeAttr(ns)}\"`),\n ...(writer.needsIts ? [`xmlns:its=\"${ITS}\"`, 'its:version=\"2.0\"'] : []),\n ...(options.baseIri === undefined ? [] : [`xml:base=\"${escapeAttr(options.baseIri)}\"`]),\n ...(writer.needsVersion ? ['rdf:version=\"1.2\"'] : []),\n ];\n const sep = `\\n${' '.repeat('<rdf:RDF '.length)}`;\n const declaration =\n (options.xmlDeclaration ?? true) ? ['<?xml version=\"1.0\" encoding=\"utf-8\"?>'] : [];\n // Not `push(...body)`, which passes every line as an argument and overflows the stack\n const out = Arr.isReadonlyArrayEmpty(body)\n ? [...declaration, `<rdf:RDF ${decls.join(sep)}/>`]\n : [...declaration, `<rdf:RDF ${decls.join(sep)}>`, ...body, '</rdf:RDF>'];\n return `${out.join('\\n')}\\n`;\n};\n\n/**\n * Serialises quads as an RDF/XML document. Fails with `RdfSerializeError`\n * for quads in named graphs, triple terms in the subject position, and\n * predicates that cannot be written as XML QNames.\n *\n * @since 0.1.0\n * @category serializing\n */\nexport const serialize = (\n quads: Iterable<Term.Quad>,\n options?: SerializeOptions,\n): Effect.Effect<string, Serialization.RdfSerializeError> =>\n Effect.suspend(() => {\n const all = Arr.fromIterable(quads);\n const named = Arr.findFirst(all, (q) => !Term.isDefaultGraph(q.graph));\n if (Option.isSome(named)) {\n return Effect.fail(\n new Serialization.RdfSerializeError({\n format: FORMAT_NAME,\n message: `RDF/XML cannot represent named graphs (found graph ${named.value.graph.key})`,\n }),\n );\n }\n const triples = all.map((q) => q.triple);\n return Effect.try({\n try: () => serializeGraph(triples, options ?? {}),\n catch: (e) => {\n if (e instanceof SerializeFailure) {\n return new Serialization.RdfSerializeError({ format: FORMAT_NAME, message: e.message });\n }\n throw e;\n },\n });\n }).pipe(Serialization.withSerializeSpan(trace));\n\n/**\n * The RDF/XML serializer.\n *\n * @since 0.1.0\n * @category serializing\n */\nexport const serializer: Serialization.Serializer<SerializeOptions> = Serialization.makeSerializer({\n format,\n serialize,\n});\n\n/**\n * The RDF/XML codec, including a `Schema` transforming RDF/XML documents to\n * datasets and back.\n *\n * @since 0.1.0\n * @category codecs\n */\nexport const codec: Serialization.Codec<ParseOptions, SerializeOptions> = Serialization.makeCodec(\n parser,\n serializer,\n);\n"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { _ as Quad } from "./Term-B_4ezyXq.mjs";
2
+ import { c as Parser, i as Format, l as RdfParseError, m as Serializer, o as ParseOptions$1, p as SerializeOptions$1, r as Codec, s as ParseResult, u as RdfSerializeError } from "./Serialization-Df8iVauT.mjs";
3
+ import { r as Document } from "./Xml-CmfHS7SW.mjs";
4
+ import * as Option from "effect/Option";
5
+ import * as Effect from "effect/Effect";
6
+ declare namespace RdfXml_d_exports {
7
+ export { ParseOptions, QuadsResult, SerializeOptions, codec, format, parse, parseDocument, parseQuads, parser, serialize, serializer, splitIri };
8
+ }
9
+ /**
10
+ * The RDF/XML format description (`application/rdf+xml`).
11
+ *
12
+ * @since 0.1.0
13
+ * @category formats
14
+ */
15
+ declare const format: Format;
16
+ /**
17
+ * Options for parsing RDF/XML.
18
+ *
19
+ * @since 0.1.0
20
+ * @category models
21
+ */
22
+ interface ParseOptions extends ParseOptions$1 {
23
+ /**
24
+ * The RDF version assumed when the document does not announce one with
25
+ * `rdf:version`. RDF 1.2 features that require a version announcement
26
+ * (base direction and triple terms) are only enabled when a version other
27
+ * than `"1.0"`/`"1.1"` is in scope. Defaults to none.
28
+ */
29
+ readonly version?: string | undefined;
30
+ }
31
+ /**
32
+ * Parses an already-parsed XML document as RDF/XML. The root element is
33
+ * `rdf:RDF` or a single node element; `xml:base` on it is returned as the
34
+ * base IRI and namespace declarations on it (and its children) as prefixes.
35
+ * Formats that embed RDF/XML in a larger XML document (XMP, SVG metadata)
36
+ * pass a document whose root is the embedded `rdf:RDF` element.
37
+ *
38
+ * @since 0.1.0
39
+ * @category parsing
40
+ */
41
+ declare const parseDocument: (doc: Document, options?: ParseOptions) => Effect.Effect<ParseResult, RdfParseError>;
42
+ /**
43
+ * The statements of an RDF/XML document in document order (duplicates
44
+ * kept), with the namespace declarations on the root element (and its
45
+ * children) as prefixes and the document's base IRI.
46
+ *
47
+ * @since 0.1.0
48
+ * @category models
49
+ */
50
+ interface QuadsResult extends Omit<ParseResult, 'dataset'> {
51
+ readonly quads: ReadonlyArray<Quad>;
52
+ }
53
+ /**
54
+ * Parses a complete RDF/XML document into its statements in document order,
55
+ * without building a dataset. Node elements are converted as they are read,
56
+ * so the XML tree is never held whole.
57
+ *
58
+ * @since 0.1.0
59
+ * @category parsing
60
+ * @example
61
+ * ```ts
62
+ * import * as Effect from 'effect/Effect';
63
+ * import { RdfXml } from '@thomasfosterau/effect-rdf/rdfxml';
64
+ *
65
+ * const { quads } = Effect.runSync(
66
+ * RdfXml.parseQuads(
67
+ * `<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
68
+ * xmlns:ex="http://example.org/">
69
+ * <rdf:Description rdf:about="http://example.org/a" ex:p="1"/>
70
+ * </rdf:RDF>`,
71
+ * ),
72
+ * );
73
+ * // quads.length === 1
74
+ * ```
75
+ */
76
+ declare const parseQuads: (input: string, options?: ParseOptions) => Effect.Effect<QuadsResult, RdfParseError>;
77
+ /**
78
+ * Parses a complete RDF/XML document. Namespace declarations on the root
79
+ * element (and its children) are returned as prefixes.
80
+ *
81
+ * @since 0.1.0
82
+ * @category parsing
83
+ */
84
+ declare const parse: (input: string, options?: ParseOptions) => Effect.Effect<ParseResult, RdfParseError>;
85
+ /**
86
+ * The RDF/XML parser.
87
+ *
88
+ * @since 0.1.0
89
+ * @category parsing
90
+ */
91
+ declare const parser: Parser<ParseOptions>;
92
+ /**
93
+ * Options for serialising RDF/XML.
94
+ *
95
+ * @since 0.1.0
96
+ * @category models
97
+ */
98
+ interface SerializeOptions extends SerializeOptions$1 {
99
+ /** The indentation unit. Defaults to two spaces. */
100
+ readonly indent?: string | undefined;
101
+ /**
102
+ * Whether to nest blank nodes that are the object of exactly one triple
103
+ * inside the referencing property element. Defaults to `true`.
104
+ */
105
+ readonly nestBlankNodes?: boolean | undefined;
106
+ /**
107
+ * Whether to use typed node elements (`<ex:Person>`) for an `rdf:type`
108
+ * of each node. Defaults to `true`.
109
+ */
110
+ readonly typedNodes?: boolean | undefined;
111
+ /** Whether to write the `<?xml …?>` declaration. Defaults to `true`. */
112
+ readonly xmlDeclaration?: boolean | undefined;
113
+ }
114
+ /**
115
+ * Splits an IRI into a namespace and a local name that is an XML `NCName`,
116
+ * choosing the longest possible local name. Returns `None` when the IRI does
117
+ * not end with an `NCName` (such IRIs cannot be used as element or
118
+ * attribute names).
119
+ *
120
+ * @since 0.1.0
121
+ * @category serializing
122
+ */
123
+ declare const splitIri: (iri: string) => Option.Option<readonly [string, string]>;
124
+ /**
125
+ * Serialises quads as an RDF/XML document. Fails with `RdfSerializeError`
126
+ * for quads in named graphs, triple terms in the subject position, and
127
+ * predicates that cannot be written as XML QNames.
128
+ *
129
+ * @since 0.1.0
130
+ * @category serializing
131
+ */
132
+ declare const serialize: (quads: Iterable<Quad>, options?: SerializeOptions) => Effect.Effect<string, RdfSerializeError>;
133
+ /**
134
+ * The RDF/XML serializer.
135
+ *
136
+ * @since 0.1.0
137
+ * @category serializing
138
+ */
139
+ declare const serializer: Serializer<SerializeOptions>;
140
+ /**
141
+ * The RDF/XML codec, including a `Schema` transforming RDF/XML documents to
142
+ * datasets and back.
143
+ *
144
+ * @since 0.1.0
145
+ * @category codecs
146
+ */
147
+ declare const codec: Codec<ParseOptions, SerializeOptions>;
148
+ export { codec as a, parseDocument as c, serialize as d, serializer as f, SerializeOptions as i, parseQuads as l, QuadsResult as n, format as o, splitIri as p, RdfXml_d_exports as r, parse as s, ParseOptions as t, parser as u };
149
+ //# sourceMappingURL=RdfXml-_N7yxWEp.d.mts.map
@@ -0,0 +1,84 @@
1
+ import { C as Resource, p as Object$1, w as Subject } from "./Term-B_4ezyXq.mjs";
2
+ import { n as Dataset } from "./Dataset-DS3ESOcO.mjs";
3
+ declare namespace Rdfs_d_exports {
4
+ export { EntailmentOptions, closure, instancesOf, isInstanceOf, subClasses, subProperties, superClasses, superProperties, types };
5
+ }
6
+ /**
7
+ * All (transitive) superclasses of a class, excluding the class itself.
8
+ *
9
+ * @since 0.1.0
10
+ * @category hierarchy
11
+ */
12
+ declare const superClasses: (self: Dataset, cls: Resource) => ReadonlyArray<Object$1>;
13
+ /**
14
+ * All (transitive) subclasses of a class, excluding the class itself.
15
+ *
16
+ * @since 0.1.0
17
+ * @category hierarchy
18
+ */
19
+ declare const subClasses: (self: Dataset, cls: Resource) => ReadonlyArray<Object$1>;
20
+ /**
21
+ * All (transitive) superproperties of a property, excluding itself.
22
+ *
23
+ * @since 0.1.0
24
+ * @category hierarchy
25
+ */
26
+ declare const superProperties: (self: Dataset, property: Resource) => ReadonlyArray<Object$1>;
27
+ /**
28
+ * All (transitive) subproperties of a property, excluding itself.
29
+ *
30
+ * @since 0.1.0
31
+ * @category hierarchy
32
+ */
33
+ declare const subProperties: (self: Dataset, property: Resource) => ReadonlyArray<Object$1>;
34
+ /**
35
+ * The asserted types (`rdf:type` values) of a resource.
36
+ *
37
+ * @since 0.1.0
38
+ * @category hierarchy
39
+ */
40
+ declare const types: (self: Dataset, resource: Subject) => ReadonlyArray<Object$1>;
41
+ /**
42
+ * Whether `resource` is an instance of `cls`, taking `rdfs:subClassOf` into
43
+ * account.
44
+ *
45
+ * @since 0.1.0
46
+ * @category hierarchy
47
+ */
48
+ declare const isInstanceOf: (self: Dataset, resource: Subject, cls: Resource) => boolean;
49
+ /**
50
+ * All instances of a class, including instances of its subclasses.
51
+ *
52
+ * @since 0.1.0
53
+ * @category hierarchy
54
+ */
55
+ declare const instancesOf: (self: Dataset, cls: Resource) => ReadonlyArray<Subject>;
56
+ /**
57
+ * Options for RDFS entailment.
58
+ *
59
+ * @since 0.1.0
60
+ * @category entailment
61
+ */
62
+ interface EntailmentOptions {
63
+ /**
64
+ * Include the axiomatic and "every resource is an rdfs:Resource" style
65
+ * triples (rules rdfs4a/4b, rdfs8, rdfs10, rdfs12, rdfs13, rdf1). These
66
+ * produce many uninteresting triples; disabled by default.
67
+ */
68
+ readonly full?: boolean;
69
+ }
70
+ /**
71
+ * Computes the RDFS closure of the default graph (or every graph
72
+ * independently) by forward chaining the RDFS entailment rules to a fixpoint.
73
+ *
74
+ * Implemented rules: rdfs2 (domain), rdfs3 (range), rdfs5 (subPropertyOf
75
+ * transitivity), rdfs7 (subproperty inheritance), rdfs9 (type inheritance),
76
+ * rdfs11 (subClassOf transitivity), and — when `full` is set — rdf1, rdfs4a,
77
+ * rdfs4b, rdfs6, rdfs8, rdfs10, rdfs12 and rdfs13.
78
+ *
79
+ * @since 0.1.0
80
+ * @category entailment
81
+ */
82
+ declare const closure: (self: Dataset, options?: EntailmentOptions) => Dataset;
83
+ export { isInstanceOf as a, superClasses as c, instancesOf as i, superProperties as l, Rdfs_d_exports as n, subClasses as o, closure as r, subProperties as s, EntailmentOptions as t, types as u };
84
+ //# sourceMappingURL=Rdfs-BRVPsAjc.d.mts.map
@@ -0,0 +1,167 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
2
+ import { B as isNamedNode, d as Quad, z as isLiteral } from "./Term-CFLG1qu4.mjs";
3
+ import { t as loop } from "./loop-DZ2hXlr_.mjs";
4
+ import { A as objectsOf, D as mutate, L as subjectsOf, U as union, _ as graphs, g as graph } from "./Dataset-BlmlcI7J.mjs";
5
+ import { a as rdfs, i as rdf } from "./Vocab-DceKywpq.mjs";
6
+ import * as Arr from "effect/Array";
7
+ import * as MutableHashMap from "effect/MutableHashMap";
8
+ import * as Option from "effect/Option";
9
+ // src/Rdfs.ts
10
+ /**
11
+ * RDF Schema: class and property hierarchies, and RDFS entailment.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ var Rdfs_exports = /* @__PURE__ */ __exportAll({
16
+ closure: () => closure,
17
+ instancesOf: () => instancesOf,
18
+ isInstanceOf: () => isInstanceOf,
19
+ subClasses: () => subClasses,
20
+ subProperties: () => subProperties,
21
+ superClasses: () => superClasses,
22
+ superProperties: () => superProperties,
23
+ types: () => types
24
+ });
25
+ const transitiveClosure = (self, start, property, direction) => {
26
+ const seen = MutableHashMap.empty();
27
+ const stack = [start];
28
+ loop(() => {
29
+ const node = stack.pop();
30
+ if (node === void 0) return false;
31
+ (direction === "up" ? isLiteral(node) ? [] : objectsOf(self, node, property) : subjectsOf(self, property, node)).forEach((n) => {
32
+ if (!MutableHashMap.has(seen, n.key) && n.key !== start.key) {
33
+ MutableHashMap.set(seen, n.key, n);
34
+ stack.push(n);
35
+ }
36
+ });
37
+ return true;
38
+ });
39
+ return Arr.fromIterable(MutableHashMap.values(seen));
40
+ };
41
+ /**
42
+ * All (transitive) superclasses of a class, excluding the class itself.
43
+ *
44
+ * @since 0.1.0
45
+ * @category hierarchy
46
+ */
47
+ const superClasses = (self, cls) => transitiveClosure(self, cls, rdfs.subClassOf, "up");
48
+ /**
49
+ * All (transitive) subclasses of a class, excluding the class itself.
50
+ *
51
+ * @since 0.1.0
52
+ * @category hierarchy
53
+ */
54
+ const subClasses = (self, cls) => transitiveClosure(self, cls, rdfs.subClassOf, "down");
55
+ /**
56
+ * All (transitive) superproperties of a property, excluding itself.
57
+ *
58
+ * @since 0.1.0
59
+ * @category hierarchy
60
+ */
61
+ const superProperties = (self, property) => transitiveClosure(self, property, rdfs.subPropertyOf, "up");
62
+ /**
63
+ * All (transitive) subproperties of a property, excluding itself.
64
+ *
65
+ * @since 0.1.0
66
+ * @category hierarchy
67
+ */
68
+ const subProperties = (self, property) => transitiveClosure(self, property, rdfs.subPropertyOf, "down");
69
+ /**
70
+ * The asserted types (`rdf:type` values) of a resource.
71
+ *
72
+ * @since 0.1.0
73
+ * @category hierarchy
74
+ */
75
+ const types = (self, resource) => objectsOf(self, resource, rdf.type);
76
+ /**
77
+ * Whether `resource` is an instance of `cls`, taking `rdfs:subClassOf` into
78
+ * account.
79
+ *
80
+ * @since 0.1.0
81
+ * @category hierarchy
82
+ */
83
+ const isInstanceOf = (self, resource, cls) => {
84
+ const asserted = types(self, resource);
85
+ if (asserted.some((t) => t.key === cls.key)) return true;
86
+ return asserted.some((t) => !isLiteral(t) && transitiveClosure(self, t, rdfs.subClassOf, "up").some((s) => s.key === cls.key));
87
+ };
88
+ /**
89
+ * All instances of a class, including instances of its subclasses.
90
+ *
91
+ * @since 0.1.0
92
+ * @category hierarchy
93
+ */
94
+ const instancesOf = (self, cls) => {
95
+ const classes = [cls, ...subClasses(self, cls)];
96
+ const out = MutableHashMap.empty();
97
+ classes.forEach((c) => subjectsOf(self, rdf.type, c).forEach((s) => {
98
+ MutableHashMap.set(out, s.key, s);
99
+ }));
100
+ return Arr.fromIterable(MutableHashMap.values(out));
101
+ };
102
+ /**
103
+ * Computes the RDFS closure of the default graph (or every graph
104
+ * independently) by forward chaining the RDFS entailment rules to a fixpoint.
105
+ *
106
+ * Implemented rules: rdfs2 (domain), rdfs3 (range), rdfs5 (subPropertyOf
107
+ * transitivity), rdfs7 (subproperty inheritance), rdfs9 (type inheritance),
108
+ * rdfs11 (subClassOf transitivity), and — when `full` is set — rdf1, rdfs4a,
109
+ * rdfs4b, rdfs6, rdfs8, rdfs10, rdfs12 and rdfs13.
110
+ *
111
+ * @since 0.1.0
112
+ * @category entailment
113
+ */
114
+ const closure = (self, options = {}) => {
115
+ return Arr.reduce(graphs(self), self, (result, graph$1) => union(result, closeGraph(graph(self, graph$1), graph$1, options.full === true)));
116
+ };
117
+ const asSubject = (o) => isLiteral(o) ? Option.none() : Option.some(o);
118
+ const closeGraph = (input, graph, full) => {
119
+ let ds = input;
120
+ const q = (s, p, o) => new Quad(s, p, o, graph);
121
+ loop(() => {
122
+ const before = ds.size;
123
+ ds = mutate(ds, (b) => {
124
+ const add = (s, p, o) => {
125
+ b.add(q(s, p, o));
126
+ };
127
+ const addFrom = (s, p, o) => {
128
+ if (Option.isSome(s)) add(s.value, p, o);
129
+ };
130
+ Array.from(ds).forEach((t) => {
131
+ const { subject: s, predicate: p, object: o } = t;
132
+ const os = asSubject(o);
133
+ if (full) {
134
+ add(p, rdf.type, rdf.Property);
135
+ add(s, rdf.type, rdfs.Resource);
136
+ addFrom(os, rdf.type, rdfs.Resource);
137
+ }
138
+ objectsOf(ds, p, rdfs.domain, graph).forEach((d) => add(s, rdf.type, d));
139
+ objectsOf(ds, p, rdfs.range, graph).forEach((r) => addFrom(os, rdf.type, r));
140
+ objectsOf(ds, p, rdfs.subPropertyOf, graph).forEach((sp) => {
141
+ if (isNamedNode(sp)) add(s, sp, o);
142
+ });
143
+ if (p.value === rdfs.subPropertyOf.value) {
144
+ if (Option.isSome(os)) objectsOf(ds, os.value, rdfs.subPropertyOf, graph).forEach((x) => add(s, rdfs.subPropertyOf, x));
145
+ } else if (p.value === rdfs.subClassOf.value) {
146
+ if (Option.isSome(os)) objectsOf(ds, os.value, rdfs.subClassOf, graph).forEach((x) => add(s, rdfs.subClassOf, x));
147
+ } else if (p.value === rdf.type.value) {
148
+ if (Option.isSome(os)) objectsOf(ds, os.value, rdfs.subClassOf, graph).forEach((x) => add(s, rdf.type, x));
149
+ if (full) {
150
+ if (o.key === rdf.Property.key) add(s, rdfs.subPropertyOf, s);
151
+ if (o.key === rdfs.Class.key) {
152
+ add(s, rdfs.subClassOf, rdfs.Resource);
153
+ add(s, rdfs.subClassOf, s);
154
+ }
155
+ if (o.key === rdfs.ContainerMembershipProperty.key) add(s, rdfs.subPropertyOf, rdfs.member);
156
+ if (o.key === rdfs.Datatype.key) add(s, rdfs.subClassOf, rdfs.Literal);
157
+ }
158
+ }
159
+ });
160
+ });
161
+ return ds.size !== before;
162
+ });
163
+ return ds;
164
+ };
165
+ export { subClasses as a, superProperties as c, isInstanceOf as i, types as l, closure as n, subProperties as o, instancesOf as r, superClasses as s, Rdfs_exports as t };
166
+
167
+ //# sourceMappingURL=Rdfs-CyY2wVHI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rdfs-CyY2wVHI.mjs","names":["Term.isLiteral","Dataset.objectsOf","Dataset.subjectsOf","Dataset.graphs","Dataset.union","Dataset.graph","graph","Term.Quad","Dataset.mutate","Term.isNamedNode"],"sources":["../src/Rdfs.ts"],"sourcesContent":["/**\n * RDF Schema: class and property hierarchies, and RDFS entailment.\n *\n * @since 0.1.0\n */\nimport * as Dataset from './Dataset.ts';\nimport * as Term from './Term.ts';\nimport { rdf, rdfs } from './Vocab.ts';\nimport * as Arr from 'effect/Array';\nimport * as MutableHashMap from 'effect/MutableHashMap';\nimport * as Option from 'effect/Option';\nimport { loop } from './internal/loop.ts';\n\nconst transitiveClosure = (\n self: Dataset.Dataset,\n start: Term.Object,\n property: Term.NamedNode,\n direction: 'up' | 'down',\n): ReadonlyArray<Term.Object> => {\n const seen = MutableHashMap.empty<string, Term.Object>();\n const stack: Array<Term.Object> = [start];\n // Depth-first, with an explicit stack: hierarchies can be deep\n loop(() => {\n const node = stack.pop();\n if (node === undefined) return false;\n const next: ReadonlyArray<Term.Object> =\n direction === 'up'\n ? Term.isLiteral(node)\n ? []\n : Dataset.objectsOf(self, node, property)\n : Dataset.subjectsOf(self, property, node);\n next.forEach((n) => {\n if (!MutableHashMap.has(seen, n.key) && n.key !== start.key) {\n MutableHashMap.set(seen, n.key, n);\n stack.push(n);\n }\n });\n return true;\n });\n return Arr.fromIterable(MutableHashMap.values(seen));\n};\n\n/**\n * All (transitive) superclasses of a class, excluding the class itself.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const superClasses = (\n self: Dataset.Dataset,\n cls: Term.Resource,\n): ReadonlyArray<Term.Object> => transitiveClosure(self, cls, rdfs.subClassOf, 'up');\n\n/**\n * All (transitive) subclasses of a class, excluding the class itself.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const subClasses = (self: Dataset.Dataset, cls: Term.Resource): ReadonlyArray<Term.Object> =>\n transitiveClosure(self, cls, rdfs.subClassOf, 'down');\n\n/**\n * All (transitive) superproperties of a property, excluding itself.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const superProperties = (\n self: Dataset.Dataset,\n property: Term.Resource,\n): ReadonlyArray<Term.Object> => transitiveClosure(self, property, rdfs.subPropertyOf, 'up');\n\n/**\n * All (transitive) subproperties of a property, excluding itself.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const subProperties = (\n self: Dataset.Dataset,\n property: Term.Resource,\n): ReadonlyArray<Term.Object> => transitiveClosure(self, property, rdfs.subPropertyOf, 'down');\n\n/**\n * The asserted types (`rdf:type` values) of a resource.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const types = (self: Dataset.Dataset, resource: Term.Subject): ReadonlyArray<Term.Object> =>\n Dataset.objectsOf(self, resource, rdf.type);\n\n/**\n * Whether `resource` is an instance of `cls`, taking `rdfs:subClassOf` into\n * account.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const isInstanceOf = (\n self: Dataset.Dataset,\n resource: Term.Subject,\n cls: Term.Resource,\n): boolean => {\n const asserted = types(self, resource);\n if (asserted.some((t) => t.key === cls.key)) return true;\n return asserted.some(\n (t) =>\n !Term.isLiteral(t) &&\n transitiveClosure(self, t, rdfs.subClassOf, 'up').some((s) => s.key === cls.key),\n );\n};\n\n/**\n * All instances of a class, including instances of its subclasses.\n *\n * @since 0.1.0\n * @category hierarchy\n */\nexport const instancesOf = (\n self: Dataset.Dataset,\n cls: Term.Resource,\n): ReadonlyArray<Term.Subject> => {\n const classes = [cls, ...subClasses(self, cls)];\n const out = MutableHashMap.empty<string, Term.Subject>();\n classes.forEach((c) =>\n Dataset.subjectsOf(self, rdf.type, c).forEach((s) => {\n MutableHashMap.set(out, s.key, s);\n }),\n );\n return Arr.fromIterable(MutableHashMap.values(out));\n};\n\n/**\n * Options for RDFS entailment.\n *\n * @since 0.1.0\n * @category entailment\n */\nexport interface EntailmentOptions {\n /**\n * Include the axiomatic and \"every resource is an rdfs:Resource\" style\n * triples (rules rdfs4a/4b, rdfs8, rdfs10, rdfs12, rdfs13, rdf1). These\n * produce many uninteresting triples; disabled by default.\n */\n readonly full?: boolean;\n}\n\n/**\n * Computes the RDFS closure of the default graph (or every graph\n * independently) by forward chaining the RDFS entailment rules to a fixpoint.\n *\n * Implemented rules: rdfs2 (domain), rdfs3 (range), rdfs5 (subPropertyOf\n * transitivity), rdfs7 (subproperty inheritance), rdfs9 (type inheritance),\n * rdfs11 (subClassOf transitivity), and — when `full` is set — rdf1, rdfs4a,\n * rdfs4b, rdfs6, rdfs8, rdfs10, rdfs12 and rdfs13.\n *\n * @since 0.1.0\n * @category entailment\n */\nexport const closure = (\n self: Dataset.Dataset,\n options: EntailmentOptions = {},\n): Dataset.Dataset => {\n return Arr.reduce(Dataset.graphs(self), self, (result, graph) =>\n Dataset.union(result, closeGraph(Dataset.graph(self, graph), graph, options.full === true)),\n );\n};\n\nconst asSubject = (o: Term.Object): Option.Option<Term.Subject> =>\n Term.isLiteral(o) ? Option.none() : Option.some(o);\n\nconst closeGraph = (input: Dataset.Dataset, graph: Term.Graph, full: boolean): Dataset.Dataset => {\n let ds = input;\n const q = (s: Term.Subject, p: Term.Predicate, o: Term.Object) => new Term.Quad(s, p, o, graph);\n // Apply the rules until a round adds nothing\n loop(() => {\n const before = ds.size;\n ds = Dataset.mutate(ds, (b) => {\n const add = (s: Term.Subject, p: Term.Predicate, o: Term.Object) => {\n b.add(q(s, p, o));\n };\n const addFrom = (s: Option.Option<Term.Subject>, p: Term.Predicate, o: Term.Object) => {\n if (Option.isSome(s)) add(s.value, p, o);\n };\n const all = Array.from(ds);\n all.forEach((t) => {\n const { subject: s, predicate: p, object: o } = t;\n const os = asSubject(o);\n if (full) {\n add(p, rdf.type, rdf.Property);\n add(s, rdf.type, rdfs.Resource);\n addFrom(os, rdf.type, rdfs.Resource);\n }\n // rdfs2 / rdfs3\n Dataset.objectsOf(ds, p, rdfs.domain, graph).forEach((d) => add(s, rdf.type, d));\n Dataset.objectsOf(ds, p, rdfs.range, graph).forEach((r) => addFrom(os, rdf.type, r));\n // rdfs7\n Dataset.objectsOf(ds, p, rdfs.subPropertyOf, graph).forEach((sp) => {\n if (Term.isNamedNode(sp)) add(s, sp, o);\n });\n if (p.value === rdfs.subPropertyOf.value) {\n // rdfs5\n if (Option.isSome(os))\n Dataset.objectsOf(ds, os.value, rdfs.subPropertyOf, graph).forEach((x) =>\n add(s, rdfs.subPropertyOf, x),\n );\n } else if (p.value === rdfs.subClassOf.value) {\n // rdfs11\n if (Option.isSome(os))\n Dataset.objectsOf(ds, os.value, rdfs.subClassOf, graph).forEach((x) =>\n add(s, rdfs.subClassOf, x),\n );\n } else if (p.value === rdf.type.value) {\n // rdfs9\n if (Option.isSome(os))\n Dataset.objectsOf(ds, os.value, rdfs.subClassOf, graph).forEach((x) =>\n add(s, rdf.type, x),\n );\n if (full) {\n if (o.key === rdf.Property.key) {\n // SAFETY: a subject is also a valid object.\n add(s, rdfs.subPropertyOf, s); // rdfs6\n }\n if (o.key === rdfs.Class.key) {\n add(s, rdfs.subClassOf, rdfs.Resource); // rdfs8\n // SAFETY: a subject is also a valid object.\n add(s, rdfs.subClassOf, s); // rdfs10\n }\n if (o.key === rdfs.ContainerMembershipProperty.key)\n add(s, rdfs.subPropertyOf, rdfs.member); // rdfs12\n if (o.key === rdfs.Datatype.key) add(s, rdfs.subClassOf, rdfs.Literal); // rdfs13\n }\n }\n });\n });\n return ds.size !== before;\n });\n return ds;\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { a as isInstanceOf, c as superClasses, i as instancesOf, l as superProperties, o as subClasses, r as closure, s as subProperties, t as EntailmentOptions, u as types } from "./Rdfs-BRVPsAjc.mjs";
2
+ export { EntailmentOptions, closure, instancesOf, isInstanceOf, subClasses, subProperties, superClasses, superProperties, types };
package/dist/Rdfs.mjs ADDED
@@ -0,0 +1 @@
1
+ export { n as closure, r as instancesOf, i as isInstanceOf, a as subClasses, o as subProperties, s as superClasses, c as superProperties, l as types } from "./Rdfs-CyY2wVHI.mjs";