RDF-Trine-1.019/ 000755 000765 000024 00000000000 13223603210 013275 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/inc/ 000755 000765 000024 00000000000 13223603204 014051 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/SIGNATURE 000644 000765 000024 00000364141 13223603210 014572 0 ustar 00greg staff 000000 000000 This file contains message digests of all files listed in MANIFEST,
signed via the Module::Signature module, version 0.81.
To verify the content in this distribution, first make sure you have
Module::Signature installed, then type:
% cpansign -v
It will check each file's integrity, as well as the signature's
validity. If "==> Signature verified OK! <==" is not displayed,
the distribution may already have been compromised, and you should
not run its Makefile.PL or Build.PL.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
SHA1 efbe4bd83a4e0d43d6cf4f46b70f62124f194c1c Changes.ttl
SHA1 e49c2aa965cee869a9a5c3cca74f59690b93ab90 MANIFEST
SHA1 72bf676258e2524c4257c53f64aad715e767d47d META.yml
SHA1 7bd123a9743dbeb4760ddfc0ed84a776a5579945 Makefile.PL
SHA1 ac1c84c7e6d20a08619c31092b948ae3f1d89893 README
SHA1 de1a886d4a10836f9a9f7bfb07c01df6bc14ce1f bin/cliapi
SHA1 ea9b0f4770b1c0978da2af70141a94a996ab4bd4 bin/graph.pl
SHA1 cb86e2ef48a761f6f236567dba46b0ac9a722844 bin/rdf_init_store.pl
SHA1 b02aaa5853912abd5cf4b7ff0424acad7561e7ea bin/rdf_parse_turtle.pl
SHA1 ead39c07d16a6e5aea1bae1df8952f37020676e5 bin/rdf_parse_xml.pl
SHA1 44a8589c6b31a6f5820dec3399b5a94682da51fd bin/rdf_store_add_file.pl
SHA1 d7f7b35955cda35f48288aaccf11819f07c3b933 bin/rdf_store_makeprivate.pl
SHA1 ec64912d1646261fdd97f2f9c10ee5f2ac04d0c3 bin/rdf_store_serialize.pl
SHA1 53cf0a19a79aab6f51c3a84ea01319214b6a388f bin/rdf_transcode.pl
SHA1 f9e8c258e6057d07b6148da2a64d124c30bcbc66 bin/srx2csv
SHA1 680dbd2e707d0c76e89b8046155bccc3568d838e bin/srx2table
SHA1 d89494a11b4cfbac1d8fade3a8cc138d12cbf6aa bin/turtle-2013-harness.pl
SHA1 cb30461a6332c1336f7e479e4fc1a78d518fc1a3 bin/turtle_benchmark.pl
SHA1 134f68525df59a8b04f2309bc4879279f866bba9 bin/turtle_parse.pl
SHA1 3cc432defe939a4fd0cb265c688489a9d1c1851a bin/turtle_tokenize.pl
SHA1 133e36c7d05af7737a3bb86ae6ede5cf7c1945c9 examples/foaf_labels.pl
SHA1 e25f036a2f1cb94b03dd008032109b0bbfbd53f8 extra/mysql.sql
SHA1 05a17c51aceb6435a1eac17137f19911a09e5050 inc/Module/Install.pm
SHA1 d001b4b9a48395a8c4134b234a0e1789138427c5 inc/Module/Install/AuthorTests.pm
SHA1 dc73c2baf4357ad1cc884146147f557a50a29300 inc/Module/Install/Base.pm
SHA1 c7f311a5bc5a7f96e9105d5f16a0e13fc596899d inc/Module/Install/Can.pm
SHA1 8c8f9ff5b0a536af59814e16a901ce39fbc23299 inc/Module/Install/Fetch.pm
SHA1 4f77eb02e104324b08a047585c498146b045613b inc/Module/Install/Makefile.pm
SHA1 2f5be6af6098acf6d786a4a7299a34d0c6c04ef9 inc/Module/Install/Metadata.pm
SHA1 fa532ce949d1c607589aded93d5ea1d49a27e5d8 inc/Module/Install/Scripts.pm
SHA1 aa6723cc4a8d4475026f6ceb28e1f16459e8a11b inc/Module/Install/Win32.pm
SHA1 6661285caedfe012cb5a1ca915a422ffc292ae2b inc/Module/Install/WriteAll.pm
SHA1 8689a6b92d1160f5846adfbb1f27626f7116902b lib/RDF/Trine.pm
SHA1 ef39ccc20873cd858e1b97b8201a3d59301c7529 lib/RDF/Trine/Error.pm
SHA1 39ebff621ea0f9d677eaf43ed58aac4587fe5d7d lib/RDF/Trine/Exporter/CSV.pm
SHA1 7bd768decf7c54208a6e0dde170163d0f25c9a94 lib/RDF/Trine/Exporter/RDFPatch.pm
SHA1 34eb9c956a7d9419e20b5394b010d4f8d93a8ffe lib/RDF/Trine/Graph.pm
SHA1 ba26137777e967f0846a79da5148288d49c9a81f lib/RDF/Trine/Iterator.pm
SHA1 d17dec4fdb85add33a9a11826eaabe2bb246911c lib/RDF/Trine/Iterator/Bindings.pm
SHA1 7ba4675900b3a288c93683c245c070c08b493d16 lib/RDF/Trine/Iterator/Bindings/Materialized.pm
SHA1 ea0e42dc69f2b571d36537a7d06027d3b96bc14e lib/RDF/Trine/Iterator/Boolean.pm
SHA1 08cc67efd380a61c6c14647a618321e97008c4b8 lib/RDF/Trine/Iterator/Graph.pm
SHA1 00684080724d961f709ceee0ed61f4b4f1b60f81 lib/RDF/Trine/Iterator/Graph/Materialized.pm
SHA1 472d55940e5d406fa60c596636ba1f40c0e11479 lib/RDF/Trine/Iterator/JSONHandler.pm
SHA1 90653b5cba53ae1ba72ab47a9834f91cd4c2c8f1 lib/RDF/Trine/Iterator/SAXHandler.pm
SHA1 b4377fffc8f4ec82cdd775ce012857bb71986812 lib/RDF/Trine/Model.pm
SHA1 a24162b8ae84c5de5180d9a82a8ade0694aafc3c lib/RDF/Trine/Model/Dataset.pm
SHA1 f28526b15193a507e896f21db97a736ed866f252 lib/RDF/Trine/Model/StatementFilter.pm
SHA1 eaf7a212e66cac5f124435a53ab54c75cb7e7b79 lib/RDF/Trine/Model/Union.pm
SHA1 667d73c7972eabdb982fd2aab9011b52116ac9cf lib/RDF/Trine/Namespace.pm
SHA1 af966ec2ef94d4a89f14247428e3d8c925b0bf1c lib/RDF/Trine/NamespaceMap.pm
SHA1 f579e6294b2da1a158dc637910a6bfd4417fd26f lib/RDF/Trine/Node.pm
SHA1 74d0add4f435f57c8d611e661a3e374068db5771 lib/RDF/Trine/Node/Blank.pm
SHA1 2c9952c51d1020d878957210acdaab1f3c25ce54 lib/RDF/Trine/Node/Literal.pm
SHA1 3717a74d6ee11049c929138c38632a36763333b0 lib/RDF/Trine/Node/Nil.pm
SHA1 7d88f9b5844ecdf3d216e97d717c7888e0391dab lib/RDF/Trine/Node/Resource.pm
SHA1 b43f746a499f90fa593fe36215413007e86592cf lib/RDF/Trine/Node/Variable.pm
SHA1 7e48b3b2a5b60515de7266a264e44875b6eaad27 lib/RDF/Trine/Parser.pm
SHA1 7b15860df795f07dbd500d5c07794944fe40ffb3 lib/RDF/Trine/Parser/LineProtocol.pm
SHA1 7823a398b7761de25725357393f934d412681d16 lib/RDF/Trine/Parser/NQuads.pm
SHA1 151964cdb60e55a738b4ded3a1065cb91ce362ca lib/RDF/Trine/Parser/NTriples.pm
SHA1 153f5819624c8ba326f0194004dd8e9ad8e27d9b lib/RDF/Trine/Parser/RDFJSON.pm
SHA1 450a71f00ece006963891c58a4ba032ee812dbff lib/RDF/Trine/Parser/RDFPatch.pm
SHA1 05e6fe32df8229cb81640259a501d437d09844a6 lib/RDF/Trine/Parser/RDFXML.pm
SHA1 735d533fc8710195577d9c3751f17d5440f61930 lib/RDF/Trine/Parser/RDFa.pm
SHA1 a06ccf899ba6ff8a90f7e1a920e0f44444e0192c lib/RDF/Trine/Parser/Redland.pm
SHA1 fc3ca996c10a8bc255877d93920058291f8fef5e lib/RDF/Trine/Parser/TriG.pm
SHA1 ed6b7ccb760cf94a73081ca79b4dc51fbaced6a8 lib/RDF/Trine/Parser/Turtle.pm
SHA1 ba9cc1a9640c6ad7d773ffafd11e21c798a2f8fd lib/RDF/Trine/Parser/Turtle/Constants.pm
SHA1 dd143b898ece98dca30ec702c74d15ed72fb642c lib/RDF/Trine/Parser/Turtle/Lexer.pm
SHA1 acaeb13199572b3c2a5f7da0dcd1c85788ea8ec6 lib/RDF/Trine/Parser/Turtle/Token.pm
SHA1 2ac21c498fe9c4d0bbe11c998d7b6190b1f99e0d lib/RDF/Trine/Pattern.pm
SHA1 278df122996b1fa34a1cb1d36ed6d98d67ebcf7c lib/RDF/Trine/Serializer.pm
SHA1 8a2840017e77934c144510883b69b848eaa416c3 lib/RDF/Trine/Serializer/NQuads.pm
SHA1 0fb58bf6023f3df956775301ac6cb8c81218f88d lib/RDF/Trine/Serializer/NTriples.pm
SHA1 a483d4471c45203df41c4526baac3b281619bcc5 lib/RDF/Trine/Serializer/NTriples/Canonical.pm
SHA1 c6224844d0079f513463a920fc68697bc33e679f lib/RDF/Trine/Serializer/RDFJSON.pm
SHA1 b75ac4b992b289b5802e32fb9a065c80dcef5dff lib/RDF/Trine/Serializer/RDFPatch.pm
SHA1 aab506aaf431cda4f0f7034940efbf5d3fdcbe54 lib/RDF/Trine/Serializer/RDFXML.pm
SHA1 da701c0e381000404dbf9d15d88ff2ce87e8aa13 lib/RDF/Trine/Serializer/TSV.pm
SHA1 7efaa975f86b908b353bb75f796ddb93d74a827e lib/RDF/Trine/Serializer/TriG.pm
SHA1 2056a8f7b4aebe844ddda9d3ab1eb2a3bd49e6d9 lib/RDF/Trine/Serializer/Turtle.pm
SHA1 16ec151e07bde87b4b3aae0c087ca72aa3b1726b lib/RDF/Trine/Statement.pm
SHA1 7fd25d39746de0437e8ba7e8f999fbd7df13e9f1 lib/RDF/Trine/Statement/Quad.pm
SHA1 e3503a6ba7b5a9e66a637a65e0fcab88c2ac2342 lib/RDF/Trine/Store.pm
SHA1 47bda8ab049d2594f8cc2cbcf283cd96e19dc5fc lib/RDF/Trine/Store/DBI.pm
SHA1 8114b02aeb0ef11e0a765fe633e6ae0068ee451f lib/RDF/Trine/Store/DBI/Pg.pm
SHA1 7458566371cf3a3b78d81fd6d634b2e8a5b2623a lib/RDF/Trine/Store/DBI/SQLite.pm
SHA1 720862f6a2dba84114e56524c7859fdc4b200151 lib/RDF/Trine/Store/DBI/mysql.pm
SHA1 92799082017b3a3734514cfff40b8038e991cbc0 lib/RDF/Trine/Store/Dydra.pm
SHA1 3983001babab377ac01a52c70ca3e5c55cdccccf lib/RDF/Trine/Store/Hexastore.pm
SHA1 0cb36915751198f01ce8b262b8b3288d3e8876a3 lib/RDF/Trine/Store/LanguagePreference.pm
SHA1 3eaa15fb6da62f5ca216c79c791adb59df97a16e lib/RDF/Trine/Store/Memory.pm
SHA1 595b253c4c2eadfa4ed5de41e7f125e171f76475 lib/RDF/Trine/Store/Redis.pm
SHA1 7926d3af1dbcbd076187feadd13776c2d871300e lib/RDF/Trine/Store/Redland.pm
SHA1 80f92553117b2d6bae140150bcb2117e95df39f3 lib/RDF/Trine/Store/SPARQL.pm
SHA1 72a8683a2baf36dd02db12e36e9909c1ef4caafe lib/RDF/Trine/VariableBindings.pm
SHA1 8c3e79bf716b355a562b1fa75e7b8c54541891eb lib/Test/RDF/Trine/Store.pm
SHA1 3d6f8b1b1edbb40c4bae20dfc977fcf67d97ff28 t/00.load.t
SHA1 403973466abf1be3a25ac53e0e4eeaee06e1a669 t/data/bugs/ttl-with-bom.ttl
SHA1 171b51b6ee76df5df278cd9b8946edbc2dade2b4 t/data/rdfa/test-sd.nt
SHA1 78a21a7b9191bd72342020705ed7a6d1a3e06976 t/data/rdfa/test-sd.xhtml
SHA1 13114d2054fcb5ffca5f9af1834388f80bb2fa33 t/data/rdfxml-w3c/Manifest.rdf
SHA1 a2bf4493cebc28f0b1cf3d40bc090490e3c738b2 t/data/rdfxml-w3c/amp-in-url/test001.nt
SHA1 9bd01ae1310b3bc7535fed1c8dd7ccd604a87d62 t/data/rdfxml-w3c/amp-in-url/test001.rdf
SHA1 a34d08860aac8da6798ef039784dd74e54f0a531 t/data/rdfxml-w3c/datatypes-intensional/test001.nt
SHA1 7f6f0d74eb5efb674a8053d84b703a609995978a t/data/rdfxml-w3c/datatypes-intensional/test002.nt
SHA1 a90312140b1481c1797acab37902be6c09af73c1 t/data/rdfxml-w3c/datatypes/test001.nt
SHA1 4a8f296f69a0a24cf7b42c62869bd4668e2b2075 t/data/rdfxml-w3c/datatypes/test001.rdf
SHA1 dfdbbea600870cd3b3fe6d98a93fedb63968b0c2 t/data/rdfxml-w3c/datatypes/test002.nt
SHA1 df0ab500f2803cce0a3d2e9cd9b1c657db72ff3b t/data/rdfxml-w3c/datatypes/test002.rdf
SHA1 e7033e6e26fb4d212f94a4f0a0b98f093211d397 t/data/rdfxml-w3c/datatypes/test002b.nt
SHA1 a0fabdb93b776890cc8faf1a4cb902506081b8b0 t/data/rdfxml-w3c/datatypes/test003a.nt
SHA1 ffd5871d4e92add13497707b8e2cab505ed36a41 t/data/rdfxml-w3c/datatypes/test003b.nt
SHA1 5f70b9d4c56bb4fca23d97128ee7a11f9c949930 t/data/rdfxml-w3c/datatypes/test005a.nt
SHA1 5aed8c8845f39b24eb569948bb8af6c92363a2ff t/data/rdfxml-w3c/datatypes/test005b.nt
SHA1 cd75855a842840e4e3cf1e66b3e9823320004e8b t/data/rdfxml-w3c/datatypes/test006.nt
SHA1 01094c13fe3fe5c0389386ca004fa418dbf177e0 t/data/rdfxml-w3c/datatypes/test008a.nt
SHA1 6503a113f97de57e256e53b1b0b9ebc313fb38c2 t/data/rdfxml-w3c/datatypes/test008b.nt
SHA1 52c0ceff94f2ebad9f8b6103fc683b00b12c5c38 t/data/rdfxml-w3c/datatypes/test009a.nt
SHA1 5b80b5a3dedd18b175e19a139fa5732e2385286f t/data/rdfxml-w3c/datatypes/test009b.nt
SHA1 08298fe6e3148b5e4598258d59ecf5239d2b9c43 t/data/rdfxml-w3c/datatypes/test010.nt
SHA1 952b9dcc30cb330ebb5ec866c60e1dad9be8484c t/data/rdfxml-w3c/datatypes/test011a.nt
SHA1 568b13473c2524fd8de32fab4c18a9d6c56578df t/data/rdfxml-w3c/datatypes/test011b.nt
SHA1 3deada41565417b54faa28929a59efa880f458a8 t/data/rdfxml-w3c/horst-01/test001.rdf
SHA1 a46caea488511a8d41a201fab8c01117ea109826 t/data/rdfxml-w3c/horst-01/test002.rdf
SHA1 5e3e1c372999ed773b2917db112359a6c9b4d7e9 t/data/rdfxml-w3c/horst-01/test003.rdf
SHA1 08334bb5c2b83c00673509d254ad411ef6e2eb6e t/data/rdfxml-w3c/horst-01/test004.rdf
SHA1 93d0d1acd76b335fe2001ac967b5ae5582f83ebf t/data/rdfxml-w3c/pfps-10/test001a.nt
SHA1 afaaf03ec4417622c932d6ac81edf42e1e207d73 t/data/rdfxml-w3c/pfps-10/test001b.nt
SHA1 ac35a32c26de53b8375c5d46759b8b1bacd858fa t/data/rdfxml-w3c/rdf-charmod-literals/test001.nt
SHA1 a9c7bb4f2d8ffdf28ffcef24155aefbe0ebad288 t/data/rdfxml-w3c/rdf-charmod-literals/test001.rdf
SHA1 532e54d05343c20a9da1cef6681bfa85165c2fe7 t/data/rdfxml-w3c/rdf-charmod-uris/test001.nt
SHA1 2721beb5c57cc3fb290377cb56ba1537799a78f3 t/data/rdfxml-w3c/rdf-charmod-uris/test001.rdf
SHA1 56eff7782220ad8c41e9386b840e91b9c2adedf4 t/data/rdfxml-w3c/rdf-charmod-uris/test002.nt
SHA1 936c658378ba9a0f43f4c76b9b6ab61085253b45 t/data/rdfxml-w3c/rdf-charmod-uris/test002.rdf
SHA1 26d9be3734141ca837b23287fb97f90d07e81dab t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/error001.rdf
SHA1 564e34b9cd799b591787e6360bccc75e57ebeafa t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/error002.rdf
SHA1 7b0b5502f2532f7f9754c7417762f2470c0a39e7 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test001.nt
SHA1 3fc430a158bd8fbd0fda0380eb7f81aa07917575 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test001.rdf
SHA1 8fed0ae6b4c60c27acacc87174a3425f85af5979 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test002.nt
SHA1 c7f7b167ad871150b7a4e65f61758cffd89a8609 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test002.rdf
SHA1 aed63b0faa4a95b3a7a68a8fa3955fee50d63f0c t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test003.nt
SHA1 719f28741e9f0390789b949df2229b462b7c4c42 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test003.rdf
SHA1 4bed4d2c86d3b4da6bd443e9238e1f552509a043 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test004.nt
SHA1 5b406d666abd038ba26500b453b7a931e04ea758 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test004.rdf
SHA1 c78e30cb217c1a8ac77795627cd645775281dcb4 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test006.nt
SHA1 29fe6301af03ff895f848c45a057e0eebaa76f86 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test006.rdf
SHA1 93fb0675ba43054e06e2e0fe2659cec9e5a37180 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test007.nt
SHA1 c2eb594e5fd7f3acf49b29a9ffbefc19f8d31567 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test007.rdf
SHA1 e900c4bd926ab8706c9b91928a898f28d67d1f2c t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test008.nt
SHA1 83eea8af713adade1bca139d6099527b721c6a52 t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test008.rdf
SHA1 dc665052759a37d6c72149641fa2b41bc675b8c7 t/data/rdfxml-w3c/rdf-element-not-mandatory/test001.nt
SHA1 3285163f56dfe98ba33a901d41c424802c6229cd t/data/rdfxml-w3c/rdf-element-not-mandatory/test001.rdf
SHA1 0954f5e2aab8596fe9012f8fabb4f3bc60c42c0b t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0001.nt
SHA1 9cf6d911901a73de85982a95967e91770fd4a755 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0001.rdf
SHA1 9c6acd5e897dae085ef82332c8e27965fc31fa31 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0003.nt
SHA1 ab82331a4b3797385b77e0c87e28833ac134a7f3 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0003.rdf
SHA1 30035ed2530fab0fc7445ee40b64d9cf54bd18a9 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0004.nt
SHA1 89a27958a53c73aa1401f01c080b61deb7aeeed0 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0004.rdf
SHA1 783628259da79241bc7fed719a3fb2568c8b0c6f t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0005.nt
SHA1 3976a3045f3e9047b289879adc4090eb25d1c58b t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0005.rdf
SHA1 6c96117169f68905ebfda1f4e4958a9659119edc t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0006.nt
SHA1 75b671fe9ceacd4a7fa1437b9b8348dd9b5b2615 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0006.rdf
SHA1 702a19fda502959c5ebda1ea146d7f0659d630bb t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0009.nt
SHA1 39ff95ce22d8118edcd1a1c63162586cc9df6a5c t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0009.rdf
SHA1 415aedf6a65ce45a04f36750594ce5bd62701880 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0010.nt
SHA1 e3d6a77c8ff7704f17d89648bae97241f27b6c82 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0010.rdf
SHA1 42765c0b4f844913821a06d3b39249cf086da95d t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0011.nt
SHA1 37fd3a3836b0370bd4838e03d7da150df160c688 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0011.rdf
SHA1 f139ffc6157a48a7651c3b9eaebd4efb87658bc2 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0012.nt
SHA1 ae803f97bc17f37abc9085813642cc348d5a6369 t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0012.rdf
SHA1 0ad1d52874f0576580a86f5b12dec7b2ba9be64d t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0013.nt
SHA1 92338068a8813ca76711f714c4cf45b284b9621a t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0013.rdf
SHA1 539954acf0100de49ec17142e03f7112b6c4d9ba t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0014.nt
SHA1 010df9dd077be146698dae15ce8a822b4db3f1aa t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0014.rdf
SHA1 01ea72b0b97f0545332fc8a152a9fff1425551c9 t/data/rdfxml-w3c/rdfms-abouteach/error001.rdf
SHA1 0710165f8d6bac05649ba3bec104e00281e70c2b t/data/rdfxml-w3c/rdfms-abouteach/error002.rdf
SHA1 dd39f2d49e30861f2a9e7588ad1a04ce846d9e44 t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/error1.rdf
SHA1 b7d9d338de08c5fadedfd60d7b5d383b80661a81 t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test1.nt
SHA1 c75b12ace14c67fba134012a2426fade01152e26 t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test1.rdf
SHA1 6f87c238c90964ca128514fd7a2b78ad7045a730 t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test2.nt
SHA1 0a08c1e3c59b7de4c348e4eeced479c1511d91ba t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test2.rdf
SHA1 9a73b4fadd7d9a44513b9d64684110bae8648470 t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test3.nt
SHA1 12a5e7af9792d11b17480e38580c68d969ac0fec t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test3.rdf
SHA1 b9a1117a262cb1d671763a84c4ee5ddba872aa82 t/data/rdfxml-w3c/rdfms-duplicate-member-props/test001.nt
SHA1 01250108ddeec07e98deb855b420f2311a07cf48 t/data/rdfxml-w3c/rdfms-duplicate-member-props/test001.rdf
SHA1 8af900d8db0585d954da6f0ee0e332f631500d8b t/data/rdfxml-w3c/rdfms-empty-property-elements/error001.rdf
SHA1 13c9ad6e1b238366057ebc5f9fd8194f73afefec t/data/rdfxml-w3c/rdfms-empty-property-elements/error002.rdf
SHA1 828773cdb0ca9e5df5d064ca33d3b5d8bcc98af9 t/data/rdfxml-w3c/rdfms-empty-property-elements/error003.rdf
SHA1 f31bd1085ff237e510dc5179c9760b362ac27e65 t/data/rdfxml-w3c/rdfms-empty-property-elements/test001.nt
SHA1 6ba761b3d7102e480106cc70525772842d8c8c2e t/data/rdfxml-w3c/rdfms-empty-property-elements/test001.rdf
SHA1 fe159d7484f14ec021fb5f17c9dbe0e061d122c5 t/data/rdfxml-w3c/rdfms-empty-property-elements/test002.nt
SHA1 987985acfbace34d096e71a147c64f698684d095 t/data/rdfxml-w3c/rdfms-empty-property-elements/test002.rdf
SHA1 861f1afd491a0bd03ab21a5cd23c9faecdf35e33 t/data/rdfxml-w3c/rdfms-empty-property-elements/test003.nt
SHA1 361b91ace81ee525a336ab5700517c0af389f487 t/data/rdfxml-w3c/rdfms-empty-property-elements/test003.rdf
SHA1 1b1849cd222d6db13f275292d0ad6655b6ee11ae t/data/rdfxml-w3c/rdfms-empty-property-elements/test004.nt
SHA1 3afabed1f1e0f2554dc2903c3d3312cee51279c5 t/data/rdfxml-w3c/rdfms-empty-property-elements/test004.rdf
SHA1 d805aa94a7e96581ca493991e31bc6b66601d4d1 t/data/rdfxml-w3c/rdfms-empty-property-elements/test005.nt
SHA1 1052985ecdec32f8729698a26588f418f8b7cacd t/data/rdfxml-w3c/rdfms-empty-property-elements/test005.rdf
SHA1 dc2d99c38c8dbb0711720e004425a36e48afde9a t/data/rdfxml-w3c/rdfms-empty-property-elements/test006.nt
SHA1 b8c4974664130ab6ede51700a1069edd43eb803b t/data/rdfxml-w3c/rdfms-empty-property-elements/test006.rdf
SHA1 f31bd1085ff237e510dc5179c9760b362ac27e65 t/data/rdfxml-w3c/rdfms-empty-property-elements/test007.nt
SHA1 201fab5a5f76c080cdc06bef075fa483299ab545 t/data/rdfxml-w3c/rdfms-empty-property-elements/test007.rdf
SHA1 fe159d7484f14ec021fb5f17c9dbe0e061d122c5 t/data/rdfxml-w3c/rdfms-empty-property-elements/test008.nt
SHA1 f540296fa2b9c787fd216e2b1ac647dd3463f72a t/data/rdfxml-w3c/rdfms-empty-property-elements/test008.rdf
SHA1 861f1afd491a0bd03ab21a5cd23c9faecdf35e33 t/data/rdfxml-w3c/rdfms-empty-property-elements/test009.nt
SHA1 68e0030b4b455cb1222f0ecdb28a6ed562071a6c t/data/rdfxml-w3c/rdfms-empty-property-elements/test009.rdf
SHA1 1b1849cd222d6db13f275292d0ad6655b6ee11ae t/data/rdfxml-w3c/rdfms-empty-property-elements/test010.nt
SHA1 8db78afbc5d098c07abaeda30c1498462e5d1b2a t/data/rdfxml-w3c/rdfms-empty-property-elements/test010.rdf
SHA1 66f31ae0a7453d4554cd233b870037f64e02ee85 t/data/rdfxml-w3c/rdfms-empty-property-elements/test011.nt
SHA1 9d05f8aabd539ea5ab1ac740eed73a6977c9d65b t/data/rdfxml-w3c/rdfms-empty-property-elements/test011.rdf
SHA1 00664e83943ea290176ba8c242630fec6e6b39cf t/data/rdfxml-w3c/rdfms-empty-property-elements/test012.nt
SHA1 fe7b99e603ba1bb484421448fbddd85b4e67505b t/data/rdfxml-w3c/rdfms-empty-property-elements/test012.rdf
SHA1 85972bafa75b4f736d1c1c06c9e047b2c8df8993 t/data/rdfxml-w3c/rdfms-empty-property-elements/test013.nt
SHA1 bb55a0f6b6ed55c7f474462fd5377aa3c63642cd t/data/rdfxml-w3c/rdfms-empty-property-elements/test013.rdf
SHA1 8587a03529355d0405696ad75f897d3b83201582 t/data/rdfxml-w3c/rdfms-empty-property-elements/test014.nt
SHA1 dd019126532f3a9f487e8f347219d329e686fd81 t/data/rdfxml-w3c/rdfms-empty-property-elements/test014.rdf
SHA1 8587a03529355d0405696ad75f897d3b83201582 t/data/rdfxml-w3c/rdfms-empty-property-elements/test015.nt
SHA1 5b07be269c28873721677e5971638068ebada9be t/data/rdfxml-w3c/rdfms-empty-property-elements/test015.rdf
SHA1 f06f748f6bac46861f53320cdf1c8d439ccee5b4 t/data/rdfxml-w3c/rdfms-empty-property-elements/test016.nt
SHA1 c0ded43a5cac91547fd37594eb82f976c852460e t/data/rdfxml-w3c/rdfms-empty-property-elements/test016.rdf
SHA1 84050cd5876881e967dcd4fddeac205305d23794 t/data/rdfxml-w3c/rdfms-empty-property-elements/test017.nt
SHA1 6c66f87d8af1002a7692eed8321fb0cf0524fd5e t/data/rdfxml-w3c/rdfms-empty-property-elements/test017.rdf
SHA1 e89d3fe5e2f4308cbdccbcd142abbd67faeb8419 t/data/rdfxml-w3c/rdfms-identity-anon-resources/test001.nt
SHA1 239a738e8ce617e978b8e53fd9a94bb1ca612419 t/data/rdfxml-w3c/rdfms-identity-anon-resources/test001.rdf
SHA1 ac655704c09a724f249f0e71f672a3aa2f94b684 t/data/rdfxml-w3c/rdfms-identity-anon-resources/test002.nt
SHA1 cfc5e3eec6c61f9ef067aca14219f9e9f91accbf t/data/rdfxml-w3c/rdfms-identity-anon-resources/test002.rdf
SHA1 d60077bb68402615e4d732883f5583ff465cde95 t/data/rdfxml-w3c/rdfms-identity-anon-resources/test003.nt
SHA1 b535ad9a290837f9d8b5c9d956486a7395a9f62a t/data/rdfxml-w3c/rdfms-identity-anon-resources/test003.rdf
SHA1 a2334f998395cc10c913095ac4cbd1a33d97d1bd t/data/rdfxml-w3c/rdfms-identity-anon-resources/test004.nt
SHA1 5d300ac2f479d2c65f50e7b1b5c9dcf0be6a2243 t/data/rdfxml-w3c/rdfms-identity-anon-resources/test004.rdf
SHA1 a77e46a1ac6cac8b27cd2304821a7806c971fa0d t/data/rdfxml-w3c/rdfms-identity-anon-resources/test005.nt
SHA1 6bc9442b5a0031cc5810c6fdc4710bbe607d9970 t/data/rdfxml-w3c/rdfms-identity-anon-resources/test005.rdf
SHA1 5608b73ef081a65924c124ba374b8aa9ea1c3676 t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test001.nt
SHA1 674632e1b4c50a264e87a74c685db8e28eca4cd9 t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test001.rdf
SHA1 37d36d77d5c74bab73c888f03cc7503b76c11e2d t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test002.nt
SHA1 ff86f13b3de73179ff4c49c7fa4114ea0f635b76 t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test002.rdf
SHA1 82a8adf0b62a8ab7ed0e0e06d4b9905d888db46e t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test004.nt
SHA1 163b958f793b59565e37b5048140971edd84ae8c t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test004.rdf
SHA1 676aaee43cdc652bbb6d3b6d6475400a7cbfb92b t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test005.nt
SHA1 97b2ae1ed7f2343729cb81b73d2c8ae635a938af t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test005.rdf
SHA1 97c59f70d193d147b41ec39a78edbf8d457f3c7a t/data/rdfxml-w3c/rdfms-para196/test001.nt
SHA1 6690511b88ab65855df9ebc156f054a0b41228af t/data/rdfxml-w3c/rdfms-para196/test001.rdf
SHA1 4889b3ede242550ba716054e1ce61cba9c169750 t/data/rdfxml-w3c/rdfms-rdf-id/error001.rdf
SHA1 0632f58bf6e3c86bd4c0d0b410f01a185119542e t/data/rdfxml-w3c/rdfms-rdf-id/error002.rdf
SHA1 8c32d3e5de4c8fa0d524b7d6bda122a3563120f8 t/data/rdfxml-w3c/rdfms-rdf-id/error003.rdf
SHA1 088f3cdd91a0733b37671408acf8c83564c600d8 t/data/rdfxml-w3c/rdfms-rdf-id/error004.rdf
SHA1 5620ab221408968bbc13fd494caa9062fd3c403b t/data/rdfxml-w3c/rdfms-rdf-id/error005.rdf
SHA1 1d05f00e38e94af613d3c0e1d846fb1b0b96af45 t/data/rdfxml-w3c/rdfms-rdf-id/error006.rdf
SHA1 f80709c51bb9cccb2ade455b787307588307c680 t/data/rdfxml-w3c/rdfms-rdf-id/error007.rdf
SHA1 2ee9e769956aafd5be756e9411cf045039d3a70d t/data/rdfxml-w3c/rdfms-rdf-names-use/error-001.rdf
SHA1 19bee0f2d366fa12270bd9f79ab86049e780c8e7 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-002.rdf
SHA1 3e15f6455cb486a7386f15bda5dabab923966c2b t/data/rdfxml-w3c/rdfms-rdf-names-use/error-003.rdf
SHA1 a61ea1eca3446fa87d38da00f80a824eb36bc9cb t/data/rdfxml-w3c/rdfms-rdf-names-use/error-004.rdf
SHA1 20885203facbd2ed8c15f9744d381d0f18186cfe t/data/rdfxml-w3c/rdfms-rdf-names-use/error-005.rdf
SHA1 2a0aa74d0afe87a55fc5c83a2d32aeb9f9aa0663 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-006.rdf
SHA1 fe77db983f5d842bc14a09468a1d86a3ea0eec0a t/data/rdfxml-w3c/rdfms-rdf-names-use/error-007.rdf
SHA1 cdb0244be3800ac01b7228119be4c5d7124607fd t/data/rdfxml-w3c/rdfms-rdf-names-use/error-008.rdf
SHA1 fd253c0bf2343753ca22a4be4538c933ef51f573 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-009.rdf
SHA1 5567e3d58fc1a1a3b0471be98546a5ad4a30220d t/data/rdfxml-w3c/rdfms-rdf-names-use/error-010.rdf
SHA1 6a177f58d2a75d779069575279fd4b4b8e536c78 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-011.rdf
SHA1 b99122bd411a74656198325d88619da01e4eeba3 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-012.rdf
SHA1 769eb1556e375fd4edc9e0e341f3005594fd0950 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-013.rdf
SHA1 6a18695968cc78d6cbdec76b87298bce702de695 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-014.rdf
SHA1 91657c21823d89f5f88dfda0469a9b62ee52573d t/data/rdfxml-w3c/rdfms-rdf-names-use/error-015.rdf
SHA1 8d862f38dca7c5842cf3206361dc2dd5a0809361 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-016.rdf
SHA1 f28bb15da96634a9133b9c18fd6a84e1b4225299 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-017.rdf
SHA1 56f985abd4be1605adbd5fea6d1764e7420e835e t/data/rdfxml-w3c/rdfms-rdf-names-use/error-018.rdf
SHA1 1c32d602ecda187d923b097b5ae125c697d7d671 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-019.rdf
SHA1 8a54c5536a8ea3fd898554a7049214dcdabbac17 t/data/rdfxml-w3c/rdfms-rdf-names-use/error-020.rdf
SHA1 feb8a9efa96ad70b95b9ac4274b84fbc11243673 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-001.nt
SHA1 72df55757e6c9ee682586828352ffb9670dc4f07 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-001.rdf
SHA1 781baa7d83befe2026e5a28aab5c83debf843763 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-002.nt
SHA1 b1330aa6b604053df2c978c4831f08e319f0914b t/data/rdfxml-w3c/rdfms-rdf-names-use/test-002.rdf
SHA1 a8d1054b2b24afbf21ab4530851c828a13d92061 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-003.nt
SHA1 4d11b1503d58697893889e2f001e6a7003ee4f9f t/data/rdfxml-w3c/rdfms-rdf-names-use/test-003.rdf
SHA1 1ff731661905c9e6c6bf144fe63d3e3a088d0ef1 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-004.nt
SHA1 8ac7006d7b68c698307f7514ff1ddd772001bdf6 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-004.rdf
SHA1 e0901f16077b97ce8728e5b7231b39d89e657e7a t/data/rdfxml-w3c/rdfms-rdf-names-use/test-005.nt
SHA1 bc85dc1eceafd077c1766a19c181ec8f9de15930 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-005.rdf
SHA1 13943f1c27229bbbd5dfe1c846f24b09c462fb0f t/data/rdfxml-w3c/rdfms-rdf-names-use/test-006.nt
SHA1 b4d647a6a20dc2e9611cf8cfaa57213f8376ffd6 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-006.rdf
SHA1 4a3130f6deaec0f1be46fb47697b6d9eb992b7ac t/data/rdfxml-w3c/rdfms-rdf-names-use/test-007.nt
SHA1 7e1f965e1f4b9d76c0d6103f1b9207728b573d13 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-007.rdf
SHA1 ddeca4745515e27c8973366347aec6f3a0859b3e t/data/rdfxml-w3c/rdfms-rdf-names-use/test-008.nt
SHA1 ff92592965869f88db82c71fed4e51698fe1d6e0 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-008.rdf
SHA1 3c12d63eb2cf6ff3bef721ec621f3492a7078172 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-009.nt
SHA1 d68a19c2d12b4443244b3a56b88c4bed3e0a6251 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-009.rdf
SHA1 41e2e54d8cf61a33902b452c75e4d66f4c9e29b7 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-010.nt
SHA1 6ce34d43a852cb3585092e7520e634af8d1c88c5 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-010.rdf
SHA1 b1c4e9201b8e2bc4e8a93720d644f7f941548910 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-011.nt
SHA1 5c52cfdb7157ecf62e19ccb2df6fb39a9856eddb t/data/rdfxml-w3c/rdfms-rdf-names-use/test-011.rdf
SHA1 afd7e28fc18b37fd4bbb611f8331747b1e946b4c t/data/rdfxml-w3c/rdfms-rdf-names-use/test-012.nt
SHA1 7ca12d7092cf1a41b6cb886dae855c7117013a28 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-012.rdf
SHA1 0e46ba4339f4bae7fd18a86dd77e13b055f066ac t/data/rdfxml-w3c/rdfms-rdf-names-use/test-013.nt
SHA1 7f96a9797126546fafdc3c28da3176b079215d0a t/data/rdfxml-w3c/rdfms-rdf-names-use/test-013.rdf
SHA1 8036d781d7095f05b56abbe796003c182245caf6 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-014.nt
SHA1 8d5b6e9e1ab3c61909b20abf527c4c10c4011bbe t/data/rdfxml-w3c/rdfms-rdf-names-use/test-014.rdf
SHA1 259e297eded90add58f5feeda6cbc0b9660b6b44 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-015.nt
SHA1 8a07a265fcb06238fc138d62b1d1134f38fa04e2 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-015.rdf
SHA1 9a3b6483702aee5d44b8f42072caa6b3fccd4d84 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-016.nt
SHA1 2eb1134b15a967630a0b68ba8880b84e2abca0ed t/data/rdfxml-w3c/rdfms-rdf-names-use/test-016.rdf
SHA1 0dac56ada2ca01c55e00bc4db84d7f8096a08d5d t/data/rdfxml-w3c/rdfms-rdf-names-use/test-017.nt
SHA1 f4b88d30b19a00c0465e076bafba232cb1d6941f t/data/rdfxml-w3c/rdfms-rdf-names-use/test-017.rdf
SHA1 1b8f74bc674d450d8223332ca3bd090cb23bc531 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-018.nt
SHA1 42b676754bb90081054b9de591b606f380552e5b t/data/rdfxml-w3c/rdfms-rdf-names-use/test-018.rdf
SHA1 2ef10e467099ff4c823a00ea3493569c95da8967 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-019.nt
SHA1 ff54edb1132ff505b49f591fc853ee0e2f4ba916 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-019.rdf
SHA1 bc27007e36ade5cdb6fd169e36db0c00a889980b t/data/rdfxml-w3c/rdfms-rdf-names-use/test-020.nt
SHA1 bb380dc79f13d294894436a4781a4c3d9d71450c t/data/rdfxml-w3c/rdfms-rdf-names-use/test-020.rdf
SHA1 4cef737e91e370fab8ae2ee2a2ea402247b40838 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-021.nt
SHA1 6fbd4fbf8db879df2723cfd39a73136ab8a2320e t/data/rdfxml-w3c/rdfms-rdf-names-use/test-021.rdf
SHA1 be3e793856185e96b0360273ea01201484545527 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-022.nt
SHA1 2bfbc5bdbce27c6d668451d77ab8a7ecf9e7933b t/data/rdfxml-w3c/rdfms-rdf-names-use/test-022.rdf
SHA1 b723ff76b7010541155a3672419d25400bb6fb82 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-023.nt
SHA1 60a72e97c9fdd2d6e35d9c96ae4cf9fe106043d2 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-023.rdf
SHA1 a2a594c0461aa683fb5b37db439544132b61177d t/data/rdfxml-w3c/rdfms-rdf-names-use/test-024.nt
SHA1 154da445b42a2231d9628d55258a7ea671657e86 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-024.rdf
SHA1 555fc309e07bfcb471a476312c979af9c91e8e8c t/data/rdfxml-w3c/rdfms-rdf-names-use/test-025.nt
SHA1 9778a147c695df82ea08c717c089a589f394171a t/data/rdfxml-w3c/rdfms-rdf-names-use/test-025.rdf
SHA1 59ce2d0ebb2740bfded73bdee4e80bf1aaea28ec t/data/rdfxml-w3c/rdfms-rdf-names-use/test-026.nt
SHA1 2940788de9c41e58c7aaf2f43beb9bf0e3b2ff54 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-026.rdf
SHA1 a3a037320b087a1faffc8199eba7ca4401bdf790 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-027.nt
SHA1 accc226cf9540dca417104301f84f1d73002ce34 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-027.rdf
SHA1 d4002d72a90af9c40ac6cf102bdbac3c3b34ea96 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-028.nt
SHA1 6a47421fd1ef009a6d6cdb2d4a6a7bcf9f290e84 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-028.rdf
SHA1 33f8ca34219b149a12b0731d8405487d1b00451c t/data/rdfxml-w3c/rdfms-rdf-names-use/test-029.nt
SHA1 9a4755b8dcb7a301f1c3ad89dc2e688258b67cc6 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-029.rdf
SHA1 09feb1a885115c8a532a12ea20bbef18b757fc50 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-030.nt
SHA1 8214eb538b5fa0969372736b1b557e4ee3e1a0dd t/data/rdfxml-w3c/rdfms-rdf-names-use/test-030.rdf
SHA1 09feb1a885115c8a532a12ea20bbef18b757fc50 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-031.nt
SHA1 19540ebabcf1786aabab796e209e1361e1cd47ee t/data/rdfxml-w3c/rdfms-rdf-names-use/test-031.rdf
SHA1 c02baacb71936c7145691d422a4ea00da7fecd4f t/data/rdfxml-w3c/rdfms-rdf-names-use/test-032.nt
SHA1 7cfe674db22347dcf07391c9f0c57c151e65740a t/data/rdfxml-w3c/rdfms-rdf-names-use/test-032.rdf
SHA1 699e0a5ad1593783556cddc5a235dd55213f73ff t/data/rdfxml-w3c/rdfms-rdf-names-use/test-033.nt
SHA1 0f8dbcec0e4ba35877c7fb3e9883bfeb34b5a210 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-033.rdf
SHA1 4796859180b246e647283f579645ee73da369342 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-034.nt
SHA1 d66600a50977de47f476aef4b02a6165b11de0ad t/data/rdfxml-w3c/rdfms-rdf-names-use/test-034.rdf
SHA1 3abac2590aed4794ee19bf04f6653388d6420f34 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-035.nt
SHA1 67626b7c89a606e3f0bae5d53a1e2c762cabdc45 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-035.rdf
SHA1 7bcc25c572da53859b8be1f70e9924edbc628e5a t/data/rdfxml-w3c/rdfms-rdf-names-use/test-036.nt
SHA1 71e1a948fdee8468aad57b2e2b4cccd6d3a028bd t/data/rdfxml-w3c/rdfms-rdf-names-use/test-036.rdf
SHA1 9fbc5a77cd0af42b2e14c2ed82fbcc84c02db5a0 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-037.nt
SHA1 ab12deafb6053e3b87b9473b6ed485991598b1d8 t/data/rdfxml-w3c/rdfms-rdf-names-use/test-037.rdf
SHA1 82df3ec8a94e3d12d6dea05984c113df93eabeea t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-001.nt
SHA1 780e805788b1cffe691ce7225baa2854ea68ac44 t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-001.rdf
SHA1 bccad3cb2a94f28f58d05435003ac0f2dcffea49 t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-002.nt
SHA1 0d629c9814e3204ba5477bba5bec4953892d3e86 t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-002.rdf
SHA1 b400af215987042a972d85a32e59ecad2a783c97 t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-003.nt
SHA1 02cf3f0a7778904a66736c604b18ee5cb2d004d0 t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-003.rdf
SHA1 3d98e49b0c6aa8ed5258b27cfe842ce41898a337 t/data/rdfxml-w3c/rdfms-reification-required/test001.nt
SHA1 0cac5f7ac22fcf27faaf264282719803d3095d39 t/data/rdfxml-w3c/rdfms-reification-required/test001.rdf
SHA1 031bf032e4fc082da20234740dba7d8ed76273c2 t/data/rdfxml-w3c/rdfms-seq-representation/empty.nt
SHA1 c9f9acd99ffa06aeacfb99e263eaf9e17e334692 t/data/rdfxml-w3c/rdfms-seq-representation/test001.nt
SHA1 97f77ee22ec0d258f085422c4d25c9cbca71efc3 t/data/rdfxml-w3c/rdfms-seq-representation/test001.rdf
SHA1 64b1e938aa0d4d086c5dbc9a782c6dc4a01861ca t/data/rdfxml-w3c/rdfms-seq-representation/test002.nt
SHA1 4c3d43e4c66b3bcfb2e81b6e1564d6861002ca0a t/data/rdfxml-w3c/rdfms-seq-representation/test003a.nt
SHA1 5f7f3ef74c17ee19b2d75460306a3ce11677fa36 t/data/rdfxml-w3c/rdfms-seq-representation/test003b.nt
SHA1 b9f42bc5e981fce24d714e4c1f650fc26a9a859b t/data/rdfxml-w3c/rdfms-seq-representation/test004.nt
SHA1 2dc784e374b8bb3230bd6a6a8c449f88dfcffae6 t/data/rdfxml-w3c/rdfms-syntax-incomplete/error001.rdf
SHA1 cbb755f1c41340300d3d51404fcbad5e51e7cda2 t/data/rdfxml-w3c/rdfms-syntax-incomplete/error002.rdf
SHA1 e98e9e73bc66bff77e56ae7ee27c3104f9d60c58 t/data/rdfxml-w3c/rdfms-syntax-incomplete/error003.rdf
SHA1 cb82ea1ecbc0eb3ac106d2a30538aada7dcda076 t/data/rdfxml-w3c/rdfms-syntax-incomplete/error004.rdf
SHA1 0a2d6f9a0db6f9503fe4d97fb9d9969292dfa189 t/data/rdfxml-w3c/rdfms-syntax-incomplete/error005.rdf
SHA1 458a4c46a3a020facbabdfdc89404073079758f4 t/data/rdfxml-w3c/rdfms-syntax-incomplete/error006.rdf
SHA1 2a11b7330c1e9887b4445aea37089bd9fb64c652 t/data/rdfxml-w3c/rdfms-syntax-incomplete/test001.nt
SHA1 3d9bbad1776bde801b209dc6162f951d0ac2b247 t/data/rdfxml-w3c/rdfms-syntax-incomplete/test001.rdf
SHA1 05f245b33f2d64682345584c9b93473713cf6409 t/data/rdfxml-w3c/rdfms-syntax-incomplete/test002.nt
SHA1 f36eb8b6e165cca2461ea3c9d1e062884af73c41 t/data/rdfxml-w3c/rdfms-syntax-incomplete/test002.rdf
SHA1 b7713bf1bbe5b7227ca68de5aad0d274d341370d t/data/rdfxml-w3c/rdfms-syntax-incomplete/test003.nt
SHA1 5952e383c82e14eb82f4e660d44edcde6b01c74c t/data/rdfxml-w3c/rdfms-syntax-incomplete/test003.rdf
SHA1 f8659c7f6d74c7dfe312a66c6aab92d2ab326865 t/data/rdfxml-w3c/rdfms-syntax-incomplete/test004.nt
SHA1 a7b86ed116a6e4b9c69e08c656f6ebc0c36d198c t/data/rdfxml-w3c/rdfms-syntax-incomplete/test004.rdf
SHA1 06396348de1f058f20076d97ea8437e5ce639ef6 t/data/rdfxml-w3c/rdfms-uri-substructure/error001.nt
SHA1 34bf94ab268fa1a2218ff2608746a2bc053c1fb2 t/data/rdfxml-w3c/rdfms-uri-substructure/test001.nt
SHA1 c7f819b00740d354ea75a9e356cbe98bfaed9db2 t/data/rdfxml-w3c/rdfms-uri-substructure/test001.rdf
SHA1 1afefe6aaa7f01a64fac1573889c23260dd6d046 t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test001.nt
SHA1 cfc6cf63d1228ab3a75fc15457b203db6dd52c6a t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test001.rdf
SHA1 cf57e49bb7951dedb63648255904aedef9196ced t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test002.nt
SHA1 87b9d20b28ff7d30585200bd590c6c647846822a t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test002.rdf
SHA1 7c86e134f8d9649d7545758d211b4661724ccfa8 t/data/rdfxml-w3c/rdfms-xmllang/test001.nt
SHA1 8fc6c960be3544f150578cd17a27b5cd18b147ca t/data/rdfxml-w3c/rdfms-xmllang/test001.rdf
SHA1 db4f9014eaf61581b48fc3cc4066ac2560fe4fae t/data/rdfxml-w3c/rdfms-xmllang/test002.nt
SHA1 0cafdfb53084a180a749e0854015995db1dc06ff t/data/rdfxml-w3c/rdfms-xmllang/test002.rdf
SHA1 9f693d9a21d9ef8b52b0799f7c900d1af63c14f3 t/data/rdfxml-w3c/rdfms-xmllang/test003.nt
SHA1 9f922020f797821052a65481ebc76e6805f5bbd4 t/data/rdfxml-w3c/rdfms-xmllang/test003.rdf
SHA1 5364e2f709fb7994d65bdcd496ba3ef5579c64c9 t/data/rdfxml-w3c/rdfms-xmllang/test004.nt
SHA1 2ca060214cef5921185949584a6bfbb4642c0b37 t/data/rdfxml-w3c/rdfms-xmllang/test004.rdf
SHA1 57a6b3fae4b4f9291044df55dde69507c592be2f t/data/rdfxml-w3c/rdfms-xmllang/test005.nt
SHA1 a339b027e896a86d4a303df354adc69ca34c32ff t/data/rdfxml-w3c/rdfms-xmllang/test005.rdf
SHA1 2a96fc24949f14039e6bf25fbe820cb43fc0dfcf t/data/rdfxml-w3c/rdfms-xmllang/test006.nt
SHA1 b98cc5752f86feb22e122abfc48a15d76126d5fb t/data/rdfxml-w3c/rdfms-xmllang/test006.rdf
SHA1 08be00731bbe159100641e2eab1957cd796f7afa t/data/rdfxml-w3c/rdfms-xmllang/test007a.nt
SHA1 1a4c06b18a5dfff03821e881eeb33f89f8f33aca t/data/rdfxml-w3c/rdfms-xmllang/test007b.nt
SHA1 b02c3514c8753ee0df342a324fe6fe270d88d866 t/data/rdfxml-w3c/rdfms-xmllang/test007c.nt
SHA1 423093a19f630378aa1a2d2c0596aca580cd1cb1 t/data/rdfxml-w3c/rdfs-container-membership-superProperty/not1C.rdf
SHA1 d0e55ee39d76767529109d2dbcad3dd4812be81d t/data/rdfxml-w3c/rdfs-container-membership-superProperty/not1P.rdf
SHA1 4b0cd463aab481aa550157909cb9c69b7d71b52b t/data/rdfxml-w3c/rdfs-domain-and-range/nonconclusions005.rdf
SHA1 455482885a1007ed001a591217942546ed1f5499 t/data/rdfxml-w3c/rdfs-domain-and-range/nonconclusions006.rdf
SHA1 fc169d5637735ed072c990c61c129d5215f39b94 t/data/rdfxml-w3c/rdfs-domain-and-range/premises005.rdf
SHA1 f6ed2f04998c5ab1daf4cdea24d7ad48604de7a1 t/data/rdfxml-w3c/rdfs-domain-and-range/premises006.rdf
SHA1 d9d350a8f395effb7057117f1cda37e2531bbedd t/data/rdfxml-w3c/rdfs-domain-and-range/test001.nt
SHA1 01f634282a5c9db205081468fc753e9b9e59f063 t/data/rdfxml-w3c/rdfs-domain-and-range/test001.rdf
SHA1 f666f7957a2d9ade8a48198629cc2df269cae8bf t/data/rdfxml-w3c/rdfs-domain-and-range/test002.nt
SHA1 a6892e5856c1161fcbf12d6013698d6b2d3c9ebc t/data/rdfxml-w3c/rdfs-domain-and-range/test002.rdf
SHA1 2a63d859e7f930ee7e4b3916b5f7250217e16c94 t/data/rdfxml-w3c/rdfs-entailment/test001.nt
SHA1 a6a0141e8c99b8b5c5ee49263dde6e041a052541 t/data/rdfxml-w3c/rdfs-entailment/test002.nt
SHA1 7ed60f2588bb7462c5bd79e3ac4487b9e768de22 t/data/rdfxml-w3c/rdfs-no-cycles-in-subClassOf/test001.nt
SHA1 6a2799a716d7bb3e434e058b8ade9d65c7a3bc6a t/data/rdfxml-w3c/rdfs-no-cycles-in-subClassOf/test001.rdf
SHA1 8e79aac5835445bf14c55c34a57d837528f80c2f t/data/rdfxml-w3c/rdfs-no-cycles-in-subPropertyOf/test001.nt
SHA1 4d652821b2126f7b737b6152c022f6e4c7f1c7a7 t/data/rdfxml-w3c/rdfs-no-cycles-in-subPropertyOf/test001.rdf
SHA1 6f3e038a63ac2af8fabd7e40833fe32998209bb2 t/data/rdfxml-w3c/rdfs-subClassOf-a-Property/test001.nt
SHA1 ada6390a7ae8ef0dcada7a2b1c35d7e77fea7ce8 t/data/rdfxml-w3c/rdfs-subPropertyOf-semantics/test001.nt
SHA1 0b6d9ef13876a564c2b517bcc9c26f9bbbf614a5 t/data/rdfxml-w3c/rdfs-subPropertyOf-semantics/test002.nt
SHA1 ed08dbb10587c156b1d594e33c5fe080261522a4 t/data/rdfxml-w3c/statement-entailment/test001a.nt
SHA1 37ef78eb599ef688f194bcea4881c3432df4597a t/data/rdfxml-w3c/statement-entailment/test001b.nt
SHA1 2526581be272bf28b4ba13d3919871847506b86a t/data/rdfxml-w3c/statement-entailment/test002a.nt
SHA1 256a0e31d22bd45225ecb24f19d84aab28c620ed t/data/rdfxml-w3c/statement-entailment/test002b.nt
SHA1 194e3236db2ed52f78fee5fafd658e5c6df342f2 t/data/rdfxml-w3c/tex-01/test001.rdf
SHA1 bb5ec8a49a53515c8600e74618ab7bb0006a7ad0 t/data/rdfxml-w3c/tex-01/test002.rdf
SHA1 cc047f847df2dcff66dbb698e0d199f99f1017a4 t/data/rdfxml-w3c/unrecognised-xml-attributes/test001.nt
SHA1 ee846d63077d6c2b770e6690a0633847a1055d90 t/data/rdfxml-w3c/unrecognised-xml-attributes/test001.rdf
SHA1 1b08573c848505f270765d5093b75f71b9a4ce4d t/data/rdfxml-w3c/unrecognised-xml-attributes/test002.nt
SHA1 4abd171d9ace15eae548cbd3c3c44eacc1e18b24 t/data/rdfxml-w3c/unrecognised-xml-attributes/test002.rdf
SHA1 4d50d9e048950e8c38babfe95e55cfeb6d6fdb1f t/data/rdfxml-w3c/xml-canon/test001.nt
SHA1 c859978e25b46384668cd9324ba2668039ac5861 t/data/rdfxml-w3c/xml-canon/test001.rdf
SHA1 7b4996bea259f5d8b0b957c97307a7395cad18c7 t/data/rdfxml-w3c/xmlbase/test001.nt
SHA1 576c7a817764f0ac9a120d47e9af4dc86548f01a t/data/rdfxml-w3c/xmlbase/test001.rdf
SHA1 22ab8348bf4810dd555149dd9faec4c5712adb0e t/data/rdfxml-w3c/xmlbase/test002.nt
SHA1 3e4e8ccfd1df236f87f085d60156780d0c56dfc1 t/data/rdfxml-w3c/xmlbase/test002.rdf
SHA1 0e5b37565a99ad4424bae2e68ee53ad5a5d76a22 t/data/rdfxml-w3c/xmlbase/test003.nt
SHA1 7f05172aba698ee0421d6b4b1677a32311cdb663 t/data/rdfxml-w3c/xmlbase/test003.rdf
SHA1 84eb865391fe5cc38f86d3399766e27a4cdf1720 t/data/rdfxml-w3c/xmlbase/test004.nt
SHA1 6a1114224999014b57ca07cc14cc914e048c49a6 t/data/rdfxml-w3c/xmlbase/test004.rdf
SHA1 7e2df7dbf2b4c61d0d2084e955585bb3397dc5bb t/data/rdfxml-w3c/xmlbase/test006.nt
SHA1 e965d65862030f5d8bef2bdebfd38febb6174a60 t/data/rdfxml-w3c/xmlbase/test006.rdf
SHA1 41b7bcb7b306c8f0c0305c3b8875e435a5bee8ad t/data/rdfxml-w3c/xmlbase/test007.nt
SHA1 bec4b30092eaa28dc22c57baa776d6573f95d4eb t/data/rdfxml-w3c/xmlbase/test007.rdf
SHA1 7f541cf02e962bf5c3dbe7adf6fa4ad4e5b51da5 t/data/rdfxml-w3c/xmlbase/test008.nt
SHA1 245a141c43558df5517e35ae468a154e01066196 t/data/rdfxml-w3c/xmlbase/test008.rdf
SHA1 d2dfe4c3fba9c11b2f7facb59661ab29343baad1 t/data/rdfxml-w3c/xmlbase/test009.nt
SHA1 9016ac5e95e6dd6b4d5e710fd15ac290dbe03408 t/data/rdfxml-w3c/xmlbase/test009.rdf
SHA1 2315db0f2f15c4fa152365952b3f81ae908b2db3 t/data/rdfxml-w3c/xmlbase/test010.nt
SHA1 b7ce73513d9f2bdc78cc3f288f7d46eee5e6ed69 t/data/rdfxml-w3c/xmlbase/test010.rdf
SHA1 d7c7a4096044d9c71762c0ea343dade0ea0cfe10 t/data/rdfxml-w3c/xmlbase/test011.nt
SHA1 ee8ccb0bd072f1e271d5a922d2065d36c4f17feb t/data/rdfxml-w3c/xmlbase/test011.rdf
SHA1 0dbc10ed4e033668d30e477b7c37311d20356f77 t/data/rdfxml-w3c/xmlbase/test013.nt
SHA1 65265682e89a3a9ea6a54889ea3023a99d853cd7 t/data/rdfxml-w3c/xmlbase/test013.rdf
SHA1 267b11356105a1da69bc2fa79064fce2e9849919 t/data/rdfxml-w3c/xmlbase/test014.nt
SHA1 028ef094b9e633be40329e4cd47bc8ad321f4430 t/data/rdfxml-w3c/xmlbase/test014.rdf
SHA1 9c5090f58213a1dde1f7fc640eccfab58a8b176d t/data/rdfxml-w3c/xmlsch-02/test001.rdf
SHA1 a6f933f6eefb6fef0fe369d0bcb96917ac031869 t/data/rdfxml-w3c/xmlsch-02/test002.rdf
SHA1 992a730c165cda3af55cda7dbec594d95d42c2d7 t/data/rdfxml-w3c/xmlsch-02/test003.rdf
SHA1 1c46ce1a05e461e12e462b319a89eb0fa8c351d9 t/data/trig-2013/HYPHEN_MINUS_in_localName.nq
SHA1 60e00c909452995a2eeb7119963b1f3fba08ea99 t/data/trig-2013/HYPHEN_MINUS_in_localName.trig
SHA1 cde2d88a1e16ab712faff59c79631acfe3203f2d t/data/trig-2013/IRIREF_datatype.nq
SHA1 6b12c8cab173cbcb33872b054b3e07ccfb080cf6 t/data/trig-2013/IRIREF_datatype.trig
SHA1 f53b515dfde3c4f784f0d24c6001ff0a4749d16f t/data/trig-2013/IRI_spo.nq
SHA1 fbb42f2b7d2acf301fab63890e378068c4b96494 t/data/trig-2013/IRI_subject.trig
SHA1 30720b14727cdce95b554dad89de7339c778aced t/data/trig-2013/IRI_with_all_punctuation.nq
SHA1 a51aac58f3a1deb5fb15f15652bf84df7d226453 t/data/trig-2013/IRI_with_all_punctuation.trig
SHA1 e94c3d1cb0ddd517b05a906d691c27da0db55390 t/data/trig-2013/IRI_with_eight_digit_numeric_escape.trig
SHA1 1525a1ec55c6afb1de495d304c73d16c1cfc258d t/data/trig-2013/IRI_with_four_digit_numeric_escape.trig
SHA1 fd90867a4b762b3b1d72ab55ff74ca10639189e2 t/data/trig-2013/LICENSE
SHA1 0728ca8a85796e43acad4643550dfed736de4987 t/data/trig-2013/LITERAL1.nq
SHA1 002ce25cdfca98d4021f16c4f81371e9d05a2147 t/data/trig-2013/LITERAL1.trig
SHA1 42d563ff8b95d0ad973fbd7ce0b439ba3c6cd7fe t/data/trig-2013/LITERAL1_all_controls.nq
SHA1 7abf5b3f047c03a4154663c90b00cfc306138c71 t/data/trig-2013/LITERAL1_all_controls.trig
SHA1 addee996be5834ec20bc07f6fb16e98a2a319206 t/data/trig-2013/LITERAL1_all_punctuation.nq
SHA1 ec23633b6f183c2cad7df1c2bfdefbc1c25ea190 t/data/trig-2013/LITERAL1_all_punctuation.trig
SHA1 0d571e3023f2d8969da8798ed1b033a5bbc4f007 t/data/trig-2013/LITERAL1_ascii_boundaries.nq
SHA1 4a5e87f8d4871b41d9ff7338c6cd6efe6ea43b23 t/data/trig-2013/LITERAL1_ascii_boundaries.trig
SHA1 a68d20087e5cccfa6a95c5530b11bf834b27de3b t/data/trig-2013/LITERAL2.trig
SHA1 63273eb7146bc91b8c947cd2b19eecac73cacd5e t/data/trig-2013/LITERAL2_ascii_boundaries.nq
SHA1 94749a070ff9120de8784dfaa3e70b1e1cfc0f60 t/data/trig-2013/LITERAL2_ascii_boundaries.trig
SHA1 6badba245eb5ae6c614aac741c17d1228dd2b3ed t/data/trig-2013/LITERAL_LONG1.trig
SHA1 ddd783b0565a768bd99fb89f155b1b17af05c3e5 t/data/trig-2013/LITERAL_LONG1_ascii_boundaries.nq
SHA1 7f898d326f500f8ad9c3f2839bdabca44c47464c t/data/trig-2013/LITERAL_LONG1_ascii_boundaries.trig
SHA1 2a5ee2f171775d7b62ba52dd6646d3c74079d60d t/data/trig-2013/LITERAL_LONG1_with_1_squote.nq
SHA1 6c232302ca24c11c12a1cc2274b0409cbac71794 t/data/trig-2013/LITERAL_LONG1_with_1_squote.trig
SHA1 84937a1b2beb26e8cd464fc490d66ff6de077d31 t/data/trig-2013/LITERAL_LONG1_with_2_squotes.nq
SHA1 e9feb56929ccb9a5a5ca61b36d88d68751b7b8b9 t/data/trig-2013/LITERAL_LONG1_with_2_squotes.trig
SHA1 6c5acba1bbd20cdc07be5865e4059a7fb4dacce4 t/data/trig-2013/LITERAL_LONG2.trig
SHA1 12b37697c44b22dbb571e7eac89fd977a02f5416 t/data/trig-2013/LITERAL_LONG2_ascii_boundaries.nq
SHA1 69ab1af4f5742229b661a989eaa9888cb2900f78 t/data/trig-2013/LITERAL_LONG2_ascii_boundaries.trig
SHA1 f3e182351d79664dbb0cea75c6ed206dae3416e3 t/data/trig-2013/LITERAL_LONG2_with_1_squote.nq
SHA1 4a2fc51b4134ad4b0697d8f107fed45ffcd109ed t/data/trig-2013/LITERAL_LONG2_with_1_squote.trig
SHA1 15d3fde2f718bb5ea3cef04e5e20bf196707b64b t/data/trig-2013/LITERAL_LONG2_with_2_squotes.nq
SHA1 70e0a78de2e46dd236b42386f630e10e28046519 t/data/trig-2013/LITERAL_LONG2_with_2_squotes.trig
SHA1 1025ec1b58fef13ca82bddf3269fc31f7e20bb1a t/data/trig-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.nq
SHA1 c6bc26b570fe0d572ddab1f632dacc6c42451ced t/data/trig-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.trig
SHA1 204d7885ac548d012287c2a27b48f20079fef0b8 t/data/trig-2013/README
SHA1 0d119a92e75be5f51307d0891407a935ba4b8029 t/data/trig-2013/SPARQL_style_base.trig
SHA1 e6ccc71fcc25803b71663b8d2a1e3ec1c1e27bea t/data/trig-2013/SPARQL_style_prefix.trig
SHA1 b2cad39930e1ef3969e65a93d3d0e4f635fed243 t/data/trig-2013/alternating_bnode_graphs.nq
SHA1 6ab20bf03227e84af4fdbdf3967ce52b05489b35 t/data/trig-2013/alternating_bnode_graphs.trig
SHA1 65fe3c6aa2d22c688666a7ba07886350131acb46 t/data/trig-2013/alternating_iri_graphs.nq
SHA1 a35c3ff4b841d60eb98540f200359cb8adf8f2f0 t/data/trig-2013/alternating_iri_graphs.trig
SHA1 dae909de7b9733ff67c8133fd4d093ced01fe598 t/data/trig-2013/anonymous_blank_node_graph.trig
SHA1 c3423d68a163ad9a1ab6a99658f83af7e11a6d54 t/data/trig-2013/anonymous_blank_node_object.nq
SHA1 66b00f328ebeceb2c5fc1c716242cd50c329699d t/data/trig-2013/anonymous_blank_node_object.trig
SHA1 c2c3fa97f5403efc3cb6724b142e0c0c612d354e t/data/trig-2013/anonymous_blank_node_subject.nq
SHA1 3617a3d2035c907073f1321f6b4be3cc9aca8f31 t/data/trig-2013/anonymous_blank_node_subject.trig
SHA1 79c69e5d8d0be2dee9392801102e07e5435e2e25 t/data/trig-2013/bareword_a_predicate.nq
SHA1 0c780fceb352bc8bce8966efd26fc049a7d0f864 t/data/trig-2013/bareword_a_predicate.trig
SHA1 5d925ba08a497d1df250e2adac6ddf3b323f8209 t/data/trig-2013/bareword_decimal.nq
SHA1 1995e7e8458fb0c5a2944878861e75c1e459707a t/data/trig-2013/bareword_decimal.trig
SHA1 f15f641ce018c8f04c47b8124e1acca69aeed11f t/data/trig-2013/bareword_double.nq
SHA1 e585b8c839cbf7d5183cde11c827c58828047f48 t/data/trig-2013/bareword_double.trig
SHA1 f2d640482642158d1438d82d49315056e7c3f83f t/data/trig-2013/bareword_integer.trig
SHA1 e45ccd6c19f897d42aea6de07542719af3042ed8 t/data/trig-2013/blankNodePropertyList_as_object.nq
SHA1 e7babd7633b6cf07a35f8a340e4bbbc85ba9bf0e t/data/trig-2013/blankNodePropertyList_as_object.trig
SHA1 ab28d406b53091bd38cd1f81794472922a14d2f3 t/data/trig-2013/blankNodePropertyList_as_subject.nq
SHA1 83108feac772902db33464bf9edea2911f95e4bc t/data/trig-2013/blankNodePropertyList_as_subject.trig
SHA1 97713886422143b95d53414e25fea0b3debfdd0b t/data/trig-2013/blankNodePropertyList_containing_collection.nq
SHA1 54a755e46a5ebdf2d35aac49053b9115b0cd7b45 t/data/trig-2013/blankNodePropertyList_containing_collection.trig
SHA1 5d5691227c86390fa5b94c74596467c0d78cdf2a t/data/trig-2013/blankNodePropertyList_with_multiple_triples.nq
SHA1 c27cbfac63dbff612458edd44b988bccca15131f t/data/trig-2013/blankNodePropertyList_with_multiple_triples.trig
SHA1 205307dcbd0c0acad741d4313800c1742a183457 t/data/trig-2013/collection_object.nq
SHA1 cba816d7204e3c87230d7e976e5af93683460b4e t/data/trig-2013/collection_object.trig
SHA1 14b36fbe5cafdb8e39f58549b8d794001f1ed99c t/data/trig-2013/collection_subject.nq
SHA1 4742a443211fbe2ab629162ec5dd8a4ac8d10ba1 t/data/trig-2013/collection_subject.trig
SHA1 38c5b531b3856a2623e84735a99141dab3869f29 t/data/trig-2013/default_namespace_IRI.trig
SHA1 f375e1233633d64fa018aae10ff3212ba68a02e7 t/data/trig-2013/double_lower_case_e.nq
SHA1 e302fc45e994fe5387ed551f6f7e9b147a6d57a8 t/data/trig-2013/double_lower_case_e.trig
SHA1 bf0f908850a4afc5ede51957ba412c9b1289cdbd t/data/trig-2013/empty_collection.nq
SHA1 d705483721d6accff0a7f849a976d23cacf6fb65 t/data/trig-2013/empty_collection.trig
SHA1 37401d1eed43d051701d449298c10bc25a1b02cb t/data/trig-2013/first.nq
SHA1 54b89885df2d7f731d3bec413335faf07e34d476 t/data/trig-2013/first.trig
SHA1 4dc4805fc3dad1016383f1185f9a3cad20457148 t/data/trig-2013/labeled_blank_node_graph.nq
SHA1 24442979d67adaed9cb6282c78b1284f06966856 t/data/trig-2013/labeled_blank_node_graph.trig
SHA1 14121b65d3530b5d3186d80664d4d99d33735ccd t/data/trig-2013/labeled_blank_node_object.nq
SHA1 7c1b24fe85043adea75e656bc0d24713894782a2 t/data/trig-2013/labeled_blank_node_object.trig
SHA1 b1edac56563f10451111deb9acb99d7cce95c06c t/data/trig-2013/labeled_blank_node_subject.nq
SHA1 7902ce5ee8fb4193a5c239f9d40b5c02d8bd951d t/data/trig-2013/labeled_blank_node_subject.trig
SHA1 613edef6bec761352c855ea8aa0fc94c14d0205e t/data/trig-2013/labeled_blank_node_with_PN_CHARS_BASE_character_boundaries.trig
SHA1 66d0066fb4f1f667b7dd1897a96ef8ec1dfa8092 t/data/trig-2013/labeled_blank_node_with_leading_digit.trig
SHA1 74f4149b1f588aa71d78eac1ed00605d3f7854e1 t/data/trig-2013/labeled_blank_node_with_leading_underscore.trig
SHA1 57853db11749d2314ba42f0be4dd9628bf8f1b70 t/data/trig-2013/labeled_blank_node_with_non_leading_extras.trig
SHA1 e489cb35926a336b8cd7af27be3c0261c0627ead t/data/trig-2013/langtagged_LONG.trig
SHA1 11e918ef43808bd44a03dbf46af30035cfd5073a t/data/trig-2013/langtagged_LONG_with_subtag.nq
SHA1 7935ee70ad0c2d64728861232a2939497373d983 t/data/trig-2013/langtagged_LONG_with_subtag.trig
SHA1 762caecb33fa68860217b4beca4821f6680ac94b t/data/trig-2013/langtagged_non_LONG.nq
SHA1 96cd9287dec56d6ef64ff19264066371fc5a61a9 t/data/trig-2013/langtagged_non_LONG.trig
SHA1 d044d11888f8e697a87ea2e9cb40241c9f74d339 t/data/trig-2013/lantag_with_subtag.nq
SHA1 b3bcc9f0c2f93a1d6dc4b9dd3dc09fbc85fa2f29 t/data/trig-2013/lantag_with_subtag.trig
SHA1 ccd97248302c73958015e4a64eccad89af4ab4df t/data/trig-2013/last.nq
SHA1 0cb6f2abffd38a6890528697bbe88305921344fe t/data/trig-2013/last.trig
SHA1 41a2772136036f30afcc7f6ad97e30a3ac5449a4 t/data/trig-2013/literal_false.nq
SHA1 bfca1650524a7b667741ba6d03943a32f9424280 t/data/trig-2013/literal_false.trig
SHA1 2b5800a4a41832da04892d1d47da3008bc2451d0 t/data/trig-2013/literal_true.nq
SHA1 d4b779ffb288ad9a7787f284fd48d228818b7965 t/data/trig-2013/literal_true.trig
SHA1 11bc3a470e1543c30ad8a8d8f1a7e3f46f2739df t/data/trig-2013/literal_with_BACKSPACE.nq
SHA1 b6f16dd0c5a8de88e6a6b6a3c2d535915d9a7fba t/data/trig-2013/literal_with_BACKSPACE.trig
SHA1 f7304f44dfeacf073386cf573b91bdc693cc60e4 t/data/trig-2013/literal_with_CARRIAGE_RETURN.nq
SHA1 203fed388696e12a0dac6bd9afd7c38017be4e4a t/data/trig-2013/literal_with_CARRIAGE_RETURN.trig
SHA1 10cd04cd679d12ff0d1c984e4a6edd4bd35187c9 t/data/trig-2013/literal_with_CHARACTER_TABULATION.nq
SHA1 90fcd1ba7b53cc9ca42d4add225f3e086847e873 t/data/trig-2013/literal_with_CHARACTER_TABULATION.trig
SHA1 0832dc23d03c30c2c788575c668e3ddad89df969 t/data/trig-2013/literal_with_FORM_FEED.nq
SHA1 0b893268e662fd763950e0fa6d5f58f7fe75e2ce t/data/trig-2013/literal_with_FORM_FEED.trig
SHA1 ddb643126f70bb3e527fcf4cde417b6f90061d35 t/data/trig-2013/literal_with_LINE_FEED.nq
SHA1 65a75b07544da5240bc052d531f678cf3e60a2c5 t/data/trig-2013/literal_with_LINE_FEED.trig
SHA1 dd45cb32b293078c5b423100fb0675220ca9c69b t/data/trig-2013/literal_with_REVERSE_SOLIDUS.nq
SHA1 05f216fa176454fcda893e1c51ebeaa481e830d6 t/data/trig-2013/literal_with_REVERSE_SOLIDUS.trig
SHA1 af8422b9f36f61be9e241cac5af1dac307c5cdde t/data/trig-2013/literal_with_escaped_BACKSPACE.trig
SHA1 5e62329f022c046a953cc89ca774aafdbb03e146 t/data/trig-2013/literal_with_escaped_CARRIAGE_RETURN.trig
SHA1 16c93370a9ab70f150134036e59dc5912b461521 t/data/trig-2013/literal_with_escaped_CHARACTER_TABULATION.trig
SHA1 4fd7b96f8ed747baeae27ae921a211f98bcebc27 t/data/trig-2013/literal_with_escaped_FORM_FEED.trig
SHA1 2405a5155f98ede09de591be4b52ce2d00860845 t/data/trig-2013/literal_with_escaped_LINE_FEED.trig
SHA1 7371472ae1e7174f4a0b9b0970887f0c0d130c96 t/data/trig-2013/literal_with_numeric_escape4.nq
SHA1 21bb459f4067bb9eff3b563f84754af5b085818b t/data/trig-2013/literal_with_numeric_escape4.trig
SHA1 810b82fa38c3038c089ff2002f156b1767739ddf t/data/trig-2013/literal_with_numeric_escape8.trig
SHA1 df35b1a38a6cab2158c435e9549619d7acc557ff t/data/trig-2013/localName_with_PN_CHARS_BASE_character_boundaries.nq
SHA1 8bd2aac0ca910a6d66ecd620ad9b2b65f777df61 t/data/trig-2013/localName_with_PN_CHARS_BASE_character_boundaries.trig
SHA1 cd0982739bbf48c9e08f4025197dba0643aecc51 t/data/trig-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.nq
SHA1 4090b1830b7758c7aeacdb804ddc0aa972e779a7 t/data/trig-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.trig
SHA1 543d45c64ec4c4b12c18fcbbfc6b5d3823f7e95e t/data/trig-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.nq
SHA1 ee7281e516a16f2c8d1082711de026704eb955e4 t/data/trig-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.trig
SHA1 0db5ff04c211061b2f732310cbd14ddfd22d3c3c t/data/trig-2013/localName_with_leading_digit.nq
SHA1 0a50677d0d7d7601b367b7a86d005ec34cc8194a t/data/trig-2013/localName_with_leading_digit.trig
SHA1 486d1e4da51222ac43697ec6b02c49bd2699b1e1 t/data/trig-2013/localName_with_leading_underscore.nq
SHA1 3ee6b5ed2b87559244212c47668b846901de7bb0 t/data/trig-2013/localName_with_leading_underscore.trig
SHA1 7ef3757a356c35776da1979eb52b35e6ac8e1199 t/data/trig-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.nq
SHA1 9455474153ceff6b5068583f18a88aed9fcf6316 t/data/trig-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.trig
SHA1 cc64793fc49acf1833fef2e050ebc359694d7de2 t/data/trig-2013/localName_with_non_leading_extras.nq
SHA1 9fcc8f151f112ee55cc73f1aa4e6be68870f17d8 t/data/trig-2013/localName_with_non_leading_extras.trig
SHA1 b95a05125ad7a8f8e0682cafb8eb71aedd16210a t/data/trig-2013/localname_with_COLON.nq
SHA1 64d26707c53be6aca0c3914103f41df90c3214e2 t/data/trig-2013/localname_with_COLON.trig
SHA1 bf44af0920f272761df5b6856ed90a664bf67ba8 t/data/trig-2013/manifest.ttl
SHA1 ec4d4c406901ef55848466efece01c122e1886eb t/data/trig-2013/negative_numeric.nq
SHA1 7d9dc55f2a9b49f454a0003c67eb31e56b4ab86e t/data/trig-2013/negative_numeric.trig
SHA1 80a410a347aac8a9a2c6c1f78786571fabfc5662 t/data/trig-2013/nested_blankNodePropertyLists.nq
SHA1 839df830481b5c29a8e1c0c8b299b1ba1d6a68e8 t/data/trig-2013/nested_blankNodePropertyLists.trig
SHA1 6e295ce42bef8abb47effdd3ad2fab85d2ff88e4 t/data/trig-2013/nested_collection.nq
SHA1 3ed790cfcc4b4b0381a842ee52b602aa76f3b64b t/data/trig-2013/nested_collection.trig
SHA1 69e27cc27d21cc9c55e95cbf6d797aa8a1f955cf t/data/trig-2013/numeric_with_leading_0.nq
SHA1 2915118385f4ea207979c37a2d9d3c8ab30cff51 t/data/trig-2013/numeric_with_leading_0.trig
SHA1 616b044cf2b283bd8daec810ee79626846be1c6f t/data/trig-2013/objectList_with_two_objects.nq
SHA1 812cb708a72a0c8065f7abedd2c8285738b80d8a t/data/trig-2013/objectList_with_two_objects.trig
SHA1 61eed5d5395e3fe5d1e1a27f64793e4d278b79d8 t/data/trig-2013/old_style_base.trig
SHA1 5ad36f704da417d8174f0cf62e911b8418158ca6 t/data/trig-2013/old_style_prefix.trig
SHA1 104ca283223c4ad09b2aae022e6e334eb81b0512 t/data/trig-2013/percent_escaped_localName.nq
SHA1 c8ad1b1f442c246c033ef134155259ce04005f2e t/data/trig-2013/percent_escaped_localName.trig
SHA1 d3bd0a321cb50cc7346766904784fadda7437f33 t/data/trig-2013/positive_numeric.nq
SHA1 40602d752045659185a0da0f4052f931ce801a65 t/data/trig-2013/positive_numeric.trig
SHA1 506784c2aa17a324cb150223a455d58295810e78 t/data/trig-2013/predicateObjectList_with_two_objectLists.nq
SHA1 7d70b482a52310bb2d51708af46afb2d0824800d t/data/trig-2013/predicateObjectList_with_two_objectLists.trig
SHA1 68beeed5aae12593725cd50b616e9d2155a6e319 t/data/trig-2013/prefix_only_IRI.trig
SHA1 7a452a66e599ba8430efc842d28a682d5478e24d t/data/trig-2013/prefix_reassigned_and_used.nq
SHA1 5c55618556ef4de00cca29300831558ca5bbc856 t/data/trig-2013/prefix_reassigned_and_used.trig
SHA1 9b2352d601c0a6535951bf5ce5a9e16683f1bd94 t/data/trig-2013/prefix_with_PN_CHARS_BASE_character_boundaries.trig
SHA1 2c98bbaed9cd45593955a866796df180dbd1c266 t/data/trig-2013/prefix_with_non_leading_extras.trig
SHA1 749fd577c7cdb406ab5218e68497de188976b515 t/data/trig-2013/prefixed_IRI_object.trig
SHA1 c209e4ae0bc713489b95b9494a86ee8ce588b309 t/data/trig-2013/prefixed_IRI_predicate.trig
SHA1 4ad09567b625d2930a25811eeab205e258d17332 t/data/trig-2013/prefixed_name_datatype.trig
SHA1 c1737a2a6e6d919e90b2a27e67b8b81f0cbd29f4 t/data/trig-2013/repeated_semis_at_end.trig
SHA1 c345a41358680a9ea6b920735002d9ecf993a668 t/data/trig-2013/repeated_semis_not_at_end.nq
SHA1 983c601ee5d4ac5d6125bb94f211136a92a83115 t/data/trig-2013/repeated_semis_not_at_end.trig
SHA1 3a62fd7f574d71e22bc0113c1f63539cfdaad915 t/data/trig-2013/reserved_escaped_localName.nq
SHA1 ddfeb79e02c9b6cc540b81cfb0a6ece5fd427023 t/data/trig-2013/reserved_escaped_localName.trig
SHA1 f60b53201ae77e4a45317d99fe17ad013e6e0058 t/data/trig-2013/sole_blankNodePropertyList.trig
SHA1 84052562c3050798d97c87f07f1e93ce64b24da2 t/data/trig-2013/trig-eval-bad-01.trig
SHA1 6400014c5907df204c5c3916c799dbd57f47f49d t/data/trig-2013/trig-eval-bad-02.trig
SHA1 2e50cfc759ada9d565812d3fc15b93e58151ae9a t/data/trig-2013/trig-eval-bad-03.trig
SHA1 5b3c4d8f74d99e63939fc58924502446ebcfb535 t/data/trig-2013/trig-eval-bad-04.trig
SHA1 50b66b257367be25c03ac87416fd1792950baf2a t/data/trig-2013/trig-eval-struct-01.nq
SHA1 6225b4116d5f57329ab915860d6a113391f811e7 t/data/trig-2013/trig-eval-struct-01.trig
SHA1 5c8c5e0c76e9c67731ac42ed0725e1c2ffc4cff6 t/data/trig-2013/trig-eval-struct-02.nq
SHA1 c04a913f8a618185108efcf5f18e7f6a2e66f7ef t/data/trig-2013/trig-eval-struct-02.trig
SHA1 4d440870a791991b2d0d7cdd2cc621d6ea2d47b6 t/data/trig-2013/trig-subm-01.nq
SHA1 acc75850e7a3420ef0fa4f5770b373529025f9f3 t/data/trig-2013/trig-subm-01.trig
SHA1 4668e6f9c176c295fa2cf78560068022708e2438 t/data/trig-2013/trig-subm-02.nq
SHA1 6e96a66d7aa71644499809ae9d8923bd4cdacb9e t/data/trig-2013/trig-subm-02.trig
SHA1 eb87815d03d493632525fa98268545f4ff6e9535 t/data/trig-2013/trig-subm-03.nq
SHA1 83f1d5019a2cf2132e46698ec3333c54ac8c0088 t/data/trig-2013/trig-subm-03.trig
SHA1 6d74519c2e616d301c39226bc12b510a18312870 t/data/trig-2013/trig-subm-04.nq
SHA1 7328b80575f9ac443c7bd4f82000d4d6f8231e13 t/data/trig-2013/trig-subm-04.trig
SHA1 91c6596b0818884123de013698a935f59721e30b t/data/trig-2013/trig-subm-05.nq
SHA1 bf9d580aafef0d59c881a95484a0ad2f315d4712 t/data/trig-2013/trig-subm-05.trig
SHA1 44d7dccdae84b3a42766aafdda552bc9df62f36a t/data/trig-2013/trig-subm-06.nq
SHA1 d3764dc1fac3bdd7062957f642d04fe3c46c05fd t/data/trig-2013/trig-subm-06.trig
SHA1 4b3e6533645fcdc665ec418f78bf840cc4926be4 t/data/trig-2013/trig-subm-07.nq
SHA1 91469c540fe909430f2286210fb1753505dae468 t/data/trig-2013/trig-subm-07.trig
SHA1 ab0e1b607b6cf5e33de2d1062d2d6a8c534aea7e t/data/trig-2013/trig-subm-08.nq
SHA1 3e44a57d9a4ce433fb98c06d6ef80748ef45f83c t/data/trig-2013/trig-subm-08.trig
SHA1 20f8b37fbb5b86894d890cea3df5428aa2c6b385 t/data/trig-2013/trig-subm-09.nq
SHA1 d654797351aec78466b2916d3457439d2e9150e4 t/data/trig-2013/trig-subm-09.trig
SHA1 0868de5100bf1cbb8ef70e1ef08f7e42d3419190 t/data/trig-2013/trig-subm-10.nq
SHA1 593d569eff6db2a1c9a6c63c9a513d79b3db9fbd t/data/trig-2013/trig-subm-10.trig
SHA1 357df3b28b1bb65b0f32b55b95d243dee2deaf8d t/data/trig-2013/trig-subm-11.nq
SHA1 caeb54dbf84c313e0fc88157b14238f20cd6a1db t/data/trig-2013/trig-subm-11.trig
SHA1 c2db720c6205aa2a4e0507a3cf653a6c43bce014 t/data/trig-2013/trig-subm-12.nq
SHA1 c76d4f7f680b7af018a3af6e599cd51b54d15800 t/data/trig-2013/trig-subm-12.trig
SHA1 0a9d47a2facb0e4418ff835a5020c6643051f03f t/data/trig-2013/trig-subm-13.nq
SHA1 608fe6e49e209e941626f0ddfdd5e4ec0de5c71f t/data/trig-2013/trig-subm-13.trig
SHA1 c947ba440ce8ae46c5764ac65d088583acdaf50c t/data/trig-2013/trig-subm-14.nq
SHA1 ba04480bc23169d34224c8027d7b134e37f0e49c t/data/trig-2013/trig-subm-14.trig
SHA1 e9e23f8b5ad3560868f019a8ac1b171cef1308ed t/data/trig-2013/trig-subm-15.nq
SHA1 11d6484718736543a3c52d6fc076dc38bcf9dd47 t/data/trig-2013/trig-subm-15.trig
SHA1 87b98f93bc35b9d9cd53e13a47e1ae48834cd271 t/data/trig-2013/trig-subm-16.nq
SHA1 0b03111efbb72f1227591dede3b93c2a82c017b2 t/data/trig-2013/trig-subm-16.trig
SHA1 fdd08e8ac2cf7cbd3fe16ac5f19f8ce1beae09cd t/data/trig-2013/trig-subm-17.nq
SHA1 0e8018aa2c874a84dd0e97680e03ea6fffa9972e t/data/trig-2013/trig-subm-17.trig
SHA1 0cdb11643c662b7d7fd98bfb51df45d7d8516270 t/data/trig-2013/trig-subm-18.nq
SHA1 7140cd88fb04570433c6324c240f32afd014b890 t/data/trig-2013/trig-subm-18.trig
SHA1 fcd64f8a0da921a94ab4d6c45916479c1d08b94f t/data/trig-2013/trig-subm-19.nq
SHA1 38f5b7938a3c88b98f745cc3b6b467c5c7cb9b33 t/data/trig-2013/trig-subm-19.trig
SHA1 832ee2801713842aea54ed5bc25466be7ef34c94 t/data/trig-2013/trig-subm-20.nq
SHA1 0ae0d7515c93a973ab7109b1ecbcc7467c89b87f t/data/trig-2013/trig-subm-20.trig
SHA1 e89d0e7e36daad7ff55e00fc4b24beeb3af60c16 t/data/trig-2013/trig-subm-21.nq
SHA1 1c090e2fb492e71b297cb25980f8e73a9a2c58af t/data/trig-2013/trig-subm-21.trig
SHA1 998890198a687ea2ad57634c057d9aa5b80eec05 t/data/trig-2013/trig-subm-22.nq
SHA1 b136d8b8af8930643efa265c7a4a8494ff90238c t/data/trig-2013/trig-subm-22.trig
SHA1 a3d519f3917803e9b9b1f390b977918561333b18 t/data/trig-2013/trig-subm-23.nq
SHA1 bda04a2491aad15ab0f3b08aa1eee6a4a4c5403b t/data/trig-2013/trig-subm-23.trig
SHA1 fff9307a9de7041eb71aab47a840c18dfd61f566 t/data/trig-2013/trig-subm-24.nq
SHA1 4a445dc9e29f602a2b89e1ad30457d3035befd5b t/data/trig-2013/trig-subm-24.trig
SHA1 69037a14fcf66a1f07bba6a969e3f99254936fdc t/data/trig-2013/trig-subm-25.nq
SHA1 c6f593ec5a6ecd80b56101050b680808bb4d5e73 t/data/trig-2013/trig-subm-25.trig
SHA1 b1de4e68c9a9909cb86e65927215e11bb52aeb6b t/data/trig-2013/trig-subm-26.nq
SHA1 de5c929c2a251fe85f2adce3ab0b893ea4b434c3 t/data/trig-2013/trig-subm-26.trig
SHA1 f5bef4077776530f1cc23076ef4304a768e1981e t/data/trig-2013/trig-subm-27.nq
SHA1 763a5b523b3c83a106f1be01711204a028e7e029 t/data/trig-2013/trig-subm-27.trig
SHA1 e8f41c57bfb276eeac85123b005dad9bda575b04 t/data/trig-2013/trig-syntax-bad-LITERAL2_with_langtag_and_datatype.trig
SHA1 b181d677fc6d2615f8bd0a198e77aecb49e12a64 t/data/trig-2013/trig-syntax-bad-base-01.trig
SHA1 388782d45ccb4740b120b2e6a0049dec6dfebd5a t/data/trig-2013/trig-syntax-bad-base-02.trig
SHA1 0e817b7333d33da1d307e6ffaf7e94e831fbf18f t/data/trig-2013/trig-syntax-bad-base-03.trig
SHA1 7433acc413c2ef91c090622d058f0f99f3cd2b71 t/data/trig-2013/trig-syntax-bad-base-04.trig
SHA1 f7c9c29cf1536012101e1917a461e7db013b05b3 t/data/trig-2013/trig-syntax-bad-base-05.trig
SHA1 5107095dab0ab25c5fcb0e901a04c4bdf5605edf t/data/trig-2013/trig-syntax-bad-blank-label-dot-end.trig
SHA1 a9d855ba1eea876ea1aa69520baa44b5873e7c00 t/data/trig-2013/trig-syntax-bad-esc-01.trig
SHA1 68df53b07aa63328a90b64d98b5a3eb2aa6e295f t/data/trig-2013/trig-syntax-bad-esc-02.trig
SHA1 a28990938df4e46b767acb274e994b30c33b8232 t/data/trig-2013/trig-syntax-bad-esc-03.trig
SHA1 a28990938df4e46b767acb274e994b30c33b8232 t/data/trig-2013/trig-syntax-bad-esc-04.trig
SHA1 bd9eb0919268e66e4ed057dc4314ce8ab04648b8 t/data/trig-2013/trig-syntax-bad-kw-01.trig
SHA1 7c9c0207ded7acefef9ff2561e64c545601322f3 t/data/trig-2013/trig-syntax-bad-kw-02.trig
SHA1 f8668e6a945784d2c08647f5318055ebecb026b7 t/data/trig-2013/trig-syntax-bad-kw-03.trig
SHA1 b3f58843bb547900210b9a0684d49ede35fb05bb t/data/trig-2013/trig-syntax-bad-kw-04.trig
SHA1 e9c842dbf67400c5e77dedac64414a9e0754d097 t/data/trig-2013/trig-syntax-bad-kw-05.trig
SHA1 ea2d7f8fd536170cb14fe50ab20ac9cc81798796 t/data/trig-2013/trig-syntax-bad-lang-01.trig
SHA1 81dc72edda925028b2d5fc6f45671ca634f92afb t/data/trig-2013/trig-syntax-bad-ln-dash-start.trig
SHA1 a43ae7689671966bee9c8d480c6c9c37a7e50bfe t/data/trig-2013/trig-syntax-bad-ln-escape-start.trig
SHA1 d0c8b1c534c4c13158cea0242e9f8bb02584a93a t/data/trig-2013/trig-syntax-bad-ln-escape.trig
SHA1 f4f5dff90b0b5f1037a8ccefb06a77564991d014 t/data/trig-2013/trig-syntax-bad-missing-ns-dot-end.trig
SHA1 db10af8fffa0b936bf31e1a660228ec640494f57 t/data/trig-2013/trig-syntax-bad-missing-ns-dot-start.trig
SHA1 ebec43087dcd50bcd210937fbeef381b0e08a0bc t/data/trig-2013/trig-syntax-bad-n3-extras-01.trig
SHA1 f9c7759181322dd21b5ef845d822d870e8120126 t/data/trig-2013/trig-syntax-bad-n3-extras-02.trig
SHA1 1621d46f13eff280717f77c54920a534d401754e t/data/trig-2013/trig-syntax-bad-n3-extras-03.trig
SHA1 d388ec8c6619791e1ba7c0880a2898d36c0252b8 t/data/trig-2013/trig-syntax-bad-n3-extras-04.trig
SHA1 78311336b4e814ee6da968f9906f544ea8e423ff t/data/trig-2013/trig-syntax-bad-n3-extras-05.trig
SHA1 aafe700f2ed0922f979a143f5cd62c0e2f49ae62 t/data/trig-2013/trig-syntax-bad-n3-extras-06.trig
SHA1 aedb38f13919a5be93af8a6720aa66fe0876a9e3 t/data/trig-2013/trig-syntax-bad-n3-extras-07.trig
SHA1 aedb38f13919a5be93af8a6720aa66fe0876a9e3 t/data/trig-2013/trig-syntax-bad-n3-extras-08.trig
SHA1 8b7171af38935663dd43488c0fd61013f5b73388 t/data/trig-2013/trig-syntax-bad-n3-extras-09.trig
SHA1 7f5fcbd56ff4f0906647b71c6b8a12fa5e0755b9 t/data/trig-2013/trig-syntax-bad-n3-extras-10.trig
SHA1 b26891eef95d607f28f2e43db445ed162b1e5c62 t/data/trig-2013/trig-syntax-bad-n3-extras-11.trig
SHA1 1a44f948b28dc45af8ed869b26987a7d38ec0d71 t/data/trig-2013/trig-syntax-bad-n3-extras-12.trig
SHA1 22107312ff2aa723c5d84193cc22d9732dd3cc1a t/data/trig-2013/trig-syntax-bad-n3-extras-13.trig
SHA1 cbb8fc4f669970a9230f9f80c3acd86a7bf0f261 t/data/trig-2013/trig-syntax-bad-ns-dot-end.trig
SHA1 8469049708e48e558c5d5ed62a46c7ac057e4dfc t/data/trig-2013/trig-syntax-bad-ns-dot-start.trig
SHA1 68eb444f70c3fe866e15ad6c803b7d24dc3edbc1 t/data/trig-2013/trig-syntax-bad-num-01.trig
SHA1 ee5469fa98a2d49ac6fda6e9680cd3927c17e43d t/data/trig-2013/trig-syntax-bad-num-02.trig
SHA1 8ba9abb2dce4c3b99955b5662dd84c6e1e8218e8 t/data/trig-2013/trig-syntax-bad-num-03.trig
SHA1 f975f5a6666e1590ccc31dbd10c93931829e4112 t/data/trig-2013/trig-syntax-bad-num-04.trig
SHA1 8e477fd0f0b28424351f0af96a2ec323c6de0fa6 t/data/trig-2013/trig-syntax-bad-num-05.trig
SHA1 df062714e543520cd5e7aeaec6a9493a9b76af29 t/data/trig-2013/trig-syntax-bad-number-dot-in-anon.trig
SHA1 1a8d926bc5cfafd49b8738e83086b6877832624b t/data/trig-2013/trig-syntax-bad-pname-01.trig
SHA1 1ee0515381109cccbea93f22bb0146a39a7fe17a t/data/trig-2013/trig-syntax-bad-pname-02.trig
SHA1 5b9613f8b3ffc6a0c7c9c4953c908dae34b77967 t/data/trig-2013/trig-syntax-bad-pname-03.trig
SHA1 3b8ba6b45c5520065a979635d7481772bea891b9 t/data/trig-2013/trig-syntax-bad-prefix-01.trig
SHA1 9efbadcf54ac5edae4d7bfb5b98f84dee3acb256 t/data/trig-2013/trig-syntax-bad-prefix-02.trig
SHA1 65c8de7f74d212c908bbbfd24982075870edaebd t/data/trig-2013/trig-syntax-bad-prefix-03.trig
SHA1 ccc1c7be213ac0da83e16f32bd15b8b9db178b33 t/data/trig-2013/trig-syntax-bad-prefix-04.trig
SHA1 4546fed714b4c1a89f7b916fe3222fdab90d3efa t/data/trig-2013/trig-syntax-bad-prefix-05.trig
SHA1 e96cb93904f6c33ab753a291fe3f3ca1b1f52b77 t/data/trig-2013/trig-syntax-bad-prefix-06.trig
SHA1 cfa9780059f56dda94c2ea25495d2811a1c1b30b t/data/trig-2013/trig-syntax-bad-prefix-07.trig
SHA1 eb66ba0433463282d860608ee97a6cfdc67092d8 t/data/trig-2013/trig-syntax-bad-string-01.trig
SHA1 92578c83090e9034481a66e70b34680a6a4f369b t/data/trig-2013/trig-syntax-bad-string-02.trig
SHA1 6d11095623d7780c64cc1d0135c43a334e6e3640 t/data/trig-2013/trig-syntax-bad-string-03.trig
SHA1 04b86e0df230aab66be0c62e6e6835fcef4e17c0 t/data/trig-2013/trig-syntax-bad-string-04.trig
SHA1 9b7271bb5a96dfe436810f4fe3ae3af374ab0658 t/data/trig-2013/trig-syntax-bad-string-05.trig
SHA1 05ab81e1febbdc6c2fef1360c9741b897be077e6 t/data/trig-2013/trig-syntax-bad-string-06.trig
SHA1 afb484eac5de870912f2e85778ca5e9bfe087d0a t/data/trig-2013/trig-syntax-bad-string-07.trig
SHA1 eb9e3ab477ab1072f49514cb023a6a762b7be84f t/data/trig-2013/trig-syntax-bad-struct-02.trig
SHA1 def7978d084b1a78bf36b7a8c3cfaa1868036cd1 t/data/trig-2013/trig-syntax-bad-struct-03.trig
SHA1 3fac324b70b7f224c4b46c2734817d38d8712602 t/data/trig-2013/trig-syntax-bad-struct-04.trig
SHA1 acbd4d9570ee1caded2f1766f9a86b7b166271f1 t/data/trig-2013/trig-syntax-bad-struct-05.trig
SHA1 c5bce46285f6241e07ed35555c630dcc90a9e0fd t/data/trig-2013/trig-syntax-bad-struct-06.trig
SHA1 95e3abeb3a1b5ee0ff4e6788c6490f5711589093 t/data/trig-2013/trig-syntax-bad-struct-07.trig
SHA1 3a40358d9d7da1937ba24eca1a44fd837b5bc369 t/data/trig-2013/trig-syntax-bad-struct-09.trig
SHA1 6b4366949a451334bcab528c0eeac7e19da0db14 t/data/trig-2013/trig-syntax-bad-struct-10.trig
SHA1 65293e674a51be500f067db09ecdf5b4147804b9 t/data/trig-2013/trig-syntax-bad-struct-12.trig
SHA1 65293e674a51be500f067db09ecdf5b4147804b9 t/data/trig-2013/trig-syntax-bad-struct-13.trig
SHA1 040292c7fd4386e3d5451ba739b4ea654b2f3ece t/data/trig-2013/trig-syntax-bad-struct-14.trig
SHA1 5f9870f2996d332eb78b65b0102b5c02ce1b75f2 t/data/trig-2013/trig-syntax-bad-struct-15.trig
SHA1 1fcf8d55fe65b3791d32b53ae9260f50ea5e004b t/data/trig-2013/trig-syntax-bad-struct-16.trig
SHA1 b9c289e0c3268383c93cf98b42b6e65ed8d573e2 t/data/trig-2013/trig-syntax-bad-struct-17.trig
SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/data/trig-2013/trig-syntax-bad-turtle-01.trig
SHA1 2b54bbfc82fcda3db80272fc5daa4803a698c49a t/data/trig-2013/trig-syntax-bad-uri-01.trig
SHA1 6fda18fbbd17ef9302f5a7cbd1a5d1cc35372a50 t/data/trig-2013/trig-syntax-bad-uri-02.trig
SHA1 dcb8fd09158c4a8465860b669278547708a67a39 t/data/trig-2013/trig-syntax-bad-uri-03.trig
SHA1 ace5c304e7da9f00a100e878241ea95e413dbb4f t/data/trig-2013/trig-syntax-bad-uri-04.trig
SHA1 4062165d2539f060e69e8ec23241ae0eab5824c8 t/data/trig-2013/trig-syntax-bad-uri-05.trig
SHA1 8e0c2d8e0f23a436d838464ff0ab8a66343bc32f t/data/trig-2013/trig-syntax-base-01.trig
SHA1 61f625d4f8382b3b92f6fce8f2a52bc0b711afd9 t/data/trig-2013/trig-syntax-base-02.trig
SHA1 6665fa1810b8b8f686bf0f18b95b39445868d3a8 t/data/trig-2013/trig-syntax-base-03.trig
SHA1 133ca133dd2cd54e46c56976107b4dbc9f52de7b t/data/trig-2013/trig-syntax-base-04.trig
SHA1 266d991d777467488ff1097a8087637648112ea5 t/data/trig-2013/trig-syntax-blank-label.trig
SHA1 b12386a6b270f41bb58ad7bd52caf1b4c3ada4ae t/data/trig-2013/trig-syntax-bnode-01.trig
SHA1 bdb404a0a946749e2d49cfe022f6f0c6be31dcd4 t/data/trig-2013/trig-syntax-bnode-02.trig
SHA1 5dd53e1fc7432602fb2851848f9d501079bbbbc7 t/data/trig-2013/trig-syntax-bnode-03.trig
SHA1 b0d7f302e713439c60a8893c0fd2ac5b6e313045 t/data/trig-2013/trig-syntax-bnode-04.trig
SHA1 fbc77f46d961764892129e4f712e43ad8f0eeb63 t/data/trig-2013/trig-syntax-bnode-05.trig
SHA1 5ec9b4836a010ee92d7ddc07b175aca44e768583 t/data/trig-2013/trig-syntax-bnode-06.trig
SHA1 9d1bb81c33d974913bb7da04187301a30714230b t/data/trig-2013/trig-syntax-bnode-07.trig
SHA1 9c93f00ac93facfb961d2f6c9ff5e4a9a512398b t/data/trig-2013/trig-syntax-bnode-08.trig
SHA1 f010255deac2428e5e666669639fbdfe35b20edc t/data/trig-2013/trig-syntax-bnode-09.trig
SHA1 26222eb89dfc3eed1ca528277ba24afd45717bcd t/data/trig-2013/trig-syntax-bnode-10.trig
SHA1 8b4567aa8010bee5349b73dc1a6bd399593461d1 t/data/trig-2013/trig-syntax-datatypes-01.trig
SHA1 54bf691e47b276026b65c34d07274f1592aa461d t/data/trig-2013/trig-syntax-datatypes-02.trig
SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/data/trig-2013/trig-syntax-file-01.trig
SHA1 286ce15d32430d10a688b26d578a73098fa4ce99 t/data/trig-2013/trig-syntax-file-02.trig
SHA1 fb49efc00b3a08add143156f08929ae2e9e65627 t/data/trig-2013/trig-syntax-file-03.trig
SHA1 24c86ff9366ceae98e62775b20f1d288318d5f29 t/data/trig-2013/trig-syntax-kw-01.trig
SHA1 72d097b142e97adcb7283635dfda146cdfe5a6a3 t/data/trig-2013/trig-syntax-kw-02.trig
SHA1 f93f4b865dc808b09d5215dabc12870082265e00 t/data/trig-2013/trig-syntax-kw-03.trig
SHA1 c182c56d16418c07e68ce5c7dd9c09b87ea7978f t/data/trig-2013/trig-syntax-lists-01.trig
SHA1 4c621f91ccacfd34721df87f8860d26f26579354 t/data/trig-2013/trig-syntax-lists-02.trig
SHA1 b25648b23c039cf21e8f282704344c2072ee1599 t/data/trig-2013/trig-syntax-lists-03.trig
SHA1 a5abeda0c7b987aba6f89bb430c35507896823bc t/data/trig-2013/trig-syntax-lists-04.trig
SHA1 cfbd31f3a43b105685455fc16f103f0aaa20e267 t/data/trig-2013/trig-syntax-lists-05.trig
SHA1 a978ee3b260aaa892f21ba6409626c4cd1e5ea7d t/data/trig-2013/trig-syntax-ln-colons.trig
SHA1 426c3e740c11b81770f710e3a327aff9be49e3b2 t/data/trig-2013/trig-syntax-ln-dots.trig
SHA1 d10249762a76638f460f6c2b5ce4005f005e143e t/data/trig-2013/trig-syntax-ns-dots.trig
SHA1 43b7070b23390c5ab87ff122f6067a085f7c818c t/data/trig-2013/trig-syntax-number-01.trig
SHA1 9357b793630f63d0b3dd60cdaf08424dae50dc97 t/data/trig-2013/trig-syntax-number-02.trig
SHA1 96d6c588099a8df3a77e47dba65ede48bbf06c94 t/data/trig-2013/trig-syntax-number-03.trig
SHA1 7ce733c465b22edf74c6e53c27e0e4be7bd8d96a t/data/trig-2013/trig-syntax-number-04.trig
SHA1 89713bb4148cae0b6e9a209284a6f91fc66bed3c t/data/trig-2013/trig-syntax-number-05.trig
SHA1 a2624f1991f3351cd4d4c5a4371bd3fdfc2463e5 t/data/trig-2013/trig-syntax-number-06.trig
SHA1 dc2e998bddf8030e2ddb74f96a1397a25cd81c73 t/data/trig-2013/trig-syntax-number-07.trig
SHA1 e493c7f1b9e4310641c8f885c70ce857e6080b5f t/data/trig-2013/trig-syntax-number-08.trig
SHA1 fa70616be704ed5a03af5d9339d922e8d358664f t/data/trig-2013/trig-syntax-number-09.trig
SHA1 084d5bde008234cc08e54b0b10e62fd7d9651818 t/data/trig-2013/trig-syntax-number-10.trig
SHA1 c45f04f3693d9d461cd1be775554c289a586646e t/data/trig-2013/trig-syntax-number-11.trig
SHA1 96892a062880f2c92e9a8b63bb9dacccbe0b0c40 t/data/trig-2013/trig-syntax-pname-esc-01.trig
SHA1 2db9d961b43892d5b661d7380a0d0f1074509e8e t/data/trig-2013/trig-syntax-pname-esc-02.trig
SHA1 f63a9bfbb7d88380c2f91d7e16830aeae6e69ca3 t/data/trig-2013/trig-syntax-pname-esc-03.trig
SHA1 611277677c7cf3cce31bc10bf93438756357c3ca t/data/trig-2013/trig-syntax-prefix-01.trig
SHA1 bfcab57a84b174299b62ccc028b383841a583437 t/data/trig-2013/trig-syntax-prefix-02.trig
SHA1 d44d39f9a57ee7246f596dbe977882269ee33bd8 t/data/trig-2013/trig-syntax-prefix-03.trig
SHA1 5ac168d8a04f4c4aed4f0dcd40046723f5918215 t/data/trig-2013/trig-syntax-prefix-04.trig
SHA1 ea650cfec49a61cd619c620998324c02c1990297 t/data/trig-2013/trig-syntax-prefix-05.trig
SHA1 3395b27ae8f6b92b2c763b1fefc2d3cc284f2278 t/data/trig-2013/trig-syntax-prefix-06.trig
SHA1 316b68a717e040e9ff5c0cd85536e2b763ac08c6 t/data/trig-2013/trig-syntax-prefix-07.trig
SHA1 43c31444781724bf6c1d583c58acf80fd014efc1 t/data/trig-2013/trig-syntax-prefix-08.trig
SHA1 4a93ddd341e95fa95b17b63b52642195f142e688 t/data/trig-2013/trig-syntax-prefix-09.trig
SHA1 ff21946a9c6eb55fe080ff59074e33fdae68982d t/data/trig-2013/trig-syntax-str-esc-01.trig
SHA1 15b3edc2a8910f54e4c32006ad90fcbd684d3f48 t/data/trig-2013/trig-syntax-str-esc-02.trig
SHA1 4103bf795fabd42e3ce8bdd829497616963265b6 t/data/trig-2013/trig-syntax-str-esc-03.trig
SHA1 89888e7dba927e978fd69767f586162f8fe36607 t/data/trig-2013/trig-syntax-string-01.trig
SHA1 19b92c78e31f6efa283973ee56a18f631fc12bc1 t/data/trig-2013/trig-syntax-string-02.trig
SHA1 33384af7fc3709b1cdbe7323886f1910a790342a t/data/trig-2013/trig-syntax-string-03.trig
SHA1 95126a2d0dc2a534c19bb6cee4d6f2ba1a41cfd4 t/data/trig-2013/trig-syntax-string-04.trig
SHA1 ba44cccd37b8dc7cc7b4f5a15a07d5c5f9f73e0d t/data/trig-2013/trig-syntax-string-05.trig
SHA1 4073eb4cbea4ac6c12084c98f9951e23e3bf19a1 t/data/trig-2013/trig-syntax-string-06.trig
SHA1 c4414b58fd7c53654db01edcf7cf95556f7f31fd t/data/trig-2013/trig-syntax-string-07.trig
SHA1 9ff6c3135e1ce2391621fe36ea7f05d4f87563df t/data/trig-2013/trig-syntax-string-08.trig
SHA1 5bbb5e444113144e75fa0f390c48b30468e93238 t/data/trig-2013/trig-syntax-string-09.trig
SHA1 8c39d14ce11dda633d2ff866af42c194a179fe36 t/data/trig-2013/trig-syntax-string-10.trig
SHA1 af3b253409af76408200b7600578604678e8ff0b t/data/trig-2013/trig-syntax-string-11.trig
SHA1 43e138c36ca329c5897eda672f5f8069f89f0199 t/data/trig-2013/trig-syntax-struct-01.trig
SHA1 461983e32468a897cc3dc17cde844b9abb0cdc13 t/data/trig-2013/trig-syntax-struct-02.trig
SHA1 65563b279e2ce1f9d4cfcb76778a709f1c467d9f t/data/trig-2013/trig-syntax-struct-03.trig
SHA1 1555cf99d9c1bc55e3446e8cb7d9c61517dbeebd t/data/trig-2013/trig-syntax-struct-04.trig
SHA1 bfe780cd2ef8a042fe1676a674bf82abf9d4cc8f t/data/trig-2013/trig-syntax-struct-05.trig
SHA1 242d257bbf405c1b26e42f4662e825fe40977fe3 t/data/trig-2013/trig-syntax-struct-06.trig
SHA1 edbda031afad0a7d6c8d11091a33fe8b16f3a530 t/data/trig-2013/trig-syntax-struct-07.trig
SHA1 3caf21316478c031bbb7d3ce384264f54ba3e1e4 t/data/trig-2013/trig-syntax-uri-01.trig
SHA1 4a6bcb1dd6db44e6dbbcc8c8b3cc103876360b01 t/data/trig-2013/trig-syntax-uri-02.trig
SHA1 0782ebd0c1c85063f5d1d1cb4a9a08cc45e905bf t/data/trig-2013/trig-syntax-uri-03.trig
SHA1 4f332861e8f97c80e964019a7205570f2ee450c7 t/data/trig-2013/trig-syntax-uri-04.trig
SHA1 801e8c6dd214106c52958550b3d31cb6943a1005 t/data/trig-2013/two_LITERAL_LONG2s.nq
SHA1 c04ef45922e3caedb3083408ff5bdf67078bb2fa t/data/trig-2013/two_LITERAL_LONG2s.trig
SHA1 e8390eeaea0da3830e936a8b954d38c5665383bf t/data/trig-2013/underscore_in_localName.nq
SHA1 f37f4c29df10ab7e80ed912d0c9ab3b19bf29ace t/data/trig-2013/underscore_in_localName.trig
SHA1 a31cb8345d5232930af0e2f807288a32f1712bc0 t/data/turtle-2013/HYPHEN_MINUS_in_localName.nt
SHA1 7822e6612fea34eaafcfc1bc32a4a8b8fb089f62 t/data/turtle-2013/HYPHEN_MINUS_in_localName.ttl
SHA1 4cf2746a20212d35a0bf193c3c1e40d7e788d8e7 t/data/turtle-2013/IRIREF_datatype.nt
SHA1 4cf2746a20212d35a0bf193c3c1e40d7e788d8e7 t/data/turtle-2013/IRIREF_datatype.ttl
SHA1 e7694a52cf393e8e9056fbb8e15fc58df75836c4 t/data/turtle-2013/IRI_spo.nt
SHA1 e7694a52cf393e8e9056fbb8e15fc58df75836c4 t/data/turtle-2013/IRI_subject.ttl
SHA1 e6ab698ca8f920824b09aea6255b424badc71f49 t/data/turtle-2013/IRI_with_all_punctuation.nt
SHA1 e6ab698ca8f920824b09aea6255b424badc71f49 t/data/turtle-2013/IRI_with_all_punctuation.ttl
SHA1 250ff6b5ec8c1649bce3db9be423fa3f1c65e51c t/data/turtle-2013/IRI_with_eight_digit_numeric_escape.ttl
SHA1 35bf9f3e4a6f715037e19d531e8cdc7f1daebf67 t/data/turtle-2013/IRI_with_four_digit_numeric_escape.ttl
SHA1 a88f037134ac8b4cb7cc897173f19368a6822c4a t/data/turtle-2013/LICENSE
SHA1 2617507cac0c80b963c0e392bfb06dfb97bfb2b9 t/data/turtle-2013/LITERAL1.nt
SHA1 09b1bffffa0b862ec0230ff92a1b49424eb5d3bb t/data/turtle-2013/LITERAL1.ttl
SHA1 44d34e69e4105ef536eb921f45123a82c5cfd1fa t/data/turtle-2013/LITERAL1_all_controls.nt
SHA1 0966e0b0cc44fd74bcbc6514dbe645d9187b99f7 t/data/turtle-2013/LITERAL1_all_controls.ttl
SHA1 4bb0eb49b507c7ec2ca10013195112548ef75724 t/data/turtle-2013/LITERAL1_all_punctuation.nt
SHA1 7e7bacb20f2a019c9dc8db73a2a57a4fc36daebe t/data/turtle-2013/LITERAL1_all_punctuation.ttl
SHA1 e58e732912a8ca331ab0e811995257a0ffdf5259 t/data/turtle-2013/LITERAL1_ascii_boundaries.nt
SHA1 49e5e94294dee93d2a142591b74d907436228fd3 t/data/turtle-2013/LITERAL1_ascii_boundaries.ttl
SHA1 925f6ad6cd65419938da61a26e494e673c5299a6 t/data/turtle-2013/LITERAL1_with_UTF8_boundaries.ttl
SHA1 14ded326360c8d49b5d7d74c7974d591dde6b2b0 t/data/turtle-2013/LITERAL1_with_UTF8_boundaries.ttl.new
SHA1 2617507cac0c80b963c0e392bfb06dfb97bfb2b9 t/data/turtle-2013/LITERAL2.ttl
SHA1 f7cd56beb1908c3c04e6f90557be4dec8153bec4 t/data/turtle-2013/LITERAL2_ascii_boundaries.nt
SHA1 523c3b209fdf5d2a8765cfad685611cbb1aea5ef t/data/turtle-2013/LITERAL2_ascii_boundaries.ttl
SHA1 aacffd15bca29b431ded3b3c2668824aa9ed9601 t/data/turtle-2013/LITERAL2_with_UTF8_boundaries.ttl
SHA1 9e36fdf720f387fc25edee5f225052e17e3183ab t/data/turtle-2013/LITERAL_LONG1.ttl
SHA1 797fe4088118247fe416449e3dfe79a21e3b2cf4 t/data/turtle-2013/LITERAL_LONG1_ascii_boundaries.nt
SHA1 5b4590f608d179d5dd65e51c2d9119d27905ef60 t/data/turtle-2013/LITERAL_LONG1_ascii_boundaries.ttl
SHA1 0ba9545de25d9538e8eb9204a215d7b82bb27ae2 t/data/turtle-2013/LITERAL_LONG1_with_1_squote.nt
SHA1 eb43ce8fc00d5952c98c725511caa6593e47e3e7 t/data/turtle-2013/LITERAL_LONG1_with_1_squote.ttl
SHA1 25283372bdc408df717750a08b17d48adef3dd3a t/data/turtle-2013/LITERAL_LONG1_with_2_squotes.nt
SHA1 59b89ec08f154086f9cf0979f0c4bef675eac57f t/data/turtle-2013/LITERAL_LONG1_with_2_squotes.ttl
SHA1 9f93169e41799422234760747a23976cd21fa62a t/data/turtle-2013/LITERAL_LONG1_with_UTF8_boundaries.ttl
SHA1 75b4a1b93878129092b9b25ee87379856b0b35c8 t/data/turtle-2013/LITERAL_LONG2.ttl
SHA1 c4bbd7125b1973d350401674487fa7d2347a2c2f t/data/turtle-2013/LITERAL_LONG2_ascii_boundaries.nt
SHA1 e3376bfdbd3a82b35b8d9acbad71371db8484524 t/data/turtle-2013/LITERAL_LONG2_ascii_boundaries.ttl
SHA1 c43f1bdb297e8b48e06876df1ba739f3a4430fd1 t/data/turtle-2013/LITERAL_LONG2_with_1_squote.nt
SHA1 a3cd6238ce77448b54ad470927b2c73c5f6dd235 t/data/turtle-2013/LITERAL_LONG2_with_1_squote.ttl
SHA1 2d703930352a01087c06d56ff086ec48d996dd81 t/data/turtle-2013/LITERAL_LONG2_with_2_squotes.nt
SHA1 2fb08db49dc44e6db35487492cd5d2d38f8b900b t/data/turtle-2013/LITERAL_LONG2_with_2_squotes.ttl
SHA1 e2f1d7fe53660161209022aa9c01485084e2427d t/data/turtle-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt
SHA1 89fcbfc5821154dc2bb05a1d88148f983e77290f t/data/turtle-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl
SHA1 0f305c0a5ab2631909faed24977ac102ad328537 t/data/turtle-2013/LITERAL_LONG2_with_UTF8_boundaries.ttl
SHA1 f29927ee5fe8739a47e176bf85cd74a0132cbeaa t/data/turtle-2013/LITERAL_with_UTF8_boundaries.nt
SHA1 95dd623f88157539fea120fe78c93e51f93a8704 t/data/turtle-2013/README
SHA1 7b6fdf8f6df3a2f5f2813b5b3b80af2420e388be t/data/turtle-2013/SPARQL_style_base.ttl
SHA1 772f92b5ac055cb96267e4e4caa0932c2ee911cf t/data/turtle-2013/SPARQL_style_prefix.ttl
SHA1 9f8e695dcb90f55314512c22cb53c2947cef2132 t/data/turtle-2013/anonymous_blank_node_object.ttl
SHA1 39c28e79b04584ab647e61f33e3921a085df3722 t/data/turtle-2013/anonymous_blank_node_subject.ttl
SHA1 14c29995ad9a6fe6ebe1ca9cce0fc8c0ee7b519f t/data/turtle-2013/bareword_a_predicate.nt
SHA1 63df83cb950e71c76b2b1e950fd4bf7bf1992b4e t/data/turtle-2013/bareword_a_predicate.ttl
SHA1 9ffb0d0880c4d9add6f843419831152ce0ff2f34 t/data/turtle-2013/bareword_decimal.nt
SHA1 73fad953a74f3aed2beba827b7ad87a75136ca05 t/data/turtle-2013/bareword_decimal.ttl
SHA1 23f1c9c903a6109c09a6b31d48606f9f0b526aa4 t/data/turtle-2013/bareword_double.nt
SHA1 a3b69fd58082f56d2cb9b99ce78f64e99d92a3f9 t/data/turtle-2013/bareword_double.ttl
SHA1 b76b19ff1fa535f6fbba78852ac45b6093aec08d t/data/turtle-2013/bareword_integer.ttl
SHA1 766f63d7a40a34f348a1b3f0b647df5bcf57312c t/data/turtle-2013/blankNodePropertyList_as_object.nt
SHA1 b32085a12f3f5f808e5aa874471869edd116b59e t/data/turtle-2013/blankNodePropertyList_as_object.ttl
SHA1 946e23cc46b1a5ae98a314ca631be2c7fd20c6d2 t/data/turtle-2013/blankNodePropertyList_as_subject.nt
SHA1 7003eb46804fd4041fd9bfa640c161244ceb875d t/data/turtle-2013/blankNodePropertyList_as_subject.ttl
SHA1 4da081c60d8b4bfe9c7b32bc9d0f1c53f3564fe3 t/data/turtle-2013/blankNodePropertyList_containing_collection.nt
SHA1 e10a2102c8be3b28a37a8b96140eb2c04fab0ccf t/data/turtle-2013/blankNodePropertyList_containing_collection.ttl
SHA1 9b4bf2eebd9900b26c1927b10fb00dbaaba367d4 t/data/turtle-2013/blankNodePropertyList_with_multiple_triples.nt
SHA1 b6e14bc12424805537f330612b2ff0889b2db32b t/data/turtle-2013/blankNodePropertyList_with_multiple_triples.ttl
SHA1 0757ad4558f3d77756b6569346443dfffb1fe232 t/data/turtle-2013/collection_object.nt
SHA1 0de0b86d783977634c35b1793bbf4fa79ec1e6c3 t/data/turtle-2013/collection_object.ttl
SHA1 e92f8bbbaf7a42952add0b0793b3db5f4441b8bf t/data/turtle-2013/collection_subject.nt
SHA1 a26d0bd30ea3c95eb3b13f2c848deadb984a7c5c t/data/turtle-2013/collection_subject.ttl
SHA1 0abec1b3eabcdca364f9abf7c3fd8ef4e3d8c4c9 t/data/turtle-2013/comment_following_PNAME_NS.nt
SHA1 d6248911611949bb807f24a02f7b5fbc4d3c703c t/data/turtle-2013/comment_following_PNAME_NS.ttl
SHA1 42f4081f22a7be67051c0ef547c81815380298e0 t/data/turtle-2013/comment_following_localName.ttl
SHA1 c88bcd814fe934c85bd7a1d43c0d623c28c481e0 t/data/turtle-2013/default_namespace_IRI.ttl
SHA1 03f1c9d6ab96800a3ce1326eddbc5f1398d328a0 t/data/turtle-2013/double_lower_case_e.nt
SHA1 2d0cc4ceb1227cbcd4008bebe9a8577d5afd4706 t/data/turtle-2013/double_lower_case_e.ttl
SHA1 b29be1ab937bebee7df2069206faa1fe24d1372c t/data/turtle-2013/empty_collection.nt
SHA1 22a983d6d0dc6bb46d726046cdedb3e5cf0d07d2 t/data/turtle-2013/empty_collection.ttl
SHA1 c97be9c69e743dd3084f64400e905533c7a79b0a t/data/turtle-2013/first.nt
SHA1 ead42ac0e7b2783ac0ca9b7aae6c21f071e5ae0f t/data/turtle-2013/first.ttl
SHA1 ccfc91ea8fa5617fea02ccdf4c069f63c5f259ad t/data/turtle-2013/labeled_blank_node_object.nt
SHA1 2681b2fa75b088cfd4c89fd56a138fb6d58c9e5b t/data/turtle-2013/labeled_blank_node_object.ttl
SHA1 f6c9b364f3ed3bcc264f200a413198666094d7ca t/data/turtle-2013/labeled_blank_node_subject.nt
SHA1 337f713c673934e84068cbc06d8b6aa2c66905c6 t/data/turtle-2013/labeled_blank_node_subject.ttl
SHA1 9d1c90cff5f0988f2680bd83ed6b1603fe7c4118 t/data/turtle-2013/labeled_blank_node_with_PN_CHARS_BASE_character_boundaries.ttl
SHA1 68c1488b0166c8788568ecf586aa85799fd59a6b t/data/turtle-2013/labeled_blank_node_with_leading_digit.ttl
SHA1 7b236641cd155d1412918dd0062f0653c06ba2b1 t/data/turtle-2013/labeled_blank_node_with_leading_underscore.ttl
SHA1 5e0de54ca88796ccd118c278be64adf1551b7a59 t/data/turtle-2013/labeled_blank_node_with_non_leading_extras.ttl
SHA1 287e1b3acd3234a924f99a2cf74c33548b08c90d t/data/turtle-2013/langtagged_LONG.ttl
SHA1 7b46c6ee4b73f83ffcaeec26b1e58da0beaf46de t/data/turtle-2013/langtagged_LONG_with_subtag.nt
SHA1 503fed6d94b31538c6e010e5a0fcb0f413f94aae t/data/turtle-2013/langtagged_LONG_with_subtag.ttl
SHA1 bbafa594602d9a42eb3bd4caaed54bae9d186f38 t/data/turtle-2013/langtagged_non_LONG.nt
SHA1 bbafa594602d9a42eb3bd4caaed54bae9d186f38 t/data/turtle-2013/langtagged_non_LONG.ttl
SHA1 0dc475bbae9defdcd49e1493e981e3c2a3877ee8 t/data/turtle-2013/lantag_with_subtag.nt
SHA1 0dc475bbae9defdcd49e1493e981e3c2a3877ee8 t/data/turtle-2013/lantag_with_subtag.ttl
SHA1 e06a1c74f72925de2047afa8e3e9c36b54507107 t/data/turtle-2013/last.nt
SHA1 47272c6d782ffea8c64725dada0e3ea4129b6d71 t/data/turtle-2013/last.ttl
SHA1 9497aa0b8373a1fa1a441ce9ddccc42bd9aaeadc t/data/turtle-2013/literal_false.nt
SHA1 2adec463234ca953f7399e8ba123334f2269fd9e t/data/turtle-2013/literal_false.ttl
SHA1 904fb171ad28fb07fba18ea997a118e4622e90f4 t/data/turtle-2013/literal_true.nt
SHA1 6a3994f0ee6abb44c43effc589110b187a406d8f t/data/turtle-2013/literal_true.ttl
SHA1 2a07361557088cc699f36a5f718eac78827b3271 t/data/turtle-2013/literal_with_BACKSPACE.nt
SHA1 df08830bde82f2d07fa80283a76d205e204c74c1 t/data/turtle-2013/literal_with_BACKSPACE.ttl
SHA1 82cf6b4385d0df4081e112b68356934557d33e2b t/data/turtle-2013/literal_with_CARRIAGE_RETURN.nt
SHA1 c67cacc34c0d3a97cfc82058751cbf8bb330947c t/data/turtle-2013/literal_with_CARRIAGE_RETURN.ttl
SHA1 043a67500eef188a16776298728988ef879a022e t/data/turtle-2013/literal_with_CHARACTER_TABULATION.nt
SHA1 23d2f62066381e5ce30548ed83abace6d9bff032 t/data/turtle-2013/literal_with_CHARACTER_TABULATION.ttl
SHA1 79dd71bfd1ccedae87bb6ba8b799276fe89f5356 t/data/turtle-2013/literal_with_FORM_FEED.nt
SHA1 57a6601d7c23b7ce645a1af8f4271a25234d2376 t/data/turtle-2013/literal_with_FORM_FEED.ttl
SHA1 343a9490afb11d5b04debbec58d99f454e509435 t/data/turtle-2013/literal_with_LINE_FEED.nt
SHA1 43d7c172b940e663d3321158f8bf9bd06b57fbfb t/data/turtle-2013/literal_with_LINE_FEED.ttl
SHA1 19d7772db1ac29f1f4324849c7175f0e33f96b1c t/data/turtle-2013/literal_with_REVERSE_SOLIDUS.nt
SHA1 30945684e58cb0fff6f7d435bf492f1bbae5cbae t/data/turtle-2013/literal_with_REVERSE_SOLIDUS.ttl
SHA1 c615f8e43914e706bb272d11fb9af2d6e68ac68b t/data/turtle-2013/literal_with_escaped_BACKSPACE.ttl
SHA1 86bc1320914b8f9e2bf26a4824db7674cae859b7 t/data/turtle-2013/literal_with_escaped_CARRIAGE_RETURN.ttl
SHA1 f95b4855f9e8a16b2185e9949cf6cd3ae824019e t/data/turtle-2013/literal_with_escaped_CHARACTER_TABULATION.ttl
SHA1 cd68ddf7884ddcba1be278c026ebde14f8d02760 t/data/turtle-2013/literal_with_escaped_FORM_FEED.ttl
SHA1 5ac34c77b2b6f09fcc8a0a403fa9abcc5ba75a02 t/data/turtle-2013/literal_with_escaped_LINE_FEED.ttl
SHA1 8b9751a6c0b5c9b27cd6e078edde65a7770b2900 t/data/turtle-2013/literal_with_numeric_escape4.nt
SHA1 bb52d3964d8ede60b507077141f3dcb5ef04d76e t/data/turtle-2013/literal_with_numeric_escape4.ttl
SHA1 f5a00224f35b78c92df528e54c32417aa9f741b5 t/data/turtle-2013/literal_with_numeric_escape8.ttl
SHA1 df4ef960d48972239d27e88b8b2b6cc7a0cccd46 t/data/turtle-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.nt
SHA1 90a1a7dd0a8607b23dc35a30a54b81ae8bf18374 t/data/turtle-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.ttl
SHA1 da05ef724b01c76e96e52d4d9a3a95f8d14c1147 t/data/turtle-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.nt
SHA1 955f02af97d6a783347402ac8d7eadfbe614700e t/data/turtle-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.ttl
SHA1 2331774f136a8a49a7f0ccd6761993dab35902e9 t/data/turtle-2013/localName_with_leading_digit.nt
SHA1 4655e4381b789dc152741f9213964079b8df91e8 t/data/turtle-2013/localName_with_leading_digit.ttl
SHA1 a19db2f1d8f8d2f09e6da735a0c3ee9a28ee8e1e t/data/turtle-2013/localName_with_leading_underscore.nt
SHA1 e6c174481553a250a11cf18e9663b7b4283e6584 t/data/turtle-2013/localName_with_leading_underscore.ttl
SHA1 526548fc580d408c907488cc0695ead05789f861 t/data/turtle-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.nt
SHA1 4fe5d2a4c1e3bf01b3cbb6a586ae9268f7140a2f t/data/turtle-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.ttl
SHA1 7bd676b726087ebeddf1474dafbee2f7a679d243 t/data/turtle-2013/localName_with_non_leading_extras.nt
SHA1 da10172fbe53ce073e8d07a197ebc63c40343295 t/data/turtle-2013/localName_with_non_leading_extras.ttl
SHA1 c8618e938ce7fa5bee45bdfc138e48e41c0c1ce9 t/data/turtle-2013/localname_with_COLON.nt
SHA1 57c7ac60f35959e803f43b5bd6daa1708456c81b t/data/turtle-2013/localname_with_COLON.ttl
SHA1 814e978cf6b3a22ea2c32a36db140cce801574f9 t/data/turtle-2013/manifest.ttl
SHA1 354ecd885c0c7535c048d020892394497e316d1b t/data/turtle-2013/negative_numeric.nt
SHA1 3f982aabb39bc51a183a1d1debc771bba9ad12ae t/data/turtle-2013/negative_numeric.ttl
SHA1 f684e23db65800a8ff0d72ca04954eb89871afab t/data/turtle-2013/nested_blankNodePropertyLists.nt
SHA1 ff975a47e7e1170bdf08a2076783c1cfcbe751d8 t/data/turtle-2013/nested_blankNodePropertyLists.ttl
SHA1 24db0883182088db39bfa4857a87276a22b63e09 t/data/turtle-2013/nested_collection.nt
SHA1 aef70d809d562d14952fcb8ee7637d9a5a034ab7 t/data/turtle-2013/nested_collection.ttl
SHA1 fefbadca4522d0e98c185e6f70c69b6e9bc07b15 t/data/turtle-2013/number_sign_following_PNAME_NS.nt
SHA1 eef9be6b60b5df2bce09cae520a3d9266d78194b t/data/turtle-2013/number_sign_following_PNAME_NS.ttl
SHA1 fd1997186035779e45019ad7da30ce2d488ea2cd t/data/turtle-2013/number_sign_following_localName.nt
SHA1 122fe3f9a71b5a0e2ad770680edf86eae02d8d0e t/data/turtle-2013/number_sign_following_localName.ttl
SHA1 529ecfac6754c8e01abc0ec18de2cb2367c74835 t/data/turtle-2013/numeric_with_leading_0.nt
SHA1 4ca0b8153edfd6de092727a28e3a354e80a82b16 t/data/turtle-2013/numeric_with_leading_0.ttl
SHA1 c773ac6299a7299666029009e233f0a256ab36fd t/data/turtle-2013/objectList_with_two_objects.nt
SHA1 5b55e50be8e9bc8bbff096f48a0b699537f9dd03 t/data/turtle-2013/objectList_with_two_objects.ttl
SHA1 a39c878b730837631e219298bc8009b1ecbb065d t/data/turtle-2013/old_style_base.ttl
SHA1 e521432e4ee17ce8311d8097fcfd0217ab2fe604 t/data/turtle-2013/old_style_prefix.ttl
SHA1 fcdbc3a3047d095caddf71664233b4f58d1130a0 t/data/turtle-2013/percent_escaped_localName.nt
SHA1 e6008bbe1dc2d0035d8a4ca82bf9b75baa09f222 t/data/turtle-2013/percent_escaped_localName.ttl
SHA1 84bc3b7daa55bba7a65d4df3e18f0bb45b6e6c14 t/data/turtle-2013/positive_numeric.nt
SHA1 605a813f096ce0f102457848935872a3ce2998ca t/data/turtle-2013/positive_numeric.ttl
SHA1 e42b34d4b589ab645621eae016579b0c2b86bc1c t/data/turtle-2013/predicateObjectList_with_two_objectLists.nt
SHA1 b0479442b00b5e4577af3519712e2f452b471aeb t/data/turtle-2013/predicateObjectList_with_two_objectLists.ttl
SHA1 52cbaf16ab84e03a23386cd7d5ba17c26f6569cb t/data/turtle-2013/prefix_only_IRI.ttl
SHA1 7f9525730d35c070f0a6267453f66aabd71adf89 t/data/turtle-2013/prefix_reassigned_and_used.nt
SHA1 e6210414f0d2324e1d57028096cbfa0b7c9c2bbb t/data/turtle-2013/prefix_reassigned_and_used.ttl
SHA1 a8eb1c6e1697763bdfa7c2536a6302efbc6eabc3 t/data/turtle-2013/prefix_with_PN_CHARS_BASE_character_boundaries.ttl
SHA1 75f96c58f375168d1fa09a88388ae29411e5b16a t/data/turtle-2013/prefix_with_non_leading_extras.ttl
SHA1 a52cd048ae26adc9553b14f0d59aeea4e94a9d62 t/data/turtle-2013/prefixed_IRI_object.ttl
SHA1 8312ee66ca596ea2bfb6a602400744d3281e0625 t/data/turtle-2013/prefixed_IRI_predicate.ttl
SHA1 5821185e5c081a10e7acfeb77631157847cfdd69 t/data/turtle-2013/prefixed_name_datatype.ttl
SHA1 13c967af3e1057f710d3944d8ae9d0fc2dd88374 t/data/turtle-2013/repeated_semis_at_end.ttl
SHA1 988c755c43eca7233a0eb9df1abf93c13b4a2171 t/data/turtle-2013/repeated_semis_not_at_end.nt
SHA1 ab0afc61120eb2b350e1e98372cfd43ae0940dfd t/data/turtle-2013/repeated_semis_not_at_end.ttl
SHA1 7801b769c0a6ccaf3ce7fc8f131d4d17276d6475 t/data/turtle-2013/reserved_escaped_localName.nt
SHA1 7d5bc2e5a64f18203058bee16df247e25dc44a33 t/data/turtle-2013/reserved_escaped_localName.ttl
SHA1 0792fad84f841bfb0ab572eff21fafe5f52df159 t/data/turtle-2013/sole_blankNodePropertyList.ttl
SHA1 c3adb540c802c5c46fcb83531fc08993618ef64e t/data/turtle-2013/turtle-eval-bad-01.ttl
SHA1 604715954e90bf6dcf96bc3776600f2d4536bd93 t/data/turtle-2013/turtle-eval-bad-02.ttl
SHA1 131995f20e5a78f4b8b2a2924bc4eed6dae30725 t/data/turtle-2013/turtle-eval-bad-03.ttl
SHA1 dd0069137af1405f06f0cbda616876234ca08408 t/data/turtle-2013/turtle-eval-bad-04.ttl
SHA1 b9a531bc1e56f3c32adb30300a062d8a3dd86be9 t/data/turtle-2013/turtle-eval-struct-01.nt
SHA1 b9a531bc1e56f3c32adb30300a062d8a3dd86be9 t/data/turtle-2013/turtle-eval-struct-01.ttl
SHA1 78e091e5dbc5cca58a55749f3b19982dae8ad9c0 t/data/turtle-2013/turtle-eval-struct-02.nt
SHA1 9958c2e769d74529e90fb0edf20a657f29cdbed7 t/data/turtle-2013/turtle-eval-struct-02.ttl
SHA1 cf58a81256eb9baccb37be4e640a57b490cbbae4 t/data/turtle-2013/turtle-subm-01.nt
SHA1 772f7667ebfdf1abc15d97cf1b48e75222e6e93b t/data/turtle-2013/turtle-subm-01.ttl
SHA1 cdb4cbb82ffcc77ee2a40e18a0655b23250b7206 t/data/turtle-2013/turtle-subm-02.nt
SHA1 d6467790c29516cdc514dedc21cb8c4bc4dcaf23 t/data/turtle-2013/turtle-subm-02.ttl
SHA1 9c0ab53f13594152d35a1e7d2048de753513f54e t/data/turtle-2013/turtle-subm-03.nt
SHA1 5c0bda0a03e1f24ec156e5853c6046bf4a3e3843 t/data/turtle-2013/turtle-subm-03.ttl
SHA1 b8eab2b1e165606de045ccf6ecd334924a667b77 t/data/turtle-2013/turtle-subm-04.nt
SHA1 ef853f76edefc71e871c7058cdf45d4a74b6701d t/data/turtle-2013/turtle-subm-04.ttl
SHA1 9e11ad6568c77570faac5f8de74312109cf74415 t/data/turtle-2013/turtle-subm-05.nt
SHA1 470ee0ef3ac80e29802e2df2cdac39281731b8af t/data/turtle-2013/turtle-subm-05.ttl
SHA1 6b2546df454087509e79c5925546eb0dde30ae07 t/data/turtle-2013/turtle-subm-06.nt
SHA1 77cc8b8b31938a217ddab84aad01ec187146dfef t/data/turtle-2013/turtle-subm-06.ttl
SHA1 96ce55350cb0f8160a265bd796dc973e9bc7d57f t/data/turtle-2013/turtle-subm-07.nt
SHA1 15a0e4ab3fee06fc6f025aad237072973f85f2ac t/data/turtle-2013/turtle-subm-07.ttl
SHA1 f251d2e928651b830feae876a7e8d9f013753851 t/data/turtle-2013/turtle-subm-08.nt
SHA1 74e65a32eaacd7e1f14c080e66ef0bb8a5d00449 t/data/turtle-2013/turtle-subm-08.ttl
SHA1 72f6b011ef13535bc274ebe89a043f0ab3d11251 t/data/turtle-2013/turtle-subm-09.nt
SHA1 d6b6ad5aa3ce3e27f7a3db5ee906e988852d145f t/data/turtle-2013/turtle-subm-09.ttl
SHA1 10a47a27e7303ace3d1c9f9a4102ed19d06a739f t/data/turtle-2013/turtle-subm-10.nt
SHA1 17f0b6972a77713361f12df38ceea3310623ffbe t/data/turtle-2013/turtle-subm-10.ttl
SHA1 2ef0998e0e0eb49c3f10e5562a928e5f0cb37ace t/data/turtle-2013/turtle-subm-11.nt
SHA1 b4f16d672a4ab77d7e4c3092d3067afd3aea3196 t/data/turtle-2013/turtle-subm-11.ttl
SHA1 02fe5b354c628c6ed40f804afd3f39fd0a07ca79 t/data/turtle-2013/turtle-subm-12.nt
SHA1 380cff16ec65aa6645bc3505a6f68d44f06370ea t/data/turtle-2013/turtle-subm-12.ttl
SHA1 1200e45eed3f6639742779ed9b8440918e14d11d t/data/turtle-2013/turtle-subm-13.nt
SHA1 972c7247a7c9ea5cdef8cc4279cf74ed104a7ef8 t/data/turtle-2013/turtle-subm-13.ttl
SHA1 03719e1a5696b304a4eee5a76ee19a75892afacd t/data/turtle-2013/turtle-subm-14.nt
SHA1 1c1f4084b35d0f11b46b76c18ddc176bbb4164a8 t/data/turtle-2013/turtle-subm-14.ttl
SHA1 b8329fdf1dbae64a0148d11970c1a352804a3564 t/data/turtle-2013/turtle-subm-15.nt
SHA1 c710f8ebf9700e198e8ad8340bd22e97dab70ff5 t/data/turtle-2013/turtle-subm-15.ttl
SHA1 5de4d860b0806d866bbf3d5c512829d4a76a1c37 t/data/turtle-2013/turtle-subm-16.nt
SHA1 63d70a2496d54c758c3966ddedc6c1ffd65fff68 t/data/turtle-2013/turtle-subm-16.ttl
SHA1 bf8f4966a8e5c4e6d577ab166f9b3a06679fcd23 t/data/turtle-2013/turtle-subm-17.nt
SHA1 4e4f4b9b7cc0901dc571779e03592808ccedd479 t/data/turtle-2013/turtle-subm-17.ttl
SHA1 c0efe8db5e5e89f22240846b8de2c5c76dcefa01 t/data/turtle-2013/turtle-subm-18.nt
SHA1 6ea36ef5813da6ada5bcf1d2b42c6b9b3f9c3627 t/data/turtle-2013/turtle-subm-18.ttl
SHA1 f405537d4b08df9418a5ae38ce5389e4a88e1571 t/data/turtle-2013/turtle-subm-19.nt
SHA1 4693156d5f9197a18fa38193bc9e094721bc330a t/data/turtle-2013/turtle-subm-19.ttl
SHA1 046cda8caf6ba481a3f7db0110a135e2c8e4dd2a t/data/turtle-2013/turtle-subm-20.nt
SHA1 526f55124f7c0040b71b92f22a9dc7a70b26f009 t/data/turtle-2013/turtle-subm-20.ttl
SHA1 4247adb7c6586fe9ad7cc528a25a548c163d8aa2 t/data/turtle-2013/turtle-subm-21.nt
SHA1 ccd0e04a0b04dc378fa33111889ea02785682c60 t/data/turtle-2013/turtle-subm-21.ttl
SHA1 295342abee33b92912a11a6ba4d7b0f3e2f8fc49 t/data/turtle-2013/turtle-subm-22.nt
SHA1 445ee20d387fc1b3f0e16b4e19cf40644325601f t/data/turtle-2013/turtle-subm-22.ttl
SHA1 084b67277a1e3f8d19a75506d62894d78ad78f77 t/data/turtle-2013/turtle-subm-23.nt
SHA1 da1c9ab6b7731a9dbfcf96ddee77c63c54838a48 t/data/turtle-2013/turtle-subm-23.ttl
SHA1 ca41efeffab1ed343c8bc6e2676e1b3768cb7d64 t/data/turtle-2013/turtle-subm-24.nt
SHA1 fbb6f8763b4b8d842676cf74f223c539ba94b0ae t/data/turtle-2013/turtle-subm-24.ttl
SHA1 67a437427388956fdc9a245d720606b339cfef7c t/data/turtle-2013/turtle-subm-25.nt
SHA1 c7ea2691b335336a289025657b26667222be61fc t/data/turtle-2013/turtle-subm-25.ttl
SHA1 b1de4e68c9a9909cb86e65927215e11bb52aeb6b t/data/turtle-2013/turtle-subm-26.nt
SHA1 b1de4e68c9a9909cb86e65927215e11bb52aeb6b t/data/turtle-2013/turtle-subm-26.ttl
SHA1 835954090634c0fd6e27618fee2c39664a7d9618 t/data/turtle-2013/turtle-subm-27.nt
SHA1 40b4a0ce9e611ecf93473bcf70cd73b282adbf9f t/data/turtle-2013/turtle-subm-27.ttl
SHA1 f5d08d1a63ba69e4a75d3e22729cf998565dd6ee t/data/turtle-2013/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl
SHA1 b181d677fc6d2615f8bd0a198e77aecb49e12a64 t/data/turtle-2013/turtle-syntax-bad-base-01.ttl
SHA1 2ac556f28fa61e74a840ba57343809f3c0431a1e t/data/turtle-2013/turtle-syntax-bad-base-02.ttl
SHA1 6578274742d47ba3a76fc6bde3c190d6cf746364 t/data/turtle-2013/turtle-syntax-bad-base-03.ttl
SHA1 eea10f6a9d6378910ae65543a008f9db42ce93df t/data/turtle-2013/turtle-syntax-bad-blank-label-dot-end.ttl
SHA1 d2834599b97e40652ed7488978c953a944f257da t/data/turtle-2013/turtle-syntax-bad-esc-01.ttl
SHA1 7d26bdde1c719371023020a5c2e06be2e3de5e57 t/data/turtle-2013/turtle-syntax-bad-esc-02.ttl
SHA1 bf53e2e378679b3afb7741447428e547472c434f t/data/turtle-2013/turtle-syntax-bad-esc-03.ttl
SHA1 bf53e2e378679b3afb7741447428e547472c434f t/data/turtle-2013/turtle-syntax-bad-esc-04.ttl
SHA1 f8bda4b2ec1c143bfb0b07c3b21f2406d431cf61 t/data/turtle-2013/turtle-syntax-bad-kw-01.ttl
SHA1 8acef6299a28b319b0686b2f8103457b1a6c1ec6 t/data/turtle-2013/turtle-syntax-bad-kw-02.ttl
SHA1 9a977eb0fd2c986f2aff1a60e055bbc277cbc18b t/data/turtle-2013/turtle-syntax-bad-kw-03.ttl
SHA1 fa6f1fc07268edfe497224cbc9b789f57de73a19 t/data/turtle-2013/turtle-syntax-bad-kw-04.ttl
SHA1 697a8647cf844f8e06c83ccce636dc680cca0635 t/data/turtle-2013/turtle-syntax-bad-kw-05.ttl
SHA1 cc61a973fc0356e259edf2896321d82ff0248506 t/data/turtle-2013/turtle-syntax-bad-lang-01.ttl
SHA1 b33730b5b201c4e17bb81584fa1b9b8024363373 t/data/turtle-2013/turtle-syntax-bad-ln-dash-start.ttl
SHA1 8422c27ca567f444e7bf47df183f6543f710cb1c t/data/turtle-2013/turtle-syntax-bad-ln-escape-start.ttl
SHA1 d220602a35a8114e0cd690e559ea37c2ae033792 t/data/turtle-2013/turtle-syntax-bad-ln-escape.ttl
SHA1 c73a7692f2b52c1934464c41ebbe1a071d6c7d43 t/data/turtle-2013/turtle-syntax-bad-missing-ns-dot-end.ttl
SHA1 36213c23780eaa3bb73f4a42c6e2db0b56dafb00 t/data/turtle-2013/turtle-syntax-bad-missing-ns-dot-start.ttl
SHA1 add7717ec9484edf1688012a94ca9469597cb04b t/data/turtle-2013/turtle-syntax-bad-n3-extras-01.ttl
SHA1 4dc018699851063d91ee02083bc0229955ce0575 t/data/turtle-2013/turtle-syntax-bad-n3-extras-02.ttl
SHA1 a413a3daaade3195749da63f0474594067ef4678 t/data/turtle-2013/turtle-syntax-bad-n3-extras-03.ttl
SHA1 4cc04e615a763d72916e10fcefa66fccb59122ac t/data/turtle-2013/turtle-syntax-bad-n3-extras-04.ttl
SHA1 8b4e3b0d2b977adc0bb6cf77228def11a17ef1a6 t/data/turtle-2013/turtle-syntax-bad-n3-extras-05.ttl
SHA1 41c779a4a3c1624d4e6ae421152b347e61a866aa t/data/turtle-2013/turtle-syntax-bad-n3-extras-06.ttl
SHA1 a82aeb530a0d0541befd39596b2dd50f5c6f0a8b t/data/turtle-2013/turtle-syntax-bad-n3-extras-07.ttl
SHA1 a82aeb530a0d0541befd39596b2dd50f5c6f0a8b t/data/turtle-2013/turtle-syntax-bad-n3-extras-08.ttl
SHA1 b82af8021f2d605c78af5e85814e471176180776 t/data/turtle-2013/turtle-syntax-bad-n3-extras-09.ttl
SHA1 84274dd7ccbb2dde1e0c674744655608d3cbe5af t/data/turtle-2013/turtle-syntax-bad-n3-extras-10.ttl
SHA1 8822dacc1c4dae66d6f9dd053959e2860fed303f t/data/turtle-2013/turtle-syntax-bad-n3-extras-11.ttl
SHA1 b5e0fee2f8bc17188aab2b306a3f77254b5b72d7 t/data/turtle-2013/turtle-syntax-bad-n3-extras-12.ttl
SHA1 94c3bc91e1c4c3ce2481590d4aad345ad92fe36c t/data/turtle-2013/turtle-syntax-bad-n3-extras-13.ttl
SHA1 902a0048c57eefa9f3671c357ac801e6880d4212 t/data/turtle-2013/turtle-syntax-bad-ns-dot-end.ttl
SHA1 413b936a5d0362d97fb4a8c6b08cafee021b2be4 t/data/turtle-2013/turtle-syntax-bad-ns-dot-start.ttl
SHA1 cb0a6ec19575ce371d323ac3f2b8ba5fad8668e1 t/data/turtle-2013/turtle-syntax-bad-num-01.ttl
SHA1 364f491701e2dcb0e8d1a83f1cb936f3be30a5a1 t/data/turtle-2013/turtle-syntax-bad-num-02.ttl
SHA1 c46c67b5119ed4d25095e0c13e0952ff3ad2c59c t/data/turtle-2013/turtle-syntax-bad-num-03.ttl
SHA1 14d12490914bbfa55142ae72ca450843866646ed t/data/turtle-2013/turtle-syntax-bad-num-04.ttl
SHA1 cee320a6efcda185ab9979e21b0a3ffd0a7e9cc5 t/data/turtle-2013/turtle-syntax-bad-num-05.ttl
SHA1 90e81d92d9dc4e005401adafa05aed46888aae21 t/data/turtle-2013/turtle-syntax-bad-number-dot-in-anon.ttl
SHA1 340e12d93003dba2d316c16d5aa022f54f515dde t/data/turtle-2013/turtle-syntax-bad-pname-01.ttl
SHA1 3636383006f303e8e83171c9bb2c093056ae7934 t/data/turtle-2013/turtle-syntax-bad-pname-02.ttl
SHA1 ffd3676895f3274bfd7098eb5d034007d72f40d9 t/data/turtle-2013/turtle-syntax-bad-pname-03.ttl
SHA1 6ce4f89ba71cdb327a7b301c7da385e87bc6096e t/data/turtle-2013/turtle-syntax-bad-prefix-01.ttl
SHA1 7c5089cd696bc4ffb5e11b73f433145ed505d853 t/data/turtle-2013/turtle-syntax-bad-prefix-02.ttl
SHA1 65c8de7f74d212c908bbbfd24982075870edaebd t/data/turtle-2013/turtle-syntax-bad-prefix-03.ttl
SHA1 a9fb2ba58489d2c64fed70438d58de49cb9414a0 t/data/turtle-2013/turtle-syntax-bad-prefix-04.ttl
SHA1 8a110cfef70cf7b1b4bab19ea1d95bbdc73281ee t/data/turtle-2013/turtle-syntax-bad-prefix-05.ttl
SHA1 2a91a0f07c809ecd9a0d989a006c92aed06b75e8 t/data/turtle-2013/turtle-syntax-bad-string-01.ttl
SHA1 76a43b335a23f90e5c8ca253352e3fdbd5cde572 t/data/turtle-2013/turtle-syntax-bad-string-02.ttl
SHA1 c5852942ea78d62fc4feecd1e839d9c226163b76 t/data/turtle-2013/turtle-syntax-bad-string-03.ttl
SHA1 7e1abf1e107eb926d2cd00c45f58dcc3d208e644 t/data/turtle-2013/turtle-syntax-bad-string-04.ttl
SHA1 eae46b52e43769be50a6512b2e7e76279352eeaa t/data/turtle-2013/turtle-syntax-bad-string-05.ttl
SHA1 6f5b58a3ded0ff7a275e2927cc4b3e2c3e64f6c7 t/data/turtle-2013/turtle-syntax-bad-string-06.ttl
SHA1 6751d1a6a509a33a12f49bbcabf98bb98fca7473 t/data/turtle-2013/turtle-syntax-bad-string-07.ttl
SHA1 f0835d29a9a2309cb93f4f2df33c7128fe90c08c t/data/turtle-2013/turtle-syntax-bad-struct-01.ttl
SHA1 78c29208dee3fd4bab1d90e043eda08048f616de t/data/turtle-2013/turtle-syntax-bad-struct-02.ttl
SHA1 eab54ac6fc0111219c94ccf7a4973e293b054e16 t/data/turtle-2013/turtle-syntax-bad-struct-03.ttl
SHA1 0d6afeeed2facadc6e05e2e9096133c1484da2cc t/data/turtle-2013/turtle-syntax-bad-struct-04.ttl
SHA1 ee7f068399816a58e56962dbf07d1bd0fded7f43 t/data/turtle-2013/turtle-syntax-bad-struct-05.ttl
SHA1 b01b78a38f4a77c6b2957258a39f2c1bec7806d6 t/data/turtle-2013/turtle-syntax-bad-struct-06.ttl
SHA1 b5c3200518dc8dc79a3e9d3abc56d58f9a05186f t/data/turtle-2013/turtle-syntax-bad-struct-07.ttl
SHA1 f8c640c2ea385c94d9c2d4e05e3da3b4154d76fb t/data/turtle-2013/turtle-syntax-bad-struct-08.ttl
SHA1 e212ab038a952f2706be5d26e9936f4475797b97 t/data/turtle-2013/turtle-syntax-bad-struct-09.ttl
SHA1 aba76a675da1be30c8ed65b4536269f854b0fde5 t/data/turtle-2013/turtle-syntax-bad-struct-10.ttl
SHA1 291d51f09296c2c2038f210f934e0c1ed8259f97 t/data/turtle-2013/turtle-syntax-bad-struct-11.ttl
SHA1 d3842385883e0e91df43c53a156d85756599b478 t/data/turtle-2013/turtle-syntax-bad-struct-12.ttl
SHA1 d3842385883e0e91df43c53a156d85756599b478 t/data/turtle-2013/turtle-syntax-bad-struct-13.ttl
SHA1 15b1444ad8bea3121dd0aa45c31e001ba4fd7722 t/data/turtle-2013/turtle-syntax-bad-struct-14.ttl
SHA1 d72d160e4e148a529371a20ffef359ccf3af881b t/data/turtle-2013/turtle-syntax-bad-struct-15.ttl
SHA1 3dcef8f463ecf8b5fb8e55431542be2dabeaa3b6 t/data/turtle-2013/turtle-syntax-bad-struct-16.ttl
SHA1 054e5dfaf6ade37f27c7c827f916d48d5dfd876b t/data/turtle-2013/turtle-syntax-bad-struct-17.ttl
SHA1 ad91b8ca45fbf84919bc5deb9c308f5f3c9dcfce t/data/turtle-2013/turtle-syntax-bad-uri-01.ttl
SHA1 c0d44d0a16359b11c5f9201b7cb92228f2b73eaa t/data/turtle-2013/turtle-syntax-bad-uri-02.ttl
SHA1 cac0459dc2f4757ec43d70a1834dc2908fde18f2 t/data/turtle-2013/turtle-syntax-bad-uri-03.ttl
SHA1 fb97e52c83dc5252225a1083a4c84920218466e6 t/data/turtle-2013/turtle-syntax-bad-uri-04.ttl
SHA1 f1e9590c1eb0cb7741281a40bf88c2f7618c2c07 t/data/turtle-2013/turtle-syntax-bad-uri-05.ttl
SHA1 340b85508377f9cde4f331b6cee10c8c89e46607 t/data/turtle-2013/turtle-syntax-base-01.ttl
SHA1 8881b8208d3a564e1f700e3d253cf6f242299457 t/data/turtle-2013/turtle-syntax-base-02.ttl
SHA1 5fabb5a6a1f849edca851454b9d2893a5201e66d t/data/turtle-2013/turtle-syntax-base-03.ttl
SHA1 015299401e1463f64638ef4aa54b1f402fc17216 t/data/turtle-2013/turtle-syntax-base-04.ttl
SHA1 bf0d005c49f692caff4cf37b9f01f8f3619cb589 t/data/turtle-2013/turtle-syntax-blank-label.ttl
SHA1 ae2f1b918154327662ccbbd77ec857d0e9e18408 t/data/turtle-2013/turtle-syntax-bnode-01.ttl
SHA1 e58452e9ad3f2d3dab8b7ebb797bd2eb0ab166e6 t/data/turtle-2013/turtle-syntax-bnode-02.ttl
SHA1 15a1e12d6a02c801ff99176380704499fb867022 t/data/turtle-2013/turtle-syntax-bnode-03.ttl
SHA1 172cb61429d1e86f3e5ee300fd17daf2ddbee1ed t/data/turtle-2013/turtle-syntax-bnode-04.ttl
SHA1 315398a84565e44fdbdb3243df925f7c265afa85 t/data/turtle-2013/turtle-syntax-bnode-05.ttl
SHA1 746fc36d1c0d081c4c68cb920127cdecdfbc1682 t/data/turtle-2013/turtle-syntax-bnode-06.ttl
SHA1 37cf5e6c4e33c24c236d02b647cfdabe7559cbe3 t/data/turtle-2013/turtle-syntax-bnode-07.ttl
SHA1 54c8f90938b6dd2eb14c74976c3e6d4da510600c t/data/turtle-2013/turtle-syntax-bnode-08.ttl
SHA1 53e39add9ce00231d9d982ff2fe66fcc0ad533b4 t/data/turtle-2013/turtle-syntax-bnode-09.ttl
SHA1 909511139c803141b6fcf8679471761940c1d707 t/data/turtle-2013/turtle-syntax-bnode-10.ttl
SHA1 b8c57192a8fadf64a35614804a0eddabd9067935 t/data/turtle-2013/turtle-syntax-datatypes-01.ttl
SHA1 7bdc3cc651881d15ed50f4e764a6835cf5029159 t/data/turtle-2013/turtle-syntax-datatypes-02.ttl
SHA1 da39a3ee5e6b4b0d3255bfef95601890afd80709 t/data/turtle-2013/turtle-syntax-file-01.ttl
SHA1 286ce15d32430d10a688b26d578a73098fa4ce99 t/data/turtle-2013/turtle-syntax-file-02.ttl
SHA1 fb49efc00b3a08add143156f08929ae2e9e65627 t/data/turtle-2013/turtle-syntax-file-03.ttl
SHA1 542ce1128c605c62ec7dd669859ffaa2e483d495 t/data/turtle-2013/turtle-syntax-kw-01.ttl
SHA1 60142ddfa840dc273241e1310a931386fbb1b331 t/data/turtle-2013/turtle-syntax-kw-02.ttl
SHA1 d7e991405507e51fb418f29891c0be8f810f575e t/data/turtle-2013/turtle-syntax-kw-03.ttl
SHA1 0e57d950628237b42e0c5f0a9f7d78c8b6045646 t/data/turtle-2013/turtle-syntax-lists-01.ttl
SHA1 feda87ec70469d03c054eaf3cbcde2d049dcc66f t/data/turtle-2013/turtle-syntax-lists-02.ttl
SHA1 f3be59b7ca9c69e47a4e76b731307f51e4a434f5 t/data/turtle-2013/turtle-syntax-lists-03.ttl
SHA1 50da41af18c4d0f50e274b1941b01ebcf9a3cc65 t/data/turtle-2013/turtle-syntax-lists-04.ttl
SHA1 8542846df2c453d9fc4a58b749bfbe5909aa4c9c t/data/turtle-2013/turtle-syntax-lists-05.ttl
SHA1 7a58bae17b488123bb086fd7256ea767379f60ee t/data/turtle-2013/turtle-syntax-ln-colons.ttl
SHA1 892311f1dfe9ea045ca31a6abe0a2b45bb0bb45a t/data/turtle-2013/turtle-syntax-ln-dots.ttl
SHA1 10a4b310cc5962babc7d569a9031f5cec43e057e t/data/turtle-2013/turtle-syntax-ns-dots.ttl
SHA1 97b45d8b29952c7a51983d8a0ec45dad8accaab4 t/data/turtle-2013/turtle-syntax-number-01.ttl
SHA1 cb43094efe76b71538992c146fafc10c397bf070 t/data/turtle-2013/turtle-syntax-number-02.ttl
SHA1 4e80509f6676821490269ed33ffc2a784350e9c3 t/data/turtle-2013/turtle-syntax-number-03.ttl
SHA1 347b1fd6cec5418bd67edc993c08477fc066f344 t/data/turtle-2013/turtle-syntax-number-04.ttl
SHA1 5e1c9ec92709165683d0bd4ed2f17429cec6649b t/data/turtle-2013/turtle-syntax-number-05.ttl
SHA1 df2436147b6201d642dd8eaac1a9c9a0b885d366 t/data/turtle-2013/turtle-syntax-number-06.ttl
SHA1 d075594d555e73ce3b0b640ebb74eedc98649188 t/data/turtle-2013/turtle-syntax-number-07.ttl
SHA1 d75f8169070b6df6fd1c4b7e9ca87c1bc8360683 t/data/turtle-2013/turtle-syntax-number-08.ttl
SHA1 e8159185fed0bd72b2b5e300e892a376e4db6962 t/data/turtle-2013/turtle-syntax-number-09.ttl
SHA1 156de62ea62e050d3005c90d863ad83e80e26a61 t/data/turtle-2013/turtle-syntax-number-10.ttl
SHA1 4d6703afa58c5353842ecc1da00eb28e293f9700 t/data/turtle-2013/turtle-syntax-number-11.ttl
SHA1 5af58fdfeea762d1cf4a8dfb53a379f74408d783 t/data/turtle-2013/turtle-syntax-pname-esc-01.ttl
SHA1 9f5cd16f4cb6f13f6b8ed387275649e052e7f404 t/data/turtle-2013/turtle-syntax-pname-esc-02.ttl
SHA1 835c38b7c2800d2571b453971bc8ea4836491162 t/data/turtle-2013/turtle-syntax-pname-esc-03.ttl
SHA1 24fe985da6000ffe2b669b914e5c86d54342cab6 t/data/turtle-2013/turtle-syntax-prefix-01.ttl
SHA1 08faf6e7cecc66cec8e6232f6c884dcefea27ce6 t/data/turtle-2013/turtle-syntax-prefix-02.ttl
SHA1 224ee697c28c9f05ccacb95ff066a70e56cc1121 t/data/turtle-2013/turtle-syntax-prefix-03.ttl
SHA1 067d4746a19104069bdb597c1fe58bbd42f52da5 t/data/turtle-2013/turtle-syntax-prefix-04.ttl
SHA1 1a64666be673577f337dd296f04e9ce3a5a837cf t/data/turtle-2013/turtle-syntax-prefix-05.ttl
SHA1 a483c571eb42cb22efc77346ec56b00e61f74cb5 t/data/turtle-2013/turtle-syntax-prefix-06.ttl
SHA1 1748de1ba60d5fe398e7ce2ddb36aee6260a6cd7 t/data/turtle-2013/turtle-syntax-prefix-07.ttl
SHA1 23dc28711e884ec8a8aae6eebcf1513ae8080a68 t/data/turtle-2013/turtle-syntax-prefix-08.ttl
SHA1 9d4ebebbdbcab786eb5403e177553ad21020a871 t/data/turtle-2013/turtle-syntax-prefix-09.ttl
SHA1 6398fbd02491c8bac8e7caaf480627accafd64d8 t/data/turtle-2013/turtle-syntax-str-esc-01.ttl
SHA1 4418ca81026ce1015722ef80d37df71033cfdeeb t/data/turtle-2013/turtle-syntax-str-esc-02.ttl
SHA1 0e341103445041658ab1c63ec84c55dada5370d5 t/data/turtle-2013/turtle-syntax-str-esc-03.ttl
SHA1 5f7c6319468d7be4ef3e86a76215ace9f0182caa t/data/turtle-2013/turtle-syntax-string-01.ttl
SHA1 425450c3e6a288d975fae94c1f840b26e0e87ef5 t/data/turtle-2013/turtle-syntax-string-02.ttl
SHA1 074fe4e508f18cf942d5b3efd7ca99bd5842b5ab t/data/turtle-2013/turtle-syntax-string-03.ttl
SHA1 f2db718cc301770b87f33bc84d974b8ac6d2cb21 t/data/turtle-2013/turtle-syntax-string-04.ttl
SHA1 197eadd08c73a12221f231849a93877cae43c042 t/data/turtle-2013/turtle-syntax-string-05.ttl
SHA1 99075f216d3358b7eb2096f5373e2468ffc06c15 t/data/turtle-2013/turtle-syntax-string-06.ttl
SHA1 15762992c0990d4ac45013f01eb26f96db03c8b6 t/data/turtle-2013/turtle-syntax-string-07.ttl
SHA1 dba1befacbc1ea5b890dd03e1b0e0f424ea185f5 t/data/turtle-2013/turtle-syntax-string-08.ttl
SHA1 d12d984b18e9eca8664a3d818a67caea3331503b t/data/turtle-2013/turtle-syntax-string-09.ttl
SHA1 4874d357ca032e74402c65460d9f4abb1232b8d7 t/data/turtle-2013/turtle-syntax-string-10.ttl
SHA1 7627045fd407fe2a0994f2417897ece828b707f2 t/data/turtle-2013/turtle-syntax-string-11.ttl
SHA1 94bdd344279a1c951a7c2572764df4e78ba22bc2 t/data/turtle-2013/turtle-syntax-struct-01.ttl
SHA1 21c0c34880d20a8a27df45154f83a2f16d7f3c14 t/data/turtle-2013/turtle-syntax-struct-02.ttl
SHA1 81ce8bbc5bd08efba4b41b55b03b922cd4069a0f t/data/turtle-2013/turtle-syntax-struct-03.ttl
SHA1 c71c9b70dc6701cc2fe077609319542a4d788994 t/data/turtle-2013/turtle-syntax-struct-04.ttl
SHA1 1aaa428a94fe703fc512ce4f290c0171e611a3cc t/data/turtle-2013/turtle-syntax-struct-05.ttl
SHA1 b9a531bc1e56f3c32adb30300a062d8a3dd86be9 t/data/turtle-2013/turtle-syntax-uri-01.ttl
SHA1 72c3e14ad8d6e52f231a344077648710d7222f8c t/data/turtle-2013/turtle-syntax-uri-02.ttl
SHA1 ddf38440540914eb77a56291116112665d7008c0 t/data/turtle-2013/turtle-syntax-uri-03.ttl
SHA1 a68067a01ffb1ff17500188491494f60697e0b95 t/data/turtle-2013/turtle-syntax-uri-04.ttl
SHA1 801e8c6dd214106c52958550b3d31cb6943a1005 t/data/turtle-2013/two_LITERAL_LONG2s.nt
SHA1 59b2b8bf81509438ccc3c8cc7fb90b8b7babe28c t/data/turtle-2013/two_LITERAL_LONG2s.ttl
SHA1 e8390eeaea0da3830e936a8b954d38c5665383bf t/data/turtle-2013/underscore_in_localName.nt
SHA1 ddc3ea019cf67d2ff127a66abc9fd684743cb75e t/data/turtle-2013/underscore_in_localName.ttl
SHA1 297ec58e16e6510dbd692d7e39adacc4a10c25ce t/data/turtle/bad-00.ttl
SHA1 fdb25bfdf60a902e812a131242d9433032d02093 t/data/turtle/bad-01.ttl
SHA1 6a01793cdd40761b88c3465146d008fac2cb963a t/data/turtle/bad-02.ttl
SHA1 670d1fa7e71bea54d37bd32257e417216b691f3d t/data/turtle/bad-03.ttl
SHA1 690d318f63b019bc02571ac9ce0162403db067f8 t/data/turtle/bad-04.ttl
SHA1 e3c35def56a9d08fea5efb83a09fa6f28c6c9ec2 t/data/turtle/bad-05.ttl
SHA1 b59609bca0aaa7ec32077a50c09377359d19c725 t/data/turtle/bad-06.ttl
SHA1 6be8b06c58d59d1f0ab65def30a280be37c82eb0 t/data/turtle/bad-07.ttl
SHA1 8fcc794a0d1e4c3c220d5323c273a5fa5b07c502 t/data/turtle/bad-08.ttl
SHA1 5ade642f289a4d7da80bbc7e279a87920baf4dcb t/data/turtle/bad-09.ttl
SHA1 e69ef91e024ae3c9ea0debe4018fd138a342c1c0 t/data/turtle/bad-10.ttl
SHA1 ad85fb7efc868494f93eb540fef68e5c145e8a5e t/data/turtle/bad-11.ttl
SHA1 f1c8b1ca82d4306c0b75e720197182ccc08c72a3 t/data/turtle/bad-12.ttl
SHA1 91f57a8c6338cb1d308a39bcf734ab4e85a63e41 t/data/turtle/bad-13.ttl
SHA1 46df0b28dce2a9c25539d4680d12c6caaa6c092f t/data/turtle/bad-14.ttl
SHA1 35b63346d5e1192aac9634c99918cf99d49661b1 t/data/turtle/rdf-schema.out
SHA1 0cebaed89bdd8bc13d35d59c5f3ff468468a1e11 t/data/turtle/rdf-schema.ttl
SHA1 151737d7fe44541a7f1fbd63d3f8c63b1831c868 t/data/turtle/rdfq-results.out
SHA1 fb45a9f5e9532e294255f37875bf7bb6792897d6 t/data/turtle/rdfq-results.ttl
SHA1 b05806c3ec54e62ecd0ccc42a8008e60ed4f7d99 t/data/turtle/rdfs-namespace.out
SHA1 ce27649f2a9445c32ee1047b726204116b5c9aa4 t/data/turtle/rdfs-namespace.ttl
SHA1 b5f86dded5b9293d2af7d85a3af777a7b7c5a204 t/data/turtle/test-00.out
SHA1 772f7667ebfdf1abc15d97cf1b48e75222e6e93b t/data/turtle/test-00.ttl
SHA1 cdb4cbb82ffcc77ee2a40e18a0655b23250b7206 t/data/turtle/test-01.out
SHA1 d6467790c29516cdc514dedc21cb8c4bc4dcaf23 t/data/turtle/test-01.ttl
SHA1 9c0ab53f13594152d35a1e7d2048de753513f54e t/data/turtle/test-02.out
SHA1 5c0bda0a03e1f24ec156e5853c6046bf4a3e3843 t/data/turtle/test-02.ttl
SHA1 b8eab2b1e165606de045ccf6ecd334924a667b77 t/data/turtle/test-03.out
SHA1 ef853f76edefc71e871c7058cdf45d4a74b6701d t/data/turtle/test-03.ttl
SHA1 9e11ad6568c77570faac5f8de74312109cf74415 t/data/turtle/test-04.out
SHA1 470ee0ef3ac80e29802e2df2cdac39281731b8af t/data/turtle/test-04.ttl
SHA1 6b2546df454087509e79c5925546eb0dde30ae07 t/data/turtle/test-05.out
SHA1 77cc8b8b31938a217ddab84aad01ec187146dfef t/data/turtle/test-05.ttl
SHA1 96ce55350cb0f8160a265bd796dc973e9bc7d57f t/data/turtle/test-06.out
SHA1 15a0e4ab3fee06fc6f025aad237072973f85f2ac t/data/turtle/test-06.ttl
SHA1 f251d2e928651b830feae876a7e8d9f013753851 t/data/turtle/test-07.out
SHA1 74e65a32eaacd7e1f14c080e66ef0bb8a5d00449 t/data/turtle/test-07.ttl
SHA1 72f6b011ef13535bc274ebe89a043f0ab3d11251 t/data/turtle/test-08.out
SHA1 d6b6ad5aa3ce3e27f7a3db5ee906e988852d145f t/data/turtle/test-08.ttl
SHA1 10a47a27e7303ace3d1c9f9a4102ed19d06a739f t/data/turtle/test-09.out
SHA1 17f0b6972a77713361f12df38ceea3310623ffbe t/data/turtle/test-09.ttl
SHA1 9275ecde839cf678f9a6ce0095efe3c9f354c498 t/data/turtle/test-10.out
SHA1 b4f16d672a4ab77d7e4c3092d3067afd3aea3196 t/data/turtle/test-10.ttl
SHA1 02fe5b354c628c6ed40f804afd3f39fd0a07ca79 t/data/turtle/test-11.out
SHA1 380cff16ec65aa6645bc3505a6f68d44f06370ea t/data/turtle/test-11.ttl
SHA1 1200e45eed3f6639742779ed9b8440918e14d11d t/data/turtle/test-12.out
SHA1 972c7247a7c9ea5cdef8cc4279cf74ed104a7ef8 t/data/turtle/test-12.ttl
SHA1 03719e1a5696b304a4eee5a76ee19a75892afacd t/data/turtle/test-13.out
SHA1 1c1f4084b35d0f11b46b76c18ddc176bbb4164a8 t/data/turtle/test-13.ttl
SHA1 b8329fdf1dbae64a0148d11970c1a352804a3564 t/data/turtle/test-17.out
SHA1 c710f8ebf9700e198e8ad8340bd22e97dab70ff5 t/data/turtle/test-17.ttl
SHA1 a85d120f778e10b5887412d188dc818047225797 t/data/turtle/test-18.out
SHA1 637ae90ceb65192c0f9edcdf844a75f8e691c5f7 t/data/turtle/test-18.ttl
SHA1 bf8f4966a8e5c4e6d577ab166f9b3a06679fcd23 t/data/turtle/test-19.out
SHA1 4e4f4b9b7cc0901dc571779e03592808ccedd479 t/data/turtle/test-19.ttl
SHA1 c0efe8db5e5e89f22240846b8de2c5c76dcefa01 t/data/turtle/test-20.out
SHA1 6ea36ef5813da6ada5bcf1d2b42c6b9b3f9c3627 t/data/turtle/test-20.ttl
SHA1 9be7dc098a63fb606e84ff903c56955606b22d11 t/data/turtle/test-21.out
SHA1 4693156d5f9197a18fa38193bc9e094721bc330a t/data/turtle/test-21.ttl
SHA1 ff9207af8f8c5c3c350707bd52582da46fa97726 t/data/turtle/test-22.out
SHA1 526f55124f7c0040b71b92f22a9dc7a70b26f009 t/data/turtle/test-22.ttl
SHA1 4247adb7c6586fe9ad7cc528a25a548c163d8aa2 t/data/turtle/test-23.out
SHA1 ccd0e04a0b04dc378fa33111889ea02785682c60 t/data/turtle/test-23.ttl
SHA1 295342abee33b92912a11a6ba4d7b0f3e2f8fc49 t/data/turtle/test-24.out
SHA1 445ee20d387fc1b3f0e16b4e19cf40644325601f t/data/turtle/test-24.ttl
SHA1 084b67277a1e3f8d19a75506d62894d78ad78f77 t/data/turtle/test-25.out
SHA1 da1c9ab6b7731a9dbfcf96ddee77c63c54838a48 t/data/turtle/test-25.ttl
SHA1 cef80d478759fb2c86705210f66462c277571a0e t/exporter-csv.t
SHA1 77d3ecc040080e5dc649bd56090b0aeedeceff90 t/graph-subgraphs.t
SHA1 0155808c901e925f4dd0af99a62ce4988dac6c33 t/graph.t
SHA1 000fdc8904d108cc92353b02ea16997fa116375c t/iterator-bindings-join.t
SHA1 212a0dc72bb43eca4b2405e98ad5137b8568fa43 t/iterator-bindings-materialize.t
SHA1 631b98035778a9aebf3cb73a88a928a4c4bde24b t/iterator-bindings.t
SHA1 d98a2cca52c7b86082b3a981c2a4854ca2d132e8 t/iterator-boolean.t
SHA1 43796dac33c3f48e9e8b53462bcef8e5b3f831ec t/iterator-graph-materialize.t
SHA1 6c7755633b34f11d110a0f48221c01deb8bd48dc t/iterator-graph.t
SHA1 c26dba0d8cd53d3d362849a1441b1aea1fb5a696 t/iterator-materialized.t
SHA1 cd3b65f32bbc525a78e7de0b7460f781d50d101b t/iterator-thaw.t
SHA1 414a3c26e0b3314f6efce668afbf56dd10350f24 t/iterator.t
SHA1 d690df1f3a87c4b281436c5b5365642f4480aaf8 t/model-boundeddescription.t
SHA1 e7d9a317ade810b55038c0fc696409cd34c858a6 t/model-dataset.t
SHA1 cd13133694351e6d4fdff1b0843e6a9769653020 t/model-filter.t
SHA1 55d6487f774ac8b64f8e7ded27f25fd41d911cc7 t/model-logger.t
SHA1 7696a3c91ca35e7573e056b664df764f644ba3a1 t/model-temporary.t
SHA1 19fd7e263d6dfba46c9aff7508268f50081a2587 t/model-union.t
SHA1 3bec4002aa4d618b7af03e900637c8677142ed50 t/model.t
SHA1 6839e8e2bf57cd5bacbd6e177eb7f1f41b48a4e2 t/namespace-export.t
SHA1 ce1cc8d69a183e4f3aa3904f2e150d55a25838e7 t/namespace-uri.t
SHA1 5af1460ac4bab3a0aad002abb0020e5d38e0480b t/namespacemap.t
SHA1 7d16c7b9f9b814e723972684d4e1dffb23e85479 t/node-literal.t
SHA1 b3a20cf9dc5268d6ec35db52b43e6d748989e22d t/node-resource-i18n.t
SHA1 85e0fb95be41a230117086b53cd156d7994ec762 t/node-serialization.t
SHA1 7507f440042de79a54a1d930364c1df08bfd2e0c t/node.t
SHA1 def41b76aca94c342a111dbae1963b62c9b65658 t/parser-nquads.t
SHA1 727a9544c3ba67e528e5156a2c7a50b0cd938086 t/parser-ntriples.t
SHA1 8ae7768a0341d4d97d5cd7874e793b86cb96b2b3 t/parser-rdfa.t
SHA1 d46c0650fdfd974b5e10de07080c60622ad6b1f1 t/parser-rdfjson.t
SHA1 a1deaa8ec3eeb7d0b4d2d003a4cbbb5e654cc64f t/parser-rdfpatch.t
SHA1 fa32fdde16122d4c7380e536382c63f5b72f4aaf t/parser-rdfxml-w3c.t
SHA1 0c9175c7a2d9a48d5fe70cf74cf34c1c97e7a76a t/parser-redland.t
SHA1 2967c3dd818866c4595bc245cc15555f32293090 t/parser-trig.t
SHA1 3947827947e656dd4218215fa9d4d4cfd65ee2f4 t/parser-turtle-2013.t
SHA1 34a1640f8cb76f62d12cffb45da16ba340cbf464 t/parser-turtle.t
SHA1 3503fcbb170c4ea4fdf1f4d46eb109d900c806c1 t/parser.t
SHA1 12f11f0dcfe7b3d9be76c29114854b71d0759247 t/pattern.t
SHA1 d06dfdb62eb23fe7ae6d69aabda46c07213137a3 t/remove-list.t
SHA1 4339b806b1686e85df3d0d33ef37c977e6fe7bcd t/serializer-nquads.t
SHA1 d0e02f2fd6c8e52b3ee15c44f4074a1faf01f997 t/serializer-ntriples-canonical.t
SHA1 d3fdd152ae873dbd80e4fed82971ea472a0ea16d t/serializer-ntriples.t
SHA1 da719377765c5d5da85c54051c8a4724baa3af36 t/serializer-rdfjson.t
SHA1 931d1d69f186fe25cd8aee6feb1c8dbc62b22888 t/serializer-rdfpatch.t
SHA1 ff8bc68810176b019e4589665d3db743284c2f2a t/serializer-rdfxml.t
SHA1 c0eeefbf82c0b5c25a99fcb83f78e1928ab83b08 t/serializer-trig.t
SHA1 1ee4a8b41c278f34f3ff2c9e6df45a0e23cade61 t/serializer-tsv.t
SHA1 98a72d868447f24a74d73f866b71bd0ecdf2d399 t/serializer-turtle.t
SHA1 db8dfad4c0646356bcc5e18ca8a89304e8dde6dd t/serializer.t
SHA1 8351cb945f244de6a2edb473a295cb27ee5008fc t/statement-serialization.t
SHA1 328af6f1f43457421d0780027c77dd074c942a1f t/statement.t
SHA1 6128f496b1df9914bf42215d01137ed9257feb71 t/store-config.t
SHA1 aa00053d2db196cf49db8ccfe0e06cd0ac376ef9 t/store-context.t
SHA1 533cced80f06d0d29e00c99b4e24d9f5bc612b87 t/store-dbi-mysql.t
SHA1 9e6e34e51fa7c7a6bf7c81a2ee0752201b430876 t/store-dbi-pg.t
SHA1 7044cb7e324f4bc846f21764f0b7b3c2446a4704 t/store-dbi-sqlite.t
SHA1 ed010d66b5ab7bd9d36f0d5211a52d0a4306143c t/store-dbi.t
SHA1 8cb9666120c08881e3ce3def588488fe81852420 t/store-hexastore-pattern.t
SHA1 3ad3f71d59ae8dd4dd5ef893130d4afdc6211a83 t/store-hexastore-storable.t
SHA1 33c8e3f131ebb14a1fece0f5848ffa50d29da62e t/store-hexastore-triplestore.t
SHA1 546bfe6e7a45a8eb24024a2af8f91b7f507d0508 t/store-hexastore.t
SHA1 c08fb94c6db89165a8494a46ab5a6f8502cec028 t/store-language.t
SHA1 5dc3f12174c68a5a067b088b14b9f4e2eb41e8b8 t/store-memory.t
SHA1 227583a3b48495bf9c2484654bc0872d0f5b35b5 t/store-redis.t
SHA1 ef4e84770d8b0731234374df404fb34e354fda3e t/store-triple_sql.t
SHA1 7f06b4f8be645e127a9d0140ea6ff2b069185ef9 t/store.t
SHA1 15ed1be16bafbae50d80842e1bcbfadc69d85bf3 t/syntax.t
SHA1 f50d74b887afb186b098fd9da7cfbd8c4daaf41c xt/00_compile.t
SHA1 45ea894790a41a42de02e3bd2bc1076b3472ac23 xt/data/turtle/test-14.out
SHA1 46bbbf8a8928c49f9b98d71c8e7992c69ee8b8e0 xt/data/turtle/test-14.ttl
SHA1 88f8210eba5db02ee5c6f761f0ef9f2b221676a1 xt/data/turtle/test-15.out
SHA1 fdfe2bb7cae4e2849166d19738c49b85aa381d2c xt/data/turtle/test-15.ttl
SHA1 88f8210eba5db02ee5c6f761f0ef9f2b221676a1 xt/data/turtle/test-16.out
SHA1 e1334fcb18efc0b4b966cf8e3092b67327fccfb5 xt/data/turtle/test-16.ttl
SHA1 d0ee90db43d5a8158ce1a6a441d54b9baf447e48 xt/parser-trig-2013.t
SHA1 59ba87fa0f27359a1e157b84fa529f9cc0419952 xt/perl-critic.t
SHA1 8fce98e8ce4b5ef5ea5e50e366e4014a8b659e27 xt/pod-coverage.t
SHA1 6387af7a5fde0747be5bc9ad2ec15ca9759bd95a xt/pod.t
SHA1 4c425c38576ccc8c456193c4042e47717354bbe8 xt/store-dydra.t
SHA1 2646eda043e501aa78e16abbe3124d64fd44fefa xt/store-redland.t
SHA1 4f27efa2d5e89837055443474dd5035859edd963 xt/store-sparql.t
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
iEYEARECAAYFAlpPBoUACgkQhPK6VMqoyC0ytQCfTSpU7voOGN/wN5nbXQ7hvHR2
blUAniLJ0eSboDAR9HErHbWM6YR680Uo
=MW+V
-----END PGP SIGNATURE-----
RDF-Trine-1.019/bin/ 000755 000765 000024 00000000000 13223603204 014050 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/MANIFEST 000644 000765 000024 00000166223 12526145074 014456 0 ustar 00greg staff 000000 000000 bin/cliapi
bin/graph.pl
bin/rdf_init_store.pl
bin/rdf_parse_turtle.pl
bin/rdf_parse_xml.pl
bin/rdf_store_add_file.pl
bin/rdf_store_makeprivate.pl
bin/rdf_store_serialize.pl
bin/rdf_transcode.pl
bin/srx2csv
bin/srx2table
bin/turtle_benchmark.pl
bin/turtle_parse.pl
bin/turtle_tokenize.pl
bin/turtle-2013-harness.pl
Changes.ttl
examples/foaf_labels.pl
extra/mysql.sql
inc/Module/Install.pm
inc/Module/Install/AuthorTests.pm
inc/Module/Install/Base.pm
inc/Module/Install/Can.pm
inc/Module/Install/Fetch.pm
inc/Module/Install/Makefile.pm
inc/Module/Install/Metadata.pm
inc/Module/Install/Scripts.pm
inc/Module/Install/Win32.pm
inc/Module/Install/WriteAll.pm
lib/RDF/Trine.pm
lib/RDF/Trine/Error.pm
lib/RDF/Trine/Exporter/CSV.pm
lib/RDF/Trine/Exporter/RDFPatch.pm
lib/RDF/Trine/Graph.pm
lib/RDF/Trine/Iterator.pm
lib/RDF/Trine/Iterator/Bindings.pm
lib/RDF/Trine/Iterator/Bindings/Materialized.pm
lib/RDF/Trine/Iterator/Boolean.pm
lib/RDF/Trine/Iterator/Graph.pm
lib/RDF/Trine/Iterator/Graph/Materialized.pm
lib/RDF/Trine/Iterator/JSONHandler.pm
lib/RDF/Trine/Iterator/SAXHandler.pm
lib/RDF/Trine/Model.pm
lib/RDF/Trine/Model/Dataset.pm
lib/RDF/Trine/Model/StatementFilter.pm
lib/RDF/Trine/Model/Union.pm
lib/RDF/Trine/Namespace.pm
lib/RDF/Trine/NamespaceMap.pm
lib/RDF/Trine/Node.pm
lib/RDF/Trine/Node/Blank.pm
lib/RDF/Trine/Node/Literal.pm
lib/RDF/Trine/Node/Nil.pm
lib/RDF/Trine/Node/Resource.pm
lib/RDF/Trine/Node/Variable.pm
lib/RDF/Trine/Parser.pm
lib/RDF/Trine/Parser/LineProtocol.pm
lib/RDF/Trine/Parser/NQuads.pm
lib/RDF/Trine/Parser/NTriples.pm
lib/RDF/Trine/Parser/RDFa.pm
lib/RDF/Trine/Parser/RDFJSON.pm
lib/RDF/Trine/Parser/RDFPatch.pm
lib/RDF/Trine/Parser/RDFXML.pm
lib/RDF/Trine/Parser/Redland.pm
lib/RDF/Trine/Parser/TriG.pm
lib/RDF/Trine/Parser/Turtle.pm
lib/RDF/Trine/Parser/Turtle/Constants.pm
lib/RDF/Trine/Parser/Turtle/Lexer.pm
lib/RDF/Trine/Parser/Turtle/Token.pm
lib/RDF/Trine/Pattern.pm
lib/RDF/Trine/Serializer.pm
lib/RDF/Trine/Serializer/NQuads.pm
lib/RDF/Trine/Serializer/NTriples.pm
lib/RDF/Trine/Serializer/NTriples/Canonical.pm
lib/RDF/Trine/Serializer/RDFJSON.pm
lib/RDF/Trine/Serializer/RDFPatch.pm
lib/RDF/Trine/Serializer/RDFXML.pm
lib/RDF/Trine/Serializer/TriG.pm
lib/RDF/Trine/Serializer/TSV.pm
lib/RDF/Trine/Serializer/Turtle.pm
lib/RDF/Trine/Statement.pm
lib/RDF/Trine/Statement/Quad.pm
lib/RDF/Trine/Store.pm
lib/RDF/Trine/Store/DBI.pm
lib/RDF/Trine/Store/DBI/mysql.pm
lib/RDF/Trine/Store/DBI/Pg.pm
lib/RDF/Trine/Store/DBI/SQLite.pm
lib/RDF/Trine/Store/Dydra.pm
lib/RDF/Trine/Store/Hexastore.pm
lib/RDF/Trine/Store/LanguagePreference.pm
lib/RDF/Trine/Store/Memory.pm
lib/RDF/Trine/Store/Redis.pm
lib/RDF/Trine/Store/Redland.pm
lib/RDF/Trine/Store/SPARQL.pm
lib/RDF/Trine/VariableBindings.pm
lib/Test/RDF/Trine/Store.pm
Makefile.PL
MANIFEST This list of files
META.yml
README
SIGNATURE
t/00.load.t
t/data/bugs/ttl-with-bom.ttl
t/data/rdfa/test-sd.nt
t/data/rdfa/test-sd.xhtml
t/data/rdfxml-w3c/amp-in-url/test001.nt
t/data/rdfxml-w3c/amp-in-url/test001.rdf
t/data/rdfxml-w3c/datatypes-intensional/test001.nt
t/data/rdfxml-w3c/datatypes-intensional/test002.nt
t/data/rdfxml-w3c/datatypes/test001.nt
t/data/rdfxml-w3c/datatypes/test001.rdf
t/data/rdfxml-w3c/datatypes/test002.nt
t/data/rdfxml-w3c/datatypes/test002.rdf
t/data/rdfxml-w3c/datatypes/test002b.nt
t/data/rdfxml-w3c/datatypes/test003a.nt
t/data/rdfxml-w3c/datatypes/test003b.nt
t/data/rdfxml-w3c/datatypes/test005a.nt
t/data/rdfxml-w3c/datatypes/test005b.nt
t/data/rdfxml-w3c/datatypes/test006.nt
t/data/rdfxml-w3c/datatypes/test008a.nt
t/data/rdfxml-w3c/datatypes/test008b.nt
t/data/rdfxml-w3c/datatypes/test009a.nt
t/data/rdfxml-w3c/datatypes/test009b.nt
t/data/rdfxml-w3c/datatypes/test010.nt
t/data/rdfxml-w3c/datatypes/test011a.nt
t/data/rdfxml-w3c/datatypes/test011b.nt
t/data/rdfxml-w3c/horst-01/test001.rdf
t/data/rdfxml-w3c/horst-01/test002.rdf
t/data/rdfxml-w3c/horst-01/test003.rdf
t/data/rdfxml-w3c/horst-01/test004.rdf
t/data/rdfxml-w3c/Manifest.rdf
t/data/rdfxml-w3c/pfps-10/test001a.nt
t/data/rdfxml-w3c/pfps-10/test001b.nt
t/data/rdfxml-w3c/rdf-charmod-literals/test001.nt
t/data/rdfxml-w3c/rdf-charmod-literals/test001.rdf
t/data/rdfxml-w3c/rdf-charmod-uris/test001.nt
t/data/rdfxml-w3c/rdf-charmod-uris/test001.rdf
t/data/rdfxml-w3c/rdf-charmod-uris/test002.nt
t/data/rdfxml-w3c/rdf-charmod-uris/test002.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/error001.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/error002.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test001.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test001.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test002.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test002.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test003.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test003.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test004.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test004.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test006.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test006.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test007.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test007.rdf
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test008.nt
t/data/rdfxml-w3c/rdf-containers-syntax-vs-schema/test008.rdf
t/data/rdfxml-w3c/rdf-element-not-mandatory/test001.nt
t/data/rdfxml-w3c/rdf-element-not-mandatory/test001.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0001.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0001.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0003.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0003.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0004.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0004.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0005.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0005.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0006.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0006.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0009.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0009.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0010.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0010.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0011.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0011.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0012.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0012.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0013.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0013.rdf
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0014.nt
t/data/rdfxml-w3c/rdf-ns-prefix-confusion/test0014.rdf
t/data/rdfxml-w3c/rdfms-abouteach/error001.rdf
t/data/rdfxml-w3c/rdfms-abouteach/error002.rdf
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/error1.rdf
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test1.nt
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test1.rdf
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test2.nt
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test2.rdf
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test3.nt
t/data/rdfxml-w3c/rdfms-difference-between-ID-and-about/test3.rdf
t/data/rdfxml-w3c/rdfms-duplicate-member-props/test001.nt
t/data/rdfxml-w3c/rdfms-duplicate-member-props/test001.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/error001.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/error002.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/error003.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test001.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test001.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test002.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test002.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test003.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test003.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test004.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test004.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test005.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test005.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test006.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test006.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test007.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test007.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test008.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test008.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test009.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test009.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test010.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test010.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test011.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test011.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test012.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test012.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test013.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test013.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test014.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test014.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test015.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test015.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test016.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test016.rdf
t/data/rdfxml-w3c/rdfms-empty-property-elements/test017.nt
t/data/rdfxml-w3c/rdfms-empty-property-elements/test017.rdf
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test001.nt
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test001.rdf
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test002.nt
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test002.rdf
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test003.nt
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test003.rdf
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test004.nt
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test004.rdf
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test005.nt
t/data/rdfxml-w3c/rdfms-identity-anon-resources/test005.rdf
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test001.nt
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test001.rdf
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test002.nt
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test002.rdf
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test004.nt
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test004.rdf
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test005.nt
t/data/rdfxml-w3c/rdfms-not-id-and-resource-attr/test005.rdf
t/data/rdfxml-w3c/rdfms-para196/test001.nt
t/data/rdfxml-w3c/rdfms-para196/test001.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error001.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error002.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error003.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error004.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error005.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error006.rdf
t/data/rdfxml-w3c/rdfms-rdf-id/error007.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-001.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-002.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-003.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-004.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-005.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-006.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-007.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-008.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-009.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-010.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-011.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-012.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-013.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-014.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-015.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-016.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-017.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-018.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-019.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/error-020.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-001.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-001.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-002.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-002.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-003.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-003.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-004.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-004.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-005.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-005.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-006.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-006.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-007.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-007.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-008.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-008.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-009.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-009.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-010.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-010.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-011.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-011.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-012.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-012.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-013.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-013.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-014.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-014.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-015.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-015.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-016.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-016.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-017.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-017.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-018.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-018.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-019.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-019.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-020.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-020.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-021.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-021.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-022.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-022.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-023.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-023.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-024.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-024.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-025.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-025.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-026.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-026.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-027.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-027.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-028.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-028.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-029.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-029.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-030.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-030.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-031.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-031.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-032.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-032.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-033.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-033.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-034.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-034.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-035.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-035.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-036.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-036.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-037.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/test-037.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-001.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-001.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-002.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-002.rdf
t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-003.nt
t/data/rdfxml-w3c/rdfms-rdf-names-use/warn-003.rdf
t/data/rdfxml-w3c/rdfms-reification-required/test001.nt
t/data/rdfxml-w3c/rdfms-reification-required/test001.rdf
t/data/rdfxml-w3c/rdfms-seq-representation/empty.nt
t/data/rdfxml-w3c/rdfms-seq-representation/test001.nt
t/data/rdfxml-w3c/rdfms-seq-representation/test001.rdf
t/data/rdfxml-w3c/rdfms-seq-representation/test002.nt
t/data/rdfxml-w3c/rdfms-seq-representation/test003a.nt
t/data/rdfxml-w3c/rdfms-seq-representation/test003b.nt
t/data/rdfxml-w3c/rdfms-seq-representation/test004.nt
t/data/rdfxml-w3c/rdfms-syntax-incomplete/error001.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/error002.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/error003.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/error004.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/error005.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/error006.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test001.nt
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test001.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test002.nt
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test002.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test003.nt
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test003.rdf
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test004.nt
t/data/rdfxml-w3c/rdfms-syntax-incomplete/test004.rdf
t/data/rdfxml-w3c/rdfms-uri-substructure/error001.nt
t/data/rdfxml-w3c/rdfms-uri-substructure/test001.nt
t/data/rdfxml-w3c/rdfms-uri-substructure/test001.rdf
t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test001.nt
t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test001.rdf
t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test002.nt
t/data/rdfxml-w3c/rdfms-xml-literal-namespaces/test002.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test001.nt
t/data/rdfxml-w3c/rdfms-xmllang/test001.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test002.nt
t/data/rdfxml-w3c/rdfms-xmllang/test002.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test003.nt
t/data/rdfxml-w3c/rdfms-xmllang/test003.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test004.nt
t/data/rdfxml-w3c/rdfms-xmllang/test004.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test005.nt
t/data/rdfxml-w3c/rdfms-xmllang/test005.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test006.nt
t/data/rdfxml-w3c/rdfms-xmllang/test006.rdf
t/data/rdfxml-w3c/rdfms-xmllang/test007a.nt
t/data/rdfxml-w3c/rdfms-xmllang/test007b.nt
t/data/rdfxml-w3c/rdfms-xmllang/test007c.nt
t/data/rdfxml-w3c/rdfs-container-membership-superProperty/not1C.rdf
t/data/rdfxml-w3c/rdfs-container-membership-superProperty/not1P.rdf
t/data/rdfxml-w3c/rdfs-domain-and-range/nonconclusions005.rdf
t/data/rdfxml-w3c/rdfs-domain-and-range/nonconclusions006.rdf
t/data/rdfxml-w3c/rdfs-domain-and-range/premises005.rdf
t/data/rdfxml-w3c/rdfs-domain-and-range/premises006.rdf
t/data/rdfxml-w3c/rdfs-domain-and-range/test001.nt
t/data/rdfxml-w3c/rdfs-domain-and-range/test001.rdf
t/data/rdfxml-w3c/rdfs-domain-and-range/test002.nt
t/data/rdfxml-w3c/rdfs-domain-and-range/test002.rdf
t/data/rdfxml-w3c/rdfs-entailment/test001.nt
t/data/rdfxml-w3c/rdfs-entailment/test002.nt
t/data/rdfxml-w3c/rdfs-no-cycles-in-subClassOf/test001.nt
t/data/rdfxml-w3c/rdfs-no-cycles-in-subClassOf/test001.rdf
t/data/rdfxml-w3c/rdfs-no-cycles-in-subPropertyOf/test001.nt
t/data/rdfxml-w3c/rdfs-no-cycles-in-subPropertyOf/test001.rdf
t/data/rdfxml-w3c/rdfs-subClassOf-a-Property/test001.nt
t/data/rdfxml-w3c/rdfs-subPropertyOf-semantics/test001.nt
t/data/rdfxml-w3c/rdfs-subPropertyOf-semantics/test002.nt
t/data/rdfxml-w3c/statement-entailment/test001a.nt
t/data/rdfxml-w3c/statement-entailment/test001b.nt
t/data/rdfxml-w3c/statement-entailment/test002a.nt
t/data/rdfxml-w3c/statement-entailment/test002b.nt
t/data/rdfxml-w3c/tex-01/test001.rdf
t/data/rdfxml-w3c/tex-01/test002.rdf
t/data/rdfxml-w3c/unrecognised-xml-attributes/test001.nt
t/data/rdfxml-w3c/unrecognised-xml-attributes/test001.rdf
t/data/rdfxml-w3c/unrecognised-xml-attributes/test002.nt
t/data/rdfxml-w3c/unrecognised-xml-attributes/test002.rdf
t/data/rdfxml-w3c/xml-canon/test001.nt
t/data/rdfxml-w3c/xml-canon/test001.rdf
t/data/rdfxml-w3c/xmlbase/test001.nt
t/data/rdfxml-w3c/xmlbase/test001.rdf
t/data/rdfxml-w3c/xmlbase/test002.nt
t/data/rdfxml-w3c/xmlbase/test002.rdf
t/data/rdfxml-w3c/xmlbase/test003.nt
t/data/rdfxml-w3c/xmlbase/test003.rdf
t/data/rdfxml-w3c/xmlbase/test004.nt
t/data/rdfxml-w3c/xmlbase/test004.rdf
t/data/rdfxml-w3c/xmlbase/test006.nt
t/data/rdfxml-w3c/xmlbase/test006.rdf
t/data/rdfxml-w3c/xmlbase/test007.nt
t/data/rdfxml-w3c/xmlbase/test007.rdf
t/data/rdfxml-w3c/xmlbase/test008.nt
t/data/rdfxml-w3c/xmlbase/test008.rdf
t/data/rdfxml-w3c/xmlbase/test009.nt
t/data/rdfxml-w3c/xmlbase/test009.rdf
t/data/rdfxml-w3c/xmlbase/test010.nt
t/data/rdfxml-w3c/xmlbase/test010.rdf
t/data/rdfxml-w3c/xmlbase/test011.nt
t/data/rdfxml-w3c/xmlbase/test011.rdf
t/data/rdfxml-w3c/xmlbase/test013.nt
t/data/rdfxml-w3c/xmlbase/test013.rdf
t/data/rdfxml-w3c/xmlbase/test014.nt
t/data/rdfxml-w3c/xmlbase/test014.rdf
t/data/rdfxml-w3c/xmlsch-02/test001.rdf
t/data/rdfxml-w3c/xmlsch-02/test002.rdf
t/data/rdfxml-w3c/xmlsch-02/test003.rdf
t/data/trig-2013/alternating_bnode_graphs.nq
t/data/trig-2013/alternating_bnode_graphs.trig
t/data/trig-2013/alternating_iri_graphs.nq
t/data/trig-2013/alternating_iri_graphs.trig
t/data/trig-2013/anonymous_blank_node_graph.trig
t/data/trig-2013/anonymous_blank_node_object.nq
t/data/trig-2013/anonymous_blank_node_object.trig
t/data/trig-2013/anonymous_blank_node_subject.nq
t/data/trig-2013/anonymous_blank_node_subject.trig
t/data/trig-2013/bareword_a_predicate.nq
t/data/trig-2013/bareword_a_predicate.trig
t/data/trig-2013/bareword_decimal.nq
t/data/trig-2013/bareword_decimal.trig
t/data/trig-2013/bareword_double.nq
t/data/trig-2013/bareword_double.trig
t/data/trig-2013/bareword_integer.trig
t/data/trig-2013/blankNodePropertyList_as_object.nq
t/data/trig-2013/blankNodePropertyList_as_object.trig
t/data/trig-2013/blankNodePropertyList_as_subject.nq
t/data/trig-2013/blankNodePropertyList_as_subject.trig
t/data/trig-2013/blankNodePropertyList_containing_collection.nq
t/data/trig-2013/blankNodePropertyList_containing_collection.trig
t/data/trig-2013/blankNodePropertyList_with_multiple_triples.nq
t/data/trig-2013/blankNodePropertyList_with_multiple_triples.trig
t/data/trig-2013/collection_object.nq
t/data/trig-2013/collection_object.trig
t/data/trig-2013/collection_subject.nq
t/data/trig-2013/collection_subject.trig
t/data/trig-2013/default_namespace_IRI.trig
t/data/trig-2013/double_lower_case_e.nq
t/data/trig-2013/double_lower_case_e.trig
t/data/trig-2013/empty_collection.nq
t/data/trig-2013/empty_collection.trig
t/data/trig-2013/first.nq
t/data/trig-2013/first.trig
t/data/trig-2013/HYPHEN_MINUS_in_localName.nq
t/data/trig-2013/HYPHEN_MINUS_in_localName.trig
t/data/trig-2013/IRI_spo.nq
t/data/trig-2013/IRI_subject.trig
t/data/trig-2013/IRI_with_all_punctuation.nq
t/data/trig-2013/IRI_with_all_punctuation.trig
t/data/trig-2013/IRI_with_eight_digit_numeric_escape.trig
t/data/trig-2013/IRI_with_four_digit_numeric_escape.trig
t/data/trig-2013/IRIREF_datatype.nq
t/data/trig-2013/IRIREF_datatype.trig
t/data/trig-2013/labeled_blank_node_graph.nq
t/data/trig-2013/labeled_blank_node_graph.trig
t/data/trig-2013/labeled_blank_node_object.nq
t/data/trig-2013/labeled_blank_node_object.trig
t/data/trig-2013/labeled_blank_node_subject.nq
t/data/trig-2013/labeled_blank_node_subject.trig
t/data/trig-2013/labeled_blank_node_with_leading_digit.trig
t/data/trig-2013/labeled_blank_node_with_leading_underscore.trig
t/data/trig-2013/labeled_blank_node_with_non_leading_extras.trig
t/data/trig-2013/labeled_blank_node_with_PN_CHARS_BASE_character_boundaries.trig
t/data/trig-2013/langtagged_LONG_with_subtag.nq
t/data/trig-2013/langtagged_LONG_with_subtag.trig
t/data/trig-2013/langtagged_LONG.trig
t/data/trig-2013/langtagged_non_LONG.nq
t/data/trig-2013/langtagged_non_LONG.trig
t/data/trig-2013/lantag_with_subtag.nq
t/data/trig-2013/lantag_with_subtag.trig
t/data/trig-2013/last.nq
t/data/trig-2013/last.trig
t/data/trig-2013/LICENSE
t/data/trig-2013/literal_false.nq
t/data/trig-2013/literal_false.trig
t/data/trig-2013/LITERAL_LONG1_ascii_boundaries.nq
t/data/trig-2013/LITERAL_LONG1_ascii_boundaries.trig
t/data/trig-2013/LITERAL_LONG1_with_1_squote.nq
t/data/trig-2013/LITERAL_LONG1_with_1_squote.trig
t/data/trig-2013/LITERAL_LONG1_with_2_squotes.nq
t/data/trig-2013/LITERAL_LONG1_with_2_squotes.trig
t/data/trig-2013/LITERAL_LONG1.trig
t/data/trig-2013/LITERAL_LONG2_ascii_boundaries.nq
t/data/trig-2013/LITERAL_LONG2_ascii_boundaries.trig
t/data/trig-2013/LITERAL_LONG2_with_1_squote.nq
t/data/trig-2013/LITERAL_LONG2_with_1_squote.trig
t/data/trig-2013/LITERAL_LONG2_with_2_squotes.nq
t/data/trig-2013/LITERAL_LONG2_with_2_squotes.trig
t/data/trig-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.nq
t/data/trig-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.trig
t/data/trig-2013/LITERAL_LONG2.trig
t/data/trig-2013/literal_true.nq
t/data/trig-2013/literal_true.trig
t/data/trig-2013/literal_with_BACKSPACE.nq
t/data/trig-2013/literal_with_BACKSPACE.trig
t/data/trig-2013/literal_with_CARRIAGE_RETURN.nq
t/data/trig-2013/literal_with_CARRIAGE_RETURN.trig
t/data/trig-2013/literal_with_CHARACTER_TABULATION.nq
t/data/trig-2013/literal_with_CHARACTER_TABULATION.trig
t/data/trig-2013/literal_with_escaped_BACKSPACE.trig
t/data/trig-2013/literal_with_escaped_CARRIAGE_RETURN.trig
t/data/trig-2013/literal_with_escaped_CHARACTER_TABULATION.trig
t/data/trig-2013/literal_with_escaped_FORM_FEED.trig
t/data/trig-2013/literal_with_escaped_LINE_FEED.trig
t/data/trig-2013/literal_with_FORM_FEED.nq
t/data/trig-2013/literal_with_FORM_FEED.trig
t/data/trig-2013/literal_with_LINE_FEED.nq
t/data/trig-2013/literal_with_LINE_FEED.trig
t/data/trig-2013/literal_with_numeric_escape4.nq
t/data/trig-2013/literal_with_numeric_escape4.trig
t/data/trig-2013/literal_with_numeric_escape8.trig
t/data/trig-2013/literal_with_REVERSE_SOLIDUS.nq
t/data/trig-2013/literal_with_REVERSE_SOLIDUS.trig
t/data/trig-2013/LITERAL1_all_controls.nq
t/data/trig-2013/LITERAL1_all_controls.trig
t/data/trig-2013/LITERAL1_all_punctuation.nq
t/data/trig-2013/LITERAL1_all_punctuation.trig
t/data/trig-2013/LITERAL1_ascii_boundaries.nq
t/data/trig-2013/LITERAL1_ascii_boundaries.trig
t/data/trig-2013/LITERAL1.nq
t/data/trig-2013/LITERAL1.trig
t/data/trig-2013/LITERAL2_ascii_boundaries.nq
t/data/trig-2013/LITERAL2_ascii_boundaries.trig
t/data/trig-2013/LITERAL2.trig
t/data/trig-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.nq
t/data/trig-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.trig
t/data/trig-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.nq
t/data/trig-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.trig
t/data/trig-2013/localname_with_COLON.nq
t/data/trig-2013/localname_with_COLON.trig
t/data/trig-2013/localName_with_leading_digit.nq
t/data/trig-2013/localName_with_leading_digit.trig
t/data/trig-2013/localName_with_leading_underscore.nq
t/data/trig-2013/localName_with_leading_underscore.trig
t/data/trig-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.nq
t/data/trig-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.trig
t/data/trig-2013/localName_with_non_leading_extras.nq
t/data/trig-2013/localName_with_non_leading_extras.trig
t/data/trig-2013/localName_with_PN_CHARS_BASE_character_boundaries.nq
t/data/trig-2013/localName_with_PN_CHARS_BASE_character_boundaries.trig
t/data/trig-2013/manifest.ttl
t/data/trig-2013/negative_numeric.nq
t/data/trig-2013/negative_numeric.trig
t/data/trig-2013/nested_blankNodePropertyLists.nq
t/data/trig-2013/nested_blankNodePropertyLists.trig
t/data/trig-2013/nested_collection.nq
t/data/trig-2013/nested_collection.trig
t/data/trig-2013/numeric_with_leading_0.nq
t/data/trig-2013/numeric_with_leading_0.trig
t/data/trig-2013/objectList_with_two_objects.nq
t/data/trig-2013/objectList_with_two_objects.trig
t/data/trig-2013/old_style_base.trig
t/data/trig-2013/old_style_prefix.trig
t/data/trig-2013/percent_escaped_localName.nq
t/data/trig-2013/percent_escaped_localName.trig
t/data/trig-2013/positive_numeric.nq
t/data/trig-2013/positive_numeric.trig
t/data/trig-2013/predicateObjectList_with_two_objectLists.nq
t/data/trig-2013/predicateObjectList_with_two_objectLists.trig
t/data/trig-2013/prefix_only_IRI.trig
t/data/trig-2013/prefix_reassigned_and_used.nq
t/data/trig-2013/prefix_reassigned_and_used.trig
t/data/trig-2013/prefix_with_non_leading_extras.trig
t/data/trig-2013/prefix_with_PN_CHARS_BASE_character_boundaries.trig
t/data/trig-2013/prefixed_IRI_object.trig
t/data/trig-2013/prefixed_IRI_predicate.trig
t/data/trig-2013/prefixed_name_datatype.trig
t/data/trig-2013/README
t/data/trig-2013/repeated_semis_at_end.trig
t/data/trig-2013/repeated_semis_not_at_end.nq
t/data/trig-2013/repeated_semis_not_at_end.trig
t/data/trig-2013/reserved_escaped_localName.nq
t/data/trig-2013/reserved_escaped_localName.trig
t/data/trig-2013/sole_blankNodePropertyList.trig
t/data/trig-2013/SPARQL_style_base.trig
t/data/trig-2013/SPARQL_style_prefix.trig
t/data/trig-2013/trig-eval-bad-01.trig
t/data/trig-2013/trig-eval-bad-02.trig
t/data/trig-2013/trig-eval-bad-03.trig
t/data/trig-2013/trig-eval-bad-04.trig
t/data/trig-2013/trig-eval-struct-01.nq
t/data/trig-2013/trig-eval-struct-01.trig
t/data/trig-2013/trig-eval-struct-02.nq
t/data/trig-2013/trig-eval-struct-02.trig
t/data/trig-2013/trig-subm-01.nq
t/data/trig-2013/trig-subm-01.trig
t/data/trig-2013/trig-subm-02.nq
t/data/trig-2013/trig-subm-02.trig
t/data/trig-2013/trig-subm-03.nq
t/data/trig-2013/trig-subm-03.trig
t/data/trig-2013/trig-subm-04.nq
t/data/trig-2013/trig-subm-04.trig
t/data/trig-2013/trig-subm-05.nq
t/data/trig-2013/trig-subm-05.trig
t/data/trig-2013/trig-subm-06.nq
t/data/trig-2013/trig-subm-06.trig
t/data/trig-2013/trig-subm-07.nq
t/data/trig-2013/trig-subm-07.trig
t/data/trig-2013/trig-subm-08.nq
t/data/trig-2013/trig-subm-08.trig
t/data/trig-2013/trig-subm-09.nq
t/data/trig-2013/trig-subm-09.trig
t/data/trig-2013/trig-subm-10.nq
t/data/trig-2013/trig-subm-10.trig
t/data/trig-2013/trig-subm-11.nq
t/data/trig-2013/trig-subm-11.trig
t/data/trig-2013/trig-subm-12.nq
t/data/trig-2013/trig-subm-12.trig
t/data/trig-2013/trig-subm-13.nq
t/data/trig-2013/trig-subm-13.trig
t/data/trig-2013/trig-subm-14.nq
t/data/trig-2013/trig-subm-14.trig
t/data/trig-2013/trig-subm-15.nq
t/data/trig-2013/trig-subm-15.trig
t/data/trig-2013/trig-subm-16.nq
t/data/trig-2013/trig-subm-16.trig
t/data/trig-2013/trig-subm-17.nq
t/data/trig-2013/trig-subm-17.trig
t/data/trig-2013/trig-subm-18.nq
t/data/trig-2013/trig-subm-18.trig
t/data/trig-2013/trig-subm-19.nq
t/data/trig-2013/trig-subm-19.trig
t/data/trig-2013/trig-subm-20.nq
t/data/trig-2013/trig-subm-20.trig
t/data/trig-2013/trig-subm-21.nq
t/data/trig-2013/trig-subm-21.trig
t/data/trig-2013/trig-subm-22.nq
t/data/trig-2013/trig-subm-22.trig
t/data/trig-2013/trig-subm-23.nq
t/data/trig-2013/trig-subm-23.trig
t/data/trig-2013/trig-subm-24.nq
t/data/trig-2013/trig-subm-24.trig
t/data/trig-2013/trig-subm-25.nq
t/data/trig-2013/trig-subm-25.trig
t/data/trig-2013/trig-subm-26.nq
t/data/trig-2013/trig-subm-26.trig
t/data/trig-2013/trig-subm-27.nq
t/data/trig-2013/trig-subm-27.trig
t/data/trig-2013/trig-syntax-bad-base-01.trig
t/data/trig-2013/trig-syntax-bad-base-02.trig
t/data/trig-2013/trig-syntax-bad-base-03.trig
t/data/trig-2013/trig-syntax-bad-base-04.trig
t/data/trig-2013/trig-syntax-bad-base-05.trig
t/data/trig-2013/trig-syntax-bad-blank-label-dot-end.trig
t/data/trig-2013/trig-syntax-bad-esc-01.trig
t/data/trig-2013/trig-syntax-bad-esc-02.trig
t/data/trig-2013/trig-syntax-bad-esc-03.trig
t/data/trig-2013/trig-syntax-bad-esc-04.trig
t/data/trig-2013/trig-syntax-bad-kw-01.trig
t/data/trig-2013/trig-syntax-bad-kw-02.trig
t/data/trig-2013/trig-syntax-bad-kw-03.trig
t/data/trig-2013/trig-syntax-bad-kw-04.trig
t/data/trig-2013/trig-syntax-bad-kw-05.trig
t/data/trig-2013/trig-syntax-bad-lang-01.trig
t/data/trig-2013/trig-syntax-bad-LITERAL2_with_langtag_and_datatype.trig
t/data/trig-2013/trig-syntax-bad-ln-dash-start.trig
t/data/trig-2013/trig-syntax-bad-ln-escape-start.trig
t/data/trig-2013/trig-syntax-bad-ln-escape.trig
t/data/trig-2013/trig-syntax-bad-missing-ns-dot-end.trig
t/data/trig-2013/trig-syntax-bad-missing-ns-dot-start.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-01.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-02.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-03.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-04.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-05.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-06.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-07.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-08.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-09.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-10.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-11.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-12.trig
t/data/trig-2013/trig-syntax-bad-n3-extras-13.trig
t/data/trig-2013/trig-syntax-bad-ns-dot-end.trig
t/data/trig-2013/trig-syntax-bad-ns-dot-start.trig
t/data/trig-2013/trig-syntax-bad-num-01.trig
t/data/trig-2013/trig-syntax-bad-num-02.trig
t/data/trig-2013/trig-syntax-bad-num-03.trig
t/data/trig-2013/trig-syntax-bad-num-04.trig
t/data/trig-2013/trig-syntax-bad-num-05.trig
t/data/trig-2013/trig-syntax-bad-number-dot-in-anon.trig
t/data/trig-2013/trig-syntax-bad-pname-01.trig
t/data/trig-2013/trig-syntax-bad-pname-02.trig
t/data/trig-2013/trig-syntax-bad-pname-03.trig
t/data/trig-2013/trig-syntax-bad-prefix-01.trig
t/data/trig-2013/trig-syntax-bad-prefix-02.trig
t/data/trig-2013/trig-syntax-bad-prefix-03.trig
t/data/trig-2013/trig-syntax-bad-prefix-04.trig
t/data/trig-2013/trig-syntax-bad-prefix-05.trig
t/data/trig-2013/trig-syntax-bad-prefix-06.trig
t/data/trig-2013/trig-syntax-bad-prefix-07.trig
t/data/trig-2013/trig-syntax-bad-string-01.trig
t/data/trig-2013/trig-syntax-bad-string-02.trig
t/data/trig-2013/trig-syntax-bad-string-03.trig
t/data/trig-2013/trig-syntax-bad-string-04.trig
t/data/trig-2013/trig-syntax-bad-string-05.trig
t/data/trig-2013/trig-syntax-bad-string-06.trig
t/data/trig-2013/trig-syntax-bad-string-07.trig
t/data/trig-2013/trig-syntax-bad-struct-02.trig
t/data/trig-2013/trig-syntax-bad-struct-03.trig
t/data/trig-2013/trig-syntax-bad-struct-04.trig
t/data/trig-2013/trig-syntax-bad-struct-05.trig
t/data/trig-2013/trig-syntax-bad-struct-06.trig
t/data/trig-2013/trig-syntax-bad-struct-07.trig
t/data/trig-2013/trig-syntax-bad-struct-09.trig
t/data/trig-2013/trig-syntax-bad-struct-10.trig
t/data/trig-2013/trig-syntax-bad-struct-12.trig
t/data/trig-2013/trig-syntax-bad-struct-13.trig
t/data/trig-2013/trig-syntax-bad-struct-14.trig
t/data/trig-2013/trig-syntax-bad-struct-15.trig
t/data/trig-2013/trig-syntax-bad-struct-16.trig
t/data/trig-2013/trig-syntax-bad-struct-17.trig
t/data/trig-2013/trig-syntax-bad-turtle-01.trig
t/data/trig-2013/trig-syntax-bad-uri-01.trig
t/data/trig-2013/trig-syntax-bad-uri-02.trig
t/data/trig-2013/trig-syntax-bad-uri-03.trig
t/data/trig-2013/trig-syntax-bad-uri-04.trig
t/data/trig-2013/trig-syntax-bad-uri-05.trig
t/data/trig-2013/trig-syntax-base-01.trig
t/data/trig-2013/trig-syntax-base-02.trig
t/data/trig-2013/trig-syntax-base-03.trig
t/data/trig-2013/trig-syntax-base-04.trig
t/data/trig-2013/trig-syntax-blank-label.trig
t/data/trig-2013/trig-syntax-bnode-01.trig
t/data/trig-2013/trig-syntax-bnode-02.trig
t/data/trig-2013/trig-syntax-bnode-03.trig
t/data/trig-2013/trig-syntax-bnode-04.trig
t/data/trig-2013/trig-syntax-bnode-05.trig
t/data/trig-2013/trig-syntax-bnode-06.trig
t/data/trig-2013/trig-syntax-bnode-07.trig
t/data/trig-2013/trig-syntax-bnode-08.trig
t/data/trig-2013/trig-syntax-bnode-09.trig
t/data/trig-2013/trig-syntax-bnode-10.trig
t/data/trig-2013/trig-syntax-datatypes-01.trig
t/data/trig-2013/trig-syntax-datatypes-02.trig
t/data/trig-2013/trig-syntax-file-01.trig
t/data/trig-2013/trig-syntax-file-02.trig
t/data/trig-2013/trig-syntax-file-03.trig
t/data/trig-2013/trig-syntax-kw-01.trig
t/data/trig-2013/trig-syntax-kw-02.trig
t/data/trig-2013/trig-syntax-kw-03.trig
t/data/trig-2013/trig-syntax-lists-01.trig
t/data/trig-2013/trig-syntax-lists-02.trig
t/data/trig-2013/trig-syntax-lists-03.trig
t/data/trig-2013/trig-syntax-lists-04.trig
t/data/trig-2013/trig-syntax-lists-05.trig
t/data/trig-2013/trig-syntax-ln-colons.trig
t/data/trig-2013/trig-syntax-ln-dots.trig
t/data/trig-2013/trig-syntax-ns-dots.trig
t/data/trig-2013/trig-syntax-number-01.trig
t/data/trig-2013/trig-syntax-number-02.trig
t/data/trig-2013/trig-syntax-number-03.trig
t/data/trig-2013/trig-syntax-number-04.trig
t/data/trig-2013/trig-syntax-number-05.trig
t/data/trig-2013/trig-syntax-number-06.trig
t/data/trig-2013/trig-syntax-number-07.trig
t/data/trig-2013/trig-syntax-number-08.trig
t/data/trig-2013/trig-syntax-number-09.trig
t/data/trig-2013/trig-syntax-number-10.trig
t/data/trig-2013/trig-syntax-number-11.trig
t/data/trig-2013/trig-syntax-pname-esc-01.trig
t/data/trig-2013/trig-syntax-pname-esc-02.trig
t/data/trig-2013/trig-syntax-pname-esc-03.trig
t/data/trig-2013/trig-syntax-prefix-01.trig
t/data/trig-2013/trig-syntax-prefix-02.trig
t/data/trig-2013/trig-syntax-prefix-03.trig
t/data/trig-2013/trig-syntax-prefix-04.trig
t/data/trig-2013/trig-syntax-prefix-05.trig
t/data/trig-2013/trig-syntax-prefix-06.trig
t/data/trig-2013/trig-syntax-prefix-07.trig
t/data/trig-2013/trig-syntax-prefix-08.trig
t/data/trig-2013/trig-syntax-prefix-09.trig
t/data/trig-2013/trig-syntax-str-esc-01.trig
t/data/trig-2013/trig-syntax-str-esc-02.trig
t/data/trig-2013/trig-syntax-str-esc-03.trig
t/data/trig-2013/trig-syntax-string-01.trig
t/data/trig-2013/trig-syntax-string-02.trig
t/data/trig-2013/trig-syntax-string-03.trig
t/data/trig-2013/trig-syntax-string-04.trig
t/data/trig-2013/trig-syntax-string-05.trig
t/data/trig-2013/trig-syntax-string-06.trig
t/data/trig-2013/trig-syntax-string-07.trig
t/data/trig-2013/trig-syntax-string-08.trig
t/data/trig-2013/trig-syntax-string-09.trig
t/data/trig-2013/trig-syntax-string-10.trig
t/data/trig-2013/trig-syntax-string-11.trig
t/data/trig-2013/trig-syntax-struct-01.trig
t/data/trig-2013/trig-syntax-struct-02.trig
t/data/trig-2013/trig-syntax-struct-03.trig
t/data/trig-2013/trig-syntax-struct-04.trig
t/data/trig-2013/trig-syntax-struct-05.trig
t/data/trig-2013/trig-syntax-struct-06.trig
t/data/trig-2013/trig-syntax-struct-07.trig
t/data/trig-2013/trig-syntax-uri-01.trig
t/data/trig-2013/trig-syntax-uri-02.trig
t/data/trig-2013/trig-syntax-uri-03.trig
t/data/trig-2013/trig-syntax-uri-04.trig
t/data/trig-2013/two_LITERAL_LONG2s.nq
t/data/trig-2013/two_LITERAL_LONG2s.trig
t/data/trig-2013/underscore_in_localName.nq
t/data/trig-2013/underscore_in_localName.trig
t/data/turtle-2013/anonymous_blank_node_object.ttl
t/data/turtle-2013/anonymous_blank_node_subject.ttl
t/data/turtle-2013/bareword_a_predicate.nt
t/data/turtle-2013/bareword_a_predicate.ttl
t/data/turtle-2013/bareword_decimal.nt
t/data/turtle-2013/bareword_decimal.ttl
t/data/turtle-2013/bareword_double.nt
t/data/turtle-2013/bareword_double.ttl
t/data/turtle-2013/bareword_integer.ttl
t/data/turtle-2013/blankNodePropertyList_as_object.nt
t/data/turtle-2013/blankNodePropertyList_as_object.ttl
t/data/turtle-2013/blankNodePropertyList_as_subject.nt
t/data/turtle-2013/blankNodePropertyList_as_subject.ttl
t/data/turtle-2013/blankNodePropertyList_containing_collection.nt
t/data/turtle-2013/blankNodePropertyList_containing_collection.ttl
t/data/turtle-2013/blankNodePropertyList_with_multiple_triples.nt
t/data/turtle-2013/blankNodePropertyList_with_multiple_triples.ttl
t/data/turtle-2013/collection_object.nt
t/data/turtle-2013/collection_object.ttl
t/data/turtle-2013/collection_subject.nt
t/data/turtle-2013/collection_subject.ttl
t/data/turtle-2013/comment_following_localName.ttl
t/data/turtle-2013/comment_following_PNAME_NS.nt
t/data/turtle-2013/comment_following_PNAME_NS.ttl
t/data/turtle-2013/default_namespace_IRI.ttl
t/data/turtle-2013/double_lower_case_e.nt
t/data/turtle-2013/double_lower_case_e.ttl
t/data/turtle-2013/empty_collection.nt
t/data/turtle-2013/empty_collection.ttl
t/data/turtle-2013/first.nt
t/data/turtle-2013/first.ttl
t/data/turtle-2013/HYPHEN_MINUS_in_localName.nt
t/data/turtle-2013/HYPHEN_MINUS_in_localName.ttl
t/data/turtle-2013/IRI_spo.nt
t/data/turtle-2013/IRI_subject.ttl
t/data/turtle-2013/IRI_with_all_punctuation.nt
t/data/turtle-2013/IRI_with_all_punctuation.ttl
t/data/turtle-2013/IRI_with_eight_digit_numeric_escape.ttl
t/data/turtle-2013/IRI_with_four_digit_numeric_escape.ttl
t/data/turtle-2013/IRIREF_datatype.nt
t/data/turtle-2013/IRIREF_datatype.ttl
t/data/turtle-2013/labeled_blank_node_object.nt
t/data/turtle-2013/labeled_blank_node_object.ttl
t/data/turtle-2013/labeled_blank_node_subject.nt
t/data/turtle-2013/labeled_blank_node_subject.ttl
t/data/turtle-2013/labeled_blank_node_with_leading_digit.ttl
t/data/turtle-2013/labeled_blank_node_with_leading_underscore.ttl
t/data/turtle-2013/labeled_blank_node_with_non_leading_extras.ttl
t/data/turtle-2013/labeled_blank_node_with_PN_CHARS_BASE_character_boundaries.ttl
t/data/turtle-2013/langtagged_LONG_with_subtag.nt
t/data/turtle-2013/langtagged_LONG_with_subtag.ttl
t/data/turtle-2013/langtagged_LONG.ttl
t/data/turtle-2013/langtagged_non_LONG.nt
t/data/turtle-2013/langtagged_non_LONG.ttl
t/data/turtle-2013/lantag_with_subtag.nt
t/data/turtle-2013/lantag_with_subtag.ttl
t/data/turtle-2013/last.nt
t/data/turtle-2013/last.ttl
t/data/turtle-2013/LICENSE
t/data/turtle-2013/literal_false.nt
t/data/turtle-2013/literal_false.ttl
t/data/turtle-2013/LITERAL_LONG1_ascii_boundaries.nt
t/data/turtle-2013/LITERAL_LONG1_ascii_boundaries.ttl
t/data/turtle-2013/LITERAL_LONG1_with_1_squote.nt
t/data/turtle-2013/LITERAL_LONG1_with_1_squote.ttl
t/data/turtle-2013/LITERAL_LONG1_with_2_squotes.nt
t/data/turtle-2013/LITERAL_LONG1_with_2_squotes.ttl
t/data/turtle-2013/LITERAL_LONG1_with_UTF8_boundaries.ttl
t/data/turtle-2013/LITERAL_LONG1.ttl
t/data/turtle-2013/LITERAL_LONG2_ascii_boundaries.nt
t/data/turtle-2013/LITERAL_LONG2_ascii_boundaries.ttl
t/data/turtle-2013/LITERAL_LONG2_with_1_squote.nt
t/data/turtle-2013/LITERAL_LONG2_with_1_squote.ttl
t/data/turtle-2013/LITERAL_LONG2_with_2_squotes.nt
t/data/turtle-2013/LITERAL_LONG2_with_2_squotes.ttl
t/data/turtle-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.nt
t/data/turtle-2013/LITERAL_LONG2_with_REVERSE_SOLIDUS.ttl
t/data/turtle-2013/LITERAL_LONG2_with_UTF8_boundaries.ttl
t/data/turtle-2013/LITERAL_LONG2.ttl
t/data/turtle-2013/literal_true.nt
t/data/turtle-2013/literal_true.ttl
t/data/turtle-2013/literal_with_BACKSPACE.nt
t/data/turtle-2013/literal_with_BACKSPACE.ttl
t/data/turtle-2013/literal_with_CARRIAGE_RETURN.nt
t/data/turtle-2013/literal_with_CARRIAGE_RETURN.ttl
t/data/turtle-2013/literal_with_CHARACTER_TABULATION.nt
t/data/turtle-2013/literal_with_CHARACTER_TABULATION.ttl
t/data/turtle-2013/literal_with_escaped_BACKSPACE.ttl
t/data/turtle-2013/literal_with_escaped_CARRIAGE_RETURN.ttl
t/data/turtle-2013/literal_with_escaped_CHARACTER_TABULATION.ttl
t/data/turtle-2013/literal_with_escaped_FORM_FEED.ttl
t/data/turtle-2013/literal_with_escaped_LINE_FEED.ttl
t/data/turtle-2013/literal_with_FORM_FEED.nt
t/data/turtle-2013/literal_with_FORM_FEED.ttl
t/data/turtle-2013/literal_with_LINE_FEED.nt
t/data/turtle-2013/literal_with_LINE_FEED.ttl
t/data/turtle-2013/literal_with_numeric_escape4.nt
t/data/turtle-2013/literal_with_numeric_escape4.ttl
t/data/turtle-2013/literal_with_numeric_escape8.ttl
t/data/turtle-2013/literal_with_REVERSE_SOLIDUS.nt
t/data/turtle-2013/literal_with_REVERSE_SOLIDUS.ttl
t/data/turtle-2013/LITERAL_with_UTF8_boundaries.nt
t/data/turtle-2013/LITERAL1_all_controls.nt
t/data/turtle-2013/LITERAL1_all_controls.ttl
t/data/turtle-2013/LITERAL1_all_punctuation.nt
t/data/turtle-2013/LITERAL1_all_punctuation.ttl
t/data/turtle-2013/LITERAL1_ascii_boundaries.nt
t/data/turtle-2013/LITERAL1_ascii_boundaries.ttl
t/data/turtle-2013/LITERAL1_with_UTF8_boundaries.ttl
t/data/turtle-2013/LITERAL1_with_UTF8_boundaries.ttl.new
t/data/turtle-2013/LITERAL1.nt
t/data/turtle-2013/LITERAL1.ttl
t/data/turtle-2013/LITERAL2_ascii_boundaries.nt
t/data/turtle-2013/LITERAL2_ascii_boundaries.ttl
t/data/turtle-2013/LITERAL2_with_UTF8_boundaries.ttl
t/data/turtle-2013/LITERAL2.ttl
t/data/turtle-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.nt
t/data/turtle-2013/localName_with_assigned_nfc_bmp_PN_CHARS_BASE_character_boundaries.ttl
t/data/turtle-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.nt
t/data/turtle-2013/localName_with_assigned_nfc_PN_CHARS_BASE_character_boundaries.ttl
t/data/turtle-2013/localname_with_COLON.nt
t/data/turtle-2013/localname_with_COLON.ttl
t/data/turtle-2013/localName_with_leading_digit.nt
t/data/turtle-2013/localName_with_leading_digit.ttl
t/data/turtle-2013/localName_with_leading_underscore.nt
t/data/turtle-2013/localName_with_leading_underscore.ttl
t/data/turtle-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.nt
t/data/turtle-2013/localName_with_nfc_PN_CHARS_BASE_character_boundaries.ttl
t/data/turtle-2013/localName_with_non_leading_extras.nt
t/data/turtle-2013/localName_with_non_leading_extras.ttl
t/data/turtle-2013/manifest.ttl
t/data/turtle-2013/negative_numeric.nt
t/data/turtle-2013/negative_numeric.ttl
t/data/turtle-2013/nested_blankNodePropertyLists.nt
t/data/turtle-2013/nested_blankNodePropertyLists.ttl
t/data/turtle-2013/nested_collection.nt
t/data/turtle-2013/nested_collection.ttl
t/data/turtle-2013/number_sign_following_localName.nt
t/data/turtle-2013/number_sign_following_localName.ttl
t/data/turtle-2013/number_sign_following_PNAME_NS.nt
t/data/turtle-2013/number_sign_following_PNAME_NS.ttl
t/data/turtle-2013/numeric_with_leading_0.nt
t/data/turtle-2013/numeric_with_leading_0.ttl
t/data/turtle-2013/objectList_with_two_objects.nt
t/data/turtle-2013/objectList_with_two_objects.ttl
t/data/turtle-2013/old_style_base.ttl
t/data/turtle-2013/old_style_prefix.ttl
t/data/turtle-2013/percent_escaped_localName.nt
t/data/turtle-2013/percent_escaped_localName.ttl
t/data/turtle-2013/positive_numeric.nt
t/data/turtle-2013/positive_numeric.ttl
t/data/turtle-2013/predicateObjectList_with_two_objectLists.nt
t/data/turtle-2013/predicateObjectList_with_two_objectLists.ttl
t/data/turtle-2013/prefix_only_IRI.ttl
t/data/turtle-2013/prefix_reassigned_and_used.nt
t/data/turtle-2013/prefix_reassigned_and_used.ttl
t/data/turtle-2013/prefix_with_non_leading_extras.ttl
t/data/turtle-2013/prefix_with_PN_CHARS_BASE_character_boundaries.ttl
t/data/turtle-2013/prefixed_IRI_object.ttl
t/data/turtle-2013/prefixed_IRI_predicate.ttl
t/data/turtle-2013/prefixed_name_datatype.ttl
t/data/turtle-2013/README
t/data/turtle-2013/repeated_semis_at_end.ttl
t/data/turtle-2013/repeated_semis_not_at_end.nt
t/data/turtle-2013/repeated_semis_not_at_end.ttl
t/data/turtle-2013/reserved_escaped_localName.nt
t/data/turtle-2013/reserved_escaped_localName.ttl
t/data/turtle-2013/sole_blankNodePropertyList.ttl
t/data/turtle-2013/SPARQL_style_base.ttl
t/data/turtle-2013/SPARQL_style_prefix.ttl
t/data/turtle-2013/turtle-eval-bad-01.ttl
t/data/turtle-2013/turtle-eval-bad-02.ttl
t/data/turtle-2013/turtle-eval-bad-03.ttl
t/data/turtle-2013/turtle-eval-bad-04.ttl
t/data/turtle-2013/turtle-eval-struct-01.nt
t/data/turtle-2013/turtle-eval-struct-01.ttl
t/data/turtle-2013/turtle-eval-struct-02.nt
t/data/turtle-2013/turtle-eval-struct-02.ttl
t/data/turtle-2013/turtle-subm-01.nt
t/data/turtle-2013/turtle-subm-01.ttl
t/data/turtle-2013/turtle-subm-02.nt
t/data/turtle-2013/turtle-subm-02.ttl
t/data/turtle-2013/turtle-subm-03.nt
t/data/turtle-2013/turtle-subm-03.ttl
t/data/turtle-2013/turtle-subm-04.nt
t/data/turtle-2013/turtle-subm-04.ttl
t/data/turtle-2013/turtle-subm-05.nt
t/data/turtle-2013/turtle-subm-05.ttl
t/data/turtle-2013/turtle-subm-06.nt
t/data/turtle-2013/turtle-subm-06.ttl
t/data/turtle-2013/turtle-subm-07.nt
t/data/turtle-2013/turtle-subm-07.ttl
t/data/turtle-2013/turtle-subm-08.nt
t/data/turtle-2013/turtle-subm-08.ttl
t/data/turtle-2013/turtle-subm-09.nt
t/data/turtle-2013/turtle-subm-09.ttl
t/data/turtle-2013/turtle-subm-10.nt
t/data/turtle-2013/turtle-subm-10.ttl
t/data/turtle-2013/turtle-subm-11.nt
t/data/turtle-2013/turtle-subm-11.ttl
t/data/turtle-2013/turtle-subm-12.nt
t/data/turtle-2013/turtle-subm-12.ttl
t/data/turtle-2013/turtle-subm-13.nt
t/data/turtle-2013/turtle-subm-13.ttl
t/data/turtle-2013/turtle-subm-14.nt
t/data/turtle-2013/turtle-subm-14.ttl
t/data/turtle-2013/turtle-subm-15.nt
t/data/turtle-2013/turtle-subm-15.ttl
t/data/turtle-2013/turtle-subm-16.nt
t/data/turtle-2013/turtle-subm-16.ttl
t/data/turtle-2013/turtle-subm-17.nt
t/data/turtle-2013/turtle-subm-17.ttl
t/data/turtle-2013/turtle-subm-18.nt
t/data/turtle-2013/turtle-subm-18.ttl
t/data/turtle-2013/turtle-subm-19.nt
t/data/turtle-2013/turtle-subm-19.ttl
t/data/turtle-2013/turtle-subm-20.nt
t/data/turtle-2013/turtle-subm-20.ttl
t/data/turtle-2013/turtle-subm-21.nt
t/data/turtle-2013/turtle-subm-21.ttl
t/data/turtle-2013/turtle-subm-22.nt
t/data/turtle-2013/turtle-subm-22.ttl
t/data/turtle-2013/turtle-subm-23.nt
t/data/turtle-2013/turtle-subm-23.ttl
t/data/turtle-2013/turtle-subm-24.nt
t/data/turtle-2013/turtle-subm-24.ttl
t/data/turtle-2013/turtle-subm-25.nt
t/data/turtle-2013/turtle-subm-25.ttl
t/data/turtle-2013/turtle-subm-26.nt
t/data/turtle-2013/turtle-subm-26.ttl
t/data/turtle-2013/turtle-subm-27.nt
t/data/turtle-2013/turtle-subm-27.ttl
t/data/turtle-2013/turtle-syntax-bad-base-01.ttl
t/data/turtle-2013/turtle-syntax-bad-base-02.ttl
t/data/turtle-2013/turtle-syntax-bad-base-03.ttl
t/data/turtle-2013/turtle-syntax-bad-blank-label-dot-end.ttl
t/data/turtle-2013/turtle-syntax-bad-esc-01.ttl
t/data/turtle-2013/turtle-syntax-bad-esc-02.ttl
t/data/turtle-2013/turtle-syntax-bad-esc-03.ttl
t/data/turtle-2013/turtle-syntax-bad-esc-04.ttl
t/data/turtle-2013/turtle-syntax-bad-kw-01.ttl
t/data/turtle-2013/turtle-syntax-bad-kw-02.ttl
t/data/turtle-2013/turtle-syntax-bad-kw-03.ttl
t/data/turtle-2013/turtle-syntax-bad-kw-04.ttl
t/data/turtle-2013/turtle-syntax-bad-kw-05.ttl
t/data/turtle-2013/turtle-syntax-bad-lang-01.ttl
t/data/turtle-2013/turtle-syntax-bad-LITERAL2_with_langtag_and_datatype.ttl
t/data/turtle-2013/turtle-syntax-bad-ln-dash-start.ttl
t/data/turtle-2013/turtle-syntax-bad-ln-escape-start.ttl
t/data/turtle-2013/turtle-syntax-bad-ln-escape.ttl
t/data/turtle-2013/turtle-syntax-bad-missing-ns-dot-end.ttl
t/data/turtle-2013/turtle-syntax-bad-missing-ns-dot-start.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-01.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-02.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-03.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-04.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-05.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-06.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-07.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-08.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-09.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-10.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-11.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-12.ttl
t/data/turtle-2013/turtle-syntax-bad-n3-extras-13.ttl
t/data/turtle-2013/turtle-syntax-bad-ns-dot-end.ttl
t/data/turtle-2013/turtle-syntax-bad-ns-dot-start.ttl
t/data/turtle-2013/turtle-syntax-bad-num-01.ttl
t/data/turtle-2013/turtle-syntax-bad-num-02.ttl
t/data/turtle-2013/turtle-syntax-bad-num-03.ttl
t/data/turtle-2013/turtle-syntax-bad-num-04.ttl
t/data/turtle-2013/turtle-syntax-bad-num-05.ttl
t/data/turtle-2013/turtle-syntax-bad-number-dot-in-anon.ttl
t/data/turtle-2013/turtle-syntax-bad-pname-01.ttl
t/data/turtle-2013/turtle-syntax-bad-pname-02.ttl
t/data/turtle-2013/turtle-syntax-bad-pname-03.ttl
t/data/turtle-2013/turtle-syntax-bad-prefix-01.ttl
t/data/turtle-2013/turtle-syntax-bad-prefix-02.ttl
t/data/turtle-2013/turtle-syntax-bad-prefix-03.ttl
t/data/turtle-2013/turtle-syntax-bad-prefix-04.ttl
t/data/turtle-2013/turtle-syntax-bad-prefix-05.ttl
t/data/turtle-2013/turtle-syntax-bad-string-01.ttl
t/data/turtle-2013/turtle-syntax-bad-string-02.ttl
t/data/turtle-2013/turtle-syntax-bad-string-03.ttl
t/data/turtle-2013/turtle-syntax-bad-string-04.ttl
t/data/turtle-2013/turtle-syntax-bad-string-05.ttl
t/data/turtle-2013/turtle-syntax-bad-string-06.ttl
t/data/turtle-2013/turtle-syntax-bad-string-07.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-01.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-02.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-03.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-04.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-05.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-06.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-07.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-08.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-09.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-10.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-11.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-12.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-13.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-14.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-15.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-16.ttl
t/data/turtle-2013/turtle-syntax-bad-struct-17.ttl
t/data/turtle-2013/turtle-syntax-bad-uri-01.ttl
t/data/turtle-2013/turtle-syntax-bad-uri-02.ttl
t/data/turtle-2013/turtle-syntax-bad-uri-03.ttl
t/data/turtle-2013/turtle-syntax-bad-uri-04.ttl
t/data/turtle-2013/turtle-syntax-bad-uri-05.ttl
t/data/turtle-2013/turtle-syntax-base-01.ttl
t/data/turtle-2013/turtle-syntax-base-02.ttl
t/data/turtle-2013/turtle-syntax-base-03.ttl
t/data/turtle-2013/turtle-syntax-base-04.ttl
t/data/turtle-2013/turtle-syntax-blank-label.ttl
t/data/turtle-2013/turtle-syntax-bnode-01.ttl
t/data/turtle-2013/turtle-syntax-bnode-02.ttl
t/data/turtle-2013/turtle-syntax-bnode-03.ttl
t/data/turtle-2013/turtle-syntax-bnode-04.ttl
t/data/turtle-2013/turtle-syntax-bnode-05.ttl
t/data/turtle-2013/turtle-syntax-bnode-06.ttl
t/data/turtle-2013/turtle-syntax-bnode-07.ttl
t/data/turtle-2013/turtle-syntax-bnode-08.ttl
t/data/turtle-2013/turtle-syntax-bnode-09.ttl
t/data/turtle-2013/turtle-syntax-bnode-10.ttl
t/data/turtle-2013/turtle-syntax-datatypes-01.ttl
t/data/turtle-2013/turtle-syntax-datatypes-02.ttl
t/data/turtle-2013/turtle-syntax-file-01.ttl
t/data/turtle-2013/turtle-syntax-file-02.ttl
t/data/turtle-2013/turtle-syntax-file-03.ttl
t/data/turtle-2013/turtle-syntax-kw-01.ttl
t/data/turtle-2013/turtle-syntax-kw-02.ttl
t/data/turtle-2013/turtle-syntax-kw-03.ttl
t/data/turtle-2013/turtle-syntax-lists-01.ttl
t/data/turtle-2013/turtle-syntax-lists-02.ttl
t/data/turtle-2013/turtle-syntax-lists-03.ttl
t/data/turtle-2013/turtle-syntax-lists-04.ttl
t/data/turtle-2013/turtle-syntax-lists-05.ttl
t/data/turtle-2013/turtle-syntax-ln-colons.ttl
t/data/turtle-2013/turtle-syntax-ln-dots.ttl
t/data/turtle-2013/turtle-syntax-ns-dots.ttl
t/data/turtle-2013/turtle-syntax-number-01.ttl
t/data/turtle-2013/turtle-syntax-number-02.ttl
t/data/turtle-2013/turtle-syntax-number-03.ttl
t/data/turtle-2013/turtle-syntax-number-04.ttl
t/data/turtle-2013/turtle-syntax-number-05.ttl
t/data/turtle-2013/turtle-syntax-number-06.ttl
t/data/turtle-2013/turtle-syntax-number-07.ttl
t/data/turtle-2013/turtle-syntax-number-08.ttl
t/data/turtle-2013/turtle-syntax-number-09.ttl
t/data/turtle-2013/turtle-syntax-number-10.ttl
t/data/turtle-2013/turtle-syntax-number-11.ttl
t/data/turtle-2013/turtle-syntax-pname-esc-01.ttl
t/data/turtle-2013/turtle-syntax-pname-esc-02.ttl
t/data/turtle-2013/turtle-syntax-pname-esc-03.ttl
t/data/turtle-2013/turtle-syntax-prefix-01.ttl
t/data/turtle-2013/turtle-syntax-prefix-02.ttl
t/data/turtle-2013/turtle-syntax-prefix-03.ttl
t/data/turtle-2013/turtle-syntax-prefix-04.ttl
t/data/turtle-2013/turtle-syntax-prefix-05.ttl
t/data/turtle-2013/turtle-syntax-prefix-06.ttl
t/data/turtle-2013/turtle-syntax-prefix-07.ttl
t/data/turtle-2013/turtle-syntax-prefix-08.ttl
t/data/turtle-2013/turtle-syntax-prefix-09.ttl
t/data/turtle-2013/turtle-syntax-str-esc-01.ttl
t/data/turtle-2013/turtle-syntax-str-esc-02.ttl
t/data/turtle-2013/turtle-syntax-str-esc-03.ttl
t/data/turtle-2013/turtle-syntax-string-01.ttl
t/data/turtle-2013/turtle-syntax-string-02.ttl
t/data/turtle-2013/turtle-syntax-string-03.ttl
t/data/turtle-2013/turtle-syntax-string-04.ttl
t/data/turtle-2013/turtle-syntax-string-05.ttl
t/data/turtle-2013/turtle-syntax-string-06.ttl
t/data/turtle-2013/turtle-syntax-string-07.ttl
t/data/turtle-2013/turtle-syntax-string-08.ttl
t/data/turtle-2013/turtle-syntax-string-09.ttl
t/data/turtle-2013/turtle-syntax-string-10.ttl
t/data/turtle-2013/turtle-syntax-string-11.ttl
t/data/turtle-2013/turtle-syntax-struct-01.ttl
t/data/turtle-2013/turtle-syntax-struct-02.ttl
t/data/turtle-2013/turtle-syntax-struct-03.ttl
t/data/turtle-2013/turtle-syntax-struct-04.ttl
t/data/turtle-2013/turtle-syntax-struct-05.ttl
t/data/turtle-2013/turtle-syntax-uri-01.ttl
t/data/turtle-2013/turtle-syntax-uri-02.ttl
t/data/turtle-2013/turtle-syntax-uri-03.ttl
t/data/turtle-2013/turtle-syntax-uri-04.ttl
t/data/turtle-2013/two_LITERAL_LONG2s.nt
t/data/turtle-2013/two_LITERAL_LONG2s.ttl
t/data/turtle-2013/underscore_in_localName.nt
t/data/turtle-2013/underscore_in_localName.ttl
t/data/turtle/bad-00.ttl
t/data/turtle/bad-01.ttl
t/data/turtle/bad-02.ttl
t/data/turtle/bad-03.ttl
t/data/turtle/bad-04.ttl
t/data/turtle/bad-05.ttl
t/data/turtle/bad-06.ttl
t/data/turtle/bad-07.ttl
t/data/turtle/bad-08.ttl
t/data/turtle/bad-09.ttl
t/data/turtle/bad-10.ttl
t/data/turtle/bad-11.ttl
t/data/turtle/bad-12.ttl
t/data/turtle/bad-13.ttl
t/data/turtle/bad-14.ttl
t/data/turtle/rdf-schema.out
t/data/turtle/rdf-schema.ttl
t/data/turtle/rdfq-results.out
t/data/turtle/rdfq-results.ttl
t/data/turtle/rdfs-namespace.out
t/data/turtle/rdfs-namespace.ttl
t/data/turtle/test-00.out
t/data/turtle/test-00.ttl
t/data/turtle/test-01.out
t/data/turtle/test-01.ttl
t/data/turtle/test-02.out
t/data/turtle/test-02.ttl
t/data/turtle/test-03.out
t/data/turtle/test-03.ttl
t/data/turtle/test-04.out
t/data/turtle/test-04.ttl
t/data/turtle/test-05.out
t/data/turtle/test-05.ttl
t/data/turtle/test-06.out
t/data/turtle/test-06.ttl
t/data/turtle/test-07.out
t/data/turtle/test-07.ttl
t/data/turtle/test-08.out
t/data/turtle/test-08.ttl
t/data/turtle/test-09.out
t/data/turtle/test-09.ttl
t/data/turtle/test-10.out
t/data/turtle/test-10.ttl
t/data/turtle/test-11.out
t/data/turtle/test-11.ttl
t/data/turtle/test-12.out
t/data/turtle/test-12.ttl
t/data/turtle/test-13.out
t/data/turtle/test-13.ttl
t/data/turtle/test-17.out
t/data/turtle/test-17.ttl
t/data/turtle/test-18.out
t/data/turtle/test-18.ttl
t/data/turtle/test-19.out
t/data/turtle/test-19.ttl
t/data/turtle/test-20.out
t/data/turtle/test-20.ttl
t/data/turtle/test-21.out
t/data/turtle/test-21.ttl
t/data/turtle/test-22.out
t/data/turtle/test-22.ttl
t/data/turtle/test-23.out
t/data/turtle/test-23.ttl
t/data/turtle/test-24.out
t/data/turtle/test-24.ttl
t/data/turtle/test-25.out
t/data/turtle/test-25.ttl
t/exporter-csv.t
t/graph-subgraphs.t
t/graph.t
t/iterator-bindings-join.t
t/iterator-bindings-materialize.t
t/iterator-bindings.t
t/iterator-boolean.t
t/iterator-graph-materialize.t
t/iterator-graph.t
t/iterator-materialized.t
t/iterator-thaw.t
t/iterator.t
t/model-boundeddescription.t
t/model-dataset.t
t/model-filter.t
t/model-logger.t
t/model-temporary.t
t/model-union.t
t/model.t
t/namespace-export.t
t/namespace-uri.t
t/namespacemap.t
t/node-literal.t
t/node-resource-i18n.t
t/node-serialization.t
t/node.t
t/parser-nquads.t
t/parser-ntriples.t
t/parser-rdfa.t
t/parser-rdfjson.t
t/parser-rdfpatch.t
t/parser-rdfxml-w3c.t
t/parser-redland.t
t/parser-trig.t
t/parser-turtle-2013.t
t/parser-turtle.t
t/parser.t
t/pattern.t
t/remove-list.t
t/serializer-nquads.t
t/serializer-ntriples-canonical.t
t/serializer-ntriples.t
t/serializer-rdfjson.t
t/serializer-rdfpatch.t
t/serializer-rdfxml.t
t/serializer-trig.t
t/serializer-tsv.t
t/serializer-turtle.t
t/serializer.t
t/statement-serialization.t
t/statement.t
t/store-config.t
t/store-context.t
t/store-dbi-mysql.t
t/store-dbi-pg.t
t/store-dbi-sqlite.t
t/store-dbi.t
t/store-hexastore-pattern.t
t/store-hexastore-storable.t
t/store-hexastore-triplestore.t
t/store-hexastore.t
t/store-language.t
t/store-memory.t
t/store-redis.t
t/store-triple_sql.t
t/store.t
t/syntax.t
xt/00_compile.t
xt/data/turtle/test-14.out
xt/data/turtle/test-14.ttl
xt/data/turtle/test-15.out
xt/data/turtle/test-15.ttl
xt/data/turtle/test-16.out
xt/data/turtle/test-16.ttl
xt/parser-trig-2013.t
xt/perl-critic.t
xt/pod-coverage.t
xt/pod.t
xt/store-dydra.t
xt/store-redland.t
xt/store-sparql.t
RDF-Trine-1.019/t/ 000755 000765 000024 00000000000 13223603204 013543 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/xt/ 000755 000765 000024 00000000000 13223603204 013733 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/README 000644 000765 000024 00000163277 13223602740 014204 0 ustar 00greg staff 000000 000000 RDF::Trine - An RDF Framework for Perl.
RDF::Trine provides an RDF framework with an emphasis on extensibility, API
stability, and the presence of a test suite. The package consists of several
components:
* RDF::Trine::Model - RDF model providing access to a triple store.
* RDF::Trine::Parser - Native RDF parsers (RDF/XML, RDFa, Turtle, RDF/JSON,
TriG, N-Triples, and N-Quads).
* RDF::Trine::Serializer, a set of native RDF serializers for RDF/XML, Turtle,
RDF/JSON, N-Triples, Canonical N-Triples, and N-Quads.
* RDF::Trine::Store::DBI - A triple store for MySQL and SQLite, based on the
Redland schema.
* RDF::Trine::Iterator - Iterator classes for variable bindings and RDF
statements, used by RDF::Trine::Store, RDF::Trine::Model, and RDF::Query.
* RDF::Trine::Namespace - A convenience class for easily constructing RDF
node objects from URI namespaces.
REQUIREMENTS
To install RDF::Trine you'll need the following perl modules installed:
* Algorithm::Combinatorics
* Cache::LRU
* Data::UUID
* DBI
* DBIx::Connector
* DBD::SQLite
* Digest::MD5
* Error
* HTTP::Negotiate
* JSON
* LWP::UserAgent
* List::Util
* List::MoreUtils
* Log::Log4perl
* Math::BigInt
* Scalar::Util
* Set::Scalar
* Text::CSV_XS
* Text::Table
* Time::HiRes
* Unicode::Escape
* Unicode::String
* URI
* XML::CommonNS
* XML::Namespace
* XML::SAX
* XML::LibXML
* XML::LibXML::SAX
The following additional modules are optional:
* DBD::Pg
* DBD::Mysql
* Test::More
* Test::Exception
* RDF::RDFa::Parser
INSTALLATION
To install, run:
perl Makefile.PL
make
make test
make install
VERSION HISTORY
Version 1.019 (2018-01-04)
* BUG FIXES
Add test case for TSV serializer fixes (#155, #156 from @phochste).
Version 1.018 (2017-06-20)
* BUG FIXES
Fix API inconsistency in RDF::Trine::Store::SPARQL (#149, #150 from @minusdavid).
Version 1.017 (2017-06-01)
* BUG FIXES
Fixes to data update code in RDF::Trine::Store::SPARQL (#146 from @minusdavid).
Version 1.016 (2017-04-24)
* BUG FIXES
Fixes to RDF::Trine::Store::Redland (#145 from @doriantaylor).
* OTHER
Updated Makefile.PL for perl 5.26.
Remove use of TryCatch in scripts and developer tests.
Version 1.015 (2017-01-04)
* BUG FIXES
Remove call to $dbh->begin_work when already working with AutoCommit turned off.
* ENHANCEMENTS
Updated rdf_store_add_file.pl to guess the appropriate parser based on the filename.
Replaced all uses and initializations from Text::CSV in favour to Text::CSV_XS (#136 from @jordivador).
* OTHER
Change hashbang to use env (#137 from KjetilK).
Remove use of RDF::Redland in bin/rdf_store_serialize.pl.
Remove use of TryCatch (#138 from @ppisar).
Version 1.014 (2015-05-17)
* BUG FIXES
Fix data loss bug in SQLite backend schema and hash encoding (from Mike Frager PR #126).
* ENHANCEMENTS
Read data as utf8 from STDIN.
* OTHER
Added Cache::LRU requirement to prerequisite list and README.
Version 1.013 (2015-02-14)
* BUG FIXES
Update how file URIs are constructed to better deal with windows systems.
Fixed bug in RDF::Trine::Model->size that was only considering triples, not quads.
Fix get_statements and count_statements when called with quad patterns with non-nil graph.
* NEW FEATURES
Added RDF::Trine::Store::LanguagePreference class.
Added RDF::Trine::Parser->parse_url method (github issue #119).
* ENHANCEMENTS
Improve insertion performance in RDF::Trine::Store::Memory by keeping caching quad SHA1 hashes.
Make RDF::Trine::VariableBindings->join more flexible in testing of equality.
Simplify coercion of values in RDF::Trine::Node::Resource constructor.
* OTHER
Update triple store tests for expected results when passing in quad patterns with non-nil graphs.
Miscellaneous code and documentation improvements (from Kjetil Kjernsmo via github pull request #116).
Added IRI to list of prereq modules in Makefile.PL.
Version 1.012 (2015-01-15)
* BUG FIXES
Fixed SPARQL XML serialization of boolean results.
Version 1.011 (2014-10-24)
* BUG FIXES
Updated Hexastore store to return an empty iterator for get_contexts() instead of croaking.
Fixed TSV serializer to print header rows and accept VariableBindings as input.
Version 1.010 (2014-10-03)
* BUG FIXES
Fixed bug in SPARQL store that wasn't properly decoding HTTP response content (github issue #118).
* NEW FEATURES
Refactored part of RDF::Trine::Iterator::Graph->as_hashref into RDF::Trine::Node->as_hashref (github issue #117).
* ENHANCEMENTS
Update RDF::Trine::Pattern with heuristic pattern sorter (github pull request #114 from Kjetil Kjernsmo).
* OTHER
Added IRC resource to Makefile.PL.
Version 1.009 (2014-08-06)
* NEW FEATURES
Adding model sync/bulk ops to redland store (Dorian Taylor).
* ENHANCEMENTS
Optimized use of regular expressions (Dorian Taylor).
Optimized Hexastore store class (Dorian Taylor).
Use a base64 encoded digest for Memory store etags (Kjetil Kjernsmo).
Updated RDF::Trine::Iterator::Bindings->as_statements to accept a RDF::Trine::Pattern argument (github issue #104).
* OTHER
Log an info message if there is a cartesian product (Kjetil Kjernsmo).
Version 1.008 (2014-05-20)
* BUG FIXES
Fixed bug in Turtle lexer that was failing to anchor matches of PNAME_LN (GH issue #96 by Tobias Kuhn).
Fixed looping bug and handling of N-Triples escape sequences (GH issue #97 by Tobias Kuhn).
Made checking for known DBI backend DSN strings case insensitive.
Fix bug in RDF::Query::Plan::Join::PushDownNestedLoop that didn't allow 'aggregate' to appear in the RHS serialized text (github issue #101).
Fix SPARQL 1.1 GGP parsing bug (github issue #100).
Fixed bug in constructing the HTTP request object for SPARQL updates.
* NEW FEATURES
Added RDF::Trine::Parser::RDFPatch.
Added RDF::Trine::Parser::LineProtocol as a RDFPatch parser subclass allowing querying (with bin/cliapi tool).
* ENHANCEMENTS
Sync RDF::Trine::NamespaceMap up with URI::NamespaceMap's interface (code from Dorian Taylor).
Updated RDF::Trine::Parser::Turtle->new to accept a default namespace 'map' key.
Updated RDF::Trine::Model->add_statement to verify that statement nodes are ground (not variables).
Updated RDF::Trine::Parser::Turtle->parse_node to allow accessing the tokenizer object used in parsing.
Added RDF::Trine::Parser::Turtle->_term method.
Fixed RDF::Query::Algebra->subpatterns_of_type to support descent into sub-queries.
Fixed as_hash method in RDF::Query::Expression::Alias, RDF::Query::Algebra::Aggregate and RDF::Query::Algebra::Sort.
Return a success iterator for POST requests based only on response code (and regardless of the response content).
Allow POST responses to redirect in RDF::Trine::Store::SPARQL.
Use normalized langauge tags in RDF::Trine::Node::Literal->new.
Added RDF::Query::ExecutionContext->bind_variable method.
* OTHER
Added W3C Turtle Test Suite harness bin/turtle-2013-harness.pl.
Added xt/perl-critic.t.
Updated parser method documentation to indicate where data is expected to be bytes.
Added some more docs to the SQlite config (pull request #102 from KjetilK).
Throw error if bindings iterator is given rather than graph in RDF::Trine::Model->add_iterator (pull request #103 from KjetilK).
Disable pushing full updates down into the store object (only meant to be full queries at this point).
Add POD hyperlinks to RDF::Trine documentation (pull request #99 from nichtich).
Version 1.007 (2013-07-18)
* BUG FIXES
Update Turtle lexer to look for whitespace (instead of a word break) after 'a' when looking for the A token.
Work around a XML::Namespace bug in RDF::Trine::Namespace->uri.
Fixed xt/pod-coverage.t to avoid checking modules which fail to load.
* NEW FEATURES
Added initial implementation of TriG serializer.
Added implementation of the RDF Patch exporter and serializer, and ability to serialize model changes in RDF Patch format.
* ENHANCEMENTS
Added ability to configure the LWP::UserAgent used through the RDF::Trine framework.
Updated Turtle and TriG parsers and test suites to track W3C standardization work.
Update bin/turtle_parse.pl to output N-Quads when the input format contains quads.
Update RDF::Trine::Parser->parse_url_into_model to accept a base argument.
Allow lowercase hex codepoint values in N-Triples escapes in RDF::Trine::Parser::NTriples.
* OTHER
Use the :encoding(UTF-8) IO layer where previously just :utf8 was used.
s/exists/defined/ in RDF::Trine::Parser->parse_url_into_model.
Update the characters that may be used in blank node identifiers in RDF::Trine::Node::Blank->new.
Added POD for RDF::Trine::Statement::Quad->graph (alias for ->context).
Updated RDF::Trine::Store::Memory to generate SHA digests (for ETag use) based on bytes, not unicode strings.
Add RDF::Trine::Statement::Quad->graph as an alias for RDF::Trine::Statement::Quad->context.
Updated t/serializer-trig.t to load RDF::Trine before any sub-modules.
Added Test::Compile developer test xt/00_compile.t.
Version 1.006 (2013-07-01)
* API CHANGES
Punycode URIs are now left as-is (without decoding) in RDF::Trine::Node::Resource->new.
* BUG FIXES
Fix handling of IRIs with codepoints > 127 in RDF::Trine::Node::Resource (GitHub issue #85).
Remove empty-string default in SQL schema of RDF::Trine::Store::DBI::mysql and update code to compensate.
Remove bad calls to encode_utf8 in sse and as_ntriples methods of RDF::Trine::Node::Resource.
* NEW FEATURES
Split RDF::Trine::Iterator->from_string into from_string and from_bytes.
* ENHANCEMENTS
Normalize IRI values before serialization in RDF::Trine::Node::Resource->as_ntriples and RDF::Trine::Node::Resource->compare.
* OTHER
Update RDF::Trine::Serializer::NTriples::Canonical to use $node->as_ntriples instead of $node->sse.
Add documentation noting that punycode will be decoded as a part of N-Triples serialization.
Change use of utf8::all to utf8 in t/node.t.
Mark TryCatch as a build_requires instead of a requires module in Makefile.PL.
Version 1.005 (2013-05-27)
* API CHANGES
Throw exception in RDF::Trine::Node::Resource->new when IRI contains bad characters.
* BUG FIXES
Fix RDF::Trine::Parser::RDFXML to UTF-8 encode strings before calling into the SAX parser (related to github pull request #82).
Fixed typo in exception throwing in RDF::Trine::Parser::TriG.
Fixed mistaken use of 'otherwise' exception handler in turtle_tokenize.pl.
* ENHANCEMENTS
Updated Turtle parser to support the Turtle 2013 draft syntax.
Improved error handling in RDF::Trine::Parser->parse_url_into_model.
Implemented streaming version of RDF::Trine::Parser::RDFXML->parse_file using parse_file from XML::SAX.
* OTHER
Removed use of given/when statements to make perl 5.18 happy.
Silence tracing code in RDF::Trine::Store::Hexastore.
Added TryCatch to list of required modules.
Changed key names and layout of nodemap data in Redis store.
Version 1.004 (2013-03-02)
* API CHANGES
Changed RT:spog:* keys to be a hash with node ID data for each quad position in Redis store.
* ENHANCEMENTS
Treat data passed into parsers as characters (github pull request #82 from Tony Cook).
Improve the error message when trying to parse an empty RDF/XML string (Kjetil Kjernsmo).
Added get_graphs as an alias for get_contexts in RDF::Trine::Model and RDF:Trine::Model::Dataset.
* OTHER
Test to see if DBD::Pg is installed in test suite (github pull request #78 from Kjetil Kjernsmo).
Added turtle command line tools turtle_parse.pl, turtle_benchmark.pl, and turtle_tokenize.pl.
Version 1.003 (2012-12-22)
* BUG FIXES
Fixes to code that depended on hash key ordering.
Fixed test of error conditions in RDF::Trine::Parser->parse_url_into_model.
Fixed bug in RDF::Trine::Parser::RDFXML that caused fatal errors on malformed input instead of throwing RDF::Trine::Error exceptions.
Fixed RDF::Trine::Parser::Turtle::Lexer->check_for_bom to handle zero-length input.
* NEW FEATURES
Added prefix_for and abbreviate methods to RDF::Trine::NamespaceMap (patch from Dorian Taylor)
* OTHER
Require Scalar::Util 1.24.
Re-added RDF::Trine::Parser::Turtle->parse_node method.
Version 1.002 (2012-10-20)
* OTHER
Require Scalar::Util version 1.23.
Version 1.001 (2012-10-05)
* BUG FIXES
Fixed bareword bug in RDF::Trine::Parser when UUID::Tiny is not available.
* ENHANCEMENTS
Replaced old Turtle and TriG parsers with new streaming implementations.
Added RDF::Trine::Node::Literal->canonicalize method.
Updated RDF::Trine::Parser::Redland to construct a new parser object on each parse (avoiding a bug in redland).
Applied partial patch to "fix interaction with HTML::Data::Parser" (from Dorian Taylor; commit 9b713b23b6).
* OTHER
Added Moose and MooseX::ArrayRef to prerequisites list.
Updated code style to work with Perl::Critic core policies.
Added POD to RDF::Trine and RDF::Trine::Store::DBI (based on patch from Evan Carew).
Updated required version of perl to 5.10.
Silenced undefined warnings in RDF::Trine::Parser::Turtle::Lexer.
Silenced warning of cartesian joins in RDF::Trine::Store::Hexastore.
Version 1.000 (2012-06-29)
* API CHANGES
Removed RDF::Trine methods count, add_extra_result_data, extra_result_data.
Removed support for extra data serialized in SPARQL/XML result format link tags.
Made Literal and Resource node constructors throw exception when passed undef lexical value.
* BUG FIXES
Fixed parsing of backslash escapes in Turtle quoted literals (from Toby Inkster via github pull request #63).
Rolled back attempted optimization of bulk ops calls (which broke the code).
Fixed etag bug in RDF::Trine::Store::Memory.
* NEW FEATURES
Added RDF::Trine::Model->add_iterator method.
* OTHER
Fixed miscellaneous typos (from Evan Carew).
Updated bug reporting details in BUGS POD section.
Updated documentation in several classes.
Removed redundant documentation in RDF::Trine::Parser.
Added Redland test for UTF8 (from Kjetil Kjernsmo).
Added two tests for concat graph iterators (from Kjetil Kjernsmo).
Fix usage of materialized iterators in t/iterator-graph.t (from Kjetil Kjernsmo).
Document the extends option to negotiate in the serializer (from KjetilK).
Document RDFTRINE_NO_REDLAND (from KjetilK).
Version 0.140 (2012-05-08)
* API CHANGES
Removed default get_pattern implementation in RDF::Trine::Store.
* BUG FIXES
Added missing import of looks_like_number function in RDF::Trine::Node::Literal.
* ENHANCEMENTS
Added RDF::Trine::Pattern->sort_for_join_variables method to prevent unnecessary cartesian joins.
Added optional content_cb callback argument to RDF::Trine::Parser->parse_url_into_model.
Version 0.139 (2012-04-11)
* API CHANGES
Made server a required configuration key in RDF::Trine::Store::Redis.
* BUG FIXES
Fixed interaction of peek() and finished() in RDF::Trine::Iterator.
Fixed use of iterator finished method in RDF::Trine::Iterator::Bindings->as_json.
Fixed use of iterator finished method in RDF::Trine::Store::Hexastore->get_pattern.
Fixed bug when RDF::Trine::Iterator->finished is called before an (empty) iterator is used.
Fixed fallback parsing bug in RDF::Trine::Parser->parse_url_into_model.
Fixed PostgreSQL capitalization bug (patch from https://rt.cpan.org/Ticket/Display.html?id=71890 applied by Kjetil Kjernsmo).
* NEW FEATURES
Added RDF::Trine::Serializer::NQuads->statement_as_string method.
* ENHANCEMENTS
Added 'scoped_namespaces' constructor argument to RDF::Trine::Serializer::RDFXML to serialize only necessary namespace declarations. (github issue 33).
Initialize Log4perl only if it isn't initialized already (pull request 57 from kba).
* OTHER
Fixed expected result count in Test::RDF::Trine::Store->get_pattern_tests.
Simplified code in t/store-hexastore-pattern.t.
Added tests for RDF::Trine::Iterator->peek.
Adding some get_pattern tests to the Store tests (Kjetil Kjernsmo).
Replaced references to RDFQUERY_NO_REDLAND environment variable with proper RDFTRINE_NO_REDLAND.
Allow suppressing RDF::Redland use if the RDFQUERY_NO_REDLAND environment variable is set.
Removed erroneous copies of RDF::Trine::Store::DBI::Pg->init method.
Add pg tests (Kjetil Kjernsmo).
Version 0.138 (2012-01-25)
* BUG FIXES
Fixed error-handling syntax bug in RDF::Trine::Parser->parse_url_into_model.
* NEW FEATURES
Make Hexastore support etag.
* ENHANCEMENTS
Croak rather than die in some places and use logdie in one place.
* OTHER
Fix documentation typos from fschlich@zedat.fu-berlin.de.
Improved performance of Redis store with use of variadic functions.
Added store tests for literals including utf-8 handling and languages.
Version 0.137 (2011-12-20)
* API CHANGES
Trying to instantiate a resource node with the Nil IRI results in the Nil node object.
* BUG FIXES
Fixed unicode escaping issues in RDF::Trine::Serializer::Turtle (bugreport from nichtich <4EB7B9BE.8000205@gbv.de>).
Fixed RDF::Trine::Parser::Turtle to properly unescape percent-encoded URIs.
Fixed RDF::Trine::Statement->from_redland to properly unescape percent-encoded URIs.
Only set parser metadata if RDF::RDFa::Parser is available (github issue 32 from nichtich).
Added PostgreSQL-specific init method to handle case sensitivity of table names (RT#71890 from John Nicholas Whitley).
* NEW FEATURES
Implement RDF::Trine::Store::Hexastore->nuke (KjetilK).
Added initial code for a Redis-based store.
Added serialize_node method to RDF::Trine::Serializer::NTriples and RDF::Trine::Serializer::Turtle.
Added parse_node method to RDF::Trine::Parser::NTriples.
* ENHANCEMENTS
Create a fallback-implementation of remove_statements in Store.pm (KjetilK).
Updated RDF::Trine::Graph to use Algorithm::Combinatorics for memory/speed improvements (instead of Math::Combinatorics).
* OTHER
Support triple-only stores in the test suite (patches from KjetilK).
Added missing POD to RDF::Trine::Store::DBI::Pg and RDF::Trine::Store::Redis.
Check the Perl version when running Tiny::UUID (KjetilK).
RDF::Trine::Parser now attempts to use Data::UUID before UUID::Tiny in bnode ID generation (based on test failures).
Version 0.136 (2011-10-19)
* API CHANGES
Removed RDF::Trine::Iterator::SAXHandler->rate method and dropped dependency on Time::HiRes.
Consolidated bnode prefix handling in parser classes, adding support for UUID::Tiny.
* BUG FIXES
Fixed escaping of URIs in rdf:about attributes (patch from SADI Framework).
Return an empty string instead of undef in RDF::Trine::Iterator->format_node_xml.
Fixed RDF::Trine::Store::SPARQL->count_statements handling of variables.
Fixed turtle serializer to check if numerics are in canonical form.
Fixed mysql schema to quote index names that might contain reserved characters.
Fix RDF::Trine::Model->get_statements to throw an error when called with arguments that aren't either undef or node objects.
Fixed titlecase of table reference in RDF::Trine::Store::DBI::mysql->init.
Fixed bug in use of UUID::Tiny::UUID_V1 bareword in RDF::Trine::Parser->new_bnode_prefix.
* NEW FEATURES
Initial support for using Dydra as a store.
Added RDF::Trine::Parser::Turtle->parse_node method.
Added RDF::Trine::Node::Literal->is_canonical_lexical_form.
Made RDF::Trine::Serializer::NTriples->statement_as_string a public method.
RDF::Trine::Parser->parse_url_into_model now fill properly fall back on guesswork when media-type parsing fails.
Moved as_hashref functionality from RDF::Trine::Model to RDF::Trine::Iterator::Graph.
Added TSV serializer.
* ENHANCEMENTS
Allow empty namespace prefix in RDF::Trine::NamespaceMap (patch from Jakob Voss).
Added text/html media type, and added use of Module::Load::Conditional in RDF::Trine::Parser::RDFa.
Added support of SPARQL endpoints with URL parameters like Virtuoso's 'http://example.org:8890/sparql?default-graph-uri=...' (patch from Jakob Voss).
Updated RDF::Trine::Store::DBI to use DBIx::Connector.
* OTHER
Added option to sleep after each store update in Test::RDF::Trine::Store.
Fixed code in RDF::Trine::Store::SPARQL that was causing a warning when a variable name was redefined.
Updated RDF::Trine::Store::DBI::mysql->_add_node to return the node hash value.
Stop RDF::Trine::Store::DBI->add_statement from unnecessarily hashing nodes multiple times (patch from tobyink).
Moved redland store tests to developer xt directory.
Updated t/serializer-turtle.t to be more accepting of stores returning data in varying orders.
Removed 'or die' conditional from store tests.
Changed test endpoint from kasei.us to myrdf.us.
Added simple store tests for bulk_ops in Test::RDF::Trine::Store.
Removed heavy dependency on DBI store in test cases.
Require RDF::Redland 1.0.7.1 in xt/store-redland.t.
Add missing use of RDF::Trine::Statement::Quad.
Conditionally load DBI store, and return Memory store from temporary_store().
Removed dependency on Unicode::Escape.
Made XML::LibXML an optional dependency (RDF/XML parser will not perform c14n if it is not installed)
Updated RDF::Trine::Store::Memory to use Digest::SHA instead of Digest::MD5.
Removed depedency on List::MoreUtils.
Added POD for Test::RDF::Trine::Store->update_sleep.
Added POD for RDF::Trine::Serializer::NTriples->statement_as_string.
Removed depedency on Unicode::String and List::MoreUtils.
Removed unnecessary use statements.
Version 0.135 (2011-04-30)
* API CHANGES
Globally changed 'base' to 'base_uri' in Trine code and API.
Changed name of redland rdfa parser to 'librdfa' and removed associated media type and file extensions (due to librdfa bugs).
* BUG FIXES
Fixed bug in RDF::Trine::Store::DBI::mysql that was causing init() to remove existing data.
* NEW FEATURES
Added RDF::Trine::Store::DBI->nuke method for removing store data.
Added RDF::Trine::Model->remove_list method (patch from tobyink).
Added RDF::Trine::Iterator->seen_count method.
Added RDF::Trine::Model->get_sparql delegation method.
* ENHANCEMENTS
Updated RDF::Trine::Parser->parse_url_into_model to be better at guessing media types for file: URIs.
Updated RDF::Trine::Parser::Redland to allow the $base argument to be a URI object.
Updated RDF::Trine::Parser->parse_url_into_model to not catch and hide exceptions thrown from calls to parse_into_model.
Updated bin/srx2csv to handle unbound variables in results.
Added support for 'storeclass' key in RDF::Trine::Store->new_with_config.
Added supports method to RDF::Trine::Model, RDF::Trine::Model::Dataset, and RDF::Trine::Store classes.
RDF::Trine::Store->new_with_string now attempts to load store classes before using them.
Renamed RDF::Trine::Store::SPARQL->_get_iterator to get_sparql.
* OTHER
Added SQL file for creating the mysql backend database.
Remove the meaningless "All rights reserved" copyright text.
Style changes to RDF::Trine::Iterator::Bindings->print_xml.
Updated required version of XML::SAX to 0.96.
Updated store tests (KjetilK).
Removed Digest::SHA1 from list of prereq modules.
Version 0.134 (2011-03-29)
* API CHANGES
Deprecated RDF::Trine::Iterator->count.
* BUG FIXES
Fixed bug in RDF::Trine::Iterator::SAXHandler on data with empty results.
Fixed canonicalization bug in RDF::Trine::Node::Literal for xsd:decimals with no decimal point.
* NEW FEATURES
Added srx2csv and srx2table scripts.
Added API for stream parsing of srx results to RDF::Trine::Iterator::SAXHandler.
Added RDF::Trine::Model->get_sequence method for accessing rdf:Seq structures.
Added 'value' method to RDF::Trine::Node subclasses for accessing the primary scalar value of a node.
Added RDF::Trine::Graph->error method to explain failures in RDF::Trine::Graph->equal.
Updated RDF::Trine::Graph to support: subgraph testing, access to injection map, delegation to RDF::Trine::Model (patch from tobyink).
* ENHANCEMENTS
Fixed RDF::Trine::Node::Resource->qname handling of unicode IRIs.
Fixed RDF::Trine::Parser::NTriples->parse_file to accept filenames just like the superclass implementation.
Fixed RDF::Trine::Parser->parse_file to open files as utf8.
Fixed RDF::Trine::Parser->parse_url_into_model to pass through 'canonicalize' argument to actual parser method call.
Allow 'canonicalize' argument to RDF::Trine::Iterator->from_json method.
* OTHER
Made diagnostic messages less noisy in t/store-hexastore-storable.t.
Silenced an uninitialized warning in RDF::Trine::Parser::NTriples.
Removed use of XML::SAX in RDF::Trine::Serializer subclasses.
Added turtle parser test for file with BOM.
Updated RDF::Trine::Store::DBI and RDF::Trine::Store::DBI::mysql to use DBI placeholders.
Version 0.133 (2011-02-07)
* BUG FIXES
Fixed bug in Turtle parser that wouldn't allow a Unicode BOM in the input.
Fixed bug in turtle serialization of blank nodes used in graph cycles (reported by tobyink).
Fixed bug in RDF::Trine::Serializer::RDFXML that wasn't escaping XML entities in IRIs and bnode labels (github issue 3 from nichtich).
Updated RDF::Trine::Store::Hexastore to use equal() method instead of op<==> for testing node equality.
Updated t/parser-rdfjson.t to test bnode equality using identifier strings, not with op<==>.
Fixed RDF/XML xmlns serialization bug when used with RDF::Trine::NamespaceMap objects.
* NEW FEATURES
Added RDF::Trine::NamespaceMap class.
Added support to populate RDF::Trine::NamespaceMap objects during RDF parsing.
Added RDF::Trine::Model get_list and add_list methods for managing rdf:List structures.
Added support for parsing SPARQL JSON Results format in RDF::Trine::Iterator->from_json.
RDF::Trine::Parser subclasses now allow parse_file_into_model and parse_file being called as class methods.
Added 'restrict' and 'extend' options to RDF::Trine::Serializer->negotiate to allow more control over content negotiation.
Added the ability to restrict the nodes returned from the RDF::Trine::Model->objects method by node type or by literal language/datatype.
* ENHANCEMENTS
Updated RDF::Trine::Store::SPARQL to allow bulk-update operations.
Added string overloading to RDF::Trine::Node subclasses.
Added text/rdf+n3 as a media type for RDF::Trine::Serializer::Turtle.
* OTHER
Updated conneg code setting default q-values in RDF::Trine::Serializer.
Updated RDF::Trine::Iterator::Graph->print_xml to set utf8 binmode on the output filehandle.
Changed required version of Module::Load::Conditional to 0.38 (based on version in debian).
Version 0.132 (2010-12-23)
* Added conditional loading of Redland parsers and stores when available using Module::Load::Conditional.
* Added auto-initialization of DBI stores during object construction.
* Added RDF::Trine::Store->new method to delegate to existing constructors.
* Moved slow turtle parser tests into developer tests directory xt/.
Version 0.131 (2010-12-07)
* Fixed SPARQL XML Results serialization to omit unbound variables and properly declare literal languages and datatypes.
* Copied implementations of is_numeric_type() and numeric_value() from RDF::Query::Node::Literal to RDF::Trine::Node::Literal.
* Updated documentation to explicitly discuss inherited methods due to subclassing (RT 63153 comment from Ivan Shmakov).
* Updated POD for RDF::Trine::Iterator subclasses (RT 63153 comment from Ivan Shmakov).
* Fixed RDF::Trine::Parser->guess_parser_by_filename to get RDF/XML parser class from parser_by_media_type() instead of being hardcoded.
* Fixed RDF::Trine::Serializer::Turtle::_node_concise_string to allow call as class method.
* Added RDF::Trine::Parser::Redland subclasses to allow calling new() with no 'name' argument.
* Added file extensions to parser registry for RDF::Trine::Parser::Redland.
* Added RDF::Trine::Model->as_graphviz method.
* Added checks to avoid undefined warnings in RDF::Trine::Serializer::NTriples::Canonical (suggestion from KjetilK).
* Set :utf8 mode on string-backed filehandles in RDF::Trine::Serializer::Turtle.
* Attempt at patching utf8 turtle/trig parsing bug submitted by KjetilK.
* Updated required version of Test::More to 0.88 (bugreport from @danbri).
Version 0.130 (2010-10-18)
* Fixed bug in RDF::Trine::Node::Literal->is_valid_lexical_form check for xsd:double.
* Updated RDF::Trine::Iterator::Bindings->as_string to use concise turtle syntax.
* Added RDF::Trine::Parser methods media_type(), media_types(), parser_by_media_type(), and guess_parser_by_filename().
Version 0.129 (2010-10-04)
* Updated Makefile.PL and RDF::Trine to require perl v5.8.3.
* Fixed bug in promotion of temporary models from memory-backed to a SQLite-backed store.
* Fixed RDF::Trine::Store::DBI->new to bless into backend-specific classes when passed a database handle (bug report from tobyink).
* Updated RDF::Trine::Node::Literal to produce more accurate canonical lexical forms for xsd types.
* Added RDF::Trine::Node::Literal->is_valid_lexical_form method.
* Added support for special union-graph 'tag:gwilliams@cpan.org,2010-01-01:RT:ALL'.
* Added exportable constants for UNION_GRAPH and NIL_GRAPH in RDF::Trine.
Version 0.128 (2010-09-28)
* Added .owl as a recognized RDF/XML file extension for the fallback parser guessing code.
* Fixed bug in RDF::Trine::Store::SPARQL preventing access to the default graph.
* Added new_with_config method to allow interactive configuration via rqsh.pl.
* Updated RDF::Trine::Store::DBI->init to (partially) work if called for a new model (but the database has already been initialized).
* Fixed call to RDF::Trine::Parser->parse_into_model in bin/rdf_store_add_file.pl.
* Fixed call to RDF::Trine::Parser->parse_url_into_model in RDF::Trine::Store::Memory.
* Removed RDF::Redland dependency in bin/rdf_store_add_file.pl.
* Added introspective _config_meta method to RDF::Trine::Store subclasses to allow interactive configuration.
* Added RDF::Trine::Store->class_by_name class method.
* Added etag method to RDF::Trine::Model and RDF::Trine::Store::Memory to allow for HTTP caching.
* Updated RDF::Trine::Node::Literal->canonicalize_literal_value coercion of xsd:decimal values.
* Added optional flag to RDF::Trine::Node::Literal->new to attempt to canonicalize recognized XSD values.
* Updated RDF::Trine::Exporter::CSV to accept a graph iterator (for serializing s,p,o as CSV).
* Added RDF::Trine::Store::DBI->clear_restrictions method (suggestion and partial patch from tobyink).
* Updated RDF::Trine::Store::Redland to improve efficiency (based on suggestions from Dorian Taylor).
* Added native redland parser class and tests (patch from Dorian Taylor).
* Added RDF::Trine::Iterator->each method (requested by tobyink).
* Made code updates to improve performance based on profiling.
* Updated to use URI 1.52 to allow direct usage of IRIs without unicode workarounds.
* Added content-sniffing to fallback parser guessing code for RDF/XML and Turtle.
* Lowered required version of redland in RDF::Trine::Parser::Redland to 1.0.7.1.
* Added RDF::Trine::Serializer->serializer_names method for listing available serializers.
* Added as_string method to RDF::Trine::Iterator::Boolean and RDF::Trine::Iterator::Graph.
Version 0.127 (2010-08-30)
* Removed redundant prerequisite for XML::LibXML::SAX from Makefile.PL.
* RDF::Trine::Model->bounded_description now catches and ignores UnimplementedError exceptions.
* Added heuristics support for TriG, RDF/JSON, and N-Quads to RDF::Trine::Parser->parse_url_into_model.
* Added ability to specify the base URI for serializing RDF/XML and Turtle (patch from KjetilK).
Version 0.126 (2010-08-16)
* Fixed N-Triples serialization escaping bug for strings whose only escapable character is '\'.
* Fixed typo in handling of RDF::Trine::Node::Formula extension.
* RDF::Trine::Model->new will now return a temporary model when called with no arguments.
* Updated get_pattern methods in Model and Store classes to return VariableBindings objects.
* Updated DBI backend to allow no-op adding of the nil node.
* Updated SPARQL backend to use SPARQL 1.1 Update and Aggregate operations.
* Updated Memory and Hexastore backends to support 'graph' key in _new_with_config().
* Improved error messages in N-Triples and N-Quads parsers.
* Fixed column naming bug in RDF::Trine::Store::DBI->get_contexts.
* Added begin_bulk_ops() and end_bulk_ops() hint methods to RDF::Trine::Model.
* Updated RDF::Trine::Parser to call begin_bulk_ops() and end_bulk_ops() on model object.
* Updated DBI backend to use transactions when bulk_ops hints are used.
* Added '==' and 'eq' overloading to RDF::Trine::Graph class.
* Updated RDF::Trine::Model->bounded_description to traverse backwards links across blank nodes.
Version 0.125 (2010-07-29)
* Fixed hash collision bug in RDF::Trine::Store::DBI handling of literals with values '' and '0'.
* Added RDF::Trine::VariableBindings class (ported from RDF::Query).
* Iterators constructed from SPARQL XML Results format now return variable bindings objects.
* Turtle serialization to strings now only declares prefixes that are used in the data.
* Added media types and URIs for N-Quads parser and serializer.
* Added RDF::Trine::Statement->rdf_compatible method (patch from tobyink).
* Changed RDF::Trine::Model node methods (subjects, predicates, objects) to use quad semantics and accept a graph parameter.
* Add documentation for new_with_object.
* Add documentation for the hashref config.
* Improved efficiency of counting quad patterns in RDF::Trine::Store::DBI.
* Fixed bug in N-Triples serializer (was serializing quads).
* Added %format_uris registry for parsers and serializers.
* Added RDF::Trine::Model::as_string method.
* Require XML::LibXML 1.70.
* Removed unused variable in RDF::Trine::Parser::RDFXML.
* Added character encoding declaration to RDF::Trine::Iterator::Bindings->print_xml.
* Added character encoding declaration to RDF::Trine::Iterator::Boolean->print_xml.
Version 0.124 (2010-06-21)
* Updated quality value heuristics in RDF::Trine::Serializer::negotiate to prefer turtle if no accept headers are supplied.
* Added ability for RDF::Trine::Store::Memory to load RDF files by URI in _new_with_string.
* Added default implementation of RDF::Trine::Serializer::serialize_iterator_to_file.
* RDF::Trine::Serializer::negotiate now slightly prefers turtle.
* Added RDF::Trine::Iterator->count method.
* Fixed RDF::Trine::Iterator::Bindings::as_string to respect $max_result_size argument.
* RDF::Trine::Iterator::Bindings::as_string now returns unescaped strings.
* Added ability to access the number of rows returned from RDF::Trine::Iterator::Bindings::as_string.
* Updated RDF::Trine::Parser::parse_url_into_model to fall back on file extension heuristics if the media-type based parse fails.
* Updated RDF::Trine::Parser::RDFJSON to throw an error if input isn't valid JSON.
* Updated RDF::Trine::Model to throw an error if not passed a store object.
* Added RDF::Trine::Model::Dataset for constructing views over a model, and RDF::Trine::Model->dataset_model constructor method.
* Fixed bug in handling of quads in RDF::Trine::Model::get_pattern and RDF::Trine::Store::get_pattern.
* Updated RDF::Trine::Store::DBI and RDF::Trine::Store::Memory to not return the default (nil) context from get_contexts.
* Fixed bug in RDF::Trine::Store::Memory::_get_statements_quad that would infinite loop after removing statements.
* RDF::Trine::Store doesn't load RDF::Redland (now only checks if it is already loaded).
* Fixed bug in RDF::Trine::Store subclasses registering their class names in %STORE_CLASSES.
* Added missing use of Encode to RDF::Trine::Store::Redland.
* Made $RDF::Trine::Store::Redland::NIL_TAG globally accessible.
* Added bin/rdf_transcode.pl for (streaming) conversion between RDF serialization formats.
* Updated POD tests to not use taint mode (and synced between R::T and R::Q).
* Changed test data in t/iterator-thaw.t.
* Removed RDF::Core as a prerequisite in META.yml.
* Added default implementation of RDF::Trine::Serializer::serialize_iterator_to_file.
* RDF::Trine::Serializer::negotiate now slightly prefers turtle.
Version 0.123 (2010-05-13)
* Added turtle utf8 decoding for Turtle parser.
* Added RDF::Trine::Serializer::media_types method.
* Added RDF::Trine::Store::new_with_object method.
* Fixed unicode encoding bug in RDF::Trine::Store::DBI.
* RDF::Trine::Serializer::NTriples::Canonical.pm now inherits from RDF::Trine::Serializer::NTriples.
* Cleaned up VERSION declarations.
* Updated RDF::Trine::Parser::parse_url_into_model to fall back on file extension heuristics if the media-type based parse fails.
* Updated RDF::Trine::Parser::RDFJSON to throw an error if input isn't valid JSON.
* Added character decoding to RDF::Trine::Parser->parse_url_into_model.
Version 0.122 (2010-05-05)
* Added RDF::Trine::Model::bounded_description method.
* Added initial implementation of a Redland-based storage class.
* Fixed SPARQL store tests to align with recent coverage efforts.
* Code cleanup and updates to improve test coverage.
* Rearranged POD in RDF::Trine::Parser.
* Fixed type in RDF::Trine::Node::Literal::_compare.
Version 0.121 (2010-04-29)
* Fixed URI qname code to disallow ':' in local name.
* Added node-centric methods to RDF::Trine::Model: subjects, predicates, objects.
* Improved POD for value canonicalization in RDF::Trine::Parser.
* Added POD for RDF::Trine::Model::get_contexts.
* Added POD details to RDF::Trine::Model::get_statements regarding triple and quad semantics.
Version 0.120 (2010-04-20)
* Added optional value canonicalization on parsing (xsd integer, decimal, and boolean).
* RDF/XML parser now attempts to canonicalize XMLLiterals (doesn't yet canonicalize all XMLLiterals that it shold).
* Added RDF::Trine::Node::Blank::_new constructor that doesn't validate bnode name for N-Triples conformance.
* Performance improvements to RDF::Trine::Node::_unicode_escape.
* Updated Turtle parser to throw error on undeclared namespace prefixes.
* Updated Turtle serializer to produce QName literal datatypes.
Version 0.119 (2010-04-15)
* Fixed bug in NTriples parser handling of language literals (reported by tobyink).
* Fixed another bug in turtle serializer that improperly serialized bnode objects 'belonging' to a parent triple (in-edge count of 1).
Version 0.118 (2010-03-22)
* Added RDF::Trine::Parser::TriG.
* Added RDF::Trine::Parser::parse_file_into_model method.
* Added RDF::Trine::Serializer::NQuads.
* Added RDF::Trine::Serializer::negotiate constructor.
* Added RDF::Trine::Serializer::new constructor based on requested serializer name.
* Added RDF::Trine::Exporter::CSV for serializing variable bindings.
* Added Text::CSV and HTTP::Negotiate to RDF::Trine prereq list.
* Fixed exception thrown on unrecognized parser name.
* Removed dependency list and added perlrdf link to POD in RDF::Trine and RDF::Query.
* Updated RDF::Trine::Serializer::Turtle->new API to take %args instead of \%namespaces.
* Updated RDF::Trine::Serializer::RDFXML to take %args and properly accept and serialize xmlns namespaces.
* Updated RDF::Trine::Parser::RDFa to use streaming parsing (instead of materializing the graph first).
* Updated RDF::Trine::Model::_debug to use quad semantics when getting statement iterator.
* Updated t/parser-turtle.t to use File::Glob::bsd_glob for cases where the test directory's path contains whitespace.
* Removed redundant parse_into_model methods from RDF::Trine::Parser subclasses.
* Renamed examples/create_store.pl to examples/foaf_labels.pl.
* Fixed bug in turtle serializer that improperly serialized bnode objects 'belonging' to a parent bnode.
Version 0.117 (2010-02-04)
* Fixed bug in RDF::Trine::Iterator::Bindings::as_json when using empty iterator.
Version 0.116 (2010-01-31)
* Fixed bug in RDF::Trine::Serializer::RDFXML when serializing empty models.
Version 0.115 (2010-01-30)
* Added N-Triples and N-Quads parsers.
* Added RDF::Trine::Store::SPARQL::get_pattern implementation.
* Changed RDF::Trine::Model::objects_for_predicate_list to return only a single node in scalar context.
* Added table alias for COUNT(*) queries in RDF::Trine::Store::DBI (fix for mysql).
* Added example of using parse_url_into_model to RDF::Trine::Parser SYNOPSIS.
Version 0.114 (2010-01-27)
* Added new Turtle serializer.
* Updated RDF/XML serializer grouping of same-subject statements for bounded descriptions.
* Updated parse_into_model parser methods to be both class and object methods.
* Updated Parser parse_* methods to take extra %args with optional 'context' value.
* Moved RDF::Trine::Store::Hexastore from alpha/ directory into RDF::Trine package.
* Added Storable to list of prereq modules.
* Added partial support for rdf:Lists to RDF::Trine::Serializer::Turtle.
* Added RDF::Trine::Namespace::uri_value method.
* Updated unicode encoding and escaping in ::Node, ::Node::Literal, and ::Store::DBI.
* Added variable() shortcut function to RDF::Trine package.
* Updated RDF::Trine::Graph to materialize statements when constructed with a graph iterator.
* Moved get_pattern logic from ::Store to ::Model.
* Updated ::Model::Union to work better with ::Model::get_pattern.
* Updated Node and Statement from_sse methods to work with constant string arguments.
* Updated code and tests for better coverage.
* Removed unused RDF::Trine::Iterator::sfinally function.
* Fixed bug in RDF::Trine::Graph::equals.
* Added UnimplementedError exception class.
Version 0.113 (2009-12-30)
* Added RDF::Trine::Parser::RDFa implementation to connect with RDF::RDFa::Parser.
* Added ability to pass RDF::Trine::Node::Resource values as the datatype argument to RDF::Trine::Node::Literal::new().
* Special-cased 'xsd' in RDF::Trine::Namespace to return the RDF-version of the namespace URI (with trailing '#').
* Added syntax shortcuts as exportable from RDF::Trine: iri(), blank(), and literal().
* Added RDF::Trine::Serializer base class.
* Fixed syntax error in generated RDF/XML in RDF::Trine::Serializer::RDFXML.
* Fixed bug in RDF::Trine::Serializer::RDFXML that was dropping triples.
* Added RDF::Trine::Parser::parse_url_into_model class method.
* Updated parser classes' registration of parser names and media types.
* Added RDF::Trine::Model::size method.
* Removed ::Parser::Error package. Replaced with use of RDF::Trine::Error.
* Convert data to utf8 encoding before hashing in RDF::Trine::Store::DBI::_mysql_hash_pp.
* Added RDF::Trine::Model::objects_for_predicate_list method.
* Removed RDF::Trine::Serializer::RDFXML::_split_predicate and replaced with call to $pred->qname.
* Added RDF::Trine::Node::Resource::qname method to split an IRI into namespace and local parts.
* Added RDF::Trine::Serializer::NTriples::Canonical (from tobyink).
* Added RDF::Trine::Iterator::Bindings::as_statements to return a graph iterator.
* Updated POD for ::Model::get_pattern to mention 'orderby' argument.
* Updated ::Model::as_stream to return a graph iterator sorted by (s,p,o).
* Updated RDF/XML serializer to merge same-subject rdf:Descriptions.
Version 0.112 (2009-12-12)
* Skip some failing tests when RDF::Trine::Node::Literal::XML is loaded.
* Added RDF/XML serializer.
* Added serialize_iterator_to_file and serialize_iterator_to_string methods to NTriples serializer.
* Added _serialize_bounded_description method to NTriples serializer.
* Added RDF::Trine::Parser::RDFJSON package (patch from tobyink).
* Added RDF::Trine::Serializer::RDFJSON package (patch from tobyink).
* Added add_hashref and as_hashref methods to RDF::Trine::Model (patch from tobyink).
* Added tests for RDF/JSON parsing/serializing (patch from tobyink).
* Updated RDF::Trine docs to mention the RDF/XML parser (good catch by tobyink).
* Added logging code to RDF::Trine::Store::DBI.
* Changed ::Store::DBI::get_statements to skip (with warning) past ill-formed statements with IDs that don't appear in any of the value tables.
* Updated RDF::Trine::Serializer::NTriples to call as_ntriples on node objects during serialization.
* Added as_ntriples methods to RDF::Trine::Node and subclasses for proper NTriples formatting.
* Updated bin/rdf_store_serialize.pl to print in NTriples format.
Version 0.111 (2009-07-14)
* Added RDF::Trine::Graph for testing graph equality.
* Added node_names() method to ::Statement and ::Statement::Quad.
* Added RDF::Trine::Statement::has_blanks method.
* Fixed bug in RDF::Trine::Namespace to allow subclassing.
* Removed dependency on Test::JSON, List::MoreUtils, and XML::Parser.
* Added POD to RDF::Trine::Parser.
* RDF::Trine::Store::temporary_store now delegates to RDF::Trine::Store::DBI.
* Removed unnecessary call to blessed() in RDF::Trine::Statement.
* Removed unused RDF::Trine::Promise class.
* RDF::Trine now loads RDF::Trine::Store.
* Removed TODO labeling of tests in t/model-filter.t.
Version 0.110 (2009-03-14)
* Added RDF::Trine::Store base class with default implementation of get_pattern().
* Updated bin/rdf_store_add_file.pl to use the RDF::Trine parser, not Redland's parser.
* Added POD description to RDF::Trine package.
* Updated VERSION variables to 0.109 (forgotten during the last release).
* Updated ::Iterator::Bindings::as_string to join lines with empty string (had been returning a list).
* Added debug tracing code to ::Store::DBI.
* Updated schema in ::Store::DBI::mysql to use utf8 charset and collation, and use a pkey instead of a unique.
* RDF::Trine::Store::get_pattern now passes through optional @args (used for order-by).
* Fixed bug in ::Store::DBI::remove_statements causing bad SQL when all nodes are undef (remove all triples).
* ::Node::Literal::new now calls ::Node::Literal::XML::new if available and applicable.
Version 0.109 (2008-11-14)
* Removed incremental parsing code from RDF-Trine package.
* Added POD to from_sse methods in ::Node and ::Statement.
* Added parsing of variables to RDF::Trine::Node::from_sse.
* Small changes to ::Iterator and ::Trine::Node::Literal for efficiency.
* Whitespace updates to ::Trine::Node.
* Added SQLite-specific ::Store::DBI subclass so that indexes are created properly.
* Fixed bug in RDF::Trine::Iterator::Bindings::print_xml that dropped every other row.
* Updated RDF::Trine::Node::Resource to work with URI objects.
* rdf_parse_turtle.pl now warns on any parser error.
* RDF::Trine::Node::Resource now escapes unicode in base URIs (now just relative URI part) before calling URI->new_abs.
* Turtle parser now makes universal IDs for all blank node (even those with given IDs like _:xyz).
* Fixed Unicode unescaping in Turtle parser's handling of string literals.
* Turtle parser now doesn't modify the lexical value of numeric typed literals.
* Fixed ::Store::DBI handling of Quads in get_statements (had been broken because RDF::Query bypasses it by using get_pattern).
* Fixed bug in ::Iterator::Bindings::print_xml that would drop every other result.
* Updated VERSION numbers and docs for RDF::Trine for 0.109_01 candidate release.
* ::Store::DBI now throws an error if call to DBI->connect doesn't return a database handle.
* ::Iterator::Bindings::as_string now returns '' when there are no rows (instead of dying).
* Added $IGNORE_CLEANUP to ::Store::DBI to allow preventing DBI cleanup.
* ::Store::DBI now throws an error if call to DBI->connect doesn't return a database handle.
* ::Iterator::Bindings::as_string now returns '' when there are no rows (instead of dying).
* Moved all debugging over to use Log::Log4perl.
* Updated prerequisite list (removed Digest::SHA1 and XML::Parser, and added missing modules).
Version 0.108 (2008-07-14)
* Added NTriples serializer module.
* Added POD to RDF::Trine::Promise.
* Added XML::Parser to list of required modules.
* Added a peek method to ::Iterator to support execution deferment like in ::Algebra::Service.
* Added RDF::Trine::Promise for general computation deferment.
* Added print_xml method to RDF::Trine::Iterator classes.
* Added support for Postgres storage.
* Added XML::LibXML::SAX as a prerequisite (because XML::SAX::PurePerl can't handle some RDF/XML that uses unicode).
* Replaced RDF::Core-based RDF/XML parser with a new XML::SAX based parser.
* Removed now unused redland-based RDF/XML test data.
* Removed unused redland fallback code from RDF::Query::Model::RDFTrine.
* Removed redland-based RDF/XML parser tests.
* Updated Turtle grammar to accept uppercase language tags.
* Fixed COLLECTION support in RDF/XML parser.
* Fixed RDF/XML parser for nodeID, sequence, reification, and base URI handling.
* Fixed POD in NTriples serializer.
* Fixed RDF/XML parser to handle nodeID, arbitrary xml attributes, parseType="Literal" serialization, and base URI handling.
* Normlized expected NTriples data in W3C RDF/XML test files.
* Added unicode escaping to Literal and Resource sse serialization.
* Added W3C RDF/XML data and test script.
* Fixes to deferring XML serialization for SPARQL bindings.
* Fixed bug in delaying XML serialization for identity hints header computation.
* Fixed extra data following xml query results.
* Fixed strict refs bug in print_xml in iterator classes.
* Updated tests that started failing after the previous commit (affecting SQL-compilation).
* Allow equality test and disjunction filters in patterns that can be compiled to SQL.
* Fix bug in SQL compilation when restricting left-joins to specific node types (based on functions like isIRI).
* Added support to the DBI store for filters for equality tests.
* Mysql store schema now adds indexes.
* Improved use of temporary RDF::Trine stores in RDF::Query tests.
* DBI temporary stores now use an in-memory SQLite database.
* Fixed bug in RDF::Trine::Store::DBI::mysql (calling _mysql_hash() without qualifying it in the superclass).
* Fixed variable ordering bug in UNION to SQL handling by forcing a sorted projection order.
* Added support to compile normalized UNION (can only be the top-level node or a child of another UNION) patterns to SQL.
* Made SQL more standards compliant.
* RDF::Trine::Store::DBI now auto-upgrades to mysql and postgres classes.
* Fixed unicode escaping by replacing Unicode::Escape calls to hand-rolled code in RDF::Trine::Node.
* RDF/XML parser now accept more than one top-level resource.
* RDF/XML parser now accepts URI objects as base uri (not just RDF::Trine::Node::Resource objects).
* Added tabular as_string serialization of ::Iterator::Bindings objects.
* Added Text::Table as a prerequisite.
* Fixed RDF/XML parser handling of strings (versus file handles).
* Fixed Turtle parser to properly keep '+' on integer literals.
* Fixed bindings_count so it doesn't pull a result from the stream (basing the count on binding_names).
* Fixed bindings xml serialization whitespace formatting.
* Cleaned up ::Iterator::Bindings::as_string serialization code.
* Replaced use of splice() with shift() in ::Iterator::SAXHandler::pull_result.
Version 0.107 (2008-04-25)
* Added Digest::SHA1 as a requirement for RDF::Trine.
* Fixed base URI use in Turtle parser.
* Fixed SQLite DSN in example scripts.
* Fixed XML whitespace error in iterator-thaw.t
Version 0.106 (2008-04-19)
* Added a mysql-specific RDF::Trine::Store class (now uses INSERT IGNORE for efficiency).
* SQL compiler now doesn't select statement contexts unless called via get_statements (not get_pattern).
* RDF::Trine::Iterator::Graph::as_bindings now can be called with no arguments (uses default names).
* Moved the nested hash join from ::Iterator to ::Iterator::Bindings.
* Added new tests to improve coverage of node and iterator classes.
* Added tests for binding iterator cartesian product join.
* Pipelined the code for nested loop joins on binding iterators.
* Added SPARQL XML Results test for identity hints in element.
* Fixed bug in ::Model::StatementFilter to call join_steams in ::Iterator::Bindings.
* Fixed bug in ::Iterator::Graph::as_bindings where not all arguments are ::Node::Variable objects.
* Updated SPARQL XML Results namespace for boolean iterators.
* Replaced XML::Twig code with new XML::SAX parser (allowing streaming parsing).
* Moved as_sparql methods from RDF::Trine:: to RDF::Query:: classes.
* RDF::Trine::Iterator::smap now allows overriding default construct_args (e.g. binding names).
* Fixed RDF::Trine::Model::StatementFilter::get_pattern to project away unused variables (fixing a bug that caused joining to always fail).
* Updated example turtle parser to accept URLs as command line arguments.
* Turtle parser now removes dashes from the UUIDs used for blank node IDs.
* Added support to incrementally thaw an Iterator from an IO::Socket.
* Added RDF::Trine::Iterator::SAXHandler::rate method.
* Added Time::HiRes as prerequisite to META.yml and Makefile.PL.
* Updated all RDF::Trine modules to use consistent VERSION number for 0.106 release.
* Added examples directory (and an example script) to the RDF-Trine package.
* Removed Bloom::Filtere from the list of prerequisites (functionality has moved to RDF::Query).
Version 0.105 (2008-03-19)
* Removed use of File::Slurp in parser tests.
Version 0.104 (2008-03-14)
* Updated SPARQL XML Results namespace declaration in RDF::Trine::Iterator serialization methods.
* Added extra_result_data methods to add data to the XML Results header tag.
* RDF::Trine::Node::Resource now serializes to QName when passed valid namespace data.
* Fixed xml results serialization for style.
Version 0.103 (2008-03-10)
* Updated to recognize (renamed) RDF::Query::Expression class.
Version 0.102 (2008-03-07)
* Added length() method to Materialized bindings iterator class.
* Removed bloom filter construction from bindings iterator (RDF::Query code now does this itself).
* Fixed escaping of backslashes in Literal node serialization.
Version 0.101 (2008-03-04)
* Added an RDF/XML parser based on RDF::Core::Parser.
* Added Bloom filter support for Materialized bindings iterators.
* Fixed IRI workaround using the URI module.
* Turtle parser now uses Data::UUID for unique names.
* Fixed turtle parser bug for Verb testing.
* Added RDF::Trine::Statement::Quad::from_redland method.
* DBI store now constrains variable node types based on position in a statement.
* Added support for BOUND(), ISLITERAL(), ISURI() and ISIRI() functions in DBI store.
Version 0.100 (2008-02-18)
* Initial public release.
COPYRIGHT
Copyright (C) 2008-2010 Gregory Williams. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
AUTHOR
Gregory Williams
RDF-Trine-1.019/Changes.ttl 000644 000765 000024 00000307514 13223602731 015413 0 ustar 00greg staff 000000 000000 # -*-n3-*-
@prefix dc: .
@prefix dcterms: .
@prefix doap: .
@prefix asc: .
<>
dc:description "Changes for RDF::Trine" ;
dcterms:references .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.019" ;
doap:created "2018-01-04" ;
];
asc:changes [
asc:update "Add test case for TSV serializer fixes (#155, #156 from @phochste)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.018" ;
doap:created "2017-06-20" ;
];
asc:changes [
asc:update "Fix API inconsistency in RDF::Trine::Store::SPARQL (#149, #150 from @minusdavid)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.017" ;
doap:created "2017-06-01" ;
];
asc:changes [
asc:update "Fixes to data update code in RDF::Trine::Store::SPARQL (#146 from @minusdavid)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.016" ;
doap:created "2017-04-24" ;
];
asc:changes [
asc:update "Updated Makefile.PL for perl 5.26." ;
asc:update "Fixes to RDF::Trine::Store::Redland (#145 from @doriantaylor)." ;
asc:update "Remove use of TryCatch in scripts and developer tests." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.016" ;
doap:created "2017-01-04" ;
];
asc:changes [
asc:update "Remove call to $dbh->begin_work when already working with AutoCommit turned off." ;
asc:update "Remove use of RDF::Redland in bin/rdf_store_serialize.pl." ;
asc:update "Updated rdf_store_add_file.pl to guess the appropriate parser based on the filename." ;
asc:update "Remove use of TryCatch (#138 from @ppisar)." ;
asc:update "Change hashbang to use env (#137 from KjetilK)." ;
asc:update "Replaced all uses and initializations from Text::CSV in favour to Text::CSV_XS (#136 from @jordivador)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.014" ;
doap:created "2015-05-17" ;
];
asc:changes [
asc:update "Fix data loss bug in SQLite backend schema and hash encoding (from Mike Frager PR #126)." ;
asc:update "Added Cache::LRU requirement to prerequisite list and README." ;
asc:update "Read data as utf8 from STDIN." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.013" ;
doap:created "2015-02-14" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Parser->parse_url method (github issue #119)." ;
asc:addition "Added RDF::Trine::Store::LanguagePreference class." ;
asc:update "Update how file URIs are constructed to better deal with windows systems." ;
asc:update "Improve insertion performance in RDF::Trine::Store::Memory by keeping caching quad SHA1 hashes." ;
asc:update "Fixed bug in RDF::Trine::Model->size that was only considering triples, not quads." ;
asc:update "Update triple store tests for expected results when passing in quad patterns with non-nil graphs." ;
asc:update "Fix get_statements and count_statements when called with quad patterns with non-nil graph." ;
asc:update "Miscellaneous code and documentation improvements (from Kjetil Kjernsmo via github pull request #116)." ;
asc:update "Make RDF::Trine::VariableBindings->join more flexible in testing of equality." ;
asc:update "Simplify coercion of values in RDF::Trine::Node::Resource constructor." ;
asc:update "Added IRI to list of prereq modules in Makefile.PL." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.012" ;
doap:created "2015-01-15" ;
];
asc:changes [
asc:update "Fixed SPARQL XML serialization of boolean results." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.011" ;
doap:created "2014-10-24" ;
];
asc:changes [
asc:update "Fixed TSV serializer to print header rows and accept VariableBindings as input." ;
asc:update "Updated Hexastore store to return an empty iterator for get_contexts() instead of croaking." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.010" ;
doap:created "2014-10-03" ;
];
asc:changes [
asc:update "Fixed bug in SPARQL store that wasn't properly decoding HTTP response content (github issue #118)." ;
asc:update "Refactored part of RDF::Trine::Iterator::Graph->as_hashref into RDF::Trine::Node->as_hashref (github issue #117)." ;
asc:update "Update RDF::Trine::Pattern with heuristic pattern sorter (github pull request #114 from Kjetil Kjernsmo)." ;
asc:update "Added IRC resource to Makefile.PL." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.009" ;
doap:created "2014-08-06" ;
];
asc:changes [
asc:addition "Adding model sync/bulk ops to redland store (Dorian Taylor)." ;
asc:update "Optimized use of regular expressions (Dorian Taylor)." ;
asc:update "Optimized Hexastore store class (Dorian Taylor)." ;
asc:update "Log an info message if there is a cartesian product (Kjetil Kjernsmo)." ;
asc:update "Use a base64 encoded digest for Memory store etags (Kjetil Kjernsmo)." ;
asc:update "Updated RDF::Trine::Iterator::Bindings->as_statements to accept a RDF::Trine::Pattern argument (github issue #104)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.008" ;
doap:created "2014-05-20" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Parser::RDFPatch." ;
asc:addition "Added RDF::Trine::Parser::LineProtocol as a RDFPatch parser subclass allowing querying (with bin/cliapi tool)." ;
asc:addition "Added RDF::Query::ExecutionContext->bind_variable method." ;
asc:update "Fixed bug in Turtle lexer that was failing to anchor matches of PNAME_LN (GH issue #96 by Tobias Kuhn)." ;
asc:update "Fixed looping bug and handling of N-Triples escape sequences (GH issue #97 by Tobias Kuhn)." ;
asc:update "Sync RDF::Trine::NamespaceMap up with URI::NamespaceMap's interface (code from Dorian Taylor)." ;
asc:update "Updated RDF::Trine::Parser::Turtle->new to accept a default namespace 'map' key." ;
asc:update "Updated RDF::Trine::Model->add_statement to verify that statement nodes are ground (not variables)." ;
asc:update "Updated RDF::Trine::Parser::Turtle->parse_node to allow accessing the tokenizer object used in parsing." ;
asc:update "Added RDF::Trine::Parser::Turtle->_term method." ;
asc:update "Added W3C Turtle Test Suite harness bin/turtle-2013-harness.pl." ;
asc:update "Added xt/perl-critic.t." ;
asc:update "Updated parser method documentation to indicate where data is expected to be bytes." ;
asc:update "Made checking for known DBI backend DSN strings case insensitive." ;
asc:update "Throw error if bindings iterator is given rather than graph in RDF::Trine::Model->add_iterator (pull request #103 from KjetilK)." ;
asc:update "Added some more docs to the SQlite config (pull request #102 from KjetilK)." ;
asc:update "Fix bug in RDF::Query::Plan::Join::PushDownNestedLoop that didn't allow 'aggregate' to appear in the RHS serialized text (github issue #101)." ;
asc:update "Fix SPARQL 1.1 GGP parsing bug (github issue #100)." ;
asc:update "Fixed RDF::Query::Algebra->subpatterns_of_type to support descent into sub-queries." ;
asc:update "Disable pushing full updates down into the store object (only meant to be full queries at this point)." ;
asc:update "Fixed as_hash method in RDF::Query::Expression::Alias." ;
asc:update "Fixed as_hash method in RDF::Query::Algebra::Aggregate and RDF::Query::Algebra::Sort." ;
asc:update "Add POD hyperlinks to RDF::Trine documentation (pull request #99 from nichtich)." ;
asc:update "Return a success iterator for POST requests based only on response code (and regardless of the response content)." ;
asc:update "Allow POST responses to redirect in RDF::Trine::Store::SPARQL." ;
asc:update "Fixed bug in constructing the HTTP request object for SPARQL updates." ;
asc:update "Use normalized langauge tags in RDF::Trine::Node::Literal->new." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.007" ;
doap:created "2013-07-18" ;
];
asc:changes [
asc:addition "Added initial implementation of TriG serializer." ;
asc:addition "Added implementation of the RDF Patch exporter and serializer, and ability to serialize model changes in RDF Patch format." ;
asc:addition "Added ability to configure the LWP::UserAgent used through the RDF::Trine framework." ;
asc:addition "Added Test::Compile developer test xt/00_compile.t." ;
asc:update "Update Turtle lexer to look for whitespace (instead of a word break) after 'a' when looking for the A token." ;
asc:update "Work around a XML::Namespace bug in RDF::Trine::Namespace->uri." ;
asc:update "Fixed xt/pod-coverage.t to avoid checking modules which fail to load." ;
asc:update "Updated Turtle and TriG parsers and test suites to track W3C standardization work." ;
asc:update "Update bin/turtle_parse.pl to output N-Quads when the input format contains quads." ;
asc:update "Update RDF::Trine::Parser->parse_url_into_model to accept a base argument." ;
asc:update "Allow lowercase hex codepoint values in N-Triples escapes in RDF::Trine::Parser::NTriples." ;
asc:update "Use the :encoding(UTF-8) IO layer where previously just :utf8 was used." ;
asc:update "s/exists/defined/ in RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Update the characters that may be used in blank node identifiers in RDF::Trine::Node::Blank->new." ;
asc:update "Added POD for RDF::Trine::Statement::Quad->graph (alias for ->context)." ;
asc:update "Updated RDF::Trine::Store::Memory to generate SHA digests (for ETag use) based on bytes, not unicode strings." ;
asc:update "Add RDF::Trine::Statement::Quad->graph as an alias for RDF::Trine::Statement::Quad->context." ;
asc:update "Updated t/serializer-trig.t to load RDF::Trine before any sub-modules." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.006" ;
doap:created "2013-07-01" ;
];
asc:changes [
asc:addition "Split RDF::Trine::Iterator->from_string into from_string and from_bytes." ;
asc:update "Punycode URIs are now left as-is (without decoding) in RDF::Trine::Node::Resource->new." ;
asc:update "Fix handling of IRIs with codepoints > 127 in RDF::Trine::Node::Resource (GitHub issue #85)." ;
asc:update "Remove empty-string default in SQL schema of RDF::Trine::Store::DBI::mysql and update code to compensate." ;
asc:update "Remove bad calls to encode_utf8 in sse and as_ntriples methods of RDF::Trine::Node::Resource." ;
asc:update "Normalize IRI values before serialization in RDF::Trine::Node::Resource->as_ntriples and RDF::Trine::Node::Resource->compare." ;
asc:update "Update RDF::Trine::Serializer::NTriples::Canonical to use $node->as_ntriples instead of $node->sse." ;
asc:update "Add documentation noting that punycode will be decoded as a part of N-Triples serialization." ;
asc:update "Change use of utf8::all to utf8 in t/node.t." ;
asc:update "Mark TryCatch as a build_requires instead of a requires module in Makefile.PL." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.005" ;
doap:created "2013-05-27" ;
];
asc:changes [
asc:addition "Updated Turtle parser to support the Turtle 2013 draft syntax." ;
asc:update "Throw exception in RDF::Trine::Node::Resource->new when IRI contains bad characters." ;
asc:update "Fix RDF::Trine::Parser::RDFXML to UTF-8 encode strings before calling into the SAX parser (related to github pull request #82)." ;
asc:update "Fixed typo in exception throwing in RDF::Trine::Parser::TriG." ;
asc:update "Fixed mistaken use of 'otherwise' exception handler in turtle_tokenize.pl." ;
asc:update "Improved error handling in RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Implemented streaming version of RDF::Trine::Parser::RDFXML->parse_file using parse_file from XML::SAX." ;
asc:update "Removed use of given/when statements to make perl 5.18 happy." ;
asc:update "Silence tracing code in RDF::Trine::Store::Hexastore." ;
asc:update "Added TryCatch to list of required modules." ;
asc:update "Changed key names and layout of nodemap data in Redis store." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.004" ;
doap:created "2013-03-02" ;
];
asc:changes [
asc:addition "Added get_graphs as an alias for get_contexts in RDF::Trine::Model and RDF:Trine::Model::Dataset." ;
asc:addition "Added turtle command line tools turtle_parse.pl, turtle_benchmark.pl, and turtle_tokenize.pl." ;
asc:update "Changed RT:spog:* keys to be a hash with node ID data for each quad position in Redis store." ;
asc:update "Treat data passed into parsers as characters (github pull request #82 from Tony Cook)." ;
asc:update "Improve the error message when trying to parse an empty RDF/XML string (Kjetil Kjernsmo)." ;
asc:update "Test to see if DBD::Pg is installed in test suite (github pull request #78 from Kjetil Kjernsmo)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.003" ;
doap:created "2012-12-22" ;
];
asc:changes [
asc:addition "Added prefix_for and abbreviate methods to RDF::Trine::NamespaceMap (patch from Dorian Taylor)" ;
asc:update "Fixes to code that depended on hash key ordering." ;
asc:update "Require Scalar::Util 1.24." ;
asc:update "Fixed test of error conditions in RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Fixed bug in RDF::Trine::Parser::RDFXML that caused fatal errors on malformed input instead of throwing RDF::Trine::Error exceptions." ;
asc:update "Re-added RDF::Trine::Parser::Turtle->parse_node method." ;
asc:update "Fixed RDF::Trine::Parser::Turtle::Lexer->check_for_bom to handle zero-length input." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.002" ;
doap:created "2012-10-20" ;
];
asc:changes [
asc:update "Require Scalar::Util version 1.23." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.001" ;
doap:created "2012-10-05" ;
];
asc:changes [
asc:update "Replaced old Turtle and TriG parsers with new streaming implementations." ;
asc:update "Added RDF::Trine::Node::Literal->canonicalize method." ;
asc:update "Updated RDF::Trine::Parser::Redland to construct a new parser object on each parse (avoiding a bug in redland)." ;
asc:update "Applied partial patch to 'fix interaction with HTML::Data::Parser' (from Dorian Taylor; commit 9b713b23b6)." ;
asc:update "Added Moose and MooseX::ArrayRef to prerequisites list." ;
asc:update "Updated code style to work with Perl::Critic core policies." ;
asc:update "Added POD to RDF::Trine and RDF::Trine::Store::DBI (based on patch from Evan Carew)." ;
asc:update "Fixed bareword bug in RDF::Trine::Parser when UUID::Tiny is not available." ;
asc:update "Silenced undefined warnings in RDF::Trine::Parser::Turtle::Lexer." ;
asc:update "Updated required version of perl to 5.10." ;
asc:update "Silenced warning of cartesian joins in RDF::Trine::Store::Hexastore." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "1.000" ;
doap:created "2012-06-29" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Model->add_iterator method." ;
asc:update "Fixed etag bug in RDF::Trine::Store::Memory." ;
asc:update "Document the extends option to negotiate in the serializer (from KjetilK)." ;
asc:update "Document RDFTRINE_NO_REDLAND (from KjetilK)." ;
asc:update "Made Literal and Resource node constructors throw exception when passed undef lexical value." ;
asc:update "Removed RDF::Trine methods count, add_extra_result_data, extra_result_data." ;
asc:update "Removed support for extra data serialized in SPARQL/XML result format link tags." ;
asc:update "Rolled back attempted optimization of bulk ops calls (which broke the code)." ;
asc:update "Fixed parsing of backslash escapes in Turtle quoted literals (from Toby Inkster via github pull request #63)." ;
asc:update "Fixed miscellaneous typos (from Evan Carew)." ;
asc:update "Updated bug reporting details in BUGS POD section." ;
asc:update "Updated documentation in several classes." ;
asc:update "Removed redundant documentation in RDF::Trine::Parser." ;
asc:update "Added Redland test for UTF8 (from Kjetil Kjernsmo)." ;
asc:update "Added two tests for concat graph iterators (from Kjetil Kjernsmo)." ;
asc:update "Fix usage of materialized iterators in t/iterator-graph.t (from Kjetil Kjernsmo)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.140" ;
doap:created "2012-05-08" ;
];
asc:changes [
asc:addition "Added optional content_cb callback argument to RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Removed default get_pattern implementation in RDF::Trine::Store." ;
asc:update "Added missing import of looks_like_number function in RDF::Trine::Node::Literal." ;
asc:update "Added RDF::Trine::Pattern->sort_for_join_variables method to prevent unnecessary cartesian joins." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.139" ;
doap:created "2012-04-11" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Serializer::NQuads->statement_as_string method." ;
asc:addition "Add pg tests (Kjetil Kjernsmo)." ;
asc:addition "Added tests for RDF::Trine::Iterator->peek." ;
asc:addition "Adding some get_pattern tests to the Store tests (Kjetil Kjernsmo)." ;
asc:update "Made server a required configuration key in RDF::Trine::Store::Redis." ;
asc:update "Fixed interaction of peek() and finished() in RDF::Trine::Iterator." ;
asc:update "Fixed use of iterator finished method in RDF::Trine::Iterator::Bindings->as_json." ;
asc:update "Fixed use of iterator finished method in RDF::Trine::Store::Hexastore->get_pattern." ;
asc:update "Fixed bug when RDF::Trine::Iterator->finished is called before an (empty) iterator is used." ;
asc:update "Fixed fallback parsing bug in RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Fixed PostgreSQL capitalization bug (patch from https://rt.cpan.org/Ticket/Display.html?id=71890 applied by Kjetil Kjernsmo)." ;
asc:update "Added 'scoped_namespaces' constructor argument to RDF::Trine::Serializer::RDFXML to serialize only necessary namespace declarations. (github issue 33)." ;
asc:update "Initialize Log4perl only if it isn't initialized already (pull request 57 from kba)." ;
asc:update "Fixed expected result count in Test::RDF::Trine::Store->get_pattern_tests." ;
asc:update "Simplified code in t/store-hexastore-pattern.t." ;
asc:update "Replaced references to RDFQUERY_NO_REDLAND environment variable with proper RDFTRINE_NO_REDLAND." ;
asc:update "Allow suppressing RDF::Redland use if the RDFQUERY_NO_REDLAND environment variable is set." ;
asc:update "Removed erroneous copies of RDF::Trine::Store::DBI::Pg->init method." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.138" ;
doap:created "2012-01-25" ;
];
asc:changes [
asc:addition "Make Hexastore support etag." ;
asc:update "Fixed error-handling syntax bug in RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Fix documentation typos from fschlich@zedat.fu-berlin.de." ;
asc:update "Improved performance of Redis store with use of variadic functions." ;
asc:update "Croak rather than die in some places and use logdie in one place." ;
asc:update "Added store tests for literals including utf-8 handling and languages." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.137" ;
doap:created "2011-12-20" ;
];
asc:changes [
asc:addition "Implement RDF::Trine::Store::Hexastore->nuke (KjetilK)." ;
asc:addition "Added initial code for a Redis-based store." ;
asc:addition "Added serialize_node method to RDF::Trine::Serializer::NTriples and RDF::Trine::Serializer::Turtle." ;
asc:addition "Added parse_node method to RDF::Trine::Parser::NTriples." ;
asc:update "Trying to instantiate a resource node with the Nil IRI results in the Nil node object." ;
asc:update "Fixed unicode escaping issues in RDF::Trine::Serializer::Turtle (bugreport from nichtich <4EB7B9BE.8000205@gbv.de>)." ;
asc:update "Fixed RDF::Trine::Parser::Turtle to properly unescape percent-encoded URIs." ;
asc:update "Fixed RDF::Trine::Statement->from_redland to properly unescape percent-encoded URIs." ;
asc:update "Only set parser metadata if RDF::RDFa::Parser is available (github issue 32 from nichtich)." ;
asc:update "Added PostgreSQL-specific init method to handle case sensitivity of table names (RT#71890 from John Nicholas Whitley)." ;
asc:update "Create a fallback-implementation of remove_statements in Store.pm (KjetilK)." ;
asc:update "Updated RDF::Trine::Graph to use Algorithm::Combinatorics for memory/speed improvements (instead of Math::Combinatorics)." ;
asc:update "Support triple-only stores in the test suite (patches from KjetilK)." ;
asc:update "Added missing POD to RDF::Trine::Store::DBI::Pg and RDF::Trine::Store::Redis." ;
asc:update "Check the Perl version when running Tiny::UUID (KjetilK)." ;
asc:update "RDF::Trine::Parser now attempts to use Data::UUID before UUID::Tiny in bnode ID generation (based on test failures)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.136" ;
doap:created "2011-10-19" ;
];
asc:changes [
asc:addition "Added text/html media type, and added use of Module::Load::Conditional in RDF::Trine::Parser::RDFa." ;
asc:addition "Added RDF::Trine::Parser::Turtle->parse_node method." ;
asc:addition "Made RDF::Trine::Serializer::NTriples->statement_as_string a public method." ;
asc:addition "Initial support for using Dydra as a store." ;
asc:addition "Added RDF::Trine::Node::Literal->is_canonical_lexical_form." ;
asc:addition "Added TSV serializer." ;
asc:addition "RDF::Trine::Parser->parse_url_into_model now fill properly fall back on guesswork when media-type parsing fails." ;
asc:addition "Moved as_hashref functionality from RDF::Trine::Model to RDF::Trine::Iterator::Graph." ;
asc:addition "Added simple store tests for bulk_ops in Test::RDF::Trine::Store." ;
asc:update "Fixed escaping of URIs in rdf:about attributes (patch from SADI Framework)." ;
asc:update "Allow empty namespace prefix in RDF::Trine::NamespaceMap (patch from Jakob Voss)." ;
asc:update "Added option to sleep after each store update in Test::RDF::Trine::Store." ;
asc:update "Return an empty string instead of undef in RDF::Trine::Iterator->format_node_xml." ;
asc:update "Fixed RDF::Trine::Store::SPARQL->count_statements handling of variables." ;
asc:update "Fixed code in RDF::Trine::Store::SPARQL that was causing a warning when a variable name was redefined." ;
asc:update "Added support of SPARQL endpoints with URL parameters like Virtuoso's 'http://example.org:8890/sparql?default-graph-uri=...' (patch from Jakob Voss)." ;
asc:update "Fixed turtle serializer to check if numerics are in canonical form." ;
asc:update "Fixed mysql schema to quote index names that might contain reserved characters." ;
asc:update "Removed RDF::Trine::Iterator::SAXHandler->rate method and dropped dependency on Time::HiRes." ;
asc:update "Consolidated bnode prefix handling in parser classes, adding support for UUID::Tiny." ;
asc:update "Fix RDF::Trine::Model->get_statements to throw an error when called with arguments that aren't either undef or node objects." ;
asc:update "Fixed titlecase of table reference in RDF::Trine::Store::DBI::mysql->init." ;
asc:update "Fixed bug in use of UUID::Tiny::UUID_V1 bareword in RDF::Trine::Parser->new_bnode_prefix." ;
asc:update "Updated RDF::Trine::Store::DBI to use DBIx::Connector." ;
asc:update "Updated RDF::Trine::Store::DBI::mysql->_add_node to return the node hash value." ;
asc:update "Stop RDF::Trine::Store::DBI->add_statement from unnecessarily hashing nodes multiple times (patch from tobyink)." ;
asc:update "Moved redland store tests to developer xt directory." ;
asc:update "Updated t/serializer-turtle.t to be more accepting of stores returning data in varying orders." ;
asc:update "Removed 'or die' conditional from store tests." ;
asc:update "Changed test endpoint from kasei.us to myrdf.us." ;
asc:update "Removed heavy dependency on DBI store in test cases." ;
asc:update "Require RDF::Redland 1.0.7.1 in xt/store-redland.t." ;
asc:update "Add missing use of RDF::Trine::Statement::Quad." ;
asc:update "Conditionally load DBI store, and return Memory store from temporary_store()." ;
asc:update "Removed dependency on Unicode::Escape." ;
asc:update "Made XML::LibXML an optional dependency (RDF/XML parser will not perform c14n if it is not installed)" ;
asc:update "Updated RDF::Trine::Store::Memory to use Digest::SHA instead of Digest::MD5." ;
asc:update "Removed depedency on List::MoreUtils." ;
asc:update "Added POD for Test::RDF::Trine::Store->update_sleep." ;
asc:update "Added POD for RDF::Trine::Serializer::NTriples->statement_as_string." ;
asc:update "Removed depedency on Unicode::String and List::MoreUtils." ;
asc:update "Removed unnecessary use statements." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.135" ;
doap:created "2011-04-30" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Store::DBI->nuke method for removing store data." ;
asc:addition "Added RDF::Trine::Model->remove_list method (patch from tobyink)." ;
asc:addition "Added RDF::Trine::Iterator->seen_count method." ;
asc:addition "Added RDF::Trine::Model->get_sparql delegation method." ;
asc:update "Globally changed 'base' to 'base_uri' in Trine code and API." ;
asc:update "Changed name of redland rdfa parser to 'librdfa' and removed associated media type and file extensions (due to librdfa bugs)." ;
asc:update "Fixed bug in RDF::Trine::Store::DBI::mysql that was causing init() to remove existing data." ;
asc:update "Updated RDF::Trine::Parser->parse_url_into_model to be better at guessing media types for file: URIs." ;
asc:update "Updated RDF::Trine::Parser::Redland to allow the $base argument to be a URI object." ;
asc:update "Updated RDF::Trine::Parser->parse_url_into_model to not catch and hide exceptions thrown from calls to parse_into_model." ;
asc:update "Updated bin/srx2csv to handle unbound variables in results." ;
asc:update "Added support for 'storeclass' key in RDF::Trine::Store->new_with_config." ;
asc:update "Added supports method to RDF::Trine::Model, RDF::Trine::Model::Dataset, and RDF::Trine::Store classes." ;
asc:update "RDF::Trine::Store->new_with_string now attempts to load store classes before using them." ;
asc:update "Renamed RDF::Trine::Store::SPARQL->_get_iterator to get_sparql." ;
asc:update "Added SQL file for creating the mysql backend database." ;
asc:update "Remove the meaningless \"All rights reserved\" copyright text." ;
asc:update "Style changes to RDF::Trine::Iterator::Bindings->print_xml." ;
asc:update "Updated required version of XML::SAX to 0.96." ;
asc:update "Updated store tests (KjetilK)." ;
asc:update "Removed Digest::SHA1 from list of prereq modules." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.134" ;
doap:created "2011-03-29" ;
];
asc:changes [
asc:addition "Added srx2csv and srx2table scripts." ;
asc:addition "Added API for stream parsing of srx results to RDF::Trine::Iterator::SAXHandler." ;
asc:addition "Added RDF::Trine::Model->get_sequence method for accessing rdf:Seq structures." ;
asc:addition "Added 'value' method to RDF::Trine::Node subclasses for accessing the primary scalar value of a node." ;
asc:addition "Added RDF::Trine::Graph->error method to explain failures in RDF::Trine::Graph->equal." ;
asc:addition "Updated RDF::Trine::Graph to support: subgraph testing, access to injection map, delegation to RDF::Trine::Model (patch from tobyink)." ;
asc:update "Deprecated RDF::Trine::Iterator->count." ;
asc:update "Fixed bug in RDF::Trine::Iterator::SAXHandler on data with empty results." ;
asc:update "Fixed canonicalization bug in RDF::Trine::Node::Literal for xsd:decimals with no decimal point." ;
asc:update "Fixed RDF::Trine::Node::Resource->qname handling of unicode IRIs." ;
asc:update "Fixed RDF::Trine::Parser::NTriples->parse_file to accept filenames just like the superclass implementation." ;
asc:update "Fixed RDF::Trine::Parser->parse_file to open files as utf8." ;
asc:update "Fixed RDF::Trine::Parser->parse_url_into_model to pass through 'canonicalize' argument to actual parser method call." ;
asc:update "Allow 'canonicalize' argument to RDF::Trine::Iterator->from_json method." ;
asc:update "Made diagnostic messages less noisy in t/store-hexastore-storable.t." ;
asc:update "Silenced an uninitialized warning in RDF::Trine::Parser::NTriples." ;
asc:update "Removed use of XML::SAX in RDF::Trine::Serializer subclasses." ;
asc:update "Added turtle parser test for file with BOM." ;
asc:update "Updated RDF::Trine::Store::DBI and RDF::Trine::Store::DBI::mysql to use DBI placeholders." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.133" ;
doap:created "2011-02-07" ;
];
asc:changes [
asc:addition "Added RDF::Trine::NamespaceMap class." ;
asc:addition "Added support to populate RDF::Trine::NamespaceMap objects during RDF parsing." ;
asc:addition "Added RDF::Trine::Model get_list and add_list methods for managing rdf:List structures." ;
asc:addition "Added support for parsing SPARQL JSON Results format in RDF::Trine::Iterator->from_json." ;
asc:addition "RDF::Trine::Parser subclasses now allow parse_file_into_model and parse_file being called as class methods." ;
asc:addition "Added 'restrict' and 'extend' options to RDF::Trine::Serializer->negotiate to allow more control over content negotiation." ;
asc:addition "Added the ability to restrict the nodes returned from the RDF::Trine::Model->objects method by node type or by literal language/datatype." ;
asc:update "Fixed bug in Turtle parser that wouldn't allow a Unicode BOM in the input." ;
asc:update "Fixed bug in turtle serialization of blank nodes used in graph cycles (reported by tobyink)." ;
asc:update "Fixed bug in RDF::Trine::Serializer::RDFXML that wasn't escaping XML entities in IRIs and bnode labels (github issue 3 from nichtich)." ;
asc:update "Updated RDF::Trine::Store::Hexastore to use equal() method instead of op<==> for testing node equality." ;
asc:update "Updated t/parser-rdfjson.t to test bnode equality using identifier strings, not with op<==>." ;
asc:update "Updated RDF::Trine::Store::SPARQL to allow bulk-update operations." ;
asc:update "Added string overloading to RDF::Trine::Node subclasses." ;
asc:update "Updated conneg code setting default q-values in RDF::Trine::Serializer." ;
asc:update "Updated RDF::Trine::Iterator::Graph->print_xml to set utf8 binmode on the output filehandle." ;
asc:update "Changed required version of Module::Load::Conditional to 0.38 (based on version in debian)." ;
asc:update "Fixed RDF/XML xmlns serialization bug when used with RDF::Trine::NamespaceMap objects." ;
asc:update "Added text/rdf+n3 as a media type for RDF::Trine::Serializer::Turtle." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.132" ;
doap:created "2010-12-23" ;
];
asc:changes [
asc:addition "Added conditional loading of Redland parsers and stores when available using Module::Load::Conditional." ;
asc:addition "Added auto-initialization of DBI stores during object construction." ;
asc:addition "Added RDF::Trine::Store->new method to delegate to existing constructors." ;
asc:update "Moved slow turtle parser tests into developer tests directory xt/." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.131" ;
doap:created "2010-12-07" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Model->as_graphviz method." ;
asc:update "Fixed SPARQL XML Results serialization to omit unbound variables and properly declare literal languages and datatypes." ;
asc:update "Copied implementations of is_numeric_type() and numeric_value() from RDF::Query::Node::Literal to RDF::Trine::Node::Literal." ;
asc:update "Updated documentation to explicitly discuss inherited methods due to subclassing (RT 63153 comment from Ivan Shmakov)." ;
asc:update "Updated POD for RDF::Trine::Iterator subclasses (RT 63153 comment from Ivan Shmakov)." ;
asc:update "Fixed RDF::Trine::Parser->guess_parser_by_filename to get RDF/XML parser class from parser_by_media_type() instead of being hardcoded." ;
asc:update "Fixed RDF::Trine::Serializer::Turtle::_node_concise_string to allow call as class method." ;
asc:update "Added RDF::Trine::Parser::Redland subclasses to allow calling new() with no 'name' argument." ;
asc:update "Added file extensions to parser registry for RDF::Trine::Parser::Redland." ;
asc:update "Added checks to avoid undefined warnings in RDF::Trine::Serializer::NTriples::Canonical (suggestion from KjetilK)." ;
asc:update "Set :utf8 mode on string-backed filehandles in RDF::Trine::Serializer::Turtle." ;
asc:update "Attempt at patching utf8 turtle/trig parsing bug submitted by KjetilK." ;
asc:update "Updated required version of Test::More to 0.88 (bugreport from @danbri)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.130" ;
doap:created "2010-10-18" ;
];
asc:changes [
asc:update "Fixed bug in RDF::Trine::Node::Literal->is_valid_lexical_form check for xsd:double." ;
asc:update "Updated RDF::Trine::Iterator::Bindings->as_string to use concise turtle syntax." ;
asc:addition "Added RDF::Trine::Parser methods media_type(), media_types(), parser_by_media_type(), and guess_parser_by_filename()." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.129" ;
doap:created "2010-10-04" ;
];
asc:changes [
asc:update "Updated Makefile.PL and RDF::Trine to require perl v5.8.3." ;
asc:update "Fixed bug in promotion of temporary models from memory-backed to a SQLite-backed store." ;
asc:update "Fixed RDF::Trine::Store::DBI->new to bless into backend-specific classes when passed a database handle (bug report from tobyink)." ;
asc:update "Updated RDF::Trine::Node::Literal to produce more accurate canonical lexical forms for xsd types." ;
asc:addition "Added RDF::Trine::Node::Literal->is_valid_lexical_form method." ;
asc:addition "Added support for special union-graph 'tag:gwilliams@cpan.org,2010-01-01:RT:ALL'." ;
asc:addition "Added exportable constants for UNION_GRAPH and NIL_GRAPH in RDF::Trine." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.128" ;
doap:created "2010-09-28" ;
];
asc:changes [
asc:update "Added .owl as a recognized RDF/XML file extension for the fallback parser guessing code." ;
asc:update "Fixed bug in RDF::Trine::Store::SPARQL preventing access to the default graph." ;
asc:update "Updated RDF::Trine::Store::DBI->init to (partially) work if called for a new model (but the database has already been initialized)." ;
asc:update "Fixed call to RDF::Trine::Parser->parse_into_model in bin/rdf_store_add_file.pl." ;
asc:update "Fixed call to RDF::Trine::Parser->parse_url_into_model in RDF::Trine::Store::Memory." ;
asc:update "Removed RDF::Redland dependency in bin/rdf_store_add_file.pl." ;
asc:update "Updated RDF::Trine::Node::Literal->canonicalize_literal_value coercion of xsd:decimal values." ;
asc:update "Added optional flag to RDF::Trine::Node::Literal->new to attempt to canonicalize recognized XSD values." ;
asc:update "Updated RDF::Trine::Exporter::CSV to accept a graph iterator (for serializing s,p,o as CSV)." ;
asc:update "Updated RDF::Trine::Store::Redland to improve efficiency (based on suggestions from Dorian Taylor)." ;
asc:update "Made code updates to improve performance based on profiling." ;
asc:update "Updated to use URI 1.52 to allow direct usage of IRIs without unicode workarounds." ;
asc:update "Added content-sniffing to fallback parser guessing code for RDF/XML and Turtle." ;
asc:update "Lowered required version of redland in RDF::Trine::Parser::Redland to 1.0.7.1." ;
asc:addition "Added new_with_config method to allow interactive configuration via rqsh.pl." ;
asc:addition "Added introspective _config_meta method to RDF::Trine::Store subclasses to allow interactive configuration." ;
asc:addition "Added RDF::Trine::Store->class_by_name class method." ;
asc:addition "Added etag method to RDF::Trine::Model and RDF::Trine::Store::Memory to allow for HTTP caching." ;
asc:addition "Added RDF::Trine::Store::DBI->clear_restrictions method (suggestion and partial patch from tobyink)." ;
asc:addition "Added native redland parser class and tests (patch from Dorian Taylor)." ;
asc:addition "Added RDF::Trine::Iterator->each method (requested by tobyink)." ;
asc:addition "Added RDF::Trine::Serializer->serializer_names method for listing available serializers." ;
asc:addition "Added as_string method to RDF::Trine::Iterator::Boolean and RDF::Trine::Iterator::Graph." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.127" ;
doap:created "2010-08-30" ;
];
asc:changes [
asc:update "Removed redundant prerequisite for XML::LibXML::SAX from Makefile.PL." ;
asc:update "RDF::Trine::Model->bounded_description now catches and ignores UnimplementedError exceptions." ;
asc:update "Added heuristics support for TriG, RDF/JSON, and N-Quads to RDF::Trine::Parser->parse_url_into_model." ;
asc:update "Added ability to specify the base URI for serializing RDF/XML and Turtle (patch from KjetilK)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.126" ;
doap:created "2010-08-16" ;
];
asc:changes [
asc:addition "Added begin_bulk_ops() and end_bulk_ops() hint methods to RDF::Trine::Model." ;
asc:addition "Updated RDF::Trine::Parser to call begin_bulk_ops() and end_bulk_ops() on model object." ;
asc:addition "Updated DBI backend to use transactions when bulk_ops hints are used." ;
asc:addition "Added '==' and 'eq' overloading to RDF::Trine::Graph class." ;
asc:update "Fixed N-Triples serialization escaping bug for strings whose only escapable character is '\\'." ;
asc:update "Fixed typo in handling of RDF::Trine::Node::Formula extension." ;
asc:update "RDF::Trine::Model->new will now return a temporary model when called with no arguments." ;
asc:update "Updated get_pattern methods in Model and Store classes to return VariableBindings objects." ;
asc:update "Updated DBI backend to allow no-op adding of the nil node." ;
asc:update "Updated SPARQL backend to use SPARQL 1.1 Update and Aggregate operations." ;
asc:update "Updated Memory and Hexastore backends to support 'graph' key in _new_with_config()." ;
asc:update "Improved error messages in N-Triples and N-Quads parsers." ;
asc:update "Fixed column naming bug in RDF::Trine::Store::DBI->get_contexts." ;
asc:update "Updated RDF::Trine::Model->bounded_description to traverse backwards links across blank nodes." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.125" ;
doap:created "2010-07-29" ;
];
asc:changes [
asc:addition "Added RDF::Trine::VariableBindings class (ported from RDF::Query)." ;
asc:addition "Added media types and URIs for N-Quads parser and serializer." ;
asc:addition "Added RDF::Trine::Statement->rdf_compatible method (patch from tobyink)." ;
asc:addition "Added documentation for new_with_object and hashref config." ;
asc:addition "Added %format_uris registry for parsers and serializers." ;
asc:addition "Added RDF::Trine::Model::as_string method." ;
asc:addition "Added character encoding declaration to RDF::Trine::Iterator::Bindings->print_xml." ;
asc:addition "Added character encoding declaration to RDF::Trine::Iterator::Boolean->print_xml." ;
asc:update "Fixed hash collision bug in RDF::Trine::Store::DBI handling of literals with values '' and '0'." ;
asc:update "Iterators constructed from SPARQL XML Results format now return variable bindings objects." ;
asc:update "Turtle serialization to strings now only declares prefixes that are used in the data." ;
asc:update "Changed RDF::Trine::Model node methods (subjects, predicates, objects) to use quad semantics and accept a graph parameter." ;
asc:update "Improved efficiency of counting quad patterns in RDF::Trine::Store::DBI." ;
asc:update "Fixed bug in N-Triples serializer (was serializing quads)." ;
asc:update "Require XML::LibXML 1.70." ;
asc:update "Removed unused variable in RDF::Trine::Parser::RDFXML." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.124" ;
doap:created "2010-06-21" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Iterator->count method." ;
asc:addition "Added ability to access the number of rows returned from RDF::Trine::Iterator::Bindings::as_string." ;
asc:addition "Added RDF::Trine::Model::Dataset for constructing views over a model, and RDF::Trine::Model->dataset_model constructor method." ;
asc:addition "Added missing use of Encode to RDF::Trine::Store::Redland." ;
asc:addition "Added bin/rdf_transcode.pl for (streaming) conversion between RDF serialization formats." ;
asc:addition "Added ability for RDF::Trine::Store::Memory to load RDF files by URI in _new_with_string." ;
asc:update "Updated quality value heuristics in RDF::Trine::Serializer::negotiate to prefer turtle if no accept headers are supplied." ;
asc:update "Fixed RDF::Trine::Iterator::Bindings::as_string to respect $max_result_size argument." ;
asc:update "RDF::Trine::Iterator::Bindings::as_string now returns unescaped strings." ;
asc:update "Updated RDF::Trine::Parser::parse_url_into_model to fall back on file extension heuristics if the media-type based parse fails." ;
asc:update "Updated RDF::Trine::Parser::RDFJSON to throw an error if input isn't valid JSON." ;
asc:update "Updated RDF::Trine::Model to throw an error if not passed a store object." ;
asc:update "Fixed bug in handling of quads in RDF::Trine::Model::get_pattern and RDF::Trine::Store::get_pattern." ;
asc:update "Updated RDF::Trine::Store::DBI and RDF::Trine::Store::Memory to not return the default (nil) context from get_contexts." ;
asc:update "Fixed bug in RDF::Trine::Store::Memory::_get_statements_quad that would infinite loop after removing statements." ;
asc:update "RDF::Trine::Store doesn't load RDF::Redland (now only checks if it is already loaded)." ;
asc:update "Fixed bug in RDF::Trine::Store subclasses registering their class names in %STORE_CLASSES." ;
asc:update "Made $RDF::Trine::Store::Redland::NIL_TAG globally accessible." ;
asc:update "Updated POD tests to not use taint mode (and synced between R::T and R::Q)." ;
asc:update "Changed test data in t/iterator-thaw.t." ;
asc:update "Removed RDF::Core as a prerequisite in META.yml." ;
asc:update "Added default implementation of RDF::Trine::Serializer::serialize_iterator_to_file." ;
asc:update "RDF::Trine::Serializer::negotiate now slightly prefers turtle." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.123" ;
doap:created "2010-05-13" ;
];
asc:changes [
asc:addition "Added turtle utf8 decoding for Turtle parser." ;
asc:addition "Added RDF::Trine::Serializer::media_types method." ;
asc:addition "Added RDF::Trine::Store::new_with_object method." ;
asc:update "Fixed unicode encoding bug in RDF::Trine::Store::DBI." ;
asc:update "RDF::Trine::Serializer::NTriples::Canonical.pm now inherits from RDF::Trine::Serializer::NTriples." ;
asc:update "Cleaned up VERSION declarations." ;
asc:update "Updated RDF::Trine::Parser::parse_url_into_model to fall back on file extension heuristics if the media-type based parse fails." ;
asc:update "Updated RDF::Trine::Parser::RDFJSON to throw an error if input isn't valid JSON." ;
asc:update "Added character decoding to RDF::Trine::Parser->parse_url_into_model." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.122" ;
doap:created "2010-05-05" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Model::bounded_description method." ;
asc:addition "Added initial implementation of a Redland-based storage class." ;
asc:update "Fixed SPARQL store tests to align with recent coverage efforts." ;
asc:update "Code cleanup and updates to improve test coverage." ;
asc:update "Rearranged POD in RDF::Trine::Parser." ;
asc:update "Fixed type in RDF::Trine::Node::Literal::_compare." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.121" ;
doap:created "2010-04-29" ;
];
asc:changes [
asc:addition "Added node-centric methods to RDF::Trine::Model: subjects, predicates, objects." ;
asc:update "Fixed URI qname code to disallow ':' in local name." ;
asc:update "Improved POD for value canonicalization in RDF::Trine::Parser." ;
asc:update "Added POD for RDF::Trine::Model::get_contexts." ;
asc:update "Added POD details to RDF::Trine::Model::get_statements regarding triple and quad semantics." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.120" ;
doap:created "2010-04-20" ;
];
asc:changes [
asc:addition "Added optional value canonicalization on parsing (xsd integer, decimal, and boolean)." ;
asc:update "RDF/XML parser now attempts to canonicalize XMLLiterals (doesn't yet canonicalize all XMLLiterals that it shold)." ;
asc:update "Added RDF::Trine::Node::Blank::_new constructor that doesn't validate bnode name for N-Triples conformance." ;
asc:update "Performance improvements to RDF::Trine::Node::_unicode_escape." ;
asc:update "Updated Turtle parser to throw error on undeclared namespace prefixes." ;
asc:update "Updated Turtle serializer to produce QName literal datatypes." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.119" ;
doap:created "2010-04-15" ;
];
asc:changes [
asc:update "Fixed bug in NTriples parser handling of language literals (reported by tobyink)." ;
asc:update "Fixed another bug in turtle serializer that improperly serialized bnode objects 'belonging' to a parent triple (in-edge count of 1)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.118" ;
doap:created "2010-03-22" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Parser::TriG." ;
asc:addition "Added RDF::Trine::Parser::parse_file_into_model method." ;
asc:addition "Added RDF::Trine::Serializer::NQuads." ;
asc:addition "Added RDF::Trine::Serializer::negotiate constructor." ;
asc:addition "Added RDF::Trine::Serializer::new constructor based on requested serializer name." ;
asc:addition "Added RDF::Trine::Exporter::CSV for serializing variable bindings." ;
asc:addition "Added Text::CSV and HTTP::Negotiate to RDF::Trine prereq list." ;
asc:update "Fixed exception thrown on unrecognized parser name." ;
asc:update "Removed dependency list and added perlrdf link to POD in RDF::Trine and RDF::Query." ;
asc:update "Updated RDF::Trine::Serializer::Turtle->new API to take %args instead of \\%namespaces." ;
asc:update "Updated RDF::Trine::Serializer::RDFXML to take %args and properly accept and serialize xmlns namespaces." ;
asc:update "Updated RDF::Trine::Parser::RDFa to use streaming parsing (instead of materializing the graph first)." ;
asc:update "Updated RDF::Trine::Model::_debug to use quad semantics when getting statement iterator." ;
asc:update "Updated t/parser-turtle.t to use File::Glob::bsd_glob for cases where the test directory's path contains whitespace." ;
asc:update "Removed redundant parse_into_model methods from RDF::Trine::Parser subclasses." ;
asc:update "Renamed examples/create_store.pl to examples/foaf_labels.pl." ;
asc:update "Fixed bug in turtle serializer that improperly serialized bnode objects 'belonging' to a parent bnode." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.117" ;
doap:created "2010-02-04" ;
];
asc:changes [
asc:update "Fixed bug in RDF::Trine::Iterator::Bindings::as_json when using empty iterator." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.116" ;
doap:created "2010-01-31" ;
];
asc:changes [
asc:update "Fixed bug in RDF::Trine::Serializer::RDFXML when serializing empty models." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.115" ;
doap:created "2010-01-30" ;
];
asc:changes [
asc:addition "Added N-Triples and N-Quads parsers." ;
asc:addition "Added RDF::Trine::Store::SPARQL::get_pattern implementation." ;
asc:update "Changed RDF::Trine::Model::objects_for_predicate_list to return only a single node in scalar context." ;
asc:update "Added table alias for COUNT(*) queries in RDF::Trine::Store::DBI (fix for mysql)." ;
asc:update "Added example of using parse_url_into_model to RDF::Trine::Parser SYNOPSIS." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.114" ;
doap:created "2010-01-27" ;
];
asc:changes [
asc:addition "Added new Turtle serializer." ;
asc:addition "Added Storable to list of prereq modules." ;
asc:addition "Added partial support for rdf:Lists to RDF::Trine::Serializer::Turtle." ;
asc:addition "Added RDF::Trine::Namespace::uri_value method." ;
asc:addition "Added variable() shortcut function to RDF::Trine package." ;
asc:addition "Added UnimplementedError exception class." ;
asc:update "Updated RDF/XML serializer grouping of same-subject statements for bounded descriptions." ;
asc:update "Updated parse_into_model parser methods to be both class and object methods." ;
asc:update "Updated Parser parse_* methods to take extra %args with optional 'context' value." ;
asc:update "Moved RDF::Trine::Store::Hexastore from alpha/ directory into RDF::Trine package." ;
asc:update "Updated unicode encoding and escaping in ::Node, ::Node::Literal, and ::Store::DBI." ;
asc:update "Updated RDF::Trine::Graph to materialize statements when constructed with a graph iterator." ;
asc:update "Moved get_pattern logic from ::Store to ::Model." ;
asc:update "Updated ::Model::Union to work better with ::Model::get_pattern." ;
asc:update "Updated Node and Statement from_sse methods to work with constant string arguments." ;
asc:update "Updated code and tests for better coverage." ;
asc:update "Removed unused RDF::Trine::Iterator::sfinally function." ;
asc:update "Fixed bug in RDF::Trine::Graph::equals." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.113" ;
doap:created "2009-12-30" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Parser::RDFa implementation to connect with RDF::RDFa::Parser." ;
asc:addition "Added ability to pass RDF::Trine::Node::Resource values as the datatype argument to RDF::Trine::Node::Literal::new()." ;
asc:addition "Added syntax shortcuts as exportable from RDF::Trine: iri(), blank(), and literal()." ;
asc:addition "Added RDF::Trine::Serializer base class." ;
asc:addition "Added RDF::Trine::Parser::parse_url_into_model class method." ;
asc:addition "Added RDF::Trine::Model::size method." ;
asc:addition "Added RDF::Trine::Model::objects_for_predicate_list method." ;
asc:addition "Added RDF::Trine::Node::Resource::qname method to split an IRI into namespace and local parts." ;
asc:addition "Added RDF::Trine::Serializer::NTriples::Canonical (from tobyink)." ;
asc:addition "Added RDF::Trine::Iterator::Bindings::as_statements to return a graph iterator." ;
asc:update "Special-cased 'xsd' in RDF::Trine::Namespace to return the RDF-version of the namespace URI (with trailing '#')." ;
asc:update "Fixed syntax error in generated RDF/XML in RDF::Trine::Serializer::RDFXML." ;
asc:update "Fixed bug in RDF::Trine::Serializer::RDFXML that was dropping triples." ;
asc:update "Updated parser classes' registration of parser names and media types." ;
asc:update "Removed ::Parser::Error package. Replaced with use of RDF::Trine::Error." ;
asc:update "Convert data to utf8 encoding before hashing in RDF::Trine::Store::DBI::_mysql_hash_pp." ;
asc:update "Removed RDF::Trine::Serializer::RDFXML::_split_predicate and replaced with call to $pred->qname." ;
asc:update "Updated POD for ::Model::get_pattern to mention 'orderby' argument." ;
asc:update "Updated ::Model::as_stream to return a graph iterator sorted by (s,p,o)." ;
asc:update "Updated RDF/XML serializer to merge same-subject rdf:Descriptions." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.112" ;
doap:created "2009-12-12" ;
];
asc:changes [
asc:addition "Added RDF/XML serializer." ;
asc:addition "Added serialize_iterator_to_file and serialize_iterator_to_string methods to NTriples serializer." ;
asc:addition "Added _serialize_bounded_description method to NTriples serializer." ;
asc:addition "Added RDF::Trine::Parser::RDFJSON package (patch from tobyink)." ;
asc:addition "Added RDF::Trine::Serializer::RDFJSON package (patch from tobyink)." ;
asc:addition "Added add_hashref and as_hashref methods to RDF::Trine::Model (patch from tobyink)." ;
asc:addition "Added tests for RDF/JSON parsing/serializing (patch from tobyink)." ;
asc:addition "Added logging code to RDF::Trine::Store::DBI." ;
asc:addition "Added as_ntriples methods to RDF::Trine::Node and subclasses for proper NTriples formatting." ;
asc:update "Updated RDF::Trine docs to mention the RDF/XML parser (good catch by tobyink)." ;
asc:update "Changed ::Store::DBI::get_statements to skip (with warning) past ill-formed statements with IDs that don't appear in any of the value tables." ;
asc:update "Updated RDF::Trine::Serializer::NTriples to call as_ntriples on node objects during serialization." ;
asc:update "Updated bin/rdf_store_serialize.pl to print in NTriples format." ;
asc:update "Skip some failing tests when RDF::Trine::Node::Literal::XML is loaded." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.111" ;
doap:created "2009-07-14" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Graph for testing graph equality." ;
asc:addition "Added node_names() method to ::Statement and ::Statement::Quad." ;
asc:addition "Added RDF::Trine::Statement::has_blanks method." ;
asc:update "Fixed bug in RDF::Trine::Namespace to allow subclassing." ;
asc:update "Removed dependency on Test::JSON, List::MoreUtils, and XML::Parser." ;
asc:update "Added POD to RDF::Trine::Parser." ;
asc:update "RDF::Trine::Store::temporary_store now delegates to RDF::Trine::Store::DBI." ;
asc:update "Removed unnecessary call to blessed() in RDF::Trine::Statement." ;
asc:update "Removed unused RDF::Trine::Promise class." ;
asc:update "RDF::Trine now loads RDF::Trine::Store." ;
asc:update "Removed TODO labeling of tests in t/model-filter.t." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.110" ;
doap:created "2009-03-14" ;
];
asc:changes [
asc:addition "Added RDF::Trine::Store base class with default implementation of get_pattern()." ;
asc:addition "Added POD description to RDF::Trine package." ;
asc:addition "Added debug tracing code to ::Store::DBI." ;
asc:update "Updated bin/rdf_store_add_file.pl to use the RDF::Trine parser, not Redland's parser." ;
asc:update "Updated ::Iterator::Bindings::as_string to join lines with empty string (had been returning a list)." ;
asc:update "Updated schema in ::Store::DBI::mysql to use utf8 charset and collation, and use a pkey instead of a unique." ;
asc:update "RDF::Trine::Store::get_pattern now passes through optional @args (used for order-by)." ;
asc:update "Fixed bug in ::Store::DBI::remove_statements causing bad SQL when all nodes are undef (remove all triples)." ;
asc:update "::Node::Literal::new now calls ::Node::Literal::XML::new if available and applicable." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.109" ;
doap:created "2008-11-14" ;
];
asc:changes [
asc:addition "Added $IGNORE_CLEANUP to ::Store::DBI to allow preventing DBI cleanup." ;
asc:addition "Added SQLite-specific ::Store::DBI subclass so that indexes are created properly." ;
asc:addition "Added POD to from_sse methods in ::Node and ::Statement." ;
asc:addition "Added parsing of variables to RDF::Trine::Node::from_sse." ;
asc:update "Removed incremental parsing code from RDF-Trine package." ;
asc:update "Small changes to ::Iterator and ::Trine::Node::Literal for efficiency." ;
asc:update "Whitespace updates to ::Trine::Node." ;
asc:update "Fixed bug in RDF::Trine::Iterator::Bindings::print_xml that dropped every other row." ;
asc:update "Updated RDF::Trine::Node::Resource to work with URI objects." ;
asc:update "rdf_parse_turtle.pl now warns on any parser error." ;
asc:update "RDF::Trine::Node::Resource now escapes unicode in base URIs (now just relative URI part) before calling URI->new_abs." ;
asc:update "Turtle parser now makes universal IDs for all blank node (even those with given IDs like _:xyz)." ;
asc:update "Fixed Unicode unescaping in Turtle parser's handling of string literals." ;
asc:update "Turtle parser now doesn't modify the lexical value of numeric typed literals." ;
asc:update "Fixed ::Store::DBI handling of Quads in get_statements (had been broken because RDF::Query bypasses it by using get_pattern)." ;
asc:update "Fixed bug in ::Iterator::Bindings::print_xml that would drop every other result." ;
asc:update "Updated VERSION numbers and docs for RDF::Trine for 0.109_01 candidate release." ;
asc:update "::Store::DBI now throws an error if call to DBI->connect doesn't return a database handle." ;
asc:update "::Iterator::Bindings::as_string now returns '' when there are no rows (instead of dying)." ;
asc:update "::Store::DBI now throws an error if call to DBI->connect doesn't return a database handle." ;
asc:update "::Iterator::Bindings::as_string now returns '' when there are no rows (instead of dying)." ;
asc:update "Moved all debugging over to use Log::Log4perl." ;
asc:update "Updated prerequisite list (removed Digest::SHA1 and XML::Parser, and added missing modules)." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.108" ;
doap:created "2008-07-14" ;
];
asc:changes [
asc:addition "Added NTriples serializer module." ;
asc:addition "Added POD to RDF::Trine::Promise." ;
asc:addition "Added XML::Parser to list of required modules." ;
asc:addition "Added a peek method to ::Iterator to support execution deferment like in ::Algebra::Service." ;
asc:addition "Added RDF::Trine::Promise for general computation deferment." ;
asc:addition "Added print_xml method to RDF::Trine::Iterator classes." ;
asc:addition "Added support for Postgres storage." ;
asc:addition "Added XML::LibXML::SAX as a prerequisite (because XML::SAX::PurePerl can't handle some RDF/XML that uses unicode)." ;
asc:addition "Added unicode escaping to Literal and Resource sse serialization." ;
asc:addition "Added W3C RDF/XML data and test script." ;
asc:addition "Added support to the DBI store for filters for equality tests." ;
asc:addition "Added support to compile normalized UNION (can only be the top-level node or a child of another UNION) patterns to SQL." ;
asc:addition "Added Text::Table as a prerequisite." ;
asc:update "Replaced RDF::Core-based RDF/XML parser with a new XML::SAX based parser." ;
asc:update "Removed now unused redland-based RDF/XML test data." ;
asc:update "Removed unused redland fallback code from RDF::Query::Model::RDFTrine." ;
asc:update "Removed redland-based RDF/XML parser tests." ;
asc:update "Updated Turtle grammar to accept uppercase language tags." ;
asc:update "Fixed COLLECTION support in RDF/XML parser." ;
asc:update "Fixed RDF/XML parser for nodeID, sequence, reification, and base URI handling." ;
asc:update "Fixed POD in NTriples serializer." ;
asc:update "Fixed RDF/XML parser to handle nodeID, arbitrary xml attributes, parseType=\"Literal\" serialization, and base URI handling." ;
asc:update "Normlized expected NTriples data in W3C RDF/XML test files." ;
asc:update "Fixes to deferring XML serialization for SPARQL bindings." ;
asc:update "Fixed bug in delaying XML serialization for identity hints header computation." ;
asc:update "Fixed extra data following xml query results." ;
asc:update "Fixed strict refs bug in print_xml in iterator classes." ;
asc:update "Updated tests that started failing after the previous commit (affecting SQL-compilation)." ;
asc:update "Allow equality test and disjunction filters in patterns that can be compiled to SQL." ;
asc:update "Fix bug in SQL compilation when restricting left-joins to specific node types (based on functions like isIRI)." ;
asc:update "Mysql store schema now adds indexes." ;
asc:update "Improved use of temporary RDF::Trine stores in RDF::Query tests." ;
asc:update "DBI temporary stores now use an in-memory SQLite database." ;
asc:update "Fixed bug in RDF::Trine::Store::DBI::mysql (calling _mysql_hash() without qualifying it in the superclass)." ;
asc:update "Fixed variable ordering bug in UNION to SQL handling by forcing a sorted projection order." ;
asc:update "Made SQL more standards compliant." ;
asc:update "RDF::Trine::Store::DBI now auto-upgrades to mysql and postgres classes." ;
asc:update "Fixed unicode escaping by replacing Unicode::Escape calls to hand-rolled code in RDF::Trine::Node." ;
asc:update "RDF/XML parser now accept more than one top-level resource." ;
asc:update "RDF/XML parser now accepts URI objects as base uri (not just RDF::Trine::Node::Resource objects)." ;
asc:update "Added tabular as_string serialization of ::Iterator::Bindings objects." ;
asc:update "Fixed RDF/XML parser handling of strings (versus file handles)." ;
asc:update "Fixed Turtle parser to properly keep '+' on integer literals." ;
asc:update "Fixed bindings_count so it doesn't pull a result from the stream (basing the count on binding_names)." ;
asc:update "Fixed bindings xml serialization whitespace formatting." ;
asc:update "Cleaned up ::Iterator::Bindings::as_string serialization code." ;
asc:update "Replaced use of splice() with shift() in ::Iterator::SAXHandler::pull_result." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.107" ;
doap:created "2008-04-25" ;
];
asc:changes [
asc:addition "Added Digest::SHA1 as a requirement for RDF::Trine." ;
asc:update "Fixed base URI use in Turtle parser." ;
asc:update "Fixed SQLite DSN in example scripts." ;
asc:update "Fixed XML whitespace error in iterator-thaw.t" ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.106" ;
doap:created "2008-04-19" ;
];
asc:changes [
asc:addition "Added examples directory (and an example script) to the RDF-Trine package." ;
asc:addition "Added a mysql-specific RDF::Trine::Store class (now uses INSERT IGNORE for efficiency)." ;
asc:addition "Added new tests to improve coverage of node and iterator classes." ;
asc:addition "Added tests for binding iterator cartesian product join." ;
asc:addition "Added SPARQL XML Results test for identity hints in element." ;
asc:addition "Added support to incrementally thaw an Iterator from an IO::Socket." ;
asc:addition "Added RDF::Trine::Iterator::SAXHandler::rate method." ;
asc:addition "Added Time::HiRes as prerequisite to META.yml and Makefile.PL." ;
asc:update "Removed Bloom::Filtere from the list of prerequisites (functionality has moved to RDF::Query)." ;
asc:update "SQL compiler now doesn't select statement contexts unless called via get_statements (not get_pattern)." ;
asc:update "RDF::Trine::Iterator::Graph::as_bindings now can be called with no arguments (uses default names)." ;
asc:update "Moved the nested hash join from ::Iterator to ::Iterator::Bindings." ;
asc:update "Pipelined the code for nested loop joins on binding iterators." ;
asc:update "Fixed bug in ::Model::StatementFilter to call join_steams in ::Iterator::Bindings." ;
asc:update "Fixed bug in ::Iterator::Graph::as_bindings where not all arguments are ::Node::Variable objects." ;
asc:update "Updated SPARQL XML Results namespace for boolean iterators." ;
asc:update "Replaced XML::Twig code with new XML::SAX parser (allowing streaming parsing)." ;
asc:update "Moved as_sparql methods from RDF::Trine:: to RDF::Query:: classes." ;
asc:update "RDF::Trine::Iterator::smap now allows overriding default construct_args (e.g. binding names)." ;
asc:update "Fixed RDF::Trine::Model::StatementFilter::get_pattern to project away unused variables (fixing a bug that caused joining to always fail)." ;
asc:update "Updated example turtle parser to accept URLs as command line arguments." ;
asc:update "Turtle parser now removes dashes from the UUIDs used for blank node IDs." ;
asc:update "Updated all RDF::Trine modules to use consistent VERSION number for 0.106 release." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.105" ;
doap:created "2008-03-19" ;
];
asc:changes [
asc:update "Removed use of File::Slurp in parser tests." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.104" ;
doap:created "2008-03-14" ;
];
asc:changes [
asc:update "Updated SPARQL XML Results namespace declaration in RDF::Trine::Iterator serialization methods." ;
asc:addition "Added extra_result_data methods to add data to the XML Results header tag." ;
asc:update "RDF::Trine::Node::Resource now serializes to QName when passed valid namespace data." ;
asc:update "Fixed xml results serialization for style." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.102" ;
doap:created "2008-03-XX" ;
];
asc:changes [
asc:addition "Added length() method to Materialized bindings iterator class." ;
asc:update "Removed bloom filter construction from bindings iterator (RDF::Query code now does this itself)." ;
asc:update "Fixed escaping of backslashes in Literal node serialization." ;
] .
dcterms:isVersionOf ;
dcterms:replaces ;
doap:Version [
doap:revision "0.101" ;
doap:created "2008-03-04" ;
];
asc:changes [
asc:addition "Added an RDF/XML parser based on RDF::Core::Parser." ;
asc:update "Added Bloom filter support for Materialized bindings iterators." ;
asc:update "Fixed IRI workaround using the URI module." ;
asc:update "Turtle parser now uses Data::UUID for unique names." ;
asc:update "Fixed turtle parser bug for Verb testing." ;
asc:update "Added RDF::Trine::Statement::Quad::from_redland method." ;
asc:update "DBI store now constrains variable node types based on position in a statement." ;
asc:update "Added support for BOUND(), ISLITERAL(), ISURI() and ISIRI() functions in DBI store." ;
] .
dcterms:isVersionOf ;
doap:Version [
doap:revision "0.100" ;
doap:created "2008-02-18" ;
];
asc:changes [
asc:addition "Initial public release." ;
] .
a doap:Project ;
doap:download-page ;
doap:download-mirror .
RDF-Trine-1.019/extra/ 000755 000765 000024 00000000000 13223603204 014423 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/examples/ 000755 000765 000024 00000000000 13223603204 015116 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/META.yml 000644 000765 000024 00000002641 13223603175 014563 0 ustar 00greg staff 000000 000000 ---
abstract: 'An RDF Framework for Perl'
author:
- 'Gregory Todd Williams C<< >>'
- 'Gregory Todd Williams '
build_requires:
ExtUtils::MakeMaker: 6.59
Test::Deep: 0
Test::Exception: 0
Test::JSON: 0
Test::More: 0.88
configure_requires:
ExtUtils::MakeMaker: 6.59
distribution_type: module
dynamic_config: 1
generated_by: 'Module::Install version 1.17'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: RDF-Trine
no_index:
directory:
- examples
- inc
- t
- xt
recommends:
Term::ANSIColor: 0
XML::LibXML: 1.7
requires:
Algorithm::Combinatorics: 0
Cache::LRU: 0
DBD::SQLite: 1.14
DBI: 0
DBIx::Connector: 0
Data::UUID: 0
Digest::MD5: 0
Digest::SHA: 0
Error: 0
HTTP::Negotiate: 0
IRI: 0
JSON: 2
LWP::UserAgent: 0
List::Util: 1.33
Log::Log4perl: 0
Math::BigInt: 0
Module::Load::Conditional: 0.38
Moose: 2
MooseX::ArrayRef: 0
Scalar::Util: 1.24
Set::Scalar: 0
Storable: 0
Text::CSV_XS: 0
Text::Table: 0
Time::HiRes: 0
URI: 1.52
XML::CommonNS: 0.04
XML::Namespace: 0
XML::SAX: 0.96
perl: 5.10.0
resources:
IRC: irc://irc.perl.org/#perlrdf
bugtracker: https://github.com/kasei/perlrdf/issues
homepage: http://search.cpan.org/dist/RDF-Trine/
license: http://dev.perl.org/licenses/
repository: http://github.com/kasei/perlrdf/
version: '1.019'
RDF-Trine-1.019/lib/ 000755 000765 000024 00000000000 13223603204 014046 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/Makefile.PL 000644 000765 000024 00000004706 13156324011 015262 0 ustar 00greg staff 000000 000000 use strict;
use warnings;
use lib '.';
use inc::Module::Install;
name 'RDF-Trine';
all_from 'lib/RDF/Trine.pm';
author 'Gregory Todd Williams ';
license 'perl';
build_requires 'Test::More' => 0.88;
build_requires 'Test::Deep' => 0;
build_requires 'Test::Exception' => 0;
build_requires 'Test::JSON' => 0;
perl_version '5.010';
requires 'IRI' => 0;
requires 'Moose' => 2;
requires 'MooseX::ArrayRef' => 0;
requires 'Module::Load::Conditional' => 0.38;
requires 'Data::UUID' => 0;
requires 'DBI' => 0;
requires 'DBIx::Connector' => 0;
requires 'DBD::SQLite' => 1.14;
requires 'Digest::MD5' => 0;
requires 'Digest::SHA' => 0;
requires 'Error' => 0;
requires 'HTTP::Negotiate' => 0;
requires 'JSON' => 2;
requires 'LWP::UserAgent' => 0;
requires 'List::Util' => 1.33;
requires 'Log::Log4perl' => 0;
requires 'Math::BigInt' => 0;
requires 'Algorithm::Combinatorics' => 0;
requires 'Scalar::Util' => 1.24;
requires 'Set::Scalar' => 0;
requires 'Storable' => 0;
requires 'Text::CSV_XS' => 0;
requires 'Text::Table' => 0;
requires 'URI' => 1.52;
requires 'XML::CommonNS' => 0.04;
requires 'XML::Namespace' => 0;
requires 'XML::SAX' => 0.96;
requires 'Time::HiRes' => 0;
requires 'Cache::LRU' => 0;
recommends 'XML::LibXML' => 1.70;
recommends 'Term::ANSIColor' => 0;
resources(
'homepage' => "http://search.cpan.org/dist/RDF-Trine/",
'repository' => "http://github.com/kasei/perlrdf/",
'bugtracker' => "https://github.com/kasei/perlrdf/issues",
'IRC' => "irc://irc.perl.org/#perlrdf",
);
author_tests('xt');
install_script glob('bin/srx2csv');
install_script glob('bin/srx2table');
sign;
WriteAll;
print <<"END";
*******************************************************************************
The RDF::Trine SQLite backend in versions 1.013 and prior had a bug in
the encoding of RDF data, likely causing data loss.
RDF::Trine 1.014 and later have fixed this bug.
However, the RDF data encoded in SQLite with RDF::Trine versions 1.014 and
later will no longer be compatible with the shared schema used in other DBI
backends (such as PostgreSQL or MySQL). To exchange data between SQLite and
other databases, the data will require export to an RDF serialization and
re-import to the new database.
*******************************************************************************
END
RDF-Trine-1.019/lib/Test/ 000755 000765 000024 00000000000 13223603204 014765 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/ 000755 000765 000024 00000000000 13223603204 014461 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/Trine.pm 000644 000765 000024 00000014034 13223602756 016115 0 ustar 00greg staff 000000 000000 # RDF::Trine
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine - An RDF Framework for Perl
=head1 VERSION
This document describes RDF::Trine version 1.019
=head1 SYNOPSIS
use RDF::Trine;
my $store = RDF::Trine::Store::Memory->new();
my $model = RDF::Trine::Model->new($store);
# parse some web data into the model, and print the count of resulting RDF statements
RDF::Trine::Parser->parse_url_into_model( 'http://kasei.us/about/foaf.xrdf', $model );
print $model->size . " RDF statements parsed\n";
# Create a namespace object for the foaf vocabulary
my $foaf = RDF::Trine::Namespace->new( 'http://xmlns.com/foaf/0.1/' );
# Create a node object for the FOAF name property
my $pred = $foaf->name;
# alternatively:
# my $pred = RDF::Trine::Node::Resource->new('http://xmlns.com/foaf/0.1/name');
# Create an iterator for all the statements in the model with foaf:name as the predicate
my $iter = $model->get_statements(undef, $pred, undef);
# Now print the results
print "Names of things:\n";
while (my $st = $iter->next) {
my $s = $st->subject;
my $name = $st->object;
# $s and $name have string overloading, so will print correctly
print "The name of $s is $name\n";
}
=head1 DESCRIPTION
RDF::Trine provides an Resource Descriptive Framework (RDF) with an emphasis on
extensibility, API stability, and the presence of a test suite. The package
consists of several components:
=over 4
=item
L - RDF model providing access to a triple store. This module would typically be used to access an existing store by a developer looking to "Just get stuff done."
=item
L - RDF parsers for various serialization formats including RDF/XML, Turtle, RDFa, and RDF/JSON.
=item
L - An in-memory, non-persistant triple store. Typically used for temporary data.
=item
L - A triple store for MySQL, PostgreSQL, and SQLite, based on the relational schema used by Redland. Typically used to for large, persistent data.
=item
L - Iterator classes for variable bindings and RDF statements, used by RDF::Trine::Store, RDF::Trine::Model, and RDF::Query.
=item
L - A convenience class for easily constructing RDF::Trine::Node::Resource objects from URI namespaces.
=back
=cut
package RDF::Trine;
use 5.010;
use strict;
use warnings;
no warnings 'redefine';
use Module::Load::Conditional qw[can_load];
use LWP::UserAgent;
our ($debug, @ISA, $VERSION, @EXPORT_OK);
BEGIN {
$debug = 0;
$VERSION = '1.019';
require Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(iri blank literal variable statement store UNION_GRAPH NIL_GRAPH);
unless ($ENV{RDFTRINE_NO_REDLAND}) {
can_load( modules => {
'RDF::Redland' => undef,
'RDF::Trine::Store::Redland' => undef,
'RDF::Trine::Parser::Redland' => undef,
} );
}
}
use constant UNION_GRAPH => 'tag:gwilliams@cpan.org,2010-01-01:RT:ALL';
use constant NIL_GRAPH => 'tag:gwilliams@cpan.org,2010-01-01:RT:NIL';
use Log::Log4perl qw(:easy);
if (! Log::Log4perl::initialized() ) {
Log::Log4perl->easy_init($ERROR);
}
use RDF::Trine::Graph;
use RDF::Trine::Parser;
use RDF::Trine::Serializer;
use RDF::Trine::Node;
use RDF::Trine::Statement;
use RDF::Trine::Namespace;
use RDF::Trine::NamespaceMap;
use RDF::Trine::Iterator;
use RDF::Trine::Store;
use RDF::Trine::Error;
use RDF::Trine::Model;
use RDF::Trine::Parser::Turtle;
use RDF::Trine::Parser::TriG;
sub _uniq {
my %seen;
my @data;
foreach (@_) {
push(@data, $_) unless ($seen{ $_ }++);
}
return @data;
}
=head1 FUNCTIONS
=over 4
=item C<< iri ( $iri ) >>
Returns a L object with the given IRI value.
=cut
sub iri {
my $iri = shift;
return RDF::Trine::Node::Resource->new( $iri );
}
=item C<< blank ( $id ) >>
Returns a L object with the given identifier.
=cut
sub blank {
my $id = shift;
return RDF::Trine::Node::Blank->new( $id );
}
=item C<< literal ( $value, $lang, $dt ) >>
Returns a L object with the given value and optional
language/datatype.
=cut
sub literal {
return RDF::Trine::Node::Literal->new( @_ );
}
=item C<< variable ( $name ) >>
Returns a L object with the given variable name.
=cut
sub variable {
my $name = shift;
return RDF::Trine::Node::Variable->new( $name );
}
=item C<< statement ( @nodes ) >>
Returns a L object with the supplied node objects.
=cut
sub statement {
my @nodes = @_;
if (scalar(@nodes) == 4) {
return RDF::Trine::Statement::Quad->new( @nodes );
} else {
return RDF::Trine::Statement->new( @nodes );
}
}
=item C<< store ( $config ) >>
Returns a L object based on the supplied configuration string.
=cut
sub store {
my $config = shift;
return RDF::Trine::Store->new_with_string( $config );
}
=item C<< default_useragent ( [ $ua ] ) >>
Returns the L object used by default for any operation requiring network
requests. Ordinarily, the calling code will obtain the default user agent, and clone it
before further configuring it for a specific request, thus leaving the default object
untouched.
If C<< $ua >> is passed as an argument, sets the global default user agent to this object.
=cut
{ my $_useragent;
sub default_useragent {
my $class = shift;
my $ua = shift || $_useragent;
unless (defined($ua)) {
$ua = LWP::UserAgent->new( agent => "RDF::Trine/$RDF::Trine::VERSION" );
}
$_useragent = $ua;
return $ua;
}}
1; # Magic true value required at end of module
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 SEE ALSO
L
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/ 000755 000765 000024 00000000000 13223603204 015542 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/Trine/Store.pm 000644 000765 000024 00000032264 13223603044 017205 0 ustar 00greg staff 000000 000000 # RDF::Trine::Store
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Store - RDF triplestore base class
=head1 VERSION
This document describes RDF::Trine::Store version 1.019
=head1 DESCRIPTION
RDF::Trine::Store provides a base class and common API for implementations of
triple/quadstores for use with the RDF::Trine framework. In general, it should
be used only be people implementing new stores. For interacting with stores
(e.g. to read, insert, and delete triples) the RDF::Trine::Model interface
should be used (using the model as an intermediary between the client/user and
the underlying store).
To be used by the RDF::Trine framework, store implementations must implement a
set of required functionality:
=over 4
=item * C<< new >>
=item * C<< get_statements >>
=item * C<< get_contexts >>
=item * C<< add_statement >>
=item * C<< remove_statement >>
=item * C<< count_statements >>
=item * C<< supports >>
=back
Implementations may also provide the following methods if a native
implementation would be more efficient than the default provided by
RDF::Trine::Store:
=over 4
=item * C<< get_pattern >>
=item * C<< get_sparql >>
=item * C<< remove_statements >>
=item * C<< size >>
=item * C<< nuke >>
=item * C<< _begin_bulk_ops >>
=item * C<< _end_bulk_ops >>
=back
=cut
package RDF::Trine::Store;
use strict;
use warnings;
no warnings 'redefine';
use Data::Dumper;
use Log::Log4perl;
use Carp qw(carp croak confess);
use Scalar::Util qw(blessed reftype);
use Module::Load::Conditional qw[can_load];
use RDF::Trine::Store::Memory;
use RDF::Trine::Store::Hexastore;
use RDF::Trine::Store::SPARQL;
use RDF::Trine::Store::LanguagePreference;
######################################################################
our ($VERSION, $HAVE_REDLAND, %STORE_CLASSES);
BEGIN {
$VERSION = '1.019';
if ($RDF::Redland::VERSION) {
$HAVE_REDLAND = 1;
}
can_load( modules => {
'RDF::Trine::Store::DBI' => undef,
} );
}
######################################################################
=head1 METHODS
=over 4
=cut
=item C<< new ( $data ) >>
Returns a new RDF::Trine::Store object based on the supplied data value.
This constructor delegates to one of the following methods depending on the
value of C<< $data >>:
* C<< new_with_string >> if C<< $data >> is not a reference
* C<< new_with_config >> if C<< $data >> is a HASH reference
* C<< new_with_object >> if C<< $data >> is a blessed object
=cut
sub new {
my $class = shift;
my $data = shift;
if (blessed($data)) {
return $class->new_with_object($data);
} elsif (ref($data)) {
return $class->new_with_config($data);
} else {
return $class->new_with_string($data);
}
}
=item C<< new_with_string ( $config ) >>
Returns a new RDF::Trine::Store object based on the supplied configuration
string. The format of the string specifies the Store subclass to be
instantiated as well as any required constructor arguments. These are separated
by a semicolon. An example configuration string for the DBI store would be:
DBI;mymodel;DBI:mysql:database=rdf;user;password
The format of the constructor arguments (everything after the first ';') is
specific to the Store subclass.
=cut
sub new_with_string {
my $proto = shift;
my $string = shift;
if (defined($string)) {
my ($subclass, $config) = split(/;/, $string, 2);
my $class = join('::', 'RDF::Trine::Store', $subclass);
if (can_load(modules => { $class => 0 }) and $class->can('_new_with_string')) {
return $class->_new_with_string( $config );
} else {
throw RDF::Trine::Error::UnimplementedError -text => "The class $class doesn't support the use of new_with_string";
}
} else {
throw RDF::Trine::Error::MethodInvocationError;
}
}
=item C<< new_with_config ( \%config ) >>
Returns a new RDF::Trine::Store object based on the supplied
configuration hashref. This requires the the Store subclass to be
supplied with a C key, while other keys are required by the
Store subclasses, please refer to each subclass for specific
documentation.
An example invocation for the DBI store may be:
my $store = RDF::Trine::Store->new_with_config({
storetype => 'DBI',
name => 'mymodel',
dsn => 'DBI:mysql:database=rdf',
username => 'dahut',
password => 'Str0ngPa55w0RD'
});
=cut
sub new_with_config {
my $proto = shift;
my $config = shift;
if (defined($config)) {
my $class = $config->{storeclass} || join('::', 'RDF::Trine::Store', $config->{storetype});
if ($class->can('_new_with_config')) {
return $class->_new_with_config( $config );
} else {
throw RDF::Trine::Error::UnimplementedError -text => "The class $class doesn't support the use of new_with_config";
}
} else {
throw RDF::Trine::Error::MethodInvocationError;
}
}
=item C<< new_with_object ( $object ) >>
Returns a new RDF::Trine::Store object based on the supplied opaque C<< $object >>.
If the C<< $object >> is recognized by an available backend as being sufficient
to construct a store object, the store object will be returned. Otherwise undef
will be returned.
=cut
sub new_with_object {
my $proto = shift;
my $obj = shift;
foreach my $class (keys %STORE_CLASSES) {
if ($class->can('_new_with_object')) {
my $s = $class->_new_with_object( $obj );
if ($s) {
return $s;
}
}
}
return;
}
=item C<< nuke >>
Permanently removes the store and its data.
=cut
sub nuke {}
=item C<< class_by_name ( $name ) >>
Returns the class of the storage implementation with the given name.
For example, C<< 'Memory' >> would return C<< 'RDF::Trine::Store::Memory' >>.
=cut
sub class_by_name {
my $proto = shift;
my $name = shift;
foreach my $class (keys %STORE_CLASSES) {
if (lc($class) =~ m/::${name}$/i) {
return $class;
}
}
return;
}
=item C<< temporary_store >>
Returns a new temporary triplestore (using appropriate default values).
=cut
sub temporary_store {
return RDF::Trine::Store::Memory->new();
}
# =item C<< get_pattern ( $bgp [, $context] ) >>
#
# Returns a stream object of all bindings matching the specified graph pattern.
#
# =cut
sub _get_pattern {
my $self = shift;
my $bgp = shift;
my $context = shift;
my @args = @_;
my %args = @args;
if ($bgp->isa('RDF::Trine::Statement')) {
$bgp = RDF::Trine::Pattern->new($bgp);
} else {
$bgp = $bgp->sort_for_join_variables();
}
my %iter_args;
my @triples = $bgp->triples;
my ($iter);
if (1 == scalar(@triples)) {
my $t = shift(@triples);
my @nodes = $t->nodes;
my $size = scalar(@nodes);
my %vars;
my @names = qw(subject predicate object context);
foreach my $n (0 .. $#nodes) {
if ($nodes[$n]->isa('RDF::Trine::Node::Variable')) {
$vars{ $names[ $n ] } = $nodes[$n]->name;
}
}
my $_iter = $self->get_statements( @nodes );
if ($_iter->finished) {
return RDF::Trine::Iterator::Bindings->new( [], [] );
}
my @vars = values %vars;
my $sub = sub {
my $row = $_iter->next;
return unless ($row);
my %data = map { $vars{ $_ } => $row->$_() } (keys %vars);
return RDF::Trine::VariableBindings->new( \%data );
};
$iter = RDF::Trine::Iterator::Bindings->new( $sub, \@vars );
} else {
my $t = pop(@triples);
my $rhs = $self->get_pattern( RDF::Trine::Pattern->new( $t ), $context, @args );
my $lhs = $self->get_pattern( RDF::Trine::Pattern->new( @triples ), $context, @args );
my @inner;
while (my $row = $rhs->next) {
push(@inner, $row);
}
my @results;
while (my $row = $lhs->next) {
RESULT: foreach my $irow (@inner) {
my %keysa;
my @keysa = keys %$irow;
@keysa{ @keysa } = (1) x scalar(@keysa);
my @shared = grep { exists $keysa{ $_ } } (keys %$row);
foreach my $key (@shared) {
my $val_a = $irow->{ $key };
my $val_b = $row->{ $key };
next unless (defined($val_a) and defined($val_b));
my $equal = $val_a->equal( $val_b );
unless ($equal) {
next RESULT;
}
}
my $jrow = { (map { $_ => $irow->{$_} } grep { defined($irow->{$_}) } keys %$irow), (map { $_ => $row->{$_} } grep { defined($row->{$_}) } keys %$row) };
push(@results, RDF::Trine::VariableBindings->new($jrow));
}
}
$iter = RDF::Trine::Iterator::Bindings->new( \@results, [ $bgp->referenced_variables ] );
}
if (my $o = $args{ 'orderby' }) {
unless (reftype($o) eq 'ARRAY') {
throw RDF::Trine::Error::MethodInvocationError -text => "The orderby argument to get_pattern must be an ARRAY reference";
}
my @order;
my %order;
my @o = @$o;
my @sorted_by;
my %vars = map { $_ => 1 } $bgp->referenced_variables;
if (scalar(@o) % 2 != 0) {
throw RDF::Trine::Error::MethodInvocationError -text => "The orderby argument ARRAY to get_pattern must contain an even number of elements";
}
while (@o) {
my ($k,$dir) = splice(@o, 0, 2, ());
next unless ($vars{ $k });
unless ($dir =~ m/^ASC|DESC$/i) {
throw RDF::Trine::Error::MethodInvocationError -text => "The sort direction for key $k must be either 'ASC' or 'DESC' in get_pattern call";
}
my $asc = ($dir eq 'ASC') ? 1 : 0;
push(@order, $k);
$order{ $k } = $asc;
push(@sorted_by, $k, $dir);
}
my @results = $iter->get_all;
@results = _sort_bindings( \@results, \@order, \%order );
$iter_args{ sorted_by } = \@sorted_by;
return RDF::Trine::Iterator::Bindings->new( \@results, [ $bgp->referenced_variables ], %iter_args );
} else {
return $iter;
}
}
sub _sort_bindings {
my $res = shift;
my $o = shift;
my $dir = shift;
my @sorted = map { $_->[0] } sort { _sort_mapped_data($a,$b,$o,$dir) } map { _map_sort_data( $_, $o ) } @$res;
return @sorted;
}
sub _sort_mapped_data {
my $a = shift;
my $b = shift;
my $o = shift;
my $dir = shift;
foreach my $i (1 .. $#{ $a }) {
my $av = $a->[ $i ];
my $bv = $b->[ $i ];
my $key = $o->[ $i-1 ];
next unless (defined($av) or defined($bv));
my $cmp = RDF::Trine::Node::compare( $av, $bv );
unless ($dir->{ $key }) {
$cmp *= -1;
}
return $cmp if ($cmp);
}
return 0;
}
sub _map_sort_data {
my $res = shift;
my $o = shift;
my @data = ($res, map { $res->{ $_ } } @$o);
return \@data;
}
=item C<< get_statements ($subject, $predicate, $object [, $context] ) >>
Returns a stream object of all statements matching the specified subject,
predicate and objects. Any of the arguments may be undef to match any value.
=cut
sub get_statements;
=item C<< get_contexts >>
Returns an RDF::Trine::Iterator over the RDF::Trine::Node objects comprising
the set of contexts of the stored quads.
=cut
sub get_contexts;
=item C<< add_statement ( $statement [, $context] ) >>
Adds the specified C<$statement> to the underlying model.
=cut
sub add_statement;
=item C<< remove_statement ( $statement [, $context]) >>
Removes the specified C<$statement> from the underlying model.
=cut
sub remove_statement;
=item C<< remove_statements ( $subject, $predicate, $object [, $context]) >>
Removes the specified C<$statement> from the underlying model.
=cut
sub remove_statements { # Fallback implementation
my $self = shift;
my $iterator = $self->get_statements(@_);
while (my $st = $iterator->next) {
$self->remove_statement($st);
}
}
=item C<< count_statements ($subject, $predicate, $object) >>
Returns a count of all the statements matching the specified subject,
predicate and objects. Any of the arguments may be undef to match any value.
=cut
sub count_statements;
=item C<< size >>
Returns the number of statements in the store.
=cut
sub size {
my $self = shift;
return $self->count_statements( undef, undef, undef, undef );
}
=item C<< etag >>
If the store has the capability and knowledge to support caching, returns a
persistent token that will remain consistent as long as the store's data doesn't
change. This token is acceptable for use as an HTTP ETag.
=cut
sub etag {
return;
}
=item C<< supports ( [ $feature ] ) >>
If C<< $feature >> is specified, returns true if the feature is supported by the
store, false otherwise. If C<< $feature >> is not specified, returns a list of
supported features.
=cut
sub supports {
return;
}
sub _begin_bulk_ops {}
sub _end_bulk_ops {}
1;
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
get_statements() XXX maybe this should instead follow the quad semantics?
get_statements( s, p, o )
return (s,p,o,nil) for all distinct (s,p,o)
get_statements( s, p, o, g )
return all (s,p,o,g)
add_statement( TRIPLE )
add (s, p, o, nil)
add_statement( TRIPLE, CONTEXT )
add (s, p, o, context)
add_statement( QUAD )
add (s, p, o, g )
add_statement( QUAD, CONTEXT )
throw exception
remove_statement( TRIPLE )
remove (s, p, o, nil)
remove_statement( TRIPLE, CONTEXT )
remove (s, p, o, context)
remove_statement( QUAD )
remove (s, p, o, g)
remove_statement( QUAD, CONTEXT )
throw exception
count_statements() XXX maybe this should instead follow the quad semantics?
count_statements( s, p, o )
count distinct (s,p,o) for all statements (s,p,o,g)
count_statements( s, p, o, g )
count (s,p,o,g)
RDF-Trine-1.019/lib/RDF/Trine/Serializer/ 000755 000765 000024 00000000000 13223603204 017653 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/Trine/Error.pm 000644 000765 000024 00000010647 13223603042 017201 0 ustar 00greg staff 000000 000000 # RDF::Trine::Error
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Error - Error classes for RDF::Trine
=head1 VERSION
This document describes RDF::Trine::Error version 1.019
=head1 SYNOPSIS
use RDF::Trine::Error qw(:try);
=head1 DESCRIPTION
RDF::Trine::Error provides a class hierarchy of errors that other RDF::Trine
classes may throw using the L API. See L for more
information.
=head1 REQUIRES
L
=cut
package RDF::Trine::Error;
use strict;
use warnings;
no warnings 'redefine';
use Carp qw(carp croak confess);
use base qw(Error);
######################################################################
our ($VERSION);
BEGIN {
$VERSION = '1.019';
}
######################################################################
package RDF::Trine::Error::CompilationError;
use base qw(RDF::Trine::Error);
package RDF::Trine::Error::QuerySyntaxError;
use base qw(RDF::Trine::Error);
package RDF::Trine::Error::MethodInvocationError;
use base qw(RDF::Trine::Error);
package RDF::Trine::Error::SerializationError;
use base qw(RDF::Trine::Error);
package RDF::Trine::Error::DatabaseError;
use base qw(RDF::Trine::Error);
package RDF::Trine::Error::ParserError;
use base qw(RDF::Trine::Error);
package RDF::Trine::Error::ParserError::Explainable;
use base qw(RDF::Trine::Error::ParserError);
use Module::Load::Conditional qw[can_load];
our $ANSI;
BEGIN {
$ANSI = can_load( modules => { 'Term::ANSIColor' => undef } );
}
sub _get_line {
my $self = shift;
my $fh = shift;
my $line = shift;
my $buffer;
do {
$buffer = $fh->getline;
} while (--$line);
return $buffer;
}
package RDF::Trine::Error::ParserError::Tokenized;
use base qw(RDF::Trine::Error::ParserError::Explainable);
sub explain {
my $self = shift;
my $fh = shift;
seek($fh, 0, 0);
my $text = $self->text;
my $t = $self->object;
my $line = $t->start_line;
my $col = $t->start_column;
my $buffer = $self->_get_line( $fh, $line );
my $maxlen = length($buffer) - $col;
my $len = 1;
if ($t->line == $t->start_line) {
$len = ($t->column - $t->start_column);
} else {
$len = $maxlen;
}
my $tabs = ($buffer =~ tr/\t//);
$buffer =~ s/\t/ /g;
$col += 3 * $tabs;
chomp($text);
if ($RDF::Trine::Error::ParserError::Explainable::ANSI) {
print STDERR Term::ANSIColor::color('red');
print STDERR "$text:\n";
print STDERR Term::ANSIColor::color('reset');
print STDERR substr($buffer, 0, $col-1);
print STDERR Term::ANSIColor::color('red');
print STDERR substr($buffer, $col-1, $len);
print STDERR Term::ANSIColor::color('reset');
print STDERR substr($buffer, $col+$len-1);
print STDERR " " x ($col-1);
print STDERR Term::ANSIColor::color('blue');
print STDERR "^";
if ($len > 1) {
print STDERR ("~" x ($len-1));
}
print STDERR "\n";
print STDERR Term::ANSIColor::color('reset');
} else {
print STDERR "$text:\n";
print STDERR $buffer;
print STDERR " " x ($col-1);
print STDERR "^";
if ($len > 1) {
print STDERR ("~" x ($len-1));
}
print STDERR "\n";
}
}
package RDF::Trine::Error::ParserError::Positioned;
use base qw(RDF::Trine::Error::ParserError::Explainable);
sub explain {
my $self = shift;
my $fh = shift;
seek($fh, 0, 0);
my $text = $self->text;
my $pos = $self->value;
my ($line, $col) = @$pos;
my $buffer = $self->_get_line( $fh, $line ) || '';
my $tabs = ($buffer =~ tr/\t//);
$buffer =~ s/\t/ /g;
$col += 3 * $tabs;
chomp($text);
if ($RDF::Trine::Error::ParserError::Explainable::ANSI) {
print STDERR Term::ANSIColor::color('red');
print STDERR "$text:\n";
print STDERR Term::ANSIColor::color('reset');
print STDERR $buffer;
print STDERR Term::ANSIColor::color('red');
print STDERR " " x ($col-1);
print STDERR "^";
print STDERR Term::ANSIColor::color('reset');
print STDERR "\n";
} else {
print STDERR "$text:\n";
print STDERR $buffer;
print STDERR " " x ($col-1);
print STDERR "^";
print STDERR "\n";
}
}
package RDF::Trine::Error::UnimplementedError;
use base qw(RDF::Trine::Error);
1;
__END__
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/Statement.pm 000644 000765 000024 00000017603 13223603042 020053 0 ustar 00greg staff 000000 000000 # RDF::Trine::Statement
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Statement - Class for triples and triple patterns
=head1 VERSION
This document describes RDF::Trine::Statement version 1.019
=cut
package RDF::Trine::Statement;
use strict;
use warnings;
no warnings 'redefine';
use Data::Dumper;
use Log::Log4perl;
use Carp qw(carp croak confess);
use Scalar::Util qw(blessed reftype);
use RDF::Trine::Iterator qw(smap sgrep swatch);
use URI::Escape qw(uri_unescape);
use Encode;
######################################################################
our ($VERSION);
BEGIN {
$VERSION = '1.019';
}
######################################################################
=head1 METHODS
=over 4
=cut
=item C
Returns a new Triple structure.
=cut
sub new {
my $class = shift;
my @nodes = @_;
unless (scalar(@nodes) == 3) {
throw RDF::Trine::Error::MethodInvocationError -text => "Triple constructor must have three node arguments";
}
my @names = qw(subject predicate object);
foreach my $i (0 .. 2) {
unless (defined($nodes[ $i ])) {
$nodes[ $i ] = RDF::Trine::Node::Variable->new($names[ $i ]);
}
}
return bless( [ @nodes ], $class );
}
=item C<< construct_args >>
Returns a list of arguments that, passed to this class' constructor,
will produce a clone of this algebra pattern.
=cut
sub construct_args {
my $self = shift;
return ($self->nodes);
}
=item C<< nodes >>
Returns the subject, predicate and object of the triple pattern.
=cut
sub nodes {
my $self = shift;
return @$self;
}
=item C<< node_names >>
Returns the method names for accessing the nodes of this statement.
=cut
sub node_names {
return qw(subject predicate object);
}
=item C<< subject >>
Returns the subject node of the triple pattern.
=cut
sub subject {
my $self = shift;
if (@_) {
$self->[0] = shift;
}
return $self->[0];
}
=item C<< predicate >>
Returns the predicate node of the triple pattern.
=cut
sub predicate {
my $self = shift;
if (@_) {
$self->[1] = shift;
}
return $self->[1];
}
=item C<< object >>
Returns the object node of the triple pattern.
=cut
sub object {
my $self = shift;
if (@_) {
$self->[2] = shift;
}
return $self->[2];
}
=item C<< as_string >>
Returns the statement in a string form.
=cut
sub as_string {
my $self = shift;
return $self->sse;
}
=item C<< has_blanks >>
Returns true if any of the nodes in this statement are blank nodes.
=cut
sub has_blanks {
my $self = shift;
foreach my $node ($self->nodes) {
return 1 if $node->isa('RDF::Trine::Node::Blank');
}
return 0;
}
=item C<< sse >>
Returns the SSE string for this algebra expression.
=cut
sub sse {
my $self = shift;
my $context = shift;
return sprintf(
'(triple %s %s %s)',
$self->subject->sse( $context ),
$self->predicate->sse( $context ),
$self->object->sse( $context ),
);
}
=item C<< from_sse ( $string, $context ) >>
Parses the supplied SSE-encoded string and returns a RDF::Trine::Statement object.
=cut
sub from_sse {
my $class = shift;
my $context = $_[1];
$_ = $_[0];
if (m/^[(]triple/) {
s/^[(]triple\s+//;
my @nodes;
push(@nodes, RDF::Trine::Node->from_sse( $_, $context ));
push(@nodes, RDF::Trine::Node->from_sse( $_, $context ));
push(@nodes, RDF::Trine::Node->from_sse( $_, $context ));
if (m/^\s*[)]/) {
s/^\s*[)]//;
return RDF::Trine::Statement->new( @nodes );
} else {
throw RDF::Trine::Error -text => "Cannot parse end-of-triple from SSE string: >>$_<<";
}
} else {
throw RDF::Trine::Error -text => "Cannot parse triple from SSE string: >>$_<<";
}
}
=item C<< type >>
Returns the type of this algebra expression.
=cut
sub type {
return 'TRIPLE';
}
=item C<< referenced_variables >>
Returns a list of the variable names used in this algebra expression.
=cut
sub referenced_variables {
my $self = shift;
return RDF::Trine::_uniq(map { $_->name } grep { $_->isa('RDF::Trine::Node::Variable') } $self->nodes);
}
=item C<< definite_variables >>
Returns a list of the variable names that will be bound after evaluating this algebra expression.
=cut
sub definite_variables {
my $self = shift;
return $self->referenced_variables;
}
=item C<< clone >>
=cut
sub clone {
my $self = shift;
my $class = ref($self);
return $class->new( $self->nodes );
}
=item C<< bind_variables ( \%bound ) >>
Returns a new algebra pattern with variables named in %bound replaced by their corresponding bound values.
=cut
sub bind_variables {
my $self = shift;
my $class = ref($self);
my $bound = shift;
my @nodes = $self->nodes;
foreach my $i (0 .. 2) {
my $n = $nodes[ $i ];
if ($n->isa('RDF::Trine::Node::Variable')) {
my $name = $n->name;
if (my $value = $bound->{ $name }) {
$nodes[ $i ] = $value;
}
}
}
return $class->new( @nodes );
}
=item C<< subsumes ( $statement ) >>
Returns true if this statement will subsume the $statement when matched against
a triple store.
=cut
sub subsumes {
my $self = shift;
my $st = shift;
my @nodes = $self->nodes;
my @match = $st->nodes;
my %bind;
my $l = Log::Log4perl->get_logger("rdf.trine.statement");
foreach my $i (0..2) {
my $m = $match[ $i ];
if ($nodes[$i]->isa('RDF::Trine::Node::Variable')) {
my $name = $nodes[$i]->name;
if (exists( $bind{ $name } )) {
$l->debug("variable $name has already been bound");
if (not $bind{ $name }->equal( $m )) {
$l->debug("-> and " . $bind{$name}->sse . " does not equal " . $m->sse);
return 0;
}
} else {
$bind{ $name } = $m;
}
} else {
return 0 unless ($nodes[$i]->equal( $m ));
}
}
return 1;
}
=item C<< from_redland ( $statement ) >>
Given a RDF::Redland::Statement object, returns a perl-native
RDF::Trine::Statement object.
=cut
sub from_redland {
my $self = shift;
my $rstmt = shift;
my $rs = $rstmt->subject;
my $rp = $rstmt->predicate;
my $ro = $rstmt->object;
my $cast = sub {
my $node = shift;
my $type = $node->type;
if ($type == $RDF::Redland::Node::Type_Resource) {
my $uri = $node->uri->as_string;
if ($uri =~ /%/) {
# Redland's parser doesn't properly unescape percent-encoded RDF URI References
$uri = decode_utf8(uri_unescape(encode_utf8($uri)));
}
return RDF::Trine::Node::Resource->new( $uri );
} elsif ($type == $RDF::Redland::Node::Type_Blank) {
return RDF::Trine::Node::Blank->new( $node->blank_identifier );
} elsif ($type == $RDF::Redland::Node::Type_Literal) {
my $lang = $node->literal_value_language;
my $dturi = $node->literal_datatype;
my $dt = ($dturi)
? $dturi->as_string
: undef;
return RDF::Trine::Node::Literal->new( $node->literal_value, $lang, $dt );
} else {
croak 'Unknown node type in statement conversion';
}
};
my @nodes;
foreach my $n ($rs, $rp, $ro) {
push(@nodes, $cast->( $n ));
}
my $st = $self->new( @nodes );
return $st;
}
=item C<< rdf_compatible >>
Returns true if and only if the statement can be expressed in RDF. That is,
the subject of the statement must be a resource or blank node; the predicate
must be a resource; and the object must be a resource, blank node or literal.
RDF::Trine::Statement does allow statements to be created which cannot be
expressed in RDF - for instance, statements including variables.
=cut
sub rdf_compatible {
my $self = shift;
return
unless $self->subject->is_resource
|| $self->subject->is_blank;
return
unless $self->predicate->is_resource;
return
unless $self->object->is_resource
|| $self->object->is_blank
|| $self->object->is_literal;
return $self;
}
1;
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/Graph.pm 000644 000765 000024 00000021504 13223603042 017143 0 ustar 00greg staff 000000 000000 # RDF::Trine::Graph
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Graph - Materialized RDF Graphs for testing isomorphism
=head1 VERSION
This document describes RDF::Trine::Graph version 1.019
=head1 SYNOPSIS
use RDF::Trine::Graph;
my $a = RDF::Trine::Graph->new( $model_a );
my $b = RDF::Trine::Graph->new( $model_b );
print "graphs are " . ($a->equals( $b ) ? "the same" : "different");
=head1 DESCRIPTION
RDF::Trine::Graph provdes a mechanism for testing graph isomorphism based on
graph triples from either a RDF::Trine::Model or a RDF::Trine::Iterator.
Isomorphism testing requires materializing all of a graph's triples in memory,
and so should be used carefully in situations with large graphs.
=head1 METHODS
=over 4
=cut
package RDF::Trine::Graph;
use strict;
use warnings;
no warnings 'redefine';
use Algorithm::Combinatorics qw(permutations);
our ($VERSION, $debug, $AUTOLOAD);
BEGIN {
$debug = 0;
$VERSION = '1.019';
}
use overload
'==' => \&RDF::Trine::Graph::_eq,
'eq' => \&RDF::Trine::Graph::_eq,
'le' => \&RDF::Trine::Graph::_le,
'ge' => \&RDF::Trine::Graph::_ge,
'lt' => \&RDF::Trine::Graph::_lt,
'gt' => \&RDF::Trine::Graph::_gt,
;
sub _eq {
my ($x, $y) = @_;
return $x->equals($y);
}
sub _le {
my ($x, $y) = @_;
return $x->is_subgraph_of($y);
}
sub _ge {
return _le(@_[1,0]);
}
sub _lt {
my ($x, $y) = @_;
# Test::More::diag(sprintf('%s // %s', ref($x), ref($y)));
return ($x->size < $y->size) && ($x->is_subgraph_of($y));
}
sub _gt {
return _lt(@_[1,0]);
}
use Data::Dumper;
use Log::Log4perl;
use Scalar::Util qw(blessed);
use RDF::Trine::Node;
use RDF::Trine::Store;
=item C<< new ( $model ) >>
=item C<< new ( $iterator ) >>
Returns a new graph from the given RDF::Trine::Model or RDF::Trine::Iterator::Graph object.
=cut
sub new {
my $class = shift;
unless (blessed($_[0])) {
throw RDF::Trine::Error::MethodInvocationError -text => "RDF::Trine::Graph::new must be called with a Model or Iterator argument";
}
my %data;
if ($_[0]->isa('RDF::Trine::Iterator::Graph')) {
my $iter = shift;
my $model = RDF::Trine::Model->new( RDF::Trine::Store->temporary_store() );
while (my $st = $iter->next) {
$model->add_statement( $st );
}
$data{ model } = $model;
} elsif ($_[0]->isa('RDF::Trine::Model')) {
$data{ model } = shift;
} else {
throw RDF::Trine::Error::MethodInvocationError -text => "RDF::Trine::Graph::new must be called with a Model or Iterator argument";
}
my $self = bless(\%data, $class);
}
=item C<< equals ( $graph ) >>
Returns true if the invocant and $graph represent two equal RDF graphs (e.g.
there exists a bijection between the RDF statements of the invocant and $graph).
=cut
sub equals {
my $self = shift;
my $graph = shift;
undef($self->{error});
return $self->_check_equality($graph) ? 1 : 0;
}
sub _check_equality {
my $self = shift;
my $graph = shift;
unless (blessed($graph) and $graph->isa('RDF::Trine::Graph')) {
$self->{error} = "RDF::Trine::Graph::equals must be called with a Graph argument";
throw RDF::Trine::Error::MethodInvocationError -text => $self->{error};
}
my @graphs = ($self, $graph);
my ($ba, $nba) = $self->split_blank_statements;
my ($bb, $nbb) = $graph->split_blank_statements;
if (scalar(@$nba) != scalar(@$nbb)) {
my $nbac = scalar(@$nba);
my $nbbc = scalar(@$nbb);
$self->{error} = "count of non-blank statements didn't match ($nbac != $nbbc)";
return 0;
}
my $bac = scalar(@$ba);
my $bbc = scalar(@$bb);
if ($bac != $bbc) {
$self->{error} = "count of blank statements didn't match ($bac != $bbc)";
return 0;
}
for ($nba, $nbb) {
@$_ = sort map { $_->as_string } @$_;
}
foreach my $i (0 .. $#{ $nba }) {
unless ($nba->[$i] eq $nbb->[$i]) {
$self->{error} = "non-blank triples don't match: " . Dumper($nba->[$i], $nbb->[$i]);
return 0;
}
}
return _find_mapping($self, $ba, $bb);
}
=item C<< is_subgraph_of ( $graph ) >>
Returns true if the invocant is a subgraph of $graph. (i.e. there exists an
injection of RDF statements from the invocant to $graph.)
=cut
sub is_subgraph_of {
my $self = shift;
my $graph = shift;
undef($self->{error});
return $self->_check_subgraph($graph) ? 1 : 0;
}
=item C<< injection_map ( $graph ) >>
If the invocant is a subgraph of $graph, returns a mapping of blank node
identifiers from the invocant graph to $graph as a hashref. Otherwise
returns false. The solution is not always unique; where there exist multiple
solutions, the solution returned is arbitrary.
=cut
sub injection_map {
my $self = shift;
my $graph = shift;
undef($self->{error});
my $map = $self->_check_subgraph($graph);
return $map if $map;
return;
}
sub _check_subgraph {
my $self = shift;
my $graph = shift;
unless (blessed($graph) and $graph->isa('RDF::Trine::Graph')) {
throw RDF::Trine::Error::MethodInvocationError -text => "RDF::Trine::Graph::equals must be called with a Graph argument";
}
my @graphs = ($self, $graph);
my ($ba, $nba) = $self->split_blank_statements;
my ($bb, $nbb) = $graph->split_blank_statements;
if (scalar(@$nba) > scalar(@$nbb)) {
$self->{error} = "invocant had too many blank node statements to be a subgraph of argument";
return 0;
} elsif (scalar(@$ba) > scalar(@$bb)) {
$self->{error} = "invocant had too many non-blank node statements to be a subgraph of argument";
return 0;
}
my %NBB = map { $_->as_string => 1 } @$nbb;
foreach my $st (@$nba) {
unless ($NBB{ $st->as_string }) {
return 0;
}
}
return _find_mapping($self, $ba, $bb);
}
sub _find_mapping {
my ($self, $ba, $bb) = @_;
if (scalar(@$ba) == 0) {
return {};
}
my %blank_ids_a;
foreach my $st (@$ba) {
foreach my $n (grep { $_->isa('RDF::Trine::Node::Blank') } $st->nodes) {
$blank_ids_a{ $n->blank_identifier }++;
}
}
my %blank_ids_b;
foreach my $st (@$bb) {
foreach my $n (grep { $_->isa('RDF::Trine::Node::Blank') } $st->nodes) {
$blank_ids_b{ $n->blank_identifier }++;
}
}
my %bb_master = map { $_->as_string => 1 } @$bb;
my @ka = keys %blank_ids_a;
my @kb = keys %blank_ids_b;
my $kbp = permutations( \@kb );
my $count = 0;
MAPPING: while (my $mapping = $kbp->next) {
my %mapping;
@mapping{ @ka } = @$mapping;
warn "trying mapping: " . Dumper(\%mapping) if ($debug);
my %bb = %bb_master;
foreach my $st (@$ba) {
my @nodes;
foreach my $method ($st->node_names) {
my $n = $st->$method();
if ($n->isa('RDF::Trine::Node::Blank')) {
my $id = $mapping{ $n->blank_identifier };
warn "mapping " . $n->blank_identifier . " to $id\n" if ($debug);
push(@nodes, RDF::Trine::Node::Blank->new( $id ));
} else {
push(@nodes, $n);
}
}
my $class = ref($st);
my $mapped_st = $class->new( @nodes )->as_string;
warn "checking for '$mapped_st' in " . Dumper(\%bb) if ($debug);
if ($bb{ $mapped_st }) {
delete $bb{ $mapped_st };
} else {
next MAPPING;
}
}
$self->{error} = "found mapping: " . Dumper(\%mapping) if ($debug);
return \%mapping;
}
$self->{error} = "didn't find blank node mapping\n";
return 0;
}
=item C<< split_blank_statements >>
Returns two array refs, containing triples with blank nodes and triples without
any blank nodes, respectively.
=cut
sub split_blank_statements {
my $self = shift;
my $iter = $self->get_statements;
my (@blanks, @nonblanks);
while (my $st = $iter->next) {
if ($st->has_blanks) {
push(@blanks, $st);
} else {
push(@nonblanks, $st);
}
}
return (\@blanks, \@nonblanks);
}
=item C<< get_statements >>
Returns a RDF::Trine::Iterator::Graph object for the statements in this graph.
=cut
# The code below actually goes further now and makes RDF::Trine::Graph
# into a subclass of RDF::Trine::Model via object delegation. This feature
# is undocumented as it's not clear whether this is desirable or not.
=begin private
=item C<< isa >>
=cut
sub isa {
my ($proto, $queried) = @_;
$proto = ref($proto) if ref($proto);
return UNIVERSAL::isa($proto, $queried) || RDF::Trine::Model->isa($queried);
}
=item C<< can >>
=cut
sub can {
my ($proto, $queried) = @_;
$proto = ref($proto) if ref($proto);
return UNIVERSAL::can($proto, $queried) || RDF::Trine::Model->can($queried);
}
sub AUTOLOAD {
my $self = shift;
return if $AUTOLOAD =~ /::DESTROY$/;
$AUTOLOAD =~ s/^(.+)::([^:]+)$/$2/;
return $self->{model}->$AUTOLOAD(@_);
}
=end private
=item C<< error >>
Returns an error string explaining the last failed C<< equal >> call.
=cut
sub error {
my $self = shift;
return $self->{error};
}
1;
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/VariableBindings.pm 000644 000765 000024 00000013012 13223603042 021300 0 ustar 00greg staff 000000 000000 # RDF::Trine::VariableBindings
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::VariableBindings - Variable bindings
=head1 VERSION
This document describes RDF::Trine::VariableBindings version 1.019
=head1 SYNOPSIS
use RDF::Trine qw(literal);
use RDF::Trine::VariableBindings;
my $vb = RDF::Trine::VariableBindings->new( {} );
$vb->set( foo => literal("bar") );
$vb->set( baz => literal("blee") );
$vb->variables; # qw(foo baz)
my $x = RDF::Trine::VariableBindings->new( { foo => literal("bar") } );
$x->set( greeting => literal("hello") );
my $j = $vb->join( $x ); # { foo => "bar", baz => "blee", greeting => "hello" }
my @keys = qw(baz greeting);
my $p = $j->project( @keys ); # { baz => "blee", greeting => "hello" }
print $p->{greeting}->literal_value; # "hello"
=head1 DESCRIPTION
RDF::Trine::VariableBindings objects provide a mapping from variable names to
RDF::Trine::Node objects. The objects may be used as a hash reference, with
variable names used as hash keys.
=head1 METHODS
=over 4
=cut
package RDF::Trine::VariableBindings;
use strict;
use warnings;
use overload '""' => sub { $_[0]->as_string };
my %VB_LABELS;
use Scalar::Util qw(blessed refaddr);
######################################################################
our ($VERSION);
BEGIN {
$VERSION = '1.019';
}
######################################################################
=item C<< new ( \%bindings ) >>
=cut
sub new {
my $class = shift;
my $bindings = shift;
my $self = bless( { %$bindings }, $class );
if (blessed($bindings) and $bindings->isa('RDF::Trine::VariableBindings')) {
my $addr = refaddr($bindings);
if (ref($VB_LABELS{ $addr })) {
$VB_LABELS{ refaddr($self) } = { %{ $VB_LABELS{ $addr } } };
}
}
return $self;
}
=item C<< set ( $variable_name => $node ) >>
=cut
sub set {
my $self = shift;
my $name = shift;
my $node = shift;
$self->{ $name } = $node;
}
=item C<< join ( $row ) >>
Returns a new VariableBindings object based on the join of this object and C<< $row >>.
If the two variable binding objects cannot be joined, returns undef.
=cut
sub join {
my $self = shift;
my $class = ref($self);
my $rowb = shift;
my %keysa;
my @keysa = keys %$self;
@keysa{ @keysa } = (1) x scalar(@keysa);
my @shared = grep { exists $keysa{ $_ } } (keys %$rowb);
foreach my $key (@shared) {
my $val_a = $self->{ $key };
my $val_b = $rowb->{ $key };
next unless (defined($val_a) and defined($val_b));
my $equal = (refaddr($val_a) == refaddr($val_b)) || ($val_a == $val_b) || $val_a->equal( $val_b );
unless ($equal) {
return;
}
}
my $row = { (map { $_ => $self->{$_} } grep { defined($self->{$_}) } keys %$self), (map { $_ => $rowb->{$_} } grep { defined($rowb->{$_}) } keys %$rowb) };
my $joined = $class->new( $row );
$joined->copy_labels_from( $self );
$joined->copy_labels_from( $rowb );
return $joined;
}
=item C<< variables >>
=cut
sub variables {
my $self = shift;
return (keys %$self);
}
=item C<< project ( @keys ) >>
Returns a new binding with values for only the keys listed.
=cut
sub project {
my $self = shift;
my $class = ref($self);
my @keys = @_;
my %data = map { $_ => $self->{ $_ } } @keys;
my $p = $class->new( \%data );
my $addr = refaddr($self);
if (ref($VB_LABELS{ $addr })) {
$VB_LABELS{ refaddr($p) } = { %{ $VB_LABELS{ $addr } } };
}
return $p;
}
=item C<< as_string >>
Returns a string representation of the variable bindings.
=cut
sub as_string {
my $self = shift;
my @keys = sort keys %$self;
my $string = sprintf('{ %s }', CORE::join(', ', map { CORE::join('=', $_, ($self->{$_}) ? $self->{$_}->as_string : '()') } (@keys)));
return $string;
}
=item C<< label ( $label => $value ) >>
Sets the named C<< $label >> to C<< $value >> for this variable bindings object.
If no C<< $value >> is given, returns the current label value, or undef if none
exists.
=cut
sub label {
my $self = shift;
my $addr = refaddr($self);
my $label_name = shift;
if (@_) {
my $value = shift;
$VB_LABELS{ $addr }{ $label_name } = $value;
}
my $labels = $VB_LABELS{ $addr };
if (ref($labels)) {
my $value = $labels->{ $label_name };
return $value;
} else {
return;
}
}
=item C<< copy_labels_from ( $vb ) >>
Copies the labels from C<< $vb >>, adding them to the labels for this object.
=cut
sub copy_labels_from {
my $self = shift;
my $rowa = shift;
my $self_labels = $VB_LABELS{ refaddr($self) };
my $a_labels = $VB_LABELS{ refaddr($rowa) };
if ($self_labels or $a_labels) {
$self_labels ||= {};
$a_labels ||= {};
my %new_labels = ( %$self_labels, %$a_labels );
if (exists $new_labels{'origin'}) {
my %origins;
foreach my $o (@{ $self_labels->{'origin'} || [] }) {
$origins{ $o }++;
}
foreach my $o (@{ $a_labels->{'origin'} || [] }) {
$origins{ $o }++;
}
$new_labels{'origin'} = [ keys %origins ];
}
$VB_LABELS{ refaddr($self) } = \%new_labels;
}
}
sub _labels {
my $self = shift;
my $addr = refaddr($self);
my $labels = $VB_LABELS{ $addr };
return $labels;
}
sub DESTROY {
my $self = shift;
my $addr = refaddr( $self );
delete $VB_LABELS{ $addr };
return;
}
1;
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/Statement/ 000755 000765 000024 00000000000 13223603204 017506 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/Trine/Pattern.pm 000644 000765 000024 00000030411 13223603041 017513 0 ustar 00greg staff 000000 000000 # RDF::Trine::Pattern
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Pattern - Class for basic graph patterns
=head1 VERSION
This document describes RDF::Trine::Pattern version 1.019
=cut
package RDF::Trine::Pattern;
use strict;
use warnings;
no warnings 'redefine';
use Data::Dumper;
use Log::Log4perl;
use Scalar::Util qw(blessed refaddr);
use List::Util qw(any);
use Carp qw(carp croak confess);
use RDF::Trine::Iterator qw(smap);
use RDF::Trine qw(iri);
######################################################################
our ($VERSION);
BEGIN {
$VERSION = '1.019';
}
######################################################################
=head1 METHODS
=over 4
=item C<< new ( @triples ) >>
Returns a new BasicGraphPattern structure.
=cut
sub new {
my $class = shift;
my @triples = @_;
foreach my $t (@triples) {
unless (blessed($t) and $t->isa('RDF::Trine::Statement')) {
throw RDF::Trine::Error -text => "Patterns belonging to a BGP must be triples";
}
}
return bless( [ @triples ], $class );
}
=item C<< construct_args >>
Returns a list of arguments that, passed to this class' constructor,
will produce a clone of this algebra pattern.
=cut
sub construct_args {
my $self = shift;
return ($self->triples);
}
=item C<< triples >>
Returns a list of triples belonging to this BGP.
=cut
sub triples {
my $self = shift;
return @$self;
}
=item C<< type >>
=cut
sub type {
return 'BGP';
}
=item C<< sse >>
Returns the SSE string for this algebra expression.
=cut
sub sse {
my $self = shift;
my $context = shift;
return sprintf(
'(bgp %s)',
join(' ', map { $_->sse( $context ) } $self->triples)
);
}
=item C<< referenced_variables >>
Returns a list of the variable names used in this algebra expression.
=cut
sub referenced_variables {
my $self = shift;
return RDF::Trine::_uniq(map { $_->referenced_variables } $self->triples);
}
=item C<< definite_variables >>
Returns a list of the variable names that will be bound after evaluating this algebra expression.
=cut
sub definite_variables {
my $self = shift;
return RDF::Trine::_uniq(map { $_->definite_variables } $self->triples);
}
=item C<< clone >>
=cut
sub clone {
my $self = shift;
my $class = ref($self);
return $class->new( map { $_->clone } $self->triples );
}
=item C<< bind_variables ( \%bound ) >>
Returns a new pattern with variables named in %bound replaced by their corresponding bound values.
=cut
sub bind_variables {
my $self = shift;
my $class = ref($self);
my $bound = shift;
return $class->new( map { $_->bind_variables( $bound ) } $self->triples );
}
=item C<< subsumes ( $statement ) >>
Returns true if the pattern will subsume the $statement when matched against a
triple store.
=cut
sub subsumes {
my $self = shift;
my $st = shift;
my $l = Log::Log4perl->get_logger("rdf.trine.pattern");
my @triples = $self->triples;
foreach my $t (@triples) {
if ($t->subsumes( $st )) {
$l->debug($self->sse . " \x{2292} " . $st->sse);
return 1;
}
}
return 0;
}
=item C<< merge_patterns ( @patterns ) >>
Given an array of patterns, this will merge them into one.
=cut
sub merge_patterns {
my ($class, @patterns) = @_;
my @all_triples;
foreach my $pattern (@patterns) {
unless (blessed($pattern) and $pattern->isa('RDF::Trine::Pattern')) {
throw RDF::Trine::Error -text => "Patterns to be merged must be patterns themselves";
}
push(@all_triples, $pattern->triples);
}
return $class->new(@all_triples);
}
=item C<< sort_for_join_variables >>
Returns a new pattern object with the subpatterns of the referrant
sorted based on heuristics that ensure firstly that patterns can be
joined on the same variable and secondly on the usual selectivity
(i.e. how quickly the engine can drill down to the answer) of triple
patterns. Calls C<< subgroup >>, C<< sort_triples >> and C<<
merge_patterns >> in that order.
=cut
sub sort_for_join_variables {
my $self = shift;
return $self if (scalar $self->triples == 1);
my $class = ref($self);
my $l = Log::Log4perl->get_logger("rdf.trine.pattern");
$l->debug('Reordering ' . scalar $self->triples . ' triples for heuristical optimizations');
my @sorted_triple_patterns = $self->subgroup;
my @patterns;
foreach my $pattern (@sorted_triple_patterns) {
my $sorted = $pattern->sort_triples;
push(@patterns, $sorted);
}
return $class->merge_patterns(@patterns);
}
=item C<< subgroup >>
Splits the pattern object up in an array of pattern objects where the
same triple patterns occur. It will group on common variables, so that
triple patterns can be joined together is in a group together. It will
also group triples that have no connection to other triples in a
group. It will then order the groups, first by number triples with
common variables, then by number of literals, then by the total number
of terms that are not variables.
=cut
sub subgroup {
my $self = shift;
my @triples = $self->triples;
my $l = Log::Log4perl->get_logger("rdf.trine.pattern");
my %structure_counts;
my %triples_by_tid;
# First, we loop the dataset to compile some numbers for the
# variables in each triple pattern. This is to break the pattern
# into subpatterns that can be joined on the same variable
foreach my $t (@triples) {
my $tid = refaddr($t);
$triples_by_tid{$tid} = $t;
my $not_variable = 0;
foreach my $n ($t->nodes) {
if ($n->isa('RDF::Trine::Node::Variable')) {
my $name = $n->name;
$structure_counts{ $name }{ 'name' } = $name; # TODO: Worth doing in an array?
push(@{$structure_counts{$name}{'claimed_patterns'}}, $tid);
$structure_counts{ $name }{ 'common_variable_count' }++;
$structure_counts{ $name }{ 'not_variable_count' } = 0 unless ($structure_counts{ $name }{ 'not_variable_count' });
$structure_counts{ $name }{ 'literal_count' } = 0 unless ($structure_counts{ $name }{ 'literal_count' });
foreach my $char (split(//, $n->as_string)) { # TODO: Use a more standard format
$structure_counts{ $name }{ 'string_sum' } += ord($char);
}
foreach my $o ($t->nodes) {
unless ($o->isa('RDF::Trine::Node::Variable')) {
$structure_counts{ $name }{ 'not_variable_count' }++;
}
elsif ($o->isa('RDF::Trine::Node::Literal')) {
$structure_counts{ $name }{ 'literal_count' }++;
}
}
} else {
$not_variable++;
}
}
if ($not_variable == 3) { # Then, there are no variables in the pattern
my $name = '_no_definite';
$structure_counts{ $name }{ 'not_variable_count' } = $not_variable;
$structure_counts{ $name }{ 'common_variable_count' } = 0;
$structure_counts{ $name }{ 'literal_count' } = 0; # Doesn't mean anything now
$structure_counts{ $name }{ 'string_sum' } = 0; # Doesn't mean anything now
push(@{$structure_counts{$name}{'claimed_patterns'}}, $tid);
}
}
# Group triple subpatterns with just one triple pattern
my $just_ones;
while (my ($name, $data) = each(%structure_counts)) {
if($data->{'common_variable_count'} <= 1) {
$just_ones->{'common_variable_count'} = 1;
$just_ones->{'string_sum'} = 1;
$just_ones->{'literal_count'} += $data->{'literal_count'};
$just_ones->{'not_variable_count'} += $data->{'not_variable_count'};
my @claimed = @{$data->{'claimed_patterns'}};
unless (any { $_ == $claimed[0] } @{$just_ones->{'claimed_patterns'}}) {
push(@{$just_ones->{'claimed_patterns'}}, $claimed[0]);
}
delete $structure_counts{$name};
}
}
$l->trace('Results of structural analysis: ' . Dumper(\%structure_counts));
$l->trace('Block of single-triple patterns: ' . Dumper($just_ones));
# Now, sort the patterns in the order specified by first the number
# of occurances of common variables, then the number of literals
# and then the number of terms that are not variables
my @sorted_patterns = sort { $b->{'common_variable_count'} <=> $a->{'common_variable_count'}
or $b->{'literal_count'} <=> $a->{'literal_count'}
or $b->{'not_variable_count'} <=> $a->{'not_variable_count'}
or $b->{'string_sum'} <=> $a->{'string_sum'}
} values(%structure_counts);
push (@sorted_patterns, $just_ones);
my @sorted_triple_patterns;
# Now, loop through the sorted patterns, let the one with most
# weight first select the triples it wants to join. Within those
# subpatterns, apply the sort order of triple pattern heuristic
foreach my $item (@sorted_patterns) {
my @triple_patterns;
my $triples_left = scalar keys(%triples_by_tid);
if ($triples_left > 2) {
foreach my $tid (@{$item->{'claimed_patterns'}}) {
if (defined($triples_by_tid{$tid})) {
push(@triple_patterns, $triples_by_tid{$tid});
delete $triples_by_tid{$tid};
}
}
$l->debug("There are $triples_left triples left");
push(@sorted_triple_patterns, RDF::Trine::Pattern->new(@triple_patterns)); # TODO: Better way to call ourselves?
} else {
$l->debug("There is a rest of $triples_left triples");
push(@sorted_triple_patterns, RDF::Trine::Pattern->new(values(%triples_by_tid)));
last;
}
}
return @sorted_triple_patterns;
}
=item C<< sort_triples >>
Will sort the triple patterns based on heuristics that looks at how
many variables the patterns have, and where they occur, see REFERENCES
for details. Returns a new sorted pattern object.
=cut
sub sort_triples {
my $self = shift;
return $self->_hsp_heuristic_1_4_triple_pattern_order;
}
sub _hsp_heuristic_1_4_triple_pattern_order { # Heuristic 1 and 4 of HSP
my $self = shift;
my $class = ref($self);
my @triples = @$self;
return $self if (scalar @triples == 1);
my %triples_by_tid;
foreach my $t (@triples) {
my $tid = refaddr($t);
$triples_by_tid{$tid}{'tid'} = $tid; # TODO: Worth doing this in an array?
$triples_by_tid{$tid}{'triple'} = $t;
$triples_by_tid{$tid}{'sum'} = _hsp_heuristic_triple_sum($t);
}
my @sorted_tids = sort { $a->{'sum'} <=> $b->{'sum'} } values(%triples_by_tid);
my @sorted_triples;
foreach my $entry (@sorted_tids) {
push(@sorted_triples, $triples_by_tid{$entry->{'tid'}}->{'triple'});
}
return $class->new(@sorted_triples);
}
# The below function finds a number to aid sorting
# It takes into account Heuristic 1 and 4 of the HSP paper, see REFERENCES
# as well as that it was noted in the text that rdf:type is usually less selective.
# By assigning the integers to nodes, depending on whether they are in
# triple (subject, predicate, object), variables, rdf:type and
# literals, and sum them, they may be sorted. See code for the actual
# values used.
# Denoting s for bound subject, p for bound predicate, a for rdf:type
# as predicate, o for bound object and l for literal object and ? for
# variable, we get the following order, most of which are identical to
# the HSP:
# spl: 6
# spo: 8
# sao: 10
# s?l: 14
# s?o: 16
# ?pl: 25
# ?po: 27
# sp?: 30
# sa?: 32
# ??l: 33
# ??o: 35
# s??: 38
# ?p?: 49
# ?a?: 51
# ???: 57
# Note that this number is not intended as an estimate of selectivity,
# merely a sorting key, but further research may possibly create such
# numbers.
sub _hsp_heuristic_triple_sum {
my $t = shift;
my $sum = 0;
if ($t->subject->is_variable) {
$sum = 20;
} else {
$sum = 1;
}
if ($t->predicate->is_variable) {
$sum += 10;
} else {
if ($t->predicate->equal(iri('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'))) {
$sum += 4;
} else {
$sum += 2;
}
}
if ($t->object->is_variable) {
$sum += 27;
} elsif ($t->object->is_literal) {
$sum += 3;
} else {
$sum += 5;
}
my $l = Log::Log4perl->get_logger("rdf.trine.pattern");
# Now a trick to get an deterministic sort order, hard to test without.
$sum *= 10000000;
foreach my $c (split(//,$t->as_string)) {
$sum += ord($c);
}
$l->debug($t->as_string . " triple has sorting sum " . $sum);
return $sum;
}
1;
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 REFERENCES
The heuristics to order triple patterns in this module is strongly
influenced by L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
Kjetil Kjernsmo C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/NamespaceMap.pm 000644 000765 000024 00000014675 13223603041 020446 0 ustar 00greg staff 000000 000000 # RDF::Trine::NamespaceMap
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::NamespaceMap - Collection of Namespaces
=head1 VERSION
This document describes RDF::Trine::NamespaceMap version 1.019
=head1 SYNOPSIS
use RDF::Trine::NamespaceMap;
my $map = RDF::Trine::NamespaceMap->new( \%namespaces );
$serializer->serialize_model_to_string( $model, namespaces => $map );
$map->add_mapping( foaf => 'http://xmlns.com/foaf/0.1/' );
my $foaf_namespace = $map->foaf;
my $foaf_person = $map->foaf('Person');
=head1 DESCRIPTION
This module provides an object to manage multiple namespaces for
creating L objects and for serializing.
=head1 METHODS
=over 4
=cut
package RDF::Trine::NamespaceMap;
use strict;
use warnings;
no warnings 'redefine';
use Scalar::Util qw(blessed);
use Data::Dumper;
######################################################################
our ($VERSION);
BEGIN {
$VERSION = '1.019';
}
######################################################################
=item C<< new ( [ \%namespaces ] ) >>
Returns a new namespace map object. You can pass a hash reference with
mappings from local names to namespace URIs (given as string or
L).
=cut
sub new {
my $class = shift;
my $map = shift || {};
my $self = bless( { fwd => {}, rev => {} }, $class );
foreach my $name ( keys %$map ) {
$self->add_mapping( $name => $map->{$name} );
}
return $self;
}
=item C<< add_mapping ( $name => $uri ) >>
Adds a new namespace to the map. The namespace URI can be passed
as string or some object, that provides an uri_value method.
=cut
sub add_mapping {
my $self = shift;
my $name = shift;
if ($name =~ /^(new|uri|can|isa|VERSION|DOES)$/) {
# reserved names
throw RDF::Trine::Error::MethodInvocationError
-text => "Cannot use reserved name '$name' as a namespace prefix";
}
my $ns = shift;
foreach (qw(1 2)) {
# loop twice because the first call to C<> might
# return a RDF::Trine::Namespace. Calling C<> on
# the namespace object will then return a URI string value.
if (blessed($ns) and $ns->can('uri_value')) {
$ns = $ns->uri_value;
}
}
# reverse lookup is many-to-one
$self->{rev}{$ns} ||= {};
# forward lookup
return $self->{fwd}{$name} =
$self->{rev}{$ns}{$name} = RDF::Trine::Namespace->new($ns);
}
=item C<< remove_mapping ( $name ) >>
Removes a namespace from the map.
=cut
sub remove_mapping {
my $self = shift;
my $name = shift;
my $ns = delete $self->{fwd}{$name};
delete $self->{rev}{$ns->uri_value}{$name};
}
=item C<< namespace_uri ( $name ) >>
Returns the namespace object (if any) associated with the given name.
=cut
sub namespace_uri {
my $self = shift;
my $name = shift;
return $self->{fwd}{$name};
}
=item C<< list_namespaces >>
Returns an array of L objects with all the namespaces.
=cut
sub list_namespaces {
# this has to be explicit or the context won't work
my @out = sort { $a cmp $b } values %{$_[0]{fwd}};
return @out;
}
=item C<< list_prefixes >>
Returns an array of prefixes.
=cut
sub list_prefixes {
my @out = sort keys %{$_[0]{fwd}};
return @out;
}
=item C<< uri ( $prefixed_name ) >>
Returns a URI (as L) for an abbreviated
string such as 'foaf:Person'.
=cut
sub uri {
my $self = shift;
my $abbr = shift;
my $ns;
my $local = "";
if ($abbr =~ m/^([^:]*):(.*)$/) {
$ns = $self->{fwd}{ $1 };
$local = $2;
} else {
$ns = $self->{fwd}{$abbr};
}
return unless (blessed($ns));
if ($local ne '') {
# don't invoke the AUTOLOAD here
return $ns->uri($local);
} else {
return $ns->uri_value;
}
}
=item prefix_for C<< uri ($uri) >>
Returns the associated prefix (or potentially multiple prefixes, in
list context) for the given URI.
=cut
sub prefix_for {
my ($self, $uri) = @_;
$uri = $uri->uri_value if ref $uri;
my @candidates;
for my $vuri (keys %{$self->{rev}}) {
next if length $vuri > length $uri;
# candidate namespace must match exactly
my $cns = substr($uri, 0, length $vuri);
push @candidates, keys %{$self->{rev}{$vuri}} if $cns eq $vuri;
}
# my @candidates;
# while (my ($k, $v) = each %{$self->{fwd}}) {
# my $vuri = $v->uri->uri_value;
# # the input should always be longer than the namespace
# next if length $vuri > length $uri;
# # candidate namespace must match exactly
# my $cns = substr($uri, 0, length $vuri);
# push @candidates, $k if $cns eq $vuri;
# }
# make sure this behaves correctly when empty
return unless @candidates;
# if this returns more than one prefix, take the
# shortest/lexically lowest one.
@candidates = sort @candidates;
return wantarray ? @candidates : $candidates[0];
}
=item abbreviate C<< uri ($uri) >>
Complement to L. Returns the given URI in C
format or C if it wasn't matched, therefore the idiom
my $str = $nsmap->abbreviate($uri_node) || $uri_node->uri_value;
may be useful for certain serialization tasks.
=cut
sub abbreviate {
my ($self, $uri) = @_;
$uri = $uri->uri_value if ref $uri;
my $prefix = $self->prefix_for($uri);
# XXX is this actually the most desirable behaviour?
return unless defined $prefix;
my $offset = length $self->namespace_uri($prefix)->uri->uri_value;
return sprintf('%s:%s', $prefix, substr($uri, $offset));
}
sub AUTOLOAD {
my $self = shift;
our $AUTOLOAD;
return if ($AUTOLOAD =~ /:DESTROY$/);
my ($name) = ($AUTOLOAD =~ m/^.*:(.*)$/);
my $ns = $self->{fwd}{$name};
return unless (blessed($ns));
if (scalar(@_)) {
my $local = shift(@_);
return $ns->$local( @_ );
} else {
return $ns;
}
}
1; # Magic true value required at end of module
__END__
=back
=head1 WARNING
Avoid using the names 'can', 'isa', 'VERSION', and 'DOES' as namespace prefix,
because these names are defined as method for every Perl object by default.
The method names 'new' and 'uri' are also forbidden.
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/Parser/ 000755 000765 000024 00000000000 13223603204 016776 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/Trine/Iterator.pm 000644 000765 000024 00000027650 13223603037 017707 0 ustar 00greg staff 000000 000000 # RDF::Trine::Iterator
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Iterator - Iterator class for SPARQL query results
=head1 VERSION
This document describes RDF::Trine::Iterator version 1.019.
=head1 SYNOPSIS
use RDF::Trine::Iterator;
my $iterator = RDF::Trine::Iterator->new( \&data, 'bindings', \@names );
while (my $row = $iterator->next) {
my @vars = keys %$row;
# do something with @vars
}
=head1 METHODS
=over 4
=cut
package RDF::Trine::Iterator;
use strict;
use warnings;
no warnings 'redefine';
use Encode;
use Data::Dumper;
use Log::Log4perl;
use Carp qw(carp);
use Scalar::Util qw(blessed reftype refaddr);
use XML::SAX;
use RDF::Trine::Node;
use RDF::Trine::Iterator::SAXHandler;
use RDF::Trine::Iterator::JSONHandler;
our ($VERSION, @ISA, @EXPORT_OK);
BEGIN {
$VERSION = '1.019';
require Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(sgrep smap swatch);
use overload 'bool' => sub { $_[0] };
use overload '&{}' => sub {
my $self = shift;
return sub {
return $self->next;
};
};
}
use RDF::Trine::Iterator::Bindings;
use RDF::Trine::Iterator::Boolean;
use RDF::Trine::Iterator::Graph;
=item C
=item C
Returns a new SPARQL Result interator object. Results must be either
an reference to an array containing results or a CODE reference that
acts as an iterator, returning successive items when called, and
returning undef when the iterator is exhausted.
$type should be one of: bindings, boolean, graph.
=cut
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $stream = shift || sub { undef };
my $type = shift || 'bindings';
my $names = shift || [];
my %args = @_;
if (ref($stream) and ref($stream) eq 'ARRAY') {
my $array = $stream;
$stream = sub {
return shift(@$array);
}
}
my $open = 0;
my $finished = 0;
my $row;
my $data = {
_open => 0,
_finished => 0,
_type => $type,
_names => $names,
_stream => $stream,
_args => \%args,
_count => 0,
_row => undef,
_peek => [],
# _source => Carp::longmess(),
};
my $self = bless($data, $class);
return $self;
}
=item C
Returns the underlying result type (boolean, graph, bindings).
=cut
sub type {
my $self = shift;
return $self->{_type};
}
=item C
Returns true if the underlying result is a boolean value.
=item C
Returns true if the underlying result is a set of variable bindings.
=item C
Returns true if the underlying result is an RDF graph.
=cut
sub is_boolean { 0 }
sub is_bindings { 0 }
sub is_graph { 0 }
=item C
Returns a string representation of the stream data in the specified
C<$format>. If C<$format> is missing, defaults to XML serialization.
Other options are:
http://www.w3.org/2001/sw/DataAccess/json-sparql/
=cut
sub to_string {
my $self = shift;
my $format = shift || 'http://www.w3.org/2005/sparql-results#';
if (ref($format) and $format->isa('RDF::Redland::URI')) {
$format = $format->as_string;
}
if ($format eq 'http://www.w3.org/2001/sw/DataAccess/json-sparql/') {
return $self->as_json;
} else {
return $self->as_xml;
}
}
=item C<< from_string ( $xml ) >>
Returns a new iterator using the supplied XML string in the SPARQL XML Results format.
=cut
sub from_string {
my $class = shift;
my $string = shift;
my $bytes = encode('UTF-8', $string);
return $class->from_bytes($bytes);
}
=item C<< from_bytes ( $xml ) >>
Returns a new iterator using the supplied XML byte sequence (note: not character data)
in the SPARQL XML Results format.
=cut
sub from_bytes {
my $class = shift;
my $string = shift;
unless (ref($string)) {
my $data = $string;
open( my $fh, '<', \$data );
$string = $fh;
}
my $handler = RDF::Trine::Iterator::SAXHandler->new();
my $p = XML::SAX::ParserFactory->parser(Handler => $handler);
$p->parse_file( $string );
my $iter = $handler->iterator;
return $iter;
}
=item C<< from_json ( $json ) >>
=cut
sub from_json {
my $class = shift;
my $json = shift;
my $p = RDF::Trine::Iterator::JSONHandler->new( @_ );
return $p->parse( $json );
}
=item C<< next_result >>
=item C<< next >>
Returns the next item in the stream.
=cut
sub next_result { $_[0]->next }
sub next {
my $self = shift;
return if ($self->{_finished});
if (scalar(@{ $self->{_peek} })) {
return shift(@{ $self->{_peek} });
}
my $stream = $self->{_stream};
my $value = $stream->();
unless (defined($value)) {
$self->{_finished} = 1;
}
$self->{_open} = 1;
$self->{_row} = $value;
$self->{_count}++ if defined($value);
return $value;
}
=item C<< peek >>
Returns the next value from the iterator without consuming it. The value will
remain in queue until the next call to C<< next >>.
=cut
sub peek {
my $self = shift;
return if ($self->{_finished});
my $value = $self->next;
push( @{ $self->{_peek} }, $value );
return $value;
}
=item C<< current >>
Returns the current item in the stream.
=cut
sub current {
my $self = shift;
if ($self->open) {
return $self->_row;
} else {
return $self->next;
}
}
=item C<< end >>
=item C<< finished >>
Returns true if the end of the stream has been reached, false otherwise.
=cut
sub end { $_[0]->finished }
sub finished {
my $self = shift;
my $v = $self->peek;
return 0 if (defined($v));
return $self->{_finished};
}
=item C<< open >>
Returns true if the first element of the stream has been retrieved, false otherwise.
=cut
sub open {
my $self = shift;
return $self->{_open};
}
=item C<< close >>
Closes the stream. Future attempts to retrieve data from the stream will act as
if the stream had been exhausted.
=cut
sub close {
my $self = shift;
$self->{_finished} = 1;
undef( $self->{ _stream } );
return;
}
=item C<< concat ( $stream ) >>
Returns a new stream resulting from the concatenation of the referant and the
argument streams. The new stream uses the stream type, and optional binding
names and C<<%args>> from the referant stream.
=cut
sub concat {
my $self = shift;
my $stream = shift;
my @args = $stream->construct_args();
my $class = ref($self);
my @streams = ($self, $stream);
my $next = sub {
while (@streams) {
my $data = $streams[0]->next;
unless (defined($data)) {
shift(@streams);
next;
}
return $data;
}
return;
};
my $s = $stream->_new( $next, @args );
return $s;
}
=item C<< seen_count >>
Returns the count of elements that have been returned by this iterator at the
point of invocation.
=cut
sub seen_count {
my $self = shift;
return $self->{_count};
}
=item C
Returns the boolean value of the first item in the stream.
=cut
sub get_boolean {
my $self = shift;
my $data = $self->next;
return +$data;
}
=item C
Returns an array containing all the items in the stream.
=cut
sub get_all {
my $self = shift;
my @data;
while (my $data = $self->next) {
push(@data, $data);
}
return @data;
}
=begin private
=item C
Returns a string representation of C<$node> for use in an XML serialization.
=end private
=cut
sub format_node_xml {
my $self = shift;
# my $bridge = shift;
# return unless ($bridge);
my $node = shift;
my $name = shift;
my $node_label;
if (!defined $node) {
return '';
} elsif ($node->is_resource) {
$node_label = $node->uri_value;
$node_label =~ s/&/&/g;
$node_label =~ s/</g;
$node_label =~ s/"/"/g;
$node_label = qq(${node_label});
} elsif ($node->isa('RDF::Trine::Node::Literal')) {
$node_label = $node->literal_value;
$node_label =~ s/&/&/g;
$node_label =~ s/</g;
$node_label =~ s/"/"/g;
if ($node->has_language) {
my $lang = $node->literal_value_language;
$node_label = qq(${node_label});
} elsif ($node->has_datatype) {
my $dt = $node->literal_datatype;
$node_label = qq(${node_label});
} else {
$node_label = qq(${node_label});
}
} elsif ($node->isa('RDF::Trine::Node::Blank')) {
$node_label = $node->blank_identifier;
$node_label =~ s/&/&/g;
$node_label =~ s/</g;
$node_label =~ s/"/"/g;
$node_label = qq(${node_label});
} else {
$node_label = "";
}
return qq(${node_label});
}
=item C<< construct_args >>
Returns the arguments necessary to pass to a stream constructor
to re-create this stream (assuming the same closure as the first
argument).
=cut
sub construct_args {
my $self = shift;
my $type = $self->type;
my $args = $self->_args || {};
return ($type, [], %$args);
}
=item C<< each ( \&callback ) >>
Calls the callback function once for each item in the iterator, passing the
item as an argument to the function. Any arguments to C<< each >> beyond the
callback function will be passed as supplemental arguments to the callback
function.
=cut
sub each {
my ($self, $coderef) = (shift, shift);
while (my $row = $self->next) {
$coderef->($row, @_);
}
}
=begin private
=item C<< debug >>
Prints debugging information about the stream.
=end private
=cut
sub debug {
my $self = shift;
my $stream = $self->{_stream};
RDF::Query::_debug_closure( $stream );
}
sub _args {
my $self = shift;
return $self->{_args};
}
sub _row {
my $self = shift;
return $self->{_row};
}
sub _names {
my $self = shift;
return $self->{_names};
}
sub _stream {
my $self = shift;
return $self->{_stream};
}
=back
=head1 FUNCTIONS
=over 4
=item C
=cut
sub sgrep (&$) { ## no critic (ProhibitSubroutinePrototypes)
my $block = shift;
my $stream = shift;
my @args = $stream->construct_args();
my $class = ref($stream);
my $open = 1;
my $next;
$next = sub {
return unless ($open);
my $data = $stream->next;
unless ($data) {
$open = 0;
return;
}
local($_) = $data;
my $bool = $block->( $data );
if ($bool) {
# warn "[SGREP] TRUE with: " . $data->as_string;
if (@_ and $_[0]) {
$stream->close;
$open = 0;
}
return $data;
} else {
# warn "[SGREP] FALSE with: " . $data->as_string;
goto &$next;
}
};
Carp::confess "not a stream: " . Dumper($stream) unless (blessed($stream));
Carp::confess unless ($stream->can('_new'));
my $s = $stream->_new( $next, @args );
return $s;
}
=item C
=cut
sub smap (&$;$$$) { ## no critic (ProhibitSubroutinePrototypes)
my $block = shift;
my $stream = shift;
my @args = $stream->construct_args();
foreach my $i (0 .. $#args) {
last unless (scalar(@_));
my $new = shift;
if (defined($new)) {
$args[ $i ] = $new;
}
}
my $class = ref($stream);
my $open = 1;
my $next = sub {
return unless ($open);
if (@_ and $_[0]) {
$stream->close;
$open = 0;
}
my $data = $stream->next;
unless ($data) {
$open = 0;
return;
}
local($_) = $data;
my ($item) = $block->( $data );
return $item;
};
return $stream->_new( $next, @args );
}
=item C
=cut
sub swatch (&$) { ## no critic (ProhibitSubroutinePrototypes)
my $block = shift;
my $stream = shift;
my @args = $stream->construct_args();
my $class = ref($stream);
my $open = 1;
my $next = sub {
return unless ($open);
if (@_ and $_[0]) {
$stream->close;
$open = 0;
}
my $data = $stream->next;
unless ($data) {
$open = 0;
return;
}
local($_) = $data;
$block->( $data );
return $data;
};
my $s = $stream->_new( $next, @args );
return $s;
}
1;
__END__
=back
=head1 DEPENDENCIES
L
L
L
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L.
=head1 AUTHOR
Gregory Todd Williams C<< >>
=head1 COPYRIGHT
Copyright (c) 2006-2012 Gregory Todd Williams. This
program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
=cut
RDF-Trine-1.019/lib/RDF/Trine/Iterator/ 000755 000765 000024 00000000000 13223603204 017333 5 ustar 00greg staff 000000 000000 RDF-Trine-1.019/lib/RDF/Trine/Model.pm 000644 000765 000024 00000072507 13223603037 017157 0 ustar 00greg staff 000000 000000 # RDF::Trine::Model
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Trine::Model - Model class
=head1 VERSION
This document describes RDF::Trine::Model version 1.019
=head1 METHODS
=over 4
=cut
package RDF::Trine::Model;
use strict;
use warnings;
no warnings 'redefine';
our ($VERSION);
BEGIN {
$VERSION = '1.019';
}
use Scalar::Util qw(blessed refaddr);
use Log::Log4perl;
use RDF::Trine::Error qw(:try);
use RDF::Trine qw(variable);
use RDF::Trine::Node;
use RDF::Trine::Pattern;
use RDF::Trine::Store;
use RDF::Trine::Model::Dataset;
=item C<< new ( $store ) >>
Returns a new model over the supplied L or a new temporary model.
If you provide an unblessed value, it will be used to create a new rdf store.
=cut
sub new {
my $class = shift;
if (@_) {
my $store = shift;
$store = RDF::Trine::Store->new( $store ) unless (blessed($store));
my %args = @_;
my $self = bless({
store => $store,
temporary => 0,
added => 0,
threshold => -1,
%args
}, $class);
} else {
return $class->temporary_model;
}
}
=item C<< temporary_model >>
Returns a new temporary (non-persistent) model.
=cut
sub temporary_model {
my $class = shift;
my $store = RDF::Trine::Store::Memory->new();
# my $store = RDF::Trine::Store::DBI->temporary_store();
my $self = $class->new( $store );
$self->{temporary} = 1;
$self->{threshold} = 25_000;
return $self;
}
=item C<< dataset_model ( default => \@dgraphs, named => \@ngraphs ) >>
Returns a new model object with the default graph mapped to the union of the
graphs named in C<< @dgraphs >>, and with available named graphs named in
C<< @ngraphs >>.
=cut
sub dataset_model {
my $self = shift;
my $ds = RDF::Trine::Model::Dataset->new( $self );
$ds->push_dataset( @_ );
return $ds;
}
=item C<< begin_bulk_ops >>
Provides a hint to the backend that many update operations are about to occur.
The backend may use this hint to, for example, aggregate many operations into a
single operation, or delay index maintenence. After the update operations have
been executed, C<< end_bulk_ops >> should be called to ensure the updates are
committed to the backend.
=cut
sub begin_bulk_ops {
my $self = shift;
my $store = $self->_store;
if (blessed($store) and $store->can('_begin_bulk_ops')) {
$store->_begin_bulk_ops();
}
}
=item C<< end_bulk_ops >>
Provides a hint to the backend that a set of bulk operations have been completed
and may be committed to the backend.
=cut
sub end_bulk_ops {
my $self = shift;
my $store = $self->_store;
if (blessed($store) and $store->can('_end_bulk_ops')) {
$store->_end_bulk_ops();
}
}
=item C<< logger ( [ $logger ] ) >>
Returns the logging object responsible for recording data inserts and deletes.
If C<< $logger >> is passed as an argument, sets the logger to this object.
=cut
sub logger {
my $self = shift;
if (scalar(@_)) {
$self->{'logger'} = shift;
}
return $self->{'logger'};
}
=item C<< add_statement ( $statement [, $context] ) >>
Adds the specified C<< $statement >> to the rdf store.
=cut
sub add_statement {
my ($self, @args) = @_;
if ($args[0]->isa('RDF::Trine::Statement')) {
foreach my $n ($args[0]->nodes) {
unless (blessed($n) and ($n->isa('RDF::Trine::Node::Resource') or $n->isa('RDF::Trine::Node::Literal') or $n->isa('RDF::Trine::Node::Blank') or $n->isa('RDF::Trine::Node::Nil'))) {
throw RDF::Trine::Error::MethodInvocationError -text => 'Cannot add a pattern (non-ground statement) to a model';
}
}
} else {
throw RDF::Trine::Error::MethodInvocationError -text => 'Argument is not an RDF::Trine::Statement';
}
if ($self->{temporary}) {
if ($self->{added}++ >= $self->{threshold}) {
# warn "*** should upgrade to a DBI store here";
my $store = RDF::Trine::Store::DBI->temporary_store;
my $iter = $self->get_statements(undef, undef, undef, undef);
if ($store->can('_begin_bulk_ops')) {
$store->_begin_bulk_ops();
}
while (my $st = $iter->next) {
$store->add_statement( $st );
}
if ($store->can('_begin_bulk_ops')) {
$store->_end_bulk_ops();
}
$self->{store} = $store;
$self->{temporary} = 0;
# warn "*** upgraded to a DBI store";
}
}
if (my $log = $self->logger) {
my ($st, $context) = @args;
if (defined($context)) {
$st = RDF::Trine::Statement::Quad->new(($st->nodes)[0..2], $context);
}
$log->add($st);
}
return $self->_store->add_statement( @args );
}
=item C<< add_hashref ( $hashref [, $context] ) >>
Add triples represented in an RDF/JSON-like manner to the model.
See C<< as_hashref >> for full documentation of the hashref format.
=cut
sub add_hashref {
my $self = shift;
my $index = shift;
my $context = shift;
$self->begin_bulk_ops();
foreach my $s (keys %$index) {
my $ts = ( $s =~ /^_:(.*)$/ ) ?
RDF::Trine::Node::Blank->new($1) :
RDF::Trine::Node::Resource->new($s);
foreach my $p (keys %{ $index->{$s} }) {
my $tp = RDF::Trine::Node::Resource->new($p);
foreach my $O (@{ $index->{$s}->{$p} }) {
my $to;
# $O should be a hashref, but we can do a little error-correcting.
unless (ref $O) {
if ($O =~ /^_:/) {
$O = { 'value'=>$O, 'type'=>'bnode' };
} elsif ($O =~ /^[a-z0-9._\+-]{1,12}:\S+$/i) {
$O = { 'value'=>$O, 'type'=>'uri' };
} elsif ($O =~ /^(.*)\@([a-z]{2})$/) {
$O = { 'value'=>$1, 'type'=>'literal', 'lang'=>$2 };
} else {
$O = { 'value'=>$O, 'type'=>'literal' };
}
}
if (lc $O->{'type'} eq 'literal') {
$to = RDF::Trine::Node::Literal->new(
$O->{'value'}, $O->{'lang'}, $O->{'datatype'});
} else {
$to = ( $O->{'value'} =~ /^_:(.*)$/ ) ?
RDF::Trine::Node::Blank->new($1) :
RDF::Trine::Node::Resource->new($O->{'value'});
}
if ($ts and $tp and $to) {
my $st = RDF::Trine::Statement->new($ts, $tp, $to);
$self->add_statement($st, $context);
}
}
}
}
$self->end_bulk_ops();
}
=item C<< add_iterator ( $iter ) >>
Add triples from the statement iterator to the model.
=cut
sub add_iterator {
my $self = shift;
my $iter = shift;
unless (blessed($iter) and ($iter->is_graph)) {
throw RDF::Trine::Error::MethodInvocationError -text => 'Cannot add a '. ref($iter) . ' iterator to a model, only graphs.';
}
$self->begin_bulk_ops();
while (my $st = $iter->next) {
$self->add_statement( $st );
}
$self->end_bulk_ops();
}
=item C<< add_list ( @elements ) >>
Adds an rdf:List to the model with the given elements. Returns the node object
that is the head of the list.
=cut
sub add_list {
my $self = shift;
my @elements = @_;
my $rdf = RDF::Trine::Namespace->new('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
if (scalar(@elements) == 0) {
return $rdf->nil;
} else {
my $head = RDF::Query::Node::Blank->new();
my $node = shift(@elements);
my $rest = $self->add_list( @elements );
$self->add_statement( RDF::Trine::Statement->new($head, $rdf->first, $node) );
$self->add_statement( RDF::Trine::Statement->new($head, $rdf->rest, $rest) );
return $head;
}
}
=item C<< get_list ( $head ) >>
Returns a list of nodes that are elements of the rdf:List represented by the
supplied head node.
=cut
sub get_list {
my $self = shift;
my $head = shift;
my $rdf = RDF::Trine::Namespace->new('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
my @elements;
my %seen;
while (blessed($head) and not($head->isa('RDF::Trine::Node::Resource') and $head->uri_value eq $rdf->nil->uri_value)) {
if ($seen{ $head->as_string }++) {
throw RDF::Trine::Error -text => "Loop found during rdf:List traversal";
}
my @n = $self->objects( $head, $rdf->first );
if (scalar(@n) != 1) {
throw RDF::Trine::Error -text => "Invalid structure found during rdf:List traversal";
}
push(@elements, @n);
($head) = $self->objects( $head, $rdf->rest );
}
return @elements;
}
=item C<< remove_list ( $head [, orphan_check => 1] ) >>
Removes the nodes of type rdf:List that make up the list. Optionally checks each node
before removal to make sure that it is not used in any other statements. Returns false
if the list was removed completely; returns the first remaining node if the removal
was abandoned because of an orphan check.
=cut
sub remove_list {
my $self = shift;
my $head = shift;
my $rdf = RDF::Trine::Namespace->new('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
my %args = @_;
my %seen;
while (blessed($head) and not($head->isa('RDF::Trine::Node::Resource') and $head->uri_value eq $rdf->nil->uri_value)) {
if ($seen{ $head->as_string }++) {
throw RDF::Trine::Error -text => "Loop found during rdf:List traversal";
}
my $stream = $self->get_statements($head, undef, undef);
my %statements;
while (my $st = $stream->next) {
my $statement_type = {
$rdf->first->uri => 'rdf:first',
$rdf->rest->uri => 'rdf:rest',
$rdf->type->uri => 'rdf:type',
}->{$st->predicate->uri} || 'other';
$statement_type = 'other'
if $statement_type eq 'rdf:type' && !$st->object->equal($rdf->List);
push @{$statements{$statement_type}}, $st;
}
if ($args{orphan_check}) {
return $head if defined $statements{other} && scalar(@{ $statements{other} }) > 0;
return $head if $self->count_statements(undef, undef, $head) > 0;
}
unless (defined $statements{'rdf:first'} and defined $statements{'rdf:rest'} and scalar(@{$statements{'rdf:first'} })==1 and scalar(@{ $statements{'rdf:rest'} })==1) {
throw RDF::Trine::Error -text => "Invalid structure found during rdf:List traversal";
}
$self->remove_statement($_)
foreach (@{$statements{'rdf:first'}}, @{$statements{'rdf:rest'}}, @{$statements{'rdf:type'}});
$head = $statements{'rdf:rest'}->[0]->object;
}
return;
}
=item C<< get_sequence ( $seq ) >>
Returns a list of nodes that are elements of the rdf:Seq sequence.
=cut
sub get_sequence {
my $self = shift;
my $head = shift;
my $rdf = RDF::Trine::Namespace->new('http://www.w3.org/1999/02/22-rdf-syntax-ns#');
my @elements;
my $i = 1;
while (1) {
my $method = '_' . $i;
my (@elem) = $self->objects( $head, $rdf->$method() );
unless (scalar(@elem)) {
last;
}
if (scalar(@elem) > 1) {
my $count = scalar(@elem);
throw RDF::Trine::Error -text => "Invalid structure found during rdf:Seq access: $count elements found for element $i";
}
my $elem = $elem[0];
last unless (blessed($elem));
push(@elements, $elem);
$i++;
}
return @elements;
}
=item C<< remove_statement ( $statement [, $context]) >>
Removes the specified C<< $statement >> from the rdf store.
=cut
sub remove_statement {
my $self = shift;
my @args = @_;
if (my $log = $self->logger) {
my ($st, $context) = @args;
if (defined($context)) {
$st = RDF::Trine::Statement::Quad->new(($st->nodes)[0..2], $context);
}
$log->delete($st);
}
return $self->_store->remove_statement( @args );
}
=item C<< remove_statements ( $subject, $predicate, $object [, $context] ) >>
Removes all statements matching the supplied C<< $statement >> pattern from the rdf store.
=cut
sub remove_statements {
my $self = shift;
if (my $log = $self->logger) {
$log->delete($_) foreach (@_);
}
return $self->_store->remove_statements( @_ );
}
=item C<< size >>
Returns the number of statements in the model.
=cut
sub size {
my $self = shift;
$self->end_bulk_ops();
return $self->count_statements(undef, undef, undef, undef);
}
=item C<< etag >>
If the model is based on a store that has the capability and knowledge to
support caching, this method returns a persistent token that will remain
consistent as long as the store's data doesn't change. This token is acceptable
for use as an HTTP ETag.
=cut
sub etag {
my $self = shift;
my $store = $self->_store;
if ($store) {
return $store->etag;
}
return;
}
=item C<< supports ( [ $feature ] ) >>
If C<< $feature >> is specified, returns true if the feature is supported by the
underlying store, false otherwise. If C<< $feature >> is not specified, returns
a list of supported features.
=cut
sub supports {
my $self = shift;
my $store = $self->_store;
if ($store) {
return $store->supports( @_ );
}
return;
}
=item C<< count_statements ( $subject, $predicate, $object ) >>
Returns a count of all the statements matching the specified subject,
predicate and objects. Any of the arguments may be undef to match any value.
=cut
sub count_statements {
my $self = shift;
$self->end_bulk_ops();
if (scalar(@_) >= 4) {
my $graph = $_[3];
if (blessed($graph) and $graph->isa('RDF::Trine::Node::Resource') and $graph->uri_value eq 'tag:gwilliams@cpan.org,2010-01-01:RT:ALL') {
$_[3] = undef;
}
}
return $self->_store->count_statements( @_ );
}
=item C<< get_statements ($subject, $predicate, $object [, $context] ) >>
Returns an L of all statements matching the specified
subject, predicate and objects from the rdf store. Any of the arguments may be undef
to match any value.
If three or fewer arguments are given, the statements returned will be matched
based on triple semantics (the graph union of triples from all the named
graphs). If four arguments are given (even if C<< $context >> is undef),
statements will be matched based on quad semantics (the union of all quads in
the underlying store).
=cut
sub get_statements {
my $self = shift;
$self->end_bulk_ops();
my @pos = qw(subject predicate object graph);
foreach my $i (0 .. $#_) {
my $n = $_[$i];
next unless defined($n); # undef is OK
next if (blessed($n) and $n->isa('RDF::Trine::Node')); # node objects are OK
my $pos = $pos[$i];
local($Data::Dumper::Indent) = 0;
my $ser = Data::Dumper->Dump([$n], [$pos]);
throw RDF::Trine::Error::MethodInvocationError -text => "get_statements called with a value that isn't undef or a node object: $ser";
}
if (scalar(@_) >= 4) {
my $graph = $_[3];
if (blessed($graph) and $graph->isa('RDF::Trine::Node::Resource') and $graph->uri_value eq 'tag:gwilliams@cpan.org,2010-01-01:RT:ALL') {
$_[3] = undef;
}
}
return $self->_store->get_statements( @_ );
}
=item C<< get_pattern ( $bgp [, $context] [, %args ] ) >>
Returns a stream object of all bindings matching the specified graph pattern.
If C<< $context >> is given, restricts BGP matching to only quads with the
C<< $context >> value.
C<< %args >> may contain an 'orderby' key-value pair to request a specific
ordering based on variable name. The value for the 'orderby' key should be an
ARRAY reference containing variable name and direction ('ASC' or 'DESC') tuples.
A valid C<< %args >> hash, therefore, might look like
C<< orderby => [qw(name ASC)] >> (corresponding to a SPARQL-like request to
'ORDER BY ASC(?name)').
=cut
sub get_pattern {
my $self = shift;
my $bgp = shift;
my $context = shift;
my @args = @_;
my %args = @args;
$self->end_bulk_ops();
my (@triples) = ($bgp->isa('RDF::Trine::Statement') or $bgp->isa('RDF::Query::Algebra::Filter'))
? $bgp
: $bgp->triples;
unless (@triples) {
throw RDF::Trine::Error::CompilationError -text => 'Cannot call get_pattern() with empty pattern';
}
my $store = $self->_store;
# while almost all models will delegate get_pattern() to the underlying
# store object, in some cases this isn't possible (union models don't have
# a single store, so have to fall back to the model-specific get_pattern()
# implementation).
if (blessed($store) and $store->can('get_pattern')) {
return $self->_store->get_pattern( $bgp, $context, @args );
} else {
if ($bgp->isa('RDF::Trine::Pattern')) {
$bgp = $bgp->sort_for_join_variables();
}
my $iter = $self->_get_pattern( $bgp, $context );
if (my $ob = $args{orderby}) {
my @order = @$ob;
if (scalar(@order) % 2) {
throw RDF::Trine::Error::MethodInvocationError -text => "Invalid arguments to orderby argument in get_pattern";
}
my @results = $iter->get_all();
my $order_vars = scalar(@order) / 2;
my %seen;
foreach my $r (@results) {
foreach my $var (keys %$r) {
$seen{$var}++;
}
}
@results = sort {
my $r = 0;
foreach my $i (0 .. ($order_vars-1)) {
my $var = $order[$i*2];
my $rev = ($order[$i*2+1] =~ /DESC/i);
$r = RDF::Trine::Node::compare( $a->{$var}, $b->{$var} );
$r *= -1 if ($rev);
last if ($r);
}
$r;
} @results;
my @sortedby;
foreach my $i (0 .. ($order_vars-1)) {
my $var = $order[$i*2];
my $dir = $order[$i*2+1];
push(@sortedby, $var, $dir) if ($seen{$var});
}
$iter = RDF::Trine::Iterator::Bindings->new(\@results, undef, sorted_by => \@sortedby);
}
return $iter;
}
}
=item C<< get_sparql ( $sparql ) >>
Returns a stream object of all bindings matching the specified graph pattern.
=cut
sub get_sparql {
my $self = shift;
return $self->_store->get_sparql( @_ );
}
sub _get_pattern {
my $self = shift;
my $bgp = shift;
my $context = shift;
my @args = @_;
my (@triples) = ($bgp->isa('RDF::Trine::Statement') or $bgp->isa('RDF::Query::Algebra::Filter'))
? $bgp
: $bgp->triples;
if (1 == scalar(@triples)) {
my $t = shift(@triples);
my @nodes = $t->nodes;
my %vars;
my @names = qw(subject predicate object context);
foreach my $n (0 .. $#nodes) {
if ($nodes[$n]->isa('RDF::Trine::Node::Variable')) {
$vars{ $names[ $n ] } = $nodes[$n]->name;
}
}
if ($context) {
$nodes[3] = $context;
}
my $iter = $self->get_statements( @nodes );
my @vars = values %vars;
my $sub = sub {
my $row = $iter->next;
return unless ($row);
my %data = map { $vars{ $_ } => $row->$_() } (keys %vars);
return RDF::Trine::VariableBindings->new( \%data );
};
return RDF::Trine::Iterator::Bindings->new( $sub, \@vars );
} else {
my $t = pop(@triples);
my $rhs = $self->_get_pattern( RDF::Trine::Pattern->new( $t ), $context, @args );
my $lhs = $self->_get_pattern( RDF::Trine::Pattern->new( @triples ), $context, @args );
my @inner;
while (my $row = $rhs->next) {
push(@inner, $row);
}
my @results;
while (my $row = $lhs->next) {
RESULT: foreach my $irow (@inner) {
my %keysa;
my @keysa = keys %$irow;
@keysa{ @keysa } = (1) x scalar(@keysa);
my @shared = grep { exists $keysa{ $_ } } (keys %$row);
foreach my $key (@shared) {
my $val_a = $irow->{ $key };
my $val_b = $row->{ $key };
next unless (defined($val_a) and defined($val_b));
my $equal = $val_a->equal( $val_b );
unless ($equal) {
next RESULT;
}
}
my $jrow = { (map { $_ => $irow->{$_} } grep { defined($irow->{$_}) } keys %$irow), (map { $_ => $row->{$_} } grep { defined($row->{$_}) } keys %$row) };
push(@results, RDF::Trine::VariableBindings->new($jrow));
}
}
my $result = RDF::Trine::Iterator::Bindings->new( \@results, [ $bgp->referenced_variables ] );
return $result;
}
}
=item C<< get_graphs >>
=item C<< get_contexts >>
Returns an L containing the nodes representing
the named graphs in the model.
=cut
sub get_contexts {
my $self = shift;
my $store = $self->_store;
$self->end_bulk_ops();
my $iter = $store->get_contexts( @_ );
if (wantarray) {
return $iter->get_all;
} else {
return $iter;
}
}
*get_graphs = \&get_contexts;
=item C<< as_stream >>
Returns an L containing every statement in the model.
=cut
sub as_stream {
my $self = shift;
$self->end_bulk_ops();
my $st = RDF::Trine::Statement::Quad->new( map { variable($_) } qw(s p o g) );
my $pat = RDF::Trine::Pattern->new( $st );
my $stream = $self->get_pattern( $pat, undef, orderby => [ qw(s ASC p ASC o ASC) ] );
return $stream->as_statements( qw(s p o g) );
}
=item C<< as_hashref >>
Returns a hashref representing the model in an RDF/JSON-like manner.
A graph like this (in Turtle):
@prefix ex: .
ex:subject1
ex:predicate1
"Foo"@en ,
"Bar"^^ex:datatype1 .
_:bnode1
ex:predicate2
ex:object2 ;
ex:predicate3 ;
_:bnode3 .
Is represented like this as a hashref:
{
"http://example.com/subject1" => {
"http://example.com/predicate1" => [
{ 'type'=>'literal', 'value'=>"Foo", 'lang'=>"en" },
{ 'type'=>'literal', 'value'=>"Bar", 'datatype'=>"http://example.com/datatype1" },
],
},
"_:bnode1" => {
"http://example.com/predicate2" => [
{ 'type'=>'uri', 'value'=>"http://example.com/object2" },
],
"http://example.com/predicate2" => [
{ 'type'=>'bnode', 'value'=>"_:bnode3" },
],
},
}
Note that the type of subjects (resource or blank node) is indicated
entirely by the convention of starting blank nodes with "_:".
This hashref structure is compatible with RDF/JSON and with the ARC2
library for PHP.
=cut
sub as_hashref {
my $self = shift;
$self->end_bulk_ops();
return $self->as_stream->as_hashref;
}
=item C<< as_graphviz >>
Returns a L object of the RDF graph of this model, ignoring graph
names/contexts.
This method will attempt to load the L module at runtime and will fail
if the module is unavailable.
=cut
sub as_graphviz {
my $self = shift;
require GraphViz;
my $g = GraphViz->new();
my %seen;
my $iter = $self->as_stream;
while (my $t = $iter->next) {
my @nodes;
foreach my $pos (qw(subject object)) {
my $n = $t->$pos();
my $label = ($n->isa('RDF::Trine::Node::Literal')) ? $n->literal_value : $n->as_string;
push(@nodes, $label);
unless ($seen{ $label }++) {
$g->add_node( $label );
}
}
$g->add_edge( @nodes, label => $t->predicate->as_string );
}
return $g;
}
=back
=head2 Node-Centric Graph API
=over 4
=item C<< subjects ( $predicate, $object ) >>
Returns a list of the nodes that appear as the subject of statements with the
specified C<< $predicate >> and C<< $object >>. Either of the two arguments may
be undef to signify a wildcard.
=cut
sub subjects {
my $self = shift;
my $pred = shift;
my $obj = shift;
my $graph = shift;
$self->end_bulk_ops();
my $iter = $self->get_statements( undef, $pred, $obj, $graph );
my %nodes;
while (my $st = $iter->next) {
my $subj = $st->subject;
$nodes{ $subj->as_string } = $subj;
}
if (wantarray) {
return values(%nodes);
} else {
return RDF::Trine::Iterator->new( [values(%nodes)] );
}
}
=item C<< predicates ( $subject, $object ) >>
Returns a list of the nodes that appear as the predicate of statements with the
specified C<< $subject >> and C<< $object >>. Either of the two arguments may
be undef to signify a wildcard.
=cut
sub predicates {
my $self = shift;
my $subj = shift;
my $obj = shift;
my $graph = shift;
$self->end_bulk_ops();
my $iter = $self->get_statements( $subj, undef, $obj, $graph );
my %nodes;
while (my $st = $iter->next) {
my $pred = $st->predicate;
$nodes{ $pred->as_string } = $pred;
}
if (wantarray) {
return values(%nodes);
} else {
return RDF::Trine::Iterator->new( [values(%nodes)] );
}
}
=item C<< objects ( $subject, $predicate [, $graph ] [, %options ] ) >>
Returns a list of the nodes that appear as the object of statements with the
specified C<< $subject >> and C<< $predicate >>. Either of the two arguments
may be undef to signify a wildcard. You can further filter objects using the
C<< %options >> argument. Keys in C<< %options >> indicate the restriction type
and may be 'type', 'language', or 'datatype'. The value of the 'type' key may be
one of 'node', 'nil', 'blank', 'resource', 'literal', or 'variable'. The use of
either 'language' or 'datatype' restrict objects to literal nodes with a
specific language or datatype value, respectively.
=cut
sub objects {
my $self = shift;
my $subj = shift;
my $pred = shift;
my ($graph, %options) = (@_ % 2 == 0) ? (undef, @_) : @_;
my $type = $options{type};
$type = 'literal' if ($options{language} or $options{datatype});
if ($options{datatype} and not blessed($options{datatype})) {
$options{datatype} = RDF::Trine::Node::Resource->new($options{datatype});
}
if (defined $type) {
if ($type =~ /^(node|nil|blank|resource|literal|variable)$/) {
$type = "is_$type";
} else {
throw RDF::Trine::Error::CompilationError -text => "unknown type"
}
}
$self->end_bulk_ops();
my $iter = $self->get_statements( $subj, $pred, undef, $graph );
my %nodes;
while (my $st = $iter->next) {
my $obj = $st->object;
if (defined $type) {
next unless $obj->$type;
if ($options{language}) {
my $lang = $obj->literal_value_language;
next unless ($lang and $lang eq $options{language});
} elsif ($options{datatype}) {
my $dt = $obj->literal_datatype;
next unless ($dt and $dt eq $options{datatype}->uri_value);
}
}
$nodes{ $obj->as_string } = $obj;
}
if (wantarray) {
return values(%nodes);
} else {
return RDF::Trine::Iterator->new( [values(%nodes)] );
}
}
=item C<< objects_for_predicate_list ( $subject, @predicates ) >>
Given the RDF::Trine::Node objects C<< $subject >> and C<< @predicates >>,
finds all matching triples in the model with the specified subject and any
of the given predicates, and returns a list of object values (in the partial
order given by the ordering of C<< @predicates >>).
=cut
sub objects_for_predicate_list {
my $self = shift;
my $node = shift;
my @preds = @_;
$self->end_bulk_ops();
my @objects;
foreach my $p (@preds) {
my $iter = $self->get_statements( $node, $p );
while (my $s = $iter->next) {
if (not(wantarray)) {
return $s->object;
} else {
push( @objects, $s->object );
}
}
}
return @objects;
}
=item C<< bounded_description ( $node ) >>
Returns an RDF::Trine::Iterator::Graph object over the bounded description
triples for C<< $node >> (all triples resulting from a graph traversal starting
with C<< node >> and stopping at non-blank nodes).
=cut
sub bounded_description {
my $self = shift;
my $node = shift;
$self->end_bulk_ops();
my %seen;
my @nodes = $node;
my @statements;
my $sub = sub {
return if (not(@statements) and not(@nodes));
while (1) {
if (not(@statements)) {
my $l = Log::Log4perl->get_logger("rdf.trine.model");
return unless (scalar(@nodes));
my $n = shift(@nodes);
# warn "CBD handling node " . $n->sse . "\n";
next if ($seen{ $n->sse });
try {
my $st = RDF::Trine::Statement->new( $n, map { variable($_) } qw(p o) );
my $pat = RDF::Trine::Pattern->new( $st );
my $sts = $self->get_pattern( $pat, undef, orderby => [ qw(p ASC o ASC) ] );
# my $sts = $stream->as_statements( qw(s p o) );
# my $sts = $self->get_statements( $n );
my @s = grep { not($seen{$_->{'o'}->sse}) } $sts->get_all;
# warn "+ " . $_->as_string . "\n" for (@s);
push(@statements, map { RDF::Trine::Statement->new($n, @{ $_ }{qw(p o)}) } @s);
} catch RDF::Trine::Error::UnimplementedError with {
$l->debug('[model] Ignored UnimplementedError in bounded_description: ' . $_[0]->{'-text'});
};
try {
my $st = RDF::Trine::Statement->new( (map { variable($_) } qw(s p)), $n );
my $pat = RDF::Trine::Pattern->new( $st );
my $sts = $self->get_pattern( $pat, undef, orderby => [ qw(s ASC p ASC) ] );
# my $sts = $stream->as_statements( qw(s p o) );
# my $sts = $self->get_statements( undef, undef, $n );
my @s = grep { not($seen{$_->{'s'}->sse}) and not($_->{'s'}->equal($n)) } $sts->get_all;
# warn "- " . $_->as_string . "\n" for (@s);
push(@statements, map { RDF::Trine::Statement->new(@{ $_ }{qw(s p)}, $n) } @s);
} catch RDF::Trine::Error::UnimplementedError with {
$l->debug('[model] Ignored UnimplementedError in bounded_description: ' . $_[0]->{'-text'});
};
$seen{ $n->sse }++
}
last if (scalar(@statements));
}
return unless (scalar(@statements));
my $st = shift(@statements);
if ($st->object->isa('RDF::Trine::Node::Blank') and not($seen{ $st->object->sse })) {
# warn "+ CBD pushing " . $st->object->sse . "\n";
push(@nodes, $st->object);
}
if ($st->subject->isa('RDF::Trine::Node::Blank') and not($seen{ $st->subject->sse })) {
# warn "- CBD pushing " . $st->subject->sse . "\n";
push(@nodes, $st->subject);
}
return $st;
};
return RDF::Trine::Iterator::Graph->new( $sub );
}
=item C<< as_string >>
=cut
sub as_string {
my $self = shift;
$self->end_bulk_ops();
my $iter = $self->get_statements( undef, undef, undef, undef );
my @rows;
my @names = qw[subject predicate object context];
while (my $row = $iter->next) {
push(@rows, [map {$row->$_()->as_string} @names]);
}
my @rule = qw(- +);
my @headers = (\q"| ");
push(@headers, map { $_ => \q" | " } @names);
pop @headers;
push @headers => (\q" |");
my $table = Text::Table->new(@names);
$table->rule(@rule);
$table->body_rule(@rule);
$table->load(@rows);
my $size = scalar(@rows);
return join('',
$table->rule(@rule),
$table->title,
$table->rule(@rule),
map({ $table->body($_) } 0 .. @rows),
$table->rule(@rule)
) . "$size statements\n";
}
sub _store {
my $self = shift;
return $self->{store};
}
sub _debug {
my $self = shift;
my $warn = shift;
my $stream = $self->get_statements( undef, undef, undef, undef );
my $l = Log::Log4perl->get_logger("rdf.trine.model");
$l->debug( 'model statements:' );
if ($warn) {
warn "Model $self:\n";
}
my $count = 0;
while (my $s = $stream->next) {
$count++;
if ($warn) {
warn $s->as_string . "\n";
}
$l->debug('[model]' . $s->as_string);
}
if ($warn) {
warn "$count statements\n";
}
}
1;
__END__
=back
=head1 BUGS
Please report any bugs or feature requests to through the GitHub web interface
at L