@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.
- package/LICENSE +21 -0
- package/README.md +2250 -1
- package/dist/Algebra-CGG4oae3.mjs +433 -0
- package/dist/Algebra-CGG4oae3.mjs.map +1 -0
- package/dist/Algebra-uGsIEOUA.d.mts +446 -0
- package/dist/Ast-CPRZmBvk.mjs +552 -0
- package/dist/Ast-CPRZmBvk.mjs.map +1 -0
- package/dist/Ast-vcw2W-lf.d.mts +827 -0
- package/dist/Bindings-Ck3m7JRC.mjs +249 -0
- package/dist/Bindings-Ck3m7JRC.mjs.map +1 -0
- package/dist/Bindings-DiKpBd7f.d.mts +153 -0
- package/dist/ClientErrors-CpXdFX5u.mjs +128 -0
- package/dist/ClientErrors-CpXdFX5u.mjs.map +1 -0
- package/dist/ClientErrors-D4IZHUM-.d.mts +101 -0
- package/dist/ClientFormats-CXomkXLV.mjs +73 -0
- package/dist/ClientFormats-CXomkXLV.mjs.map +1 -0
- package/dist/ClientFormats-Dm57ZPwR.d.mts +36 -0
- package/dist/Csv2Json-DynEcwCh.mjs +194 -0
- package/dist/Csv2Json-DynEcwCh.mjs.map +1 -0
- package/dist/Csv2Json-aXNVDoXQ.d.mts +40 -0
- package/dist/Csv2Rdf-8maXP6mt.d.mts +41 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs +161 -0
- package/dist/Csv2Rdf-DuSEkaKE.mjs.map +1 -0
- package/dist/Dataset-BlmlcI7J.mjs +782 -0
- package/dist/Dataset-BlmlcI7J.mjs.map +1 -0
- package/dist/Dataset-DS3ESOcO.d.mts +426 -0
- package/dist/Dataset.d.mts +2 -0
- package/dist/Dataset.mjs +1 -0
- package/dist/Datatype-CxMpamHC.d.mts +212 -0
- package/dist/Datatype-DQvkNkiH.mjs +1001 -0
- package/dist/Datatype-DQvkNkiH.mjs.map +1 -0
- package/dist/Dialect-8ChFj5EX.d.mts +113 -0
- package/dist/Dialect-CzVH38uo.mjs +165 -0
- package/dist/Dialect-CzVH38uo.mjs.map +1 -0
- package/dist/DocumentLoader-D3lZREnB.mjs +346 -0
- package/dist/DocumentLoader-D3lZREnB.mjs.map +1 -0
- package/dist/DocumentLoader-ZUCEVrW5.d.mts +178 -0
- package/dist/DublinCore-AnwqxRx6.mjs +137 -0
- package/dist/DublinCore-AnwqxRx6.mjs.map +1 -0
- package/dist/DublinCore-Dq-tVA5d.d.mts +119 -0
- package/dist/Engine-CYPB3g4h.d.mts +144 -0
- package/dist/Engine-DF8PN7g-.mjs +872 -0
- package/dist/Engine-DF8PN7g-.mjs.map +1 -0
- package/dist/Errors-CMdV1RhU.mjs +37 -0
- package/dist/Errors-CMdV1RhU.mjs.map +1 -0
- package/dist/Errors-u2bDjUeM.d.mts +30 -0
- package/dist/Evaluator-DEsU4d1o.d.mts +50 -0
- package/dist/Evaluator-DOY2-guC.mjs +281 -0
- package/dist/Evaluator-DOY2-guC.mjs.map +1 -0
- package/dist/Exif-CpqniYQd.d.mts +78 -0
- package/dist/Exif-DjkCfEB-.mjs +89 -0
- package/dist/Exif-DjkCfEB-.mjs.map +1 -0
- package/dist/Expression-BIMMvduQ.mjs +230 -0
- package/dist/Expression-BIMMvduQ.mjs.map +1 -0
- package/dist/Expression-W8A9cyX7.d.mts +89 -0
- package/dist/Extract-Bop85jES.mjs +220 -0
- package/dist/Extract-Bop85jES.mjs.map +1 -0
- package/dist/Extract-C_pCvuTC.d.mts +88 -0
- package/dist/Federation-BcNrozc1.d.mts +52 -0
- package/dist/Federation-CHScBkaK.mjs +130 -0
- package/dist/Federation-CHScBkaK.mjs.map +1 -0
- package/dist/Functions-AvjNcId_.mjs +1346 -0
- package/dist/Functions-AvjNcId_.mjs.map +1 -0
- package/dist/Functions-OQJZP-F6.d.mts +111 -0
- package/dist/Generator-C52mmq01.d.mts +50 -0
- package/dist/Generator-D3utCJC7.mjs +205 -0
- package/dist/Generator-D3utCJC7.mjs.map +1 -0
- package/dist/Grammar-CPlSxGH6.mjs +200 -0
- package/dist/Grammar-CPlSxGH6.mjs.map +1 -0
- package/dist/Grammar-CRhnRoCu.d.mts +148 -0
- package/dist/Grammar-D6jZdJQ3.d.mts +169 -0
- package/dist/Grammar-mQ8CgE1M.mjs +258 -0
- package/dist/Grammar-mQ8CgE1M.mjs.map +1 -0
- package/dist/GraphStore-DhUa4nFO.d.mts +45 -0
- package/dist/GraphStore-DvbqwKy1.mjs +212 -0
- package/dist/GraphStore-DvbqwKy1.mjs.map +1 -0
- package/dist/Iri-BB8Ks-BF.d.mts +84 -0
- package/dist/Iri-Cr92gsQV.mjs +232 -0
- package/dist/Iri-Cr92gsQV.mjs.map +1 -0
- package/dist/Iri.d.mts +2 -0
- package/dist/Iri.mjs +1 -0
- package/dist/Isomorphism-B6qTY-xy.d.mts +28 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs +232 -0
- package/dist/Isomorphism-BmqxhKyJ.mjs.map +1 -0
- package/dist/Isomorphism-DInKnWIy.mjs +390 -0
- package/dist/Isomorphism-DInKnWIy.mjs.map +1 -0
- package/dist/Isomorphism-DvSfZXLR.d.mts +37 -0
- package/dist/Isomorphism.d.mts +2 -0
- package/dist/Isomorphism.mjs +1 -0
- package/dist/JsonLd-DOwS2FHg.mjs +2836 -0
- package/dist/JsonLd-DOwS2FHg.mjs.map +1 -0
- package/dist/JsonLd-DobFrQNa.d.mts +242 -0
- package/dist/JsonLdError-C9J-BxfG.mjs +106 -0
- package/dist/JsonLdError-C9J-BxfG.mjs.map +1 -0
- package/dist/JsonLdError-DSOfHkOy.d.mts +43 -0
- package/dist/LanguageTag-BCu8rcmX.d.mts +38 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs +89 -0
- package/dist/LanguageTag-BcOpMGZ4.mjs.map +1 -0
- package/dist/LanguageTag.d.mts +2 -0
- package/dist/LanguageTag.mjs +1 -0
- package/dist/Lexical-Cg0JHrf6.mjs +243 -0
- package/dist/Lexical-Cg0JHrf6.mjs.map +1 -0
- package/dist/Lexical-D3zySYVS.d.mts +163 -0
- package/dist/Manifest-B6xf6mUc.mjs +148 -0
- package/dist/Manifest-B6xf6mUc.mjs.map +1 -0
- package/dist/Manifest-DQUMRBFr.d.mts +98 -0
- package/dist/Mapping-BgG74x3U.d.mts +63 -0
- package/dist/Mapping-Dc1ZGirk.mjs +259 -0
- package/dist/Mapping-Dc1ZGirk.mjs.map +1 -0
- package/dist/Mcp-1DwTTKOK.mjs +48 -0
- package/dist/Mcp-1DwTTKOK.mjs.map +1 -0
- package/dist/Mcp-d-pX9erx.d.mts +25 -0
- package/dist/Message-CK_DGQuu.mjs +95 -0
- package/dist/Message-CK_DGQuu.mjs.map +1 -0
- package/dist/Message-fIvTJSXM.d.mts +49 -0
- package/dist/Metadata-BbffwGDZ.mjs +445 -0
- package/dist/Metadata-BbffwGDZ.mjs.map +1 -0
- package/dist/Metadata-CEt3yc1-.d.mts +901 -0
- package/dist/Metadata-D4HsQNXr.mjs +1273 -0
- package/dist/Metadata-D4HsQNXr.mjs.map +1 -0
- package/dist/Metadata-nzS7QKRj.d.mts +350 -0
- package/dist/Model-DaMmxurZ.d.mts +293 -0
- package/dist/Model-DlPzRYhF.mjs +528 -0
- package/dist/Model-DlPzRYhF.mjs.map +1 -0
- package/dist/N3-BzyV-KIH.mjs +974 -0
- package/dist/N3-BzyV-KIH.mjs.map +1 -0
- package/dist/N3-DSLnonDn.d.mts +100 -0
- package/dist/NQuads-C1VBOJ3-.mjs +117 -0
- package/dist/NQuads-C1VBOJ3-.mjs.map +1 -0
- package/dist/NQuads-FjFZikFg.d.mts +76 -0
- package/dist/NTriples-D-kLSEAf.mjs +120 -0
- package/dist/NTriples-D-kLSEAf.mjs.map +1 -0
- package/dist/NTriples-D34OspfW.d.mts +76 -0
- package/dist/Namespace-ClTUO_ya.d.mts +42 -0
- package/dist/Namespace-DHFIsORd.mjs +75 -0
- package/dist/Namespace-DHFIsORd.mjs.map +1 -0
- package/dist/Namespace.d.mts +2 -0
- package/dist/Namespace.mjs +1 -0
- package/dist/Namespaces-Bz85vpjW.mjs +235 -0
- package/dist/Namespaces-Bz85vpjW.mjs.map +1 -0
- package/dist/Namespaces-C1jW6EDo.d.mts +178 -0
- package/dist/Optimizer-BWWQRQPY.mjs +168 -0
- package/dist/Optimizer-BWWQRQPY.mjs.map +1 -0
- package/dist/Optimizer-DUpUow6k.d.mts +26 -0
- package/dist/Options-BLBGL4HE.mjs +72 -0
- package/dist/Options-BLBGL4HE.mjs.map +1 -0
- package/dist/Options-BommQwP9.d.mts +127 -0
- package/dist/Packet-CA76wVX3.mjs +197 -0
- package/dist/Packet-CA76wVX3.mjs.map +1 -0
- package/dist/Packet-Cy5g6XuW.d.mts +130 -0
- package/dist/Parser-p1Gyr0QN.d.mts +85 -0
- package/dist/Parser-xARsOWXk.mjs +1317 -0
- package/dist/Parser-xARsOWXk.mjs.map +1 -0
- package/dist/Path-B20Yp8KE.mjs +284 -0
- package/dist/Path-B20Yp8KE.mjs.map +1 -0
- package/dist/Path-DRB8e-Zn.d.mts +181 -0
- package/dist/Pdf-B9RZn--8.d.mts +77 -0
- package/dist/Pdf-CKK6dkZn.mjs +89 -0
- package/dist/Pdf-CKK6dkZn.mjs.map +1 -0
- package/dist/PdfA-CUjSuntT.d.mts +109 -0
- package/dist/PdfA-CleOhuL6.mjs +124 -0
- package/dist/PdfA-CleOhuL6.mjs.map +1 -0
- package/dist/Photoshop-CiHo80qV.mjs +233 -0
- package/dist/Photoshop-CiHo80qV.mjs.map +1 -0
- package/dist/Photoshop-udKZ0I3N.d.mts +204 -0
- package/dist/PrefixMap-BHFPDLO-.mjs +103 -0
- package/dist/PrefixMap-BHFPDLO-.mjs.map +1 -0
- package/dist/PrefixMap-BMlXrWNd.d.mts +64 -0
- package/dist/PrefixMap.d.mts +2 -0
- package/dist/PrefixMap.mjs +1 -0
- package/dist/Processor-CMmecFsb.mjs +198 -0
- package/dist/Processor-CMmecFsb.mjs.map +1 -0
- package/dist/Processor-FJPvO0CB.d.mts +435 -0
- package/dist/Protocol-BA7OkNgp.mjs +202 -0
- package/dist/Protocol-BA7OkNgp.mjs.map +1 -0
- package/dist/Protocol-DlSoiIKB.d.mts +108 -0
- package/dist/ProtocolErrors-Ckfejnl6.d.mts +84 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs +129 -0
- package/dist/ProtocolErrors-czDPVcX5.mjs.map +1 -0
- package/dist/Query-D9A6LOpP.mjs +364 -0
- package/dist/Query-D9A6LOpP.mjs.map +1 -0
- package/dist/Query-KqSkTYyG.d.mts +96 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs +674 -0
- package/dist/QueryBuilder-BLK9Vfbz.mjs.map +1 -0
- package/dist/QueryBuilder-DUqh4ECe.d.mts +529 -0
- package/dist/RdfJs-D6-49XB5.mjs +86 -0
- package/dist/RdfJs-D6-49XB5.mjs.map +1 -0
- package/dist/RdfJs-DXFqdWrd.d.mts +76 -0
- package/dist/RdfJs.d.mts +2 -0
- package/dist/RdfJs.mjs +1 -0
- package/dist/RdfJson-5aKPDlPS.d.mts +297 -0
- package/dist/RdfJson-BNocgW4f.mjs +548 -0
- package/dist/RdfJson-BNocgW4f.mjs.map +1 -0
- package/dist/RdfXml-DJ9G4gOq.mjs +1014 -0
- package/dist/RdfXml-DJ9G4gOq.mjs.map +1 -0
- package/dist/RdfXml-_N7yxWEp.d.mts +149 -0
- package/dist/Rdfs-BRVPsAjc.d.mts +84 -0
- package/dist/Rdfs-CyY2wVHI.mjs +167 -0
- package/dist/Rdfs-CyY2wVHI.mjs.map +1 -0
- package/dist/Rdfs.d.mts +2 -0
- package/dist/Rdfs.mjs +1 -0
- package/dist/Reasoner-BxYhx9s7.d.mts +94 -0
- package/dist/Reasoner-Cw90zrjv.mjs +798 -0
- package/dist/Reasoner-Cw90zrjv.mjs.map +1 -0
- package/dist/Reification-BmN4EfnM.d.mts +40 -0
- package/dist/Reification-dpqQvjDE.mjs +82 -0
- package/dist/Reification-dpqQvjDE.mjs.map +1 -0
- package/dist/Reification.d.mts +2 -0
- package/dist/Reification.mjs +1 -0
- package/dist/Report-XHs8htzK.mjs +121 -0
- package/dist/Report-XHs8htzK.mjs.map +1 -0
- package/dist/Report-hcXsc_19.d.mts +115 -0
- package/dist/Resource-B1cI8FyJ.d.mts +218 -0
- package/dist/Resource-sIEeNh15.mjs +374 -0
- package/dist/Resource-sIEeNh15.mjs.map +1 -0
- package/dist/Resource.d.mts +2 -0
- package/dist/Resource.mjs +1 -0
- package/dist/Results-BVNEC-Wt.d.mts +277 -0
- package/dist/Results-peJjGA2V.mjs +621 -0
- package/dist/Results-peJjGA2V.mjs.map +1 -0
- package/dist/ResultsStream-BhF0OcNn.mjs +639 -0
- package/dist/ResultsStream-BhF0OcNn.mjs.map +1 -0
- package/dist/ResultsStream-toYMXrOe.d.mts +100 -0
- package/dist/SemAct-CDchtk49.d.mts +96 -0
- package/dist/SemAct-CmyT4yI8.mjs +118 -0
- package/dist/SemAct-CmyT4yI8.mjs.map +1 -0
- package/dist/Serialization-DP9H5bYQ.mjs +514 -0
- package/dist/Serialization-DP9H5bYQ.mjs.map +1 -0
- package/dist/Serialization-Df8iVauT.d.mts +392 -0
- package/dist/Serialization.d.mts +2 -0
- package/dist/Serialization.mjs +1 -0
- package/dist/ServerFormats-CrRnjjf6.mjs +64 -0
- package/dist/ServerFormats-CrRnjjf6.mjs.map +1 -0
- package/dist/ServerFormats-DjC9NsO_.d.mts +36 -0
- package/dist/ServiceDescription-BERsvg-k.d.mts +54 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs +97 -0
- package/dist/ServiceDescription-Dq5hxeGy.mjs.map +1 -0
- package/dist/ShExC-Ctf-06CL.d.mts +67 -0
- package/dist/ShExC-DJbB19i3.mjs +1181 -0
- package/dist/ShExC-DJbB19i3.mjs.map +1 -0
- package/dist/ShExError-BeYFD9rv.d.mts +61 -0
- package/dist/ShExError-CVtq2NnM.mjs +64 -0
- package/dist/ShExError-CVtq2NnM.mjs.map +1 -0
- package/dist/ShExJ-C1u_wgyD.d.mts +531 -0
- package/dist/ShExJ-COiPd9Xw.mjs +532 -0
- package/dist/ShExJ-COiPd9Xw.mjs.map +1 -0
- package/dist/ShExR-ByR4mCh-.mjs +480 -0
- package/dist/ShExR-ByR4mCh-.mjs.map +1 -0
- package/dist/ShExR-CqONNNBz.d.mts +40 -0
- package/dist/ShapeMap-C422pxKl.d.mts +140 -0
- package/dist/ShapeMap-CsgKxB2G.mjs +181 -0
- package/dist/ShapeMap-CsgKxB2G.mjs.map +1 -0
- package/dist/Shapes-18GjfyBV.mjs +597 -0
- package/dist/Shapes-18GjfyBV.mjs.map +1 -0
- package/dist/Shapes-BQFDFc4Q.d.mts +306 -0
- package/dist/Sparql-BiYFMSpl.mjs +29 -0
- package/dist/Sparql-BiYFMSpl.mjs.map +1 -0
- package/dist/Sparql-DecpWTPh.d.mts +97 -0
- package/dist/SparqlClient-C_CjXbwj.mjs +333 -0
- package/dist/SparqlClient-C_CjXbwj.mjs.map +1 -0
- package/dist/SparqlClient-UPc88SHy.d.mts +290 -0
- package/dist/SparqlServer-CbUW-pVj.d.mts +71 -0
- package/dist/SparqlServer-Db7w7Cll.mjs +308 -0
- package/dist/SparqlServer-Db7w7Cll.mjs.map +1 -0
- package/dist/SqlStore-BBqFx-Wl.mjs +684 -0
- package/dist/SqlStore-BBqFx-Wl.mjs.map +1 -0
- package/dist/SqlStore-CCJo5I-e.d.mts +117 -0
- package/dist/Store-D0jmVfb3.d.mts +166 -0
- package/dist/Store-DH3Ow1GO.mjs +162 -0
- package/dist/Store-DH3Ow1GO.mjs.map +1 -0
- package/dist/Structure-BjMo4Bkc.mjs +334 -0
- package/dist/Structure-BjMo4Bkc.mjs.map +1 -0
- package/dist/Structure-n4CmDiab.d.mts +63 -0
- package/dist/Table-BGgm9nbM.mjs +538 -0
- package/dist/Table-BGgm9nbM.mjs.map +1 -0
- package/dist/Table-C3reiVrb.d.mts +261 -0
- package/dist/Term-B_4ezyXq.d.mts +619 -0
- package/dist/Term-CFLG1qu4.mjs +991 -0
- package/dist/Term-CFLG1qu4.mjs.map +1 -0
- package/dist/Term.d.mts +2 -0
- package/dist/Term.mjs +1 -0
- package/dist/TermCodec-CDZiEztW.mjs +397 -0
- package/dist/TermCodec-CDZiEztW.mjs.map +1 -0
- package/dist/TermCodec-_03bDXr0.d.mts +209 -0
- package/dist/TermCodec.d.mts +2 -0
- package/dist/TermCodec.mjs +1 -0
- package/dist/TermJson-BOPe0yve.d.mts +232 -0
- package/dist/TermJson-FAg3lvjl.mjs +142 -0
- package/dist/TermJson-FAg3lvjl.mjs.map +1 -0
- package/dist/TermJson.d.mts +2 -0
- package/dist/TermJson.mjs +1 -0
- package/dist/TermSchema-Bn9CoaYA.mjs +30 -0
- package/dist/TermSchema-Bn9CoaYA.mjs.map +1 -0
- package/dist/TermSchema-DBO6MroX.d.mts +6 -0
- package/dist/Testing-B-aPCpmu.mjs +63 -0
- package/dist/Testing-B-aPCpmu.mjs.map +1 -0
- package/dist/Testing-CF6s8P3O.d.mts +53 -0
- package/dist/Tiff-CR-2QeSI.d.mts +148 -0
- package/dist/Tiff-DlsOlZPM.mjs +169 -0
- package/dist/Tiff-DlsOlZPM.mjs.map +1 -0
- package/dist/Tools-7MdRKccr.d.mts +583 -0
- package/dist/Tools-ryxphZbI.mjs +329 -0
- package/dist/Tools-ryxphZbI.mjs.map +1 -0
- package/dist/Translate-B0YKKANS.d.mts +37 -0
- package/dist/Translate-gzWPq0Ia.mjs +308 -0
- package/dist/Translate-gzWPq0Ia.mjs.map +1 -0
- package/dist/Translation-DC9rLm2y.mjs +1535 -0
- package/dist/Translation-DC9rLm2y.mjs.map +1 -0
- package/dist/Translation-K4L9XBqX.d.mts +103 -0
- package/dist/TriG-BkqtqZ6Y.mjs +125 -0
- package/dist/TriG-BkqtqZ6Y.mjs.map +1 -0
- package/dist/TriG-xDjdDatp.d.mts +86 -0
- package/dist/Turtle-Bv1_bisW.d.mts +85 -0
- package/dist/Turtle-CZVUOtwl.mjs +133 -0
- package/dist/Turtle-CZVUOtwl.mjs.map +1 -0
- package/dist/ValidationReport-DBdJshW5.mjs +285 -0
- package/dist/ValidationReport-DBdJshW5.mjs.map +1 -0
- package/dist/ValidationReport-Dx3WxY0h.d.mts +192 -0
- package/dist/Validator-227ff9Rn.d.mts +179 -0
- package/dist/Validator-BzXMKDeJ.mjs +1162 -0
- package/dist/Validator-BzXMKDeJ.mjs.map +1 -0
- package/dist/Validator-Dl8cih5V.d.mts +207 -0
- package/dist/Validator-DmUfMbpL.mjs +568 -0
- package/dist/Validator-DmUfMbpL.mjs.map +1 -0
- package/dist/Vocab-DceKywpq.mjs +168 -0
- package/dist/Vocab-DceKywpq.mjs.map +1 -0
- package/dist/Vocab-Df-L-IwZ.d.mts +46 -0
- package/dist/Vocab-Do56UgBX.d.mts +81 -0
- package/dist/Vocab-TfpWG1Ne.mjs +118 -0
- package/dist/Vocab-TfpWG1Ne.mjs.map +1 -0
- package/dist/Vocab.d.mts +2 -0
- package/dist/Vocab.mjs +1 -0
- package/dist/Vocabulary-C6-GPOy4.d.mts +22 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs +179 -0
- package/dist/Vocabulary-CnQl-_Z4.mjs.map +1 -0
- package/dist/Xml-B7iihYCS.mjs +976 -0
- package/dist/Xml-B7iihYCS.mjs.map +1 -0
- package/dist/Xml-CmfHS7SW.d.mts +267 -0
- package/dist/Xmp-D7CKA7MZ.d.mts +111 -0
- package/dist/Xmp-DCGN9pOD.mjs +307 -0
- package/dist/Xmp-DCGN9pOD.mjs.map +1 -0
- package/dist/XmpBasic-CP38jpR_.mjs +73 -0
- package/dist/XmpBasic-CP38jpR_.mjs.map +1 -0
- package/dist/XmpBasic-Cmbe53rQ.d.mts +64 -0
- package/dist/XmpMM-BfL_TgJF.mjs +73 -0
- package/dist/XmpMM-BfL_TgJF.mjs.map +1 -0
- package/dist/XmpMM-Dqm3IX8p.d.mts +63 -0
- package/dist/XmpRights-BKPtoI5L.mjs +73 -0
- package/dist/XmpRights-BKPtoI5L.mjs.map +1 -0
- package/dist/XmpRights-CaALZQz2.d.mts +63 -0
- package/dist/Xsd-Cdgx5zRB.mjs +405 -0
- package/dist/Xsd-Cdgx5zRB.mjs.map +1 -0
- package/dist/Xsd-D2elNhSm.d.mts +187 -0
- package/dist/Xsd.d.mts +2 -0
- package/dist/Xsd.mjs +1 -0
- package/dist/accessors-CEjaojuQ.mjs +28 -0
- package/dist/accessors-CEjaojuQ.mjs.map +1 -0
- package/dist/codec-Lb2T96rv.d.mts +20 -0
- package/dist/codec-QNo7IdJF.mjs +389 -0
- package/dist/codec-QNo7IdJF.mjs.map +1 -0
- package/dist/csvw/Csv2Json.d.mts +2 -0
- package/dist/csvw/Csv2Json.mjs +1 -0
- package/dist/csvw/Csv2Rdf.d.mts +2 -0
- package/dist/csvw/Csv2Rdf.mjs +1 -0
- package/dist/csvw/Datatype.d.mts +2 -0
- package/dist/csvw/Datatype.mjs +1 -0
- package/dist/csvw/Metadata.d.mts +2 -0
- package/dist/csvw/Metadata.mjs +1 -0
- package/dist/csvw/Processor.d.mts +2 -0
- package/dist/csvw/Processor.mjs +1 -0
- package/dist/csvw/Report.d.mts +2 -0
- package/dist/csvw/Report.mjs +1 -0
- package/dist/csvw/Table.d.mts +2 -0
- package/dist/csvw/Table.mjs +1 -0
- package/dist/csvw/index.d.mts +8 -0
- package/dist/csvw/index.mjs +8 -0
- package/dist/index-Cms2TYfC.d.mts +16 -0
- package/dist/index-Ct8xFmRs.d.mts +7 -0
- package/dist/index-D4QFwOjm.d.mts +28 -0
- package/dist/index.d.mts +18 -0
- package/dist/index.mjs +17 -0
- package/dist/jsonld/DocumentLoader.d.mts +2 -0
- package/dist/jsonld/DocumentLoader.mjs +1 -0
- package/dist/jsonld/JsonLd.d.mts +2 -0
- package/dist/jsonld/JsonLd.mjs +1 -0
- package/dist/jsonld/JsonLdError.d.mts +2 -0
- package/dist/jsonld/JsonLdError.mjs +1 -0
- package/dist/jsonld/index.d.mts +4 -0
- package/dist/jsonld/index.mjs +4 -0
- package/dist/lists-D-OpQ0Ir.mjs +77 -0
- package/dist/lists-D-OpQ0Ir.mjs.map +1 -0
- package/dist/loop-D5-gNx9K.mjs +21 -0
- package/dist/loop-D5-gNx9K.mjs.map +1 -0
- package/dist/loop-DZ2hXlr_.mjs +21 -0
- package/dist/loop-DZ2hXlr_.mjs.map +1 -0
- package/dist/n3/Isomorphism.d.mts +2 -0
- package/dist/n3/Isomorphism.mjs +1 -0
- package/dist/n3/Mapping.d.mts +2 -0
- package/dist/n3/Mapping.mjs +1 -0
- package/dist/n3/Model.d.mts +2 -0
- package/dist/n3/Model.mjs +1 -0
- package/dist/n3/N3.d.mts +2 -0
- package/dist/n3/N3.mjs +1 -0
- package/dist/n3/Reasoner.d.mts +2 -0
- package/dist/n3/Reasoner.mjs +2 -0
- package/dist/n3/Vocab.d.mts +2 -0
- package/dist/n3/Vocab.mjs +1 -0
- package/dist/n3/index.d.mts +7 -0
- package/dist/n3/index.mjs +7 -0
- package/dist/ntriples/Grammar.d.mts +2 -0
- package/dist/ntriples/Grammar.mjs +1 -0
- package/dist/ntriples/Lexical.d.mts +2 -0
- package/dist/ntriples/Lexical.mjs +1 -0
- package/dist/ntriples/NQuads.d.mts +2 -0
- package/dist/ntriples/NQuads.mjs +1 -0
- package/dist/ntriples/NTriples.d.mts +2 -0
- package/dist/ntriples/NTriples.mjs +1 -0
- package/dist/ntriples/index.d.mts +5 -0
- package/dist/ntriples/index.mjs +5 -0
- package/dist/rdfjson/RdfJson.d.mts +2 -0
- package/dist/rdfjson/RdfJson.mjs +1 -0
- package/dist/rdfjson/index.d.mts +2 -0
- package/dist/rdfjson/index.mjs +1 -0
- package/dist/rdfxml/RdfXml.d.mts +2 -0
- package/dist/rdfxml/RdfXml.mjs +1 -0
- package/dist/rdfxml/Xml.d.mts +2 -0
- package/dist/rdfxml/Xml.mjs +1 -0
- package/dist/rdfxml/index.d.mts +3 -0
- package/dist/rdfxml/index.mjs +3 -0
- package/dist/rolldown-runtime-D8jQpDG7.mjs +12 -0
- package/dist/serialize-96KBvKaf.mjs +1463 -0
- package/dist/serialize-96KBvKaf.mjs.map +1 -0
- package/dist/serialize-DsoXdM6n.d.mts +37 -0
- package/dist/shacl/Message.d.mts +2 -0
- package/dist/shacl/Message.mjs +1 -0
- package/dist/shacl/Path.d.mts +2 -0
- package/dist/shacl/Path.mjs +1 -0
- package/dist/shacl/Shapes.d.mts +2 -0
- package/dist/shacl/Shapes.mjs +1 -0
- package/dist/shacl/Sparql.d.mts +2 -0
- package/dist/shacl/Sparql.mjs +1 -0
- package/dist/shacl/ValidationReport.d.mts +2 -0
- package/dist/shacl/ValidationReport.mjs +1 -0
- package/dist/shacl/Validator.d.mts +2 -0
- package/dist/shacl/Validator.mjs +1 -0
- package/dist/shacl/Vocabulary.d.mts +2 -0
- package/dist/shacl/Vocabulary.mjs +1 -0
- package/dist/shacl/index.d.mts +9 -0
- package/dist/shacl/index.mjs +8 -0
- package/dist/shex/SemAct.d.mts +2 -0
- package/dist/shex/SemAct.mjs +1 -0
- package/dist/shex/ShExC.d.mts +2 -0
- package/dist/shex/ShExC.mjs +1 -0
- package/dist/shex/ShExError.d.mts +2 -0
- package/dist/shex/ShExError.mjs +1 -0
- package/dist/shex/ShExJ.d.mts +2 -0
- package/dist/shex/ShExJ.mjs +2 -0
- package/dist/shex/ShExR.d.mts +2 -0
- package/dist/shex/ShExR.mjs +1 -0
- package/dist/shex/ShapeMap.d.mts +2 -0
- package/dist/shex/ShapeMap.mjs +1 -0
- package/dist/shex/Structure.d.mts +2 -0
- package/dist/shex/Structure.mjs +2 -0
- package/dist/shex/Validator.d.mts +2 -0
- package/dist/shex/Validator.mjs +4 -0
- package/dist/shex/index.d.mts +9 -0
- package/dist/shex/index.mjs +9 -0
- package/dist/sparql/Algebra.d.mts +2 -0
- package/dist/sparql/Algebra.mjs +1 -0
- package/dist/sparql/Ast.d.mts +2 -0
- package/dist/sparql/Ast.mjs +1 -0
- package/dist/sparql/Bindings.d.mts +2 -0
- package/dist/sparql/Bindings.mjs +1 -0
- package/dist/sparql/ClientErrors.d.mts +2 -0
- package/dist/sparql/ClientErrors.mjs +1 -0
- package/dist/sparql/ClientFormats.d.mts +2 -0
- package/dist/sparql/ClientFormats.mjs +1 -0
- package/dist/sparql/Engine.d.mts +2 -0
- package/dist/sparql/Engine.mjs +1 -0
- package/dist/sparql/Errors.d.mts +2 -0
- package/dist/sparql/Errors.mjs +1 -0
- package/dist/sparql/Expression.d.mts +2 -0
- package/dist/sparql/Expression.mjs +1 -0
- package/dist/sparql/Federation.d.mts +2 -0
- package/dist/sparql/Federation.mjs +1 -0
- package/dist/sparql/Functions.d.mts +2 -0
- package/dist/sparql/Functions.mjs +1 -0
- package/dist/sparql/Generator.d.mts +2 -0
- package/dist/sparql/Generator.mjs +1 -0
- package/dist/sparql/GraphStore.d.mts +2 -0
- package/dist/sparql/GraphStore.mjs +1 -0
- package/dist/sparql/Optimizer.d.mts +2 -0
- package/dist/sparql/Optimizer.mjs +1 -0
- package/dist/sparql/Options.d.mts +2 -0
- package/dist/sparql/Options.mjs +1 -0
- package/dist/sparql/Parser.d.mts +2 -0
- package/dist/sparql/Parser.mjs +1 -0
- package/dist/sparql/Protocol.d.mts +2 -0
- package/dist/sparql/Protocol.mjs +1 -0
- package/dist/sparql/ProtocolErrors.d.mts +2 -0
- package/dist/sparql/ProtocolErrors.mjs +1 -0
- package/dist/sparql/QueryBuilder.d.mts +2 -0
- package/dist/sparql/QueryBuilder.mjs +1 -0
- package/dist/sparql/Results.d.mts +2 -0
- package/dist/sparql/Results.mjs +1 -0
- package/dist/sparql/ResultsStream.d.mts +2 -0
- package/dist/sparql/ResultsStream.mjs +1 -0
- package/dist/sparql/ServerFormats.d.mts +2 -0
- package/dist/sparql/ServerFormats.mjs +1 -0
- package/dist/sparql/ServiceDescription.d.mts +2 -0
- package/dist/sparql/ServiceDescription.mjs +1 -0
- package/dist/sparql/SparqlClient.d.mts +2 -0
- package/dist/sparql/SparqlClient.mjs +1 -0
- package/dist/sparql/SparqlServer.d.mts +2 -0
- package/dist/sparql/SparqlServer.mjs +1 -0
- package/dist/sparql/Store.d.mts +2 -0
- package/dist/sparql/Store.mjs +1 -0
- package/dist/sparql/TermSchema.d.mts +3 -0
- package/dist/sparql/TermSchema.mjs +2 -0
- package/dist/sparql/Testing.d.mts +2 -0
- package/dist/sparql/Testing.mjs +1 -0
- package/dist/sparql/Translate.d.mts +2 -0
- package/dist/sparql/Translate.mjs +1 -0
- package/dist/sparql/ai/Mcp.d.mts +2 -0
- package/dist/sparql/ai/Mcp.mjs +1 -0
- package/dist/sparql/ai/Tools.d.mts +2 -0
- package/dist/sparql/ai/Tools.mjs +1 -0
- package/dist/sparql/ai/index.d.mts +3 -0
- package/dist/sparql/ai/index.mjs +3 -0
- package/dist/sparql/index.d.mts +30 -0
- package/dist/sparql/index.mjs +29 -0
- package/dist/sparql/shacl/Evaluator.d.mts +2 -0
- package/dist/sparql/shacl/Evaluator.mjs +1 -0
- package/dist/sparql/shacl/Query.d.mts +2 -0
- package/dist/sparql/shacl/Query.mjs +1 -0
- package/dist/sparql/shacl/index.d.mts +3 -0
- package/dist/sparql/shacl/index.mjs +3 -0
- package/dist/sparql/sql/Dialect.d.mts +2 -0
- package/dist/sparql/sql/Dialect.mjs +1 -0
- package/dist/sparql/sql/SqlStore.d.mts +2 -0
- package/dist/sparql/sql/SqlStore.mjs +1 -0
- package/dist/sparql/sql/Translation.d.mts +2 -0
- package/dist/sparql/sql/Translation.mjs +1 -0
- package/dist/sparql/sql/index.d.mts +4 -0
- package/dist/sparql/sql/index.mjs +4 -0
- package/dist/stringMap-D5YIpYtR.mjs +38 -0
- package/dist/stringMap-D5YIpYtR.mjs.map +1 -0
- package/dist/tokens-C6BzeodQ.mjs +24 -0
- package/dist/tokens-C6BzeodQ.mjs.map +1 -0
- package/dist/turtle/Grammar.d.mts +3 -0
- package/dist/turtle/Grammar.mjs +3 -0
- package/dist/turtle/Manifest.d.mts +2 -0
- package/dist/turtle/Manifest.mjs +1 -0
- package/dist/turtle/TriG.d.mts +2 -0
- package/dist/turtle/TriG.mjs +1 -0
- package/dist/turtle/Turtle.d.mts +2 -0
- package/dist/turtle/Turtle.mjs +1 -0
- package/dist/turtle/index.d.mts +5 -0
- package/dist/turtle/index.mjs +5 -0
- package/dist/xmp/DublinCore.d.mts +2 -0
- package/dist/xmp/DublinCore.mjs +1 -0
- package/dist/xmp/Exif.d.mts +2 -0
- package/dist/xmp/Exif.mjs +1 -0
- package/dist/xmp/Extract.d.mts +2 -0
- package/dist/xmp/Extract.mjs +1 -0
- package/dist/xmp/Metadata.d.mts +2 -0
- package/dist/xmp/Metadata.mjs +1 -0
- package/dist/xmp/Namespaces.d.mts +2 -0
- package/dist/xmp/Namespaces.mjs +1 -0
- package/dist/xmp/Packet.d.mts +2 -0
- package/dist/xmp/Packet.mjs +1 -0
- package/dist/xmp/Pdf.d.mts +2 -0
- package/dist/xmp/Pdf.mjs +1 -0
- package/dist/xmp/PdfA.d.mts +2 -0
- package/dist/xmp/PdfA.mjs +1 -0
- package/dist/xmp/Photoshop.d.mts +2 -0
- package/dist/xmp/Photoshop.mjs +1 -0
- package/dist/xmp/Tiff.d.mts +2 -0
- package/dist/xmp/Tiff.mjs +1 -0
- package/dist/xmp/Xmp.d.mts +2 -0
- package/dist/xmp/Xmp.mjs +3 -0
- package/dist/xmp/XmpBasic.d.mts +2 -0
- package/dist/xmp/XmpBasic.mjs +1 -0
- package/dist/xmp/XmpMM.d.mts +2 -0
- package/dist/xmp/XmpMM.mjs +1 -0
- package/dist/xmp/XmpRights.d.mts +2 -0
- package/dist/xmp/XmpRights.mjs +1 -0
- package/dist/xmp/index.d.mts +15 -0
- package/dist/xmp/index.mjs +15 -0
- package/package.json +187 -3
- package/src/Dataset.ts +1085 -0
- package/src/Iri.ts +322 -0
- package/src/Isomorphism.ts +319 -0
- package/src/LanguageTag.ts +98 -0
- package/src/Namespace.ts +100 -0
- package/src/PrefixMap.ts +117 -0
- package/src/RdfJs.ts +146 -0
- package/src/Rdfs.ts +241 -0
- package/src/Reification.ts +103 -0
- package/src/Resource.ts +873 -0
- package/src/Serialization.ts +775 -0
- package/src/Term.ts +1300 -0
- package/src/TermCodec.ts +505 -0
- package/src/TermJson.ts +313 -0
- package/src/Vocab.ts +161 -0
- package/src/Xsd.ts +573 -0
- package/src/csvw/Csv2Json.ts +265 -0
- package/src/csvw/Csv2Rdf.ts +268 -0
- package/src/csvw/Datatype.ts +589 -0
- package/src/csvw/Metadata.ts +1523 -0
- package/src/csvw/Processor.ts +276 -0
- package/src/csvw/Report.ts +135 -0
- package/src/csvw/Table.ts +759 -0
- package/src/csvw/index.ts +22 -0
- package/src/csvw/internal/dateFormat.ts +202 -0
- package/src/csvw/internal/json.ts +104 -0
- package/src/csvw/internal/numberFormat.ts +369 -0
- package/src/csvw/internal/object.ts +23 -0
- package/src/csvw/internal/uriTemplate.ts +130 -0
- package/src/csvw/internal/url.ts +93 -0
- package/src/csvw/internal/vocab.ts +282 -0
- package/src/index.ts +40 -0
- package/src/internal/arbitrary.ts +148 -0
- package/src/internal/loop.ts +24 -0
- package/src/internal/pending.ts +20 -0
- package/src/internal/textDecoder.ts +183 -0
- package/src/jsonld/DocumentLoader.ts +512 -0
- package/src/jsonld/JsonLd.ts +847 -0
- package/src/jsonld/JsonLdError.ts +105 -0
- package/src/jsonld/index.ts +13 -0
- package/src/jsonld/internal/compact.ts +852 -0
- package/src/jsonld/internal/context.ts +781 -0
- package/src/jsonld/internal/expand.ts +614 -0
- package/src/jsonld/internal/flatten.ts +243 -0
- package/src/jsonld/internal/frame.ts +559 -0
- package/src/jsonld/internal/iri.ts +52 -0
- package/src/jsonld/internal/json.ts +19 -0
- package/src/jsonld/internal/linkHeader.ts +60 -0
- package/src/jsonld/internal/rdf.ts +481 -0
- package/src/jsonld/internal/util.ts +367 -0
- package/src/n3/Isomorphism.ts +476 -0
- package/src/n3/Mapping.ts +332 -0
- package/src/n3/Model.ts +696 -0
- package/src/n3/N3.ts +237 -0
- package/src/n3/Reasoner.ts +568 -0
- package/src/n3/Vocab.ts +111 -0
- package/src/n3/index.ts +21 -0
- package/src/n3/internal/builtins.ts +668 -0
- package/src/n3/internal/guards.ts +23 -0
- package/src/n3/internal/lists.ts +106 -0
- package/src/n3/internal/loop.ts +28 -0
- package/src/n3/internal/parser.ts +1032 -0
- package/src/n3/internal/writer.ts +344 -0
- package/src/ntriples/Grammar.ts +317 -0
- package/src/ntriples/Lexical.ts +321 -0
- package/src/ntriples/NQuads.ts +140 -0
- package/src/ntriples/NTriples.ts +143 -0
- package/src/ntriples/index.ts +14 -0
- package/src/ntriples/internal/codec.ts +229 -0
- package/src/ntriples/internal/lineParser.ts +326 -0
- package/src/ntriples/internal/loop.ts +14 -0
- package/src/rdfjson/RdfJson.ts +806 -0
- package/src/rdfjson/index.ts +9 -0
- package/src/rdfjson/internal/json.ts +19 -0
- package/src/rdfxml/RdfXml.ts +1408 -0
- package/src/rdfxml/Xml.ts +419 -0
- package/src/rdfxml/index.ts +11 -0
- package/src/rdfxml/internal/chars.ts +73 -0
- package/src/rdfxml/internal/loop.ts +24 -0
- package/src/rdfxml/internal/parser.ts +1265 -0
- package/src/shacl/Message.ts +102 -0
- package/src/shacl/Path.ts +483 -0
- package/src/shacl/Shapes.ts +913 -0
- package/src/shacl/Sparql.ts +128 -0
- package/src/shacl/ValidationReport.ts +438 -0
- package/src/shacl/Validator.ts +1156 -0
- package/src/shacl/Vocabulary.ts +180 -0
- package/src/shacl/index.ts +22 -0
- package/src/shacl/internal/compare.ts +128 -0
- package/src/shacl/internal/regex.ts +56 -0
- package/src/shex/SemAct.ts +197 -0
- package/src/shex/ShExC.ts +415 -0
- package/src/shex/ShExError.ts +71 -0
- package/src/shex/ShExJ.ts +893 -0
- package/src/shex/ShExR.ts +640 -0
- package/src/shex/ShapeMap.ts +385 -0
- package/src/shex/Structure.ts +467 -0
- package/src/shex/Validator.ts +395 -0
- package/src/shex/index.ts +24 -0
- package/src/shex/internal/engine.ts +682 -0
- package/src/shex/internal/iterate.ts +14 -0
- package/src/shex/internal/json.ts +12 -0
- package/src/shex/internal/lexer.ts +56 -0
- package/src/shex/internal/nodeConstraint.ts +368 -0
- package/src/shex/internal/shexcLexer.ts +387 -0
- package/src/shex/internal/shexcParser.ts +1312 -0
- package/src/shex/internal/tokens.ts +41 -0
- package/src/shex/internal/xpathRegex.ts +290 -0
- package/src/sparql/Algebra.ts +914 -0
- package/src/sparql/Ast.ts +1344 -0
- package/src/sparql/Bindings.ts +272 -0
- package/src/sparql/ClientErrors.ts +156 -0
- package/src/sparql/ClientFormats.ts +70 -0
- package/src/sparql/Engine.ts +699 -0
- package/src/sparql/Errors.ts +30 -0
- package/src/sparql/Expression.ts +360 -0
- package/src/sparql/Federation.ts +187 -0
- package/src/sparql/Functions.ts +689 -0
- package/src/sparql/Generator.ts +426 -0
- package/src/sparql/GraphStore.ts +341 -0
- package/src/sparql/Optimizer.ts +230 -0
- package/src/sparql/Options.ts +191 -0
- package/src/sparql/Parser.ts +173 -0
- package/src/sparql/Protocol.ts +342 -0
- package/src/sparql/ProtocolErrors.ts +113 -0
- package/src/sparql/QueryBuilder.ts +953 -0
- package/src/sparql/Results.ts +844 -0
- package/src/sparql/ResultsStream.ts +771 -0
- package/src/sparql/ServerFormats.ts +75 -0
- package/src/sparql/ServiceDescription.ts +130 -0
- package/src/sparql/SparqlClient.ts +947 -0
- package/src/sparql/SparqlServer.ts +528 -0
- package/src/sparql/Store.ts +311 -0
- package/src/sparql/TermSchema.ts +20 -0
- package/src/sparql/Testing.ts +114 -0
- package/src/sparql/Translate.ts +407 -0
- package/src/sparql/ai/Mcp.ts +43 -0
- package/src/sparql/ai/Tools.ts +481 -0
- package/src/sparql/ai/index.ts +11 -0
- package/src/sparql/index.ts +64 -0
- package/src/sparql/internal/evaluator.ts +947 -0
- package/src/sparql/internal/hash.ts +418 -0
- package/src/sparql/internal/json.ts +12 -0
- package/src/sparql/internal/lexer.ts +488 -0
- package/src/sparql/internal/loop.ts +24 -0
- package/src/sparql/internal/parser.ts +2215 -0
- package/src/sparql/internal/prefetch.ts +46 -0
- package/src/sparql/internal/stringMap.ts +39 -0
- package/src/sparql/internal/textResults.ts +226 -0
- package/src/sparql/internal/values.ts +550 -0
- package/src/sparql/shacl/Evaluator.ts +478 -0
- package/src/sparql/shacl/Query.ts +574 -0
- package/src/sparql/shacl/index.ts +12 -0
- package/src/sparql/sql/Dialect.ts +246 -0
- package/src/sparql/sql/SqlStore.ts +1080 -0
- package/src/sparql/sql/Translation.ts +1898 -0
- package/src/sparql/sql/index.ts +17 -0
- package/src/sparql/sql/internal/encoding.ts +313 -0
- package/src/turtle/Grammar.ts +286 -0
- package/src/turtle/Manifest.ts +215 -0
- package/src/turtle/TriG.ts +158 -0
- package/src/turtle/Turtle.ts +166 -0
- package/src/turtle/index.ts +14 -0
- package/src/turtle/internal/loop.ts +23 -0
- package/src/turtle/internal/parse.ts +112 -0
- package/src/turtle/internal/parser.ts +1303 -0
- package/src/turtle/internal/serialize.ts +79 -0
- package/src/turtle/internal/streamWriter.ts +128 -0
- package/src/turtle/internal/writer.ts +898 -0
- package/src/xmp/DublinCore.ts +147 -0
- package/src/xmp/Exif.ts +109 -0
- package/src/xmp/Extract.ts +351 -0
- package/src/xmp/Metadata.ts +703 -0
- package/src/xmp/Namespaces.ts +228 -0
- package/src/xmp/Packet.ts +297 -0
- package/src/xmp/Pdf.ts +99 -0
- package/src/xmp/PdfA.ts +280 -0
- package/src/xmp/Photoshop.ts +275 -0
- package/src/xmp/Tiff.ts +196 -0
- package/src/xmp/Xmp.ts +430 -0
- package/src/xmp/XmpBasic.ts +90 -0
- package/src/xmp/XmpMM.ts +82 -0
- package/src/xmp/XmpRights.ts +83 -0
- package/src/xmp/index.ts +36 -0
- package/src/xmp/internal/accessors.ts +72 -0
- package/src/xmp/internal/xml.ts +63 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-D8jQpDG7.mjs";
|
|
2
|
+
import { B as isNamedNode, U as isResource, Z as namedNode, z as isLiteral } from "./Term-CFLG1qu4.mjs";
|
|
3
|
+
import { A as objectsOf } from "./Dataset-BlmlcI7J.mjs";
|
|
4
|
+
import { n as Vocabulary_exports } from "./Vocabulary-CnQl-_Z4.mjs";
|
|
5
|
+
import { n as SparqlEvaluationError } from "./Sparql-BiYFMSpl.mjs";
|
|
6
|
+
import { A as pathPattern, D as oneOrMore, F as sequence, H as zeroOrMore, R as triplePattern, U as zeroOrOne, j as projectedVariables, r as alternative, w as link, y as inverse } from "./Ast-CPRZmBvk.mjs";
|
|
7
|
+
import { a as parseQueryResult } from "./Parser-xARsOWXk.mjs";
|
|
8
|
+
import * as Arr from "effect/Array";
|
|
9
|
+
import { pipe } from "effect/Function";
|
|
10
|
+
import * as MutableHashSet from "effect/MutableHashSet";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
|
+
import * as Predicate from "effect/Predicate";
|
|
13
|
+
import * as Effect from "effect/Effect";
|
|
14
|
+
import * as Match from "effect/Match";
|
|
15
|
+
import * as Record from "effect/Record";
|
|
16
|
+
import * as Result from "effect/Result";
|
|
17
|
+
// src/sparql/shacl/Query.ts
|
|
18
|
+
/**
|
|
19
|
+
* SHACL-SPARQL queries: reading the `sh:select` / `sh:ask` queries of a
|
|
20
|
+
* shapes graph with their prefix declarations (§5.2.1), enforcing the
|
|
21
|
+
* syntactic restrictions of pre-binding (Appendix A) and substituting the
|
|
22
|
+
* `$PATH` variable with a property path (§5.3, §6.3).
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { Effect } from "effect"
|
|
26
|
+
* import { Query } from "@thomasfosterau/effect-rdf/sparql/shacl"
|
|
27
|
+
*
|
|
28
|
+
* const program = Effect.gen(function* () {
|
|
29
|
+
* const query = yield* Query.compile(shapesGraph, constraintNode, {
|
|
30
|
+
* form: "select",
|
|
31
|
+
* prebound: ["this", "shapesGraph", "currentShape"],
|
|
32
|
+
* path: shape.path,
|
|
33
|
+
* })
|
|
34
|
+
* })
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @since 0.1.0
|
|
38
|
+
*/
|
|
39
|
+
var Query_exports = /* @__PURE__ */ __exportAll({
|
|
40
|
+
checkPrebinding: () => checkPrebinding,
|
|
41
|
+
compile: () => compile,
|
|
42
|
+
compileResult: () => compileResult,
|
|
43
|
+
optionalPrebound: () => optionalPrebound,
|
|
44
|
+
prefixes: () => prefixes,
|
|
45
|
+
substitutePath: () => substitutePath,
|
|
46
|
+
toSparqlPath: () => toSparqlPath
|
|
47
|
+
});
|
|
48
|
+
const { sh } = Vocabulary_exports;
|
|
49
|
+
const owlImports = namedNode("http://www.w3.org/2002/07/owl#imports");
|
|
50
|
+
/**
|
|
51
|
+
* The variables that are optional to pre-bind (and to project from
|
|
52
|
+
* sub-queries): `$shapesGraph` and `$currentShape`.
|
|
53
|
+
*
|
|
54
|
+
* @since 0.1.0
|
|
55
|
+
* @category constants
|
|
56
|
+
*/
|
|
57
|
+
const optionalPrebound = /* @__PURE__ */ new Set(["shapesGraph", "currentShape"]);
|
|
58
|
+
const fail = (message) => Result.fail(new SparqlEvaluationError({ message }));
|
|
59
|
+
const noPrefixes = Result.succeed({});
|
|
60
|
+
/**
|
|
61
|
+
* The prefix mappings of a SPARQL executable: the union of the
|
|
62
|
+
* `sh:prefix` / `sh:namespace` pairs reachable via
|
|
63
|
+
* `sh:prefixes/owl:imports* /sh:declare`. Fails when a prefix is declared
|
|
64
|
+
* with two different namespaces (an ill-formed shapes graph) or a
|
|
65
|
+
* declaration is malformed.
|
|
66
|
+
*
|
|
67
|
+
* @since 0.1.0
|
|
68
|
+
* @category prefixes
|
|
69
|
+
*/
|
|
70
|
+
const prefixes = (shapesGraph, node) => Arr.reduce(Arr.flatMap(prefixNodes(shapesGraph, node), (current) => Arr.map(objectsOf(shapesGraph, current, sh.declare), (declaration) => [current, declaration])), noPrefixes, (acc, [current, declaration]) => Result.flatMap(acc, (declared) => declare(shapesGraph, declared, current, declaration)));
|
|
71
|
+
/**
|
|
72
|
+
* The nodes reachable via `sh:prefixes/owl:imports*` from `node`, depth
|
|
73
|
+
* first (the order in which their declarations are read).
|
|
74
|
+
*/
|
|
75
|
+
const prefixNodes = (shapesGraph, node) => {
|
|
76
|
+
const seen = MutableHashSet.empty();
|
|
77
|
+
const visit = (stack) => {
|
|
78
|
+
const [rest, current] = Arr.unappend(stack);
|
|
79
|
+
if (MutableHashSet.has(seen, current.key) || !isResource(current)) return [Option.none(), rest];
|
|
80
|
+
MutableHashSet.add(seen, current.key);
|
|
81
|
+
return [Option.some(current), [...rest, ...objectsOf(shapesGraph, current, owlImports)]];
|
|
82
|
+
};
|
|
83
|
+
return Arr.getSomes(Arr.unfold(objectsOf(shapesGraph, node, sh.prefixes), (stack) => Arr.isReadonlyArrayNonEmpty(stack) ? Option.some(visit(stack)) : Option.none()));
|
|
84
|
+
};
|
|
85
|
+
const singleOf = (values, refinement) => values.length === 1 ? Option.filter(Arr.head(values), refinement) : Option.none();
|
|
86
|
+
const isLiteralOrIri = (t) => isLiteral(t) || isNamedNode(t);
|
|
87
|
+
/** Adds one `sh:declare` prefix declaration to those read before it. */
|
|
88
|
+
const declare = (shapesGraph, declared, current, declaration) => {
|
|
89
|
+
if (!isResource(declaration)) return fail(`sh:declare of ${current.key} must be an IRI or blank node`);
|
|
90
|
+
const prefix = singleOf(objectsOf(shapesGraph, declaration, sh.prefix), isLiteral);
|
|
91
|
+
const namespace = singleOf(objectsOf(shapesGraph, declaration, sh.namespace), isLiteralOrIri);
|
|
92
|
+
if (Option.isNone(prefix) || Option.isNone(namespace)) return fail(`prefix declaration ${declaration.key} needs exactly one literal sh:prefix and sh:namespace`);
|
|
93
|
+
const name = prefix.value.value;
|
|
94
|
+
const iri = namespace.value.value;
|
|
95
|
+
const existing = Record.get(declared, name);
|
|
96
|
+
if (Option.isSome(existing) && existing.value !== iri) return fail(`prefix "${name}" is declared with two namespaces: <${existing.value}> and <${iri}>`);
|
|
97
|
+
return Result.succeed(Record.set(declared, name, iri));
|
|
98
|
+
};
|
|
99
|
+
const noError = () => Option.none();
|
|
100
|
+
const visitNothing = {
|
|
101
|
+
pattern: noError,
|
|
102
|
+
query: noError,
|
|
103
|
+
variable: noError
|
|
104
|
+
};
|
|
105
|
+
const isSelect = (q) => Predicate.isTagged(q, "Select");
|
|
106
|
+
const termVariables = (t, out) => {
|
|
107
|
+
if (Predicate.isTagged(t, "Variable")) out(t.value);
|
|
108
|
+
else if (Predicate.isTagged(t, "Triple")) {
|
|
109
|
+
termVariables(t.subject, out);
|
|
110
|
+
termVariables(t.predicate, out);
|
|
111
|
+
termVariables(t.object, out);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
/** Visits every pattern, (sub-)query and variable occurrence; returns the first error. */
|
|
115
|
+
const walk = (root, visitor) => {
|
|
116
|
+
const visit = {
|
|
117
|
+
...visitNothing,
|
|
118
|
+
...visitor
|
|
119
|
+
};
|
|
120
|
+
let error = Option.none();
|
|
121
|
+
const report = (e) => {
|
|
122
|
+
if (Option.isNone(error)) error = e;
|
|
123
|
+
};
|
|
124
|
+
const variable = (name) => report(visit.variable(name));
|
|
125
|
+
const term = (t) => termVariables(t, variable);
|
|
126
|
+
const expression = (expr) => {
|
|
127
|
+
return Match.value(expr).pipe(Match.tag("Variable", "Triple", (e) => {
|
|
128
|
+
term(e);
|
|
129
|
+
}), Match.tag("Operation", "FunctionCall", (e) => {
|
|
130
|
+
e.args.forEach(expression);
|
|
131
|
+
}), Match.tag("Aggregate", (e) => {
|
|
132
|
+
if (e.expression !== "*") expression(e.expression);
|
|
133
|
+
}), Match.tag("Exists", (e) => {
|
|
134
|
+
pattern(e.pattern);
|
|
135
|
+
}), Match.orElse(() => void 0));
|
|
136
|
+
};
|
|
137
|
+
const pathTerms = (p) => {
|
|
138
|
+
Match.value(p).pipe(Match.tag("PathLink", "PathNegated", () => void 0), Match.tag("PathSequence", "PathAlternative", (list) => list.paths.forEach(pathTerms)), Match.orElse((unary) => pathTerms(unary.path)));
|
|
139
|
+
};
|
|
140
|
+
const pattern = (pat) => {
|
|
141
|
+
report(visit.pattern(pat));
|
|
142
|
+
return Match.value(pat).pipe(Match.tag("Bgp", (p) => {
|
|
143
|
+
Arr.forEach(p.triples, (t) => {
|
|
144
|
+
term(t.subject);
|
|
145
|
+
if (Predicate.isTagged(t, "TriplePattern")) term(t.predicate);
|
|
146
|
+
else pathTerms(t.path);
|
|
147
|
+
term(t.object);
|
|
148
|
+
});
|
|
149
|
+
}), Match.tag("Group", (p) => {
|
|
150
|
+
p.patterns.forEach(pattern);
|
|
151
|
+
}), Match.tag("Optional", "Minus", (p) => {
|
|
152
|
+
pattern(p.pattern);
|
|
153
|
+
}), Match.tag("Union", (p) => {
|
|
154
|
+
p.patterns.forEach(pattern);
|
|
155
|
+
}), Match.tag("Graph", "Service", (p) => {
|
|
156
|
+
term(p.name);
|
|
157
|
+
pattern(p.pattern);
|
|
158
|
+
}), Match.tag("Filter", (p) => {
|
|
159
|
+
expression(p.expression);
|
|
160
|
+
}), Match.tag("Bind", (p) => {
|
|
161
|
+
expression(p.expression);
|
|
162
|
+
variable(p.variable.value);
|
|
163
|
+
}), Match.tag("Values", (p) => {
|
|
164
|
+
p.variables.forEach((v) => variable(v.value));
|
|
165
|
+
}), Match.tag("SubSelect", (p) => {
|
|
166
|
+
query(p.query, true);
|
|
167
|
+
}), Match.exhaustive);
|
|
168
|
+
};
|
|
169
|
+
const query = (q, nested) => {
|
|
170
|
+
report(visit.query(q, nested));
|
|
171
|
+
if (isSelect(q) && q.projection !== "*") Arr.forEach(q.projection, (p) => {
|
|
172
|
+
if (Predicate.isTagged(p, "Variable")) variable(p.value);
|
|
173
|
+
else {
|
|
174
|
+
expression(p.expression);
|
|
175
|
+
variable(p.variable.value);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
if (Predicate.isTagged(q, "Construct")) Arr.forEach(q.template, (t) => [
|
|
179
|
+
t.subject,
|
|
180
|
+
t.predicate,
|
|
181
|
+
t.object
|
|
182
|
+
].forEach(term));
|
|
183
|
+
if (Predicate.isTagged(q, "Describe") && q.terms !== "*") q.terms.forEach(term);
|
|
184
|
+
pattern(q.where);
|
|
185
|
+
Arr.forEach(q.groupBy, (g) => {
|
|
186
|
+
expression(g.expression);
|
|
187
|
+
if (g.variable !== void 0) variable(g.variable.value);
|
|
188
|
+
});
|
|
189
|
+
q.having.forEach(expression);
|
|
190
|
+
Arr.forEach(q.orderBy, (o) => expression(o.expression));
|
|
191
|
+
if (q.values !== void 0) pattern(q.values);
|
|
192
|
+
};
|
|
193
|
+
query(root, false);
|
|
194
|
+
return error;
|
|
195
|
+
};
|
|
196
|
+
/**
|
|
197
|
+
* Checks the restrictions that SHACL places on queries evaluated with
|
|
198
|
+
* pre-bound variables (Appendix A "Pre-binding of Variables in SPARQL
|
|
199
|
+
* Queries"): no `MINUS`, no `SERVICE`, no `VALUES`, no `AS ?var` for a
|
|
200
|
+
* potentially pre-bound variable, and sub-queries must project every
|
|
201
|
+
* potentially pre-bound variable (except `shapesGraph` and `currentShape`).
|
|
202
|
+
*
|
|
203
|
+
* @since 0.1.0
|
|
204
|
+
* @category validation
|
|
205
|
+
*/
|
|
206
|
+
const checkPrebinding = (query, prebound) => {
|
|
207
|
+
const ordered = Arr.dedupe(Arr.fromIterable(prebound));
|
|
208
|
+
const potential = MutableHashSet.fromIterable(ordered);
|
|
209
|
+
const rebinds = (v) => MutableHashSet.has(potential, v.value) ? Option.some(`the pre-bound variable ?${v.value} must not be assigned with AS`) : Option.none();
|
|
210
|
+
const unprojected = (q) => {
|
|
211
|
+
const projected = MutableHashSet.fromIterable(projectedVariables(q));
|
|
212
|
+
return Option.map(Arr.findFirst(ordered, (v) => !optionalPrebound.has(v) && !MutableHashSet.has(projected, v)), (v) => `sub-queries must project the pre-bound variable ?${v}`);
|
|
213
|
+
};
|
|
214
|
+
const error = walk(query, {
|
|
215
|
+
pattern: (pat) => {
|
|
216
|
+
return Match.value(pat).pipe(Match.withReturnType(), Match.tag("Minus", () => Option.some("MINUS is not allowed in SHACL-SPARQL queries with pre-bound variables")), Match.tag("Service", () => Option.some("SERVICE is not allowed in SHACL-SPARQL queries with pre-bound variables")), Match.tag("Values", () => Option.some("VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables")), Match.tag("Bind", (p) => rebinds(p.variable)), Match.orElse(() => Option.none()));
|
|
217
|
+
},
|
|
218
|
+
query: (q, nested) => {
|
|
219
|
+
if (q.values !== void 0) return Option.some("VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables");
|
|
220
|
+
const projections = isSelect(q) && q.projection !== "*" ? Arr.filter(q.projection, (p) => Predicate.isTagged(p, "Projection")) : [];
|
|
221
|
+
return pipe(Arr.findFirst(projections, (p) => rebinds(p.variable)), Option.orElse(() => Arr.findFirst(q.groupBy, (g) => g.variable === void 0 ? Option.none() : rebinds(g.variable))), Option.orElse(() => nested && isSelect(q) ? unprojected(q) : Option.none()));
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
return Option.match(error, {
|
|
225
|
+
onNone: () => Result.succeed(query),
|
|
226
|
+
onSome: fail
|
|
227
|
+
});
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Converts a SHACL property path to a SPARQL property path.
|
|
231
|
+
*
|
|
232
|
+
* @since 0.1.0
|
|
233
|
+
* @category paths
|
|
234
|
+
*/
|
|
235
|
+
const toSparqlPath = (path) => {
|
|
236
|
+
return Match.value(path).pipe(Match.tag("PredicatePath", (step) => link(step.predicate)), Match.tag("SequencePath", (step) => sequence(...step.paths.map(toSparqlPath))), Match.tag("AlternativePath", (step) => alternative(...step.paths.map(toSparqlPath))), Match.tag("InversePath", (step) => inverse(toSparqlPath(step.path))), Match.tag("ZeroOrMorePath", (step) => zeroOrMore(toSparqlPath(step.path))), Match.tag("OneOrMorePath", (step) => oneOrMore(toSparqlPath(step.path))), Match.tag("ZeroOrOnePath", (step) => zeroOrOne(toSparqlPath(step.path))), Match.exhaustive);
|
|
237
|
+
};
|
|
238
|
+
const PATH = "PATH";
|
|
239
|
+
const isPathLink = (p) => Predicate.isTagged(p, "PathLink");
|
|
240
|
+
const mapGroup = (g, f) => ({
|
|
241
|
+
...g,
|
|
242
|
+
patterns: g.patterns.map((p) => mapPattern(p, f))
|
|
243
|
+
});
|
|
244
|
+
const mapExpression = (expr, f) => {
|
|
245
|
+
return Match.value(expr).pipe(Match.tag("Operation", (e) => ({
|
|
246
|
+
...e,
|
|
247
|
+
args: e.args.map((a) => mapExpression(a, f))
|
|
248
|
+
})), Match.tag("FunctionCall", (e) => ({
|
|
249
|
+
...e,
|
|
250
|
+
args: e.args.map((a) => mapExpression(a, f))
|
|
251
|
+
})), Match.tag("Aggregate", (e) => e.expression === "*" ? e : {
|
|
252
|
+
...e,
|
|
253
|
+
expression: mapExpression(e.expression, f)
|
|
254
|
+
}), Match.tag("Exists", (e) => ({
|
|
255
|
+
...e,
|
|
256
|
+
pattern: mapGroup(e.pattern, f)
|
|
257
|
+
})), Match.orElse((e) => e));
|
|
258
|
+
};
|
|
259
|
+
const mapPattern = (pat, f) => {
|
|
260
|
+
return Match.value(pat).pipe(Match.tag("Bgp", (p) => ({
|
|
261
|
+
...p,
|
|
262
|
+
triples: p.triples.map(f)
|
|
263
|
+
})), Match.tag("Group", (p) => mapGroup(p, f)), Match.tag("Optional", "Minus", "Graph", "Service", (p) => ({
|
|
264
|
+
...p,
|
|
265
|
+
pattern: mapGroup(p.pattern, f)
|
|
266
|
+
})), Match.tag("Union", (p) => ({
|
|
267
|
+
...p,
|
|
268
|
+
patterns: p.patterns.map((g) => mapGroup(g, f))
|
|
269
|
+
})), Match.tag("Filter", (p) => ({
|
|
270
|
+
...p,
|
|
271
|
+
expression: mapExpression(p.expression, f)
|
|
272
|
+
})), Match.tag("Bind", (p) => ({
|
|
273
|
+
...p,
|
|
274
|
+
expression: mapExpression(p.expression, f)
|
|
275
|
+
})), Match.tag("Values", (p) => p), Match.tag("SubSelect", (p) => ({
|
|
276
|
+
...p,
|
|
277
|
+
query: mapQuery(p.query, f)
|
|
278
|
+
})), Match.exhaustive);
|
|
279
|
+
};
|
|
280
|
+
const mapQuery = (q, f) => {
|
|
281
|
+
const expression = (e) => mapExpression(e, f);
|
|
282
|
+
const mapped = {
|
|
283
|
+
...q,
|
|
284
|
+
where: mapGroup(q.where, f),
|
|
285
|
+
having: q.having.map(expression),
|
|
286
|
+
orderBy: q.orderBy.map((o) => ({
|
|
287
|
+
...o,
|
|
288
|
+
expression: expression(o.expression)
|
|
289
|
+
})),
|
|
290
|
+
groupBy: q.groupBy.map((g) => ({
|
|
291
|
+
...g,
|
|
292
|
+
expression: expression(g.expression)
|
|
293
|
+
}))
|
|
294
|
+
};
|
|
295
|
+
if (!isSelect(q) || q.projection === "*") return mapped;
|
|
296
|
+
return {
|
|
297
|
+
...mapped,
|
|
298
|
+
projection: q.projection.map((p) => Predicate.isTagged(p, "Projection") ? {
|
|
299
|
+
...p,
|
|
300
|
+
expression: expression(p.expression)
|
|
301
|
+
} : p)
|
|
302
|
+
};
|
|
303
|
+
};
|
|
304
|
+
/**
|
|
305
|
+
* Substitutes the variable `$PATH` in the predicate position of triple
|
|
306
|
+
* patterns with a property path (the `sh:path` of the current property
|
|
307
|
+
* shape). Any other use of `$PATH` makes the query ill-formed.
|
|
308
|
+
*
|
|
309
|
+
* @since 0.1.0
|
|
310
|
+
* @category paths
|
|
311
|
+
*/
|
|
312
|
+
const substitutePath = (query, path) => {
|
|
313
|
+
const sparqlPath = toSparqlPath(path);
|
|
314
|
+
const substituted = mapQuery(query, (t) => Predicate.isTagged(t, "TriplePattern") && Predicate.isTagged(t.predicate, "Variable") && t.predicate.value === PATH ? isPathLink(sparqlPath) ? triplePattern(t.subject, sparqlPath.iri, t.object) : pathPattern(t.subject, sparqlPath, t.object) : t);
|
|
315
|
+
const error = walk(substituted, { variable: (name) => name === PATH ? Option.some("$PATH may only be used in the predicate position of triple patterns") : Option.none() });
|
|
316
|
+
return Option.match(error, {
|
|
317
|
+
onNone: () => Result.succeed(substituted),
|
|
318
|
+
onSome: fail
|
|
319
|
+
});
|
|
320
|
+
};
|
|
321
|
+
/** The first of `required` that a `SELECT` query does not project. */
|
|
322
|
+
const unprojectedOf = (query, required) => {
|
|
323
|
+
const projected = MutableHashSet.fromIterable(projectedVariables(query));
|
|
324
|
+
return Arr.findFirst(required, (v) => !MutableHashSet.has(projected, v));
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* Reads, parses and checks the `sh:select` or `sh:ask` query of a node of
|
|
328
|
+
* the shapes graph (a SPARQL-based constraint, validator, target or target
|
|
329
|
+
* type), using its prefix declarations. Fails with a
|
|
330
|
+
* `SparqlEvaluationError` when the query is missing, ambiguous, does not
|
|
331
|
+
* parse, has the wrong form or violates the pre-binding restrictions.
|
|
332
|
+
*
|
|
333
|
+
* @since 0.1.0
|
|
334
|
+
* @category compiling
|
|
335
|
+
*/
|
|
336
|
+
const compileResult = (shapesGraph, node, options) => {
|
|
337
|
+
const property = options.form === "select" ? sh.select : sh.ask;
|
|
338
|
+
const literal = singleOf(objectsOf(shapesGraph, node, property), isLiteral);
|
|
339
|
+
if (Option.isNone(literal)) return fail(`${node.key} must have exactly one literal value for ${property.key}`);
|
|
340
|
+
const text = literal.value.value;
|
|
341
|
+
return Result.flatMap(prefixes(shapesGraph, node), (declared) => {
|
|
342
|
+
const parsed = parseQueryResult(text, { prefixes: declared });
|
|
343
|
+
if (Result.isFailure(parsed)) return Result.fail(new SparqlEvaluationError({
|
|
344
|
+
message: `the ${property.key} query of ${node.key} does not parse: ${parsed.failure.message}`,
|
|
345
|
+
cause: parsed.failure
|
|
346
|
+
}));
|
|
347
|
+
const query = parsed.success;
|
|
348
|
+
const expected = options.form === "select" ? "Select" : "Ask";
|
|
349
|
+
if (!Predicate.isTagged(query, expected)) return fail(`the ${property.key} query of ${node.key} must be a ${expected.toUpperCase()} query`);
|
|
350
|
+
const missing = isSelect(query) ? unprojectedOf(query, options.project ?? []) : Option.none();
|
|
351
|
+
if (Option.isSome(missing)) return fail(`the query of ${node.key} must project ?${missing.value}`);
|
|
352
|
+
return Result.flatMap(checkPrebinding(query, options.prebound), (checked) => options.path === void 0 ? Result.succeed(checked) : substitutePath(checked, options.path));
|
|
353
|
+
});
|
|
354
|
+
};
|
|
355
|
+
/**
|
|
356
|
+
* `compileResult` as an `Effect`.
|
|
357
|
+
*
|
|
358
|
+
* @since 0.1.0
|
|
359
|
+
* @category compiling
|
|
360
|
+
*/
|
|
361
|
+
const compile = (shapesGraph, node, options) => Effect.suspend(() => Effect.fromResult(compileResult(shapesGraph, node, options)));
|
|
362
|
+
export { optionalPrebound as a, toSparqlPath as c, compileResult as i, checkPrebinding as n, prefixes as o, compile as r, substitutePath as s, Query_exports as t };
|
|
363
|
+
|
|
364
|
+
//# sourceMappingURL=Query-D9A6LOpP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Query-D9A6LOpP.mjs","names":["Vocabulary","Term.namedNode","Sparql.SparqlEvaluationError","Dataset.objectsOf","Term.isResource","Term.isLiteral","Term.isNamedNode","Ast.projectedVariables","Ast.link","Ast.sequence","Ast.alternative","Ast.inverse","Ast.zeroOrMore","Ast.oneOrMore","Ast.zeroOrOne","Ast.triplePattern","Ast.pathPattern","Parser.parseQueryResult"],"sources":["../src/sparql/shacl/Query.ts"],"sourcesContent":["/**\n * SHACL-SPARQL queries: reading the `sh:select` / `sh:ask` queries of a\n * shapes graph with their prefix declarations (§5.2.1), enforcing the\n * syntactic restrictions of pre-binding (Appendix A) and substituting the\n * `$PATH` variable with a property path (§5.3, §6.3).\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { Query } from \"@thomasfosterau/effect-rdf/sparql/shacl\"\n *\n * const program = Effect.gen(function* () {\n * const query = yield* Query.compile(shapesGraph, constraintNode, {\n * form: \"select\",\n * prebound: [\"this\", \"shapesGraph\", \"currentShape\"],\n * path: shape.path,\n * })\n * })\n * ```\n *\n * @since 0.1.0\n */\nimport { Dataset, Term } from '../../index.ts';\nimport { Path, Sparql, Vocabulary } from '../../shacl/index.ts';\nimport { Ast, Parser } from '../index.ts';\nimport * as Arr from 'effect/Array';\nimport * as Effect from 'effect/Effect';\nimport { pipe } from 'effect/Function';\nimport * as Match from 'effect/Match';\nimport * as MutableHashSet from 'effect/MutableHashSet';\nimport * as Option from 'effect/Option';\nimport * as Predicate from 'effect/Predicate';\nimport * as Record from 'effect/Record';\nimport * as Result from 'effect/Result';\n\nconst { sh } = Vocabulary;\nconst owlImports = Term.namedNode('http://www.w3.org/2002/07/owl#imports');\n\n/**\n * The variables that are optional to pre-bind (and to project from\n * sub-queries): `$shapesGraph` and `$currentShape`.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const optionalPrebound: ReadonlySet<string> = new Set(['shapesGraph', 'currentShape']);\n\nconst fail = (message: string): Result.Result<never, Sparql.SparqlEvaluationError> =>\n Result.fail(new Sparql.SparqlEvaluationError({ message }));\n\n// -----------------------------------------------------------------------------\n// Prefixes\n// -----------------------------------------------------------------------------\n\nconst noPrefixes: Result.Result<\n Record.ReadonlyRecord<string, string>,\n Sparql.SparqlEvaluationError\n> = Result.succeed({});\n\n/**\n * The prefix mappings of a SPARQL executable: the union of the\n * `sh:prefix` / `sh:namespace` pairs reachable via\n * `sh:prefixes/owl:imports* /sh:declare`. Fails when a prefix is declared\n * with two different namespaces (an ill-formed shapes graph) or a\n * declaration is malformed.\n *\n * @since 0.1.0\n * @category prefixes\n */\nexport const prefixes = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n): Result.Result<Record.ReadonlyRecord<string, string>, Sparql.SparqlEvaluationError> =>\n Arr.reduce(\n Arr.flatMap(prefixNodes(shapesGraph, node), (current) =>\n Arr.map(\n Dataset.objectsOf(shapesGraph, current, sh.declare),\n (declaration) => [current, declaration] as const,\n ),\n ),\n noPrefixes,\n (acc, [current, declaration]) =>\n Result.flatMap(acc, (declared) => declare(shapesGraph, declared, current, declaration)),\n );\n\n/**\n * The nodes reachable via `sh:prefixes/owl:imports*` from `node`, depth\n * first (the order in which their declarations are read).\n */\nconst prefixNodes = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n): ReadonlyArray<Term.Resource> => {\n const seen = MutableHashSet.empty<string>();\n const visit = (\n stack: Arr.NonEmptyReadonlyArray<Term.GroundTerm>,\n ): readonly [Option.Option<Term.Resource>, ReadonlyArray<Term.GroundTerm>] => {\n const [rest, current] = Arr.unappend(stack);\n if (MutableHashSet.has(seen, current.key) || !Term.isResource(current))\n return [Option.none(), rest];\n MutableHashSet.add(seen, current.key);\n return [\n Option.some(current),\n [...rest, ...Dataset.objectsOf(shapesGraph, current, owlImports)],\n ];\n };\n return Arr.getSomes(\n Arr.unfold(Dataset.objectsOf(shapesGraph, node, sh.prefixes), (stack) =>\n Arr.isReadonlyArrayNonEmpty(stack) ? Option.some(visit(stack)) : Option.none(),\n ),\n );\n};\n\nconst singleOf = <A extends Term.GroundTerm>(\n values: ReadonlyArray<Term.GroundTerm>,\n refinement: (t: Term.GroundTerm) => t is A,\n): Option.Option<A> =>\n values.length === 1 ? Option.filter(Arr.head(values), refinement) : Option.none();\n\nconst isLiteralOrIri = (t: Term.GroundTerm): t is Term.Literal | Term.NamedNode =>\n Term.isLiteral(t) || Term.isNamedNode(t);\n\n/** Adds one `sh:declare` prefix declaration to those read before it. */\nconst declare = (\n shapesGraph: Dataset.Dataset,\n declared: Record.ReadonlyRecord<string, string>,\n current: Term.Resource,\n declaration: Term.GroundTerm,\n): Result.Result<Record.ReadonlyRecord<string, string>, Sparql.SparqlEvaluationError> => {\n if (!Term.isResource(declaration))\n return fail(`sh:declare of ${current.key} must be an IRI or blank node`);\n const prefix = singleOf(Dataset.objectsOf(shapesGraph, declaration, sh.prefix), Term.isLiteral);\n const namespace = singleOf(\n Dataset.objectsOf(shapesGraph, declaration, sh.namespace),\n isLiteralOrIri,\n );\n if (Option.isNone(prefix) || Option.isNone(namespace)) {\n return fail(\n `prefix declaration ${declaration.key} needs exactly one literal sh:prefix and sh:namespace`,\n );\n }\n const name = prefix.value.value;\n const iri = namespace.value.value;\n const existing = Record.get(declared, name);\n if (Option.isSome(existing) && existing.value !== iri) {\n return fail(\n `prefix \"${name}\" is declared with two namespaces: <${existing.value}> and <${iri}>`,\n );\n }\n return Result.succeed(Record.set(declared, name, iri));\n};\n\n// -----------------------------------------------------------------------------\n// Walking queries\n// -----------------------------------------------------------------------------\n\n/** A check of a query part: the error it finds, if any. */\ntype Check<A extends ReadonlyArray<unknown>> = (...args: A) => Option.Option<string>;\n\ninterface Visitor {\n readonly pattern: Check<[p: Ast.Pattern]>;\n readonly query: Check<[q: Ast.Query, nested: boolean]>;\n readonly variable: Check<[name: string]>;\n}\n\nconst noError = (): Option.Option<string> => Option.none();\n\nconst visitNothing: Visitor = { pattern: noError, query: noError, variable: noError };\n\nconst isSelect = (q: Ast.Query): q is Ast.SelectQuery => Predicate.isTagged(q, 'Select');\n\nconst termVariables = (t: Ast.TermPattern | Term.Term, out: (name: string) => void): void => {\n if (Predicate.isTagged(t, 'Variable')) out(t.value);\n else if (Predicate.isTagged(t, 'Triple')) {\n termVariables(t.subject, out);\n termVariables(t.predicate, out);\n termVariables(t.object, out);\n }\n};\n\n/** Visits every pattern, (sub-)query and variable occurrence; returns the first error. */\nconst walk = (root: Ast.Query, visitor: Partial<Visitor>): Option.Option<string> => {\n const visit: Visitor = { ...visitNothing, ...visitor };\n let error = Option.none<string>();\n const report = (e: Option.Option<string>) => {\n if (Option.isNone(error)) error = e;\n };\n const variable = (name: string) => report(visit.variable(name));\n const term = (t: Ast.TermPattern | Term.Term) => termVariables(t, variable);\n\n const expression = (expr: Ast.Expression): void => {\n return Match.value(expr).pipe(\n Match.tag('Variable', 'Triple', (e) => {\n term(e);\n return;\n }),\n Match.tag('Operation', 'FunctionCall', (e) => {\n e.args.forEach(expression);\n return;\n }),\n Match.tag('Aggregate', (e) => {\n if (e.expression !== '*') expression(e.expression);\n return;\n }),\n Match.tag('Exists', (e) => {\n pattern(e.pattern);\n return;\n }),\n Match.orElse(() => undefined),\n );\n };\n\n const pathTerms = (p: Ast.Path): void => {\n Match.value(p).pipe(\n Match.tag('PathLink', 'PathNegated', () => undefined),\n Match.tag('PathSequence', 'PathAlternative', (list) => list.paths.forEach(pathTerms)),\n Match.orElse((unary) => pathTerms(unary.path)),\n );\n };\n\n const pattern = (pat: Ast.Pattern): void => {\n report(visit.pattern(pat));\n return Match.value(pat).pipe(\n Match.tag('Bgp', (p) => {\n Arr.forEach(p.triples, (t) => {\n term(t.subject);\n if (Predicate.isTagged(t, 'TriplePattern')) term(t.predicate);\n else pathTerms(t.path);\n term(t.object);\n });\n return;\n }),\n Match.tag('Group', (p) => {\n p.patterns.forEach(pattern);\n return;\n }),\n Match.tag('Optional', 'Minus', (p) => {\n pattern(p.pattern);\n return;\n }),\n Match.tag('Union', (p) => {\n p.patterns.forEach(pattern);\n return;\n }),\n Match.tag('Graph', 'Service', (p) => {\n term(p.name);\n pattern(p.pattern);\n return;\n }),\n Match.tag('Filter', (p) => {\n expression(p.expression);\n return;\n }),\n Match.tag('Bind', (p) => {\n expression(p.expression);\n variable(p.variable.value);\n return;\n }),\n Match.tag('Values', (p) => {\n p.variables.forEach((v) => variable(v.value));\n return;\n }),\n Match.tag('SubSelect', (p) => {\n query(p.query, true);\n return;\n }),\n Match.exhaustive,\n );\n };\n\n const query = (q: Ast.Query, nested: boolean): void => {\n report(visit.query(q, nested));\n if (isSelect(q) && q.projection !== '*') {\n Arr.forEach(q.projection, (p) => {\n if (Predicate.isTagged(p, 'Variable')) variable(p.value);\n else {\n expression(p.expression);\n variable(p.variable.value);\n }\n });\n }\n if (Predicate.isTagged(q, 'Construct'))\n Arr.forEach(q.template, (t) => [t.subject, t.predicate, t.object].forEach(term));\n if (Predicate.isTagged(q, 'Describe') && q.terms !== '*') q.terms.forEach(term);\n pattern(q.where);\n Arr.forEach(q.groupBy, (g) => {\n expression(g.expression);\n if (g.variable !== undefined) variable(g.variable.value);\n });\n q.having.forEach(expression);\n Arr.forEach(q.orderBy, (o) => expression(o.expression));\n if (q.values !== undefined) pattern(q.values);\n };\n\n query(root, false);\n return error;\n};\n\n/**\n * Checks the restrictions that SHACL places on queries evaluated with\n * pre-bound variables (Appendix A \"Pre-binding of Variables in SPARQL\n * Queries\"): no `MINUS`, no `SERVICE`, no `VALUES`, no `AS ?var` for a\n * potentially pre-bound variable, and sub-queries must project every\n * potentially pre-bound variable (except `shapesGraph` and `currentShape`).\n *\n * @since 0.1.0\n * @category validation\n */\nexport const checkPrebinding = (\n query: Ast.Query,\n prebound: Iterable<string>,\n): Result.Result<Ast.Query, Sparql.SparqlEvaluationError> => {\n const ordered = Arr.dedupe(Arr.fromIterable(prebound));\n const potential = MutableHashSet.fromIterable(ordered);\n const rebinds = (v: Term.Variable): Option.Option<string> =>\n MutableHashSet.has(potential, v.value)\n ? Option.some(`the pre-bound variable ?${v.value} must not be assigned with AS`)\n : Option.none();\n const unprojected = (q: Ast.SelectQuery): Option.Option<string> => {\n const projected = MutableHashSet.fromIterable(Ast.projectedVariables(q));\n return Option.map(\n Arr.findFirst(ordered, (v) => !optionalPrebound.has(v) && !MutableHashSet.has(projected, v)),\n (v) => `sub-queries must project the pre-bound variable ?${v}`,\n );\n };\n const error = walk(query, {\n pattern: (pat) => {\n return Match.value(pat).pipe(\n Match.withReturnType<Option.Option<string>>(),\n Match.tag('Minus', () =>\n Option.some('MINUS is not allowed in SHACL-SPARQL queries with pre-bound variables'),\n ),\n Match.tag('Service', () =>\n Option.some('SERVICE is not allowed in SHACL-SPARQL queries with pre-bound variables'),\n ),\n Match.tag('Values', () =>\n Option.some('VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables'),\n ),\n Match.tag('Bind', (p) => rebinds(p.variable)),\n Match.orElse(() => Option.none()),\n );\n },\n query: (q, nested) => {\n if (q.values !== undefined)\n return Option.some(\n 'VALUES is not allowed in SHACL-SPARQL queries with pre-bound variables',\n );\n const projections =\n isSelect(q) && q.projection !== '*'\n ? Arr.filter(q.projection, (p): p is Ast.Projection =>\n Predicate.isTagged(p, 'Projection'),\n )\n : [];\n return pipe(\n Arr.findFirst(projections, (p) => rebinds(p.variable)),\n Option.orElse(() =>\n Arr.findFirst(q.groupBy, (g) =>\n g.variable === undefined ? Option.none() : rebinds(g.variable),\n ),\n ),\n Option.orElse(() => (nested && isSelect(q) ? unprojected(q) : Option.none())),\n );\n },\n });\n return Option.match(error, { onNone: () => Result.succeed(query), onSome: fail });\n};\n\n// -----------------------------------------------------------------------------\n// $PATH substitution\n// -----------------------------------------------------------------------------\n\n/**\n * Converts a SHACL property path to a SPARQL property path.\n *\n * @since 0.1.0\n * @category paths\n */\nexport const toSparqlPath = (path: Path.Path): Ast.Path => {\n return Match.value(path).pipe(\n Match.tag('PredicatePath', (step) => Ast.link(step.predicate)),\n Match.tag('SequencePath', (step) => Ast.sequence(...step.paths.map(toSparqlPath))),\n Match.tag('AlternativePath', (step) => Ast.alternative(...step.paths.map(toSparqlPath))),\n Match.tag('InversePath', (step) => Ast.inverse(toSparqlPath(step.path))),\n Match.tag('ZeroOrMorePath', (step) => Ast.zeroOrMore(toSparqlPath(step.path))),\n Match.tag('OneOrMorePath', (step) => Ast.oneOrMore(toSparqlPath(step.path))),\n Match.tag('ZeroOrOnePath', (step) => Ast.zeroOrOne(toSparqlPath(step.path))),\n Match.exhaustive,\n );\n};\n\nconst PATH = 'PATH';\n\nconst isPathLink = (p: Ast.Path): p is Ast.PathLink => Predicate.isTagged(p, 'PathLink');\n\nconst mapGroup = (\n g: Ast.GroupPattern,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Ast.GroupPattern => ({ ...g, patterns: g.patterns.map((p) => mapPattern(p, f)) });\n\nconst mapExpression = (\n expr: Ast.Expression,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Ast.Expression => {\n return Match.value(expr).pipe(\n Match.tag('Operation', (e) => ({ ...e, args: e.args.map((a) => mapExpression(a, f)) })),\n Match.tag('FunctionCall', (e) => ({ ...e, args: e.args.map((a) => mapExpression(a, f)) })),\n Match.tag('Aggregate', (e) =>\n e.expression === '*' ? e : { ...e, expression: mapExpression(e.expression, f) },\n ),\n Match.tag('Exists', (e) => ({ ...e, pattern: mapGroup(e.pattern, f) })),\n Match.orElse((e) => e),\n );\n};\n\nconst mapPattern = (\n pat: Ast.Pattern,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Ast.Pattern => {\n return Match.value(pat).pipe(\n Match.tag('Bgp', (p) => ({ ...p, triples: p.triples.map(f) })),\n Match.tag('Group', (p) => mapGroup(p, f)),\n Match.tag('Optional', 'Minus', 'Graph', 'Service', (p) => ({\n ...p,\n pattern: mapGroup(p.pattern, f),\n })),\n Match.tag('Union', (p) => ({ ...p, patterns: p.patterns.map((g) => mapGroup(g, f)) })),\n Match.tag('Filter', (p) => ({ ...p, expression: mapExpression(p.expression, f) })),\n Match.tag('Bind', (p) => ({ ...p, expression: mapExpression(p.expression, f) })),\n Match.tag('Values', (p) => p),\n Match.tag('SubSelect', (p) => ({ ...p, query: mapQuery(p.query, f) })),\n Match.exhaustive,\n );\n};\n\nconst mapQuery = <Q extends Ast.Query>(\n q: Q,\n f: (t: Ast.TriplePattern | Ast.PathPattern) => Ast.TriplePattern | Ast.PathPattern,\n): Q => {\n const expression = (e: Ast.Expression) => mapExpression(e, f);\n const mapped: Q = {\n ...q,\n where: mapGroup(q.where, f),\n having: q.having.map(expression),\n orderBy: q.orderBy.map((o) => ({ ...o, expression: expression(o.expression) })),\n groupBy: q.groupBy.map((g) => ({ ...g, expression: expression(g.expression) })),\n };\n if (!isSelect(q) || q.projection === '*') return mapped;\n return {\n ...mapped,\n projection: q.projection.map((p) =>\n Predicate.isTagged(p, 'Projection') ? { ...p, expression: expression(p.expression) } : p,\n ),\n };\n};\n\n/**\n * Substitutes the variable `$PATH` in the predicate position of triple\n * patterns with a property path (the `sh:path` of the current property\n * shape). Any other use of `$PATH` makes the query ill-formed.\n *\n * @since 0.1.0\n * @category paths\n */\nexport const substitutePath = <Q extends Ast.Query>(\n query: Q,\n path: Path.Path,\n): Result.Result<Q, Sparql.SparqlEvaluationError> => {\n const sparqlPath = toSparqlPath(path);\n const substituted = mapQuery(query, (t) =>\n Predicate.isTagged(t, 'TriplePattern') &&\n Predicate.isTagged(t.predicate, 'Variable') &&\n t.predicate.value === PATH\n ? isPathLink(sparqlPath)\n ? Ast.triplePattern(t.subject, sparqlPath.iri, t.object)\n : Ast.pathPattern(t.subject, sparqlPath, t.object)\n : t,\n );\n const error = walk(substituted, {\n variable: (name) =>\n name === PATH\n ? Option.some('$PATH may only be used in the predicate position of triple patterns')\n : Option.none(),\n });\n return Option.match(error, { onNone: () => Result.succeed(substituted), onSome: fail });\n};\n\n// -----------------------------------------------------------------------------\n// Compiling\n// -----------------------------------------------------------------------------\n\n/** The first of `required` that a `SELECT` query does not project. */\nconst unprojectedOf = (\n query: Ast.SelectQuery,\n required: ReadonlyArray<string>,\n): Option.Option<string> => {\n const projected = MutableHashSet.fromIterable(Ast.projectedVariables(query));\n return Arr.findFirst(required, (v) => !MutableHashSet.has(projected, v));\n};\n\n/**\n * How to compile a SHACL-SPARQL query.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface CompileOptions {\n /** Read `sh:select` (a `SELECT` query) or `sh:ask` (an `ASK` query). */\n readonly form: 'select' | 'ask';\n /** The potentially pre-bound variables (checked against the pre-binding restrictions). */\n readonly prebound: ReadonlyArray<string>;\n /** The property path substituted for `$PATH`, for property shapes. */\n readonly path?: Path.Path | undefined;\n /** Variables a `SELECT` query must project (e.g. `this`). */\n readonly project?: ReadonlyArray<string> | undefined;\n}\n\n/**\n * Reads, parses and checks the `sh:select` or `sh:ask` query of a node of\n * the shapes graph (a SPARQL-based constraint, validator, target or target\n * type), using its prefix declarations. Fails with a\n * `SparqlEvaluationError` when the query is missing, ambiguous, does not\n * parse, has the wrong form or violates the pre-binding restrictions.\n *\n * @since 0.1.0\n * @category compiling\n */\nexport const compileResult = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n options: CompileOptions,\n): Result.Result<Ast.Query, Sparql.SparqlEvaluationError> => {\n const property = options.form === 'select' ? sh.select : sh.ask;\n const literal = singleOf(Dataset.objectsOf(shapesGraph, node, property), Term.isLiteral);\n if (Option.isNone(literal)) {\n return fail(`${node.key} must have exactly one literal value for ${property.key}`);\n }\n const text = literal.value.value;\n return Result.flatMap(prefixes(shapesGraph, node), (declared) => {\n const parsed = Parser.parseQueryResult(text, { prefixes: declared });\n if (Result.isFailure(parsed)) {\n return Result.fail(\n new Sparql.SparqlEvaluationError({\n message: `the ${property.key} query of ${node.key} does not parse: ${parsed.failure.message}`,\n cause: parsed.failure,\n }),\n );\n }\n const query = parsed.success;\n const expected = options.form === 'select' ? 'Select' : 'Ask';\n if (!Predicate.isTagged(query, expected)) {\n return fail(\n `the ${property.key} query of ${node.key} must be a ${expected.toUpperCase()} query`,\n );\n }\n const missing = isSelect(query) ? unprojectedOf(query, options.project ?? []) : Option.none();\n if (Option.isSome(missing))\n return fail(`the query of ${node.key} must project ?${missing.value}`);\n return Result.flatMap(checkPrebinding(query, options.prebound), (checked) =>\n options.path === undefined ? Result.succeed(checked) : substitutePath(checked, options.path),\n );\n });\n};\n\n/**\n * `compileResult` as an `Effect`.\n *\n * @since 0.1.0\n * @category compiling\n */\nexport const compile = (\n shapesGraph: Dataset.Dataset,\n node: Term.NamedNode | Term.BlankNode,\n options: CompileOptions,\n): Effect.Effect<Ast.Query, Sparql.SparqlEvaluationError> =>\n Effect.suspend(() => Effect.fromResult(compileResult(shapesGraph, node, options)));\n"],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { d as NamedNode, t as BlankNode } from "./Term-B_4ezyXq.mjs";
|
|
2
|
+
import { n as Dataset } from "./Dataset-DS3ESOcO.mjs";
|
|
3
|
+
import "./index-Cms2TYfC.mjs";
|
|
4
|
+
import { i as Path } from "./Path-DRB8e-Zn.mjs";
|
|
5
|
+
import { r as SparqlEvaluationError } from "./Sparql-DecpWTPh.mjs";
|
|
6
|
+
import "./index-Ct8xFmRs.mjs";
|
|
7
|
+
import { N as Path$1, q as Query } from "./Ast-vcw2W-lf.mjs";
|
|
8
|
+
import "./index-D4QFwOjm.mjs";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Record from "effect/Record";
|
|
11
|
+
import * as Result from "effect/Result";
|
|
12
|
+
declare namespace Query_d_exports {
|
|
13
|
+
export { CompileOptions, checkPrebinding, compile, compileResult, optionalPrebound, prefixes, substitutePath, toSparqlPath };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The variables that are optional to pre-bind (and to project from
|
|
17
|
+
* sub-queries): `$shapesGraph` and `$currentShape`.
|
|
18
|
+
*
|
|
19
|
+
* @since 0.1.0
|
|
20
|
+
* @category constants
|
|
21
|
+
*/
|
|
22
|
+
declare const optionalPrebound: ReadonlySet<string>;
|
|
23
|
+
/**
|
|
24
|
+
* The prefix mappings of a SPARQL executable: the union of the
|
|
25
|
+
* `sh:prefix` / `sh:namespace` pairs reachable via
|
|
26
|
+
* `sh:prefixes/owl:imports* /sh:declare`. Fails when a prefix is declared
|
|
27
|
+
* with two different namespaces (an ill-formed shapes graph) or a
|
|
28
|
+
* declaration is malformed.
|
|
29
|
+
*
|
|
30
|
+
* @since 0.1.0
|
|
31
|
+
* @category prefixes
|
|
32
|
+
*/
|
|
33
|
+
declare const prefixes: (shapesGraph: Dataset, node: NamedNode | BlankNode) => Result.Result<Record.ReadonlyRecord<string, string>, SparqlEvaluationError>;
|
|
34
|
+
/**
|
|
35
|
+
* Checks the restrictions that SHACL places on queries evaluated with
|
|
36
|
+
* pre-bound variables (Appendix A "Pre-binding of Variables in SPARQL
|
|
37
|
+
* Queries"): no `MINUS`, no `SERVICE`, no `VALUES`, no `AS ?var` for a
|
|
38
|
+
* potentially pre-bound variable, and sub-queries must project every
|
|
39
|
+
* potentially pre-bound variable (except `shapesGraph` and `currentShape`).
|
|
40
|
+
*
|
|
41
|
+
* @since 0.1.0
|
|
42
|
+
* @category validation
|
|
43
|
+
*/
|
|
44
|
+
declare const checkPrebinding: (query: Query, prebound: Iterable<string>) => Result.Result<Query, SparqlEvaluationError>;
|
|
45
|
+
/**
|
|
46
|
+
* Converts a SHACL property path to a SPARQL property path.
|
|
47
|
+
*
|
|
48
|
+
* @since 0.1.0
|
|
49
|
+
* @category paths
|
|
50
|
+
*/
|
|
51
|
+
declare const toSparqlPath: (path: Path) => Path$1;
|
|
52
|
+
/**
|
|
53
|
+
* Substitutes the variable `$PATH` in the predicate position of triple
|
|
54
|
+
* patterns with a property path (the `sh:path` of the current property
|
|
55
|
+
* shape). Any other use of `$PATH` makes the query ill-formed.
|
|
56
|
+
*
|
|
57
|
+
* @since 0.1.0
|
|
58
|
+
* @category paths
|
|
59
|
+
*/
|
|
60
|
+
declare const substitutePath: <Q extends Query>(query: Q, path: Path) => Result.Result<Q, SparqlEvaluationError>;
|
|
61
|
+
/**
|
|
62
|
+
* How to compile a SHACL-SPARQL query.
|
|
63
|
+
*
|
|
64
|
+
* @since 0.1.0
|
|
65
|
+
* @category models
|
|
66
|
+
*/
|
|
67
|
+
interface CompileOptions {
|
|
68
|
+
/** Read `sh:select` (a `SELECT` query) or `sh:ask` (an `ASK` query). */
|
|
69
|
+
readonly form: 'select' | 'ask';
|
|
70
|
+
/** The potentially pre-bound variables (checked against the pre-binding restrictions). */
|
|
71
|
+
readonly prebound: ReadonlyArray<string>;
|
|
72
|
+
/** The property path substituted for `$PATH`, for property shapes. */
|
|
73
|
+
readonly path?: Path | undefined;
|
|
74
|
+
/** Variables a `SELECT` query must project (e.g. `this`). */
|
|
75
|
+
readonly project?: ReadonlyArray<string> | undefined;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Reads, parses and checks the `sh:select` or `sh:ask` query of a node of
|
|
79
|
+
* the shapes graph (a SPARQL-based constraint, validator, target or target
|
|
80
|
+
* type), using its prefix declarations. Fails with a
|
|
81
|
+
* `SparqlEvaluationError` when the query is missing, ambiguous, does not
|
|
82
|
+
* parse, has the wrong form or violates the pre-binding restrictions.
|
|
83
|
+
*
|
|
84
|
+
* @since 0.1.0
|
|
85
|
+
* @category compiling
|
|
86
|
+
*/
|
|
87
|
+
declare const compileResult: (shapesGraph: Dataset, node: NamedNode | BlankNode, options: CompileOptions) => Result.Result<Query, SparqlEvaluationError>;
|
|
88
|
+
/**
|
|
89
|
+
* `compileResult` as an `Effect`.
|
|
90
|
+
*
|
|
91
|
+
* @since 0.1.0
|
|
92
|
+
* @category compiling
|
|
93
|
+
*/
|
|
94
|
+
declare const compile: (shapesGraph: Dataset, node: NamedNode | BlankNode, options: CompileOptions) => Effect.Effect<Query, SparqlEvaluationError>;
|
|
95
|
+
export { compileResult as a, substitutePath as c, compile as i, toSparqlPath as l, Query_d_exports as n, optionalPrebound as o, checkPrebinding as r, prefixes as s, CompileOptions as t };
|
|
96
|
+
//# sourceMappingURL=Query-KqSkTYyG.d.mts.map
|