{"_id":"rdf","_rev":"39-6de872eb5f725f72891888fa280556f3","name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","dist-tags":{"latest":"4.1.1"},"versions":{"0.0.1":{"name":"rdf","description":"RDF datatype integration, RDF API, and utility functions","version":"0.0.1","keywords":["RDF","RDF API"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_id":"rdf@0.0.1","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.0.12","_nodeVersion":"v0.5.0-pre","_defaultsLoaded":true,"dist":{"shasum":"ff2f9baacd1c9686269f41ef64134bc2782aeb29","tarball":"https://registry.npmjs.org/rdf/-/rdf-0.0.1.tgz","integrity":"sha512-hhhBD6A7ljZRBBMDCVjmQKlJpDHaqaB4Q5KBF/gQnpapXwOrPQ98WB7QZLF9zkW0RlTNjUdfArAkw0lshhdW/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+/QSFPyr4rQQVuaHyUTSaRFBPyUtXQCzvHduWHTi+WQIhAJVN4Df4tjufYHpPLBBoKMbz9yv2+6rAFH8IgyZSbO4d"}]},"directories":{}},"0.0.2":{"name":"rdf","description":"RDF datatype integration, RDF API, and utility functions","version":"0.0.2","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_npmUser":{"name":"acubed"},"_id":"rdf@0.0.2","dependencies":{},"devDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.0-beta-7","_nodeVersion":"v0.6.7-pre","_defaultsLoaded":true,"dist":{"shasum":"175a1748a4cbb1c193218b8bc0fcb83fc26e12cc","tarball":"https://registry.npmjs.org/rdf/-/rdf-0.0.2.tgz","integrity":"sha512-6Issd5KLoUwQ1+FWTnfELFGyxvQnGxR/oYPhHRuMVNzf3kxIYGTCglpKFU60HAJsuH7CtM4HLEfLYBO1HzTgPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIArId+YJiEKWottpXW8FH8EG4oE/YugorUDGxZubVy+fAiB5ycnlNTb8vj3mej8fX3dLlAZuhGMg5cUVwhmGbCE4Zw=="}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"0.0.4":{"name":"rdf","description":"RDF datatype integration, RDF API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"0.0.4","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_npmUser":{"name":"acubed"},"_id":"rdf@0.0.4","dependencies":{},"devDependencies":{},"optionalDependencies":{},"engines":{"node":"*"},"_engineSupported":true,"_npmVersion":"1.1.23","_nodeVersion":"v0.7.9","_defaultsLoaded":true,"dist":{"shasum":"3d420f19cd5494bc8c4e63a576b609096d2ceac0","tarball":"https://registry.npmjs.org/rdf/-/rdf-0.0.4.tgz","integrity":"sha512-spLwtN/yrewrJybZflgJsjTRgcfooCRc9DxLGexdMQjFEk6OYZIQbkcnuJeF0hw5Bzpf2k0FnUSrxgsVENw+RQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBrXVGCAT9VlaRt4RDBN6k3me4myAsZmH4UdPpfHjYLXAiAExAbyjKK1wszBbUQtYMyAXIMaZwAefifx4Ot3mh9McQ=="}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"1.0.0":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"1.0.0","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_id":"rdf@1.0.0","dist":{"shasum":"35ba2712829963e3404bf9d99df2211f53489699","tarball":"https://registry.npmjs.org/rdf/-/rdf-1.0.0.tgz","integrity":"sha512-75Zrl8GdcxS/2x3Yt89lFaM45BuZ1y5paMaYQ8k8Pfe+HgH4u56gM3kCQGrQ5ys0FAmXtsVeUMlJP2u+Q/h0RA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+5bN3FwISXf4/v6mT47Buwe0myr6yQzpLM1BgSv3BiwIgSxvIzWZjKQmG96puE8XNKqS752RYU7kVBTiZ4SjgF8A="}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"1.0.1":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"1.0.1","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_id":"rdf@1.0.1","dist":{"shasum":"6627c0b93ac49025a24837a308731677acf55b4a","tarball":"https://registry.npmjs.org/rdf/-/rdf-1.0.1.tgz","integrity":"sha512-MGUqTvObdsjib+pO4Ex3jLyElrsnlE2sDjzsXw8cH++yjwLesnc+matSmHRaLmhBmgX0qOzzsBlUrDHBv1YKwQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0Hw1qk2Hu2W1IGxMys4166SazjdeBBZqQPog/eEbTqQIhALGyGUN4W6sHUjF/YXIJqUo7kyL5oYlvvma1k7btJAz2"}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"2.0.0":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"2.0.0","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_id":"rdf@2.0.0","dist":{"shasum":"7205e5006a37c65273834bd6dd9abcd24dd70cf3","tarball":"https://registry.npmjs.org/rdf/-/rdf-2.0.0.tgz","integrity":"sha512-A9D2MFTgDTS5IUCylMoWTg6SszkfgBLCo84TV7ECYIliTBligc0HS1AYosVIGwU058exEMIGlBxxuJVLzxDihA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFK61hIxEe8+BFcVhHh2l0dEYB2qw92UTcFDFN1vCNdrAiEAtYH/6pSfxcLPktgEYNyPyPs5d3QmJXK4TY7pQHYayEM="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"2.0.1":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"2.0.1","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"_id":"rdf@2.0.1","dist":{"shasum":"bb6f9b685b7b774c4ad4a5a015d2008e8299059e","tarball":"https://registry.npmjs.org/rdf/-/rdf-2.0.1.tgz","integrity":"sha512-TwWbob0IQSqGliIcb/gIH3gPpRaOnNRZbOyPbK7kxbCVYFEWI3mNd9rKgEUWtmM8YhJdwXQAaD4PteeMn0uyAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBrHlAfXPc3O1QqEza/M8cEXnV5VnPyTCNARyXZ6onZRAiEAknEx4/6S7p78i4qCo7gvkWTs7/Ow1GhTLptCHA13G9g="}]},"_from":".","_npmVersion":"1.2.12","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"2.1.0":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"2.1.0","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"bugs":{"url":"https://github.com/Acubed/node-rdf/issues"},"_id":"rdf@2.1.0","dist":{"shasum":"4de25ba4f8bb5aff64f1a67445dd4807ed584282","tarball":"https://registry.npmjs.org/rdf/-/rdf-2.1.0.tgz","integrity":"sha512-3hsIqhHZ+oRdxO9PbxRgdnSoiUizSEhEHS77M54zr+R/GXFzIetxcjSd5Ocu8QXEmZZAHR8hLBvLamTRxj8ruA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXVOTnvXofolD6GnQ1Ho2aXGMO1F0/b3dgeeNyApbRUgIgRdtAEfSCKcb/oti4zHzR5HjmJcszu1uD+6RXsEZZywM="}]},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"2.1.1":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"2.1.1","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"bugs":{"url":"https://github.com/Acubed/node-rdf/issues"},"_id":"rdf@2.1.1","dist":{"shasum":"9423f8739e57779649178198a17a4a6942b34606","tarball":"https://registry.npmjs.org/rdf/-/rdf-2.1.1.tgz","integrity":"sha512-qzJcDLqpZRfcum9vYBWndCd8VX2o8ZJ56ZE0aXA3LdcuhPuEdVB+6eXJNoUnHBTl9SVAphQ/VlJjRmtGVFxGcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFE9jgbnO87WmnmYjnTUJH2s5aQjerbkC30K7nAM0Vz6AiApcld5VA937jjtdPOkiipJyUmRfVBSjaTnouWeH7GOuQ=="}]},"_from":".","_npmVersion":"1.3.6","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"2.1.2":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"2.1.2","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"bugs":{"url":"https://github.com/Acubed/node-rdf/issues"},"_id":"rdf@2.1.2","dist":{"shasum":"e4324f3b54df5f298a928dc8f24f44a07433073d","tarball":"https://registry.npmjs.org/rdf/-/rdf-2.1.2.tgz","integrity":"sha512-hs7ia0+lKi518bFkxg+k9LZAv19yHnmovzWGqznNFIQ7CzQ/9+rTW0YAVFaeojBrDEWnZW44hAr9awpCVSMVWA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDl7KFDgw/uRaENN5EyT2IeIr0PRVZPtEQQg1RNGmP5BAiEAgGydEfHx+QQybJu0jF2SNKbQ/+cM2cYB+sO0Dlru93s="}]},"_from":".","_npmVersion":"1.3.6","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"3.0.0":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"3.0.0","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"dependencies":{"iri":"~1"},"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"bugs":{"url":"https://github.com/Acubed/node-rdf/issues"},"_id":"rdf@3.0.0","dist":{"shasum":"203dbd231e4491c60dff263573f60475b34b3e63","tarball":"https://registry.npmjs.org/rdf/-/rdf-3.0.0.tgz","integrity":"sha512-HqY4EQW8Ax/Ny1zVRhxTAH7nRygGuQ1in35IUs8EsUVMoZvgr33knFK+vVbbcyNtljLUZUKZ9NBKU7RAWgonSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRy0qyou9VRsI7xRj38u8ElJCgsVkPi9M9Hpg/QLMTMwIhAJyo6ukkttmxM6M4OLSCg9a5lsLR3/+4u2SYnRltGgZl"}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"3.0.1":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/Acubed/node-rdf","version":"3.0.1","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"dependencies":{"iri":"~1"},"repository":{"type":"git","url":"git://github.com/Acubed/node-rdf.git","web":"https://github.com/Acubed/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"vows"},"licenses":[{"type":"Public domain","url":"http://unlicense.org/"}],"bugs":{"url":"https://github.com/Acubed/node-rdf/issues"},"_id":"rdf@3.0.1","dist":{"shasum":"411f5b89fd1c513e72ccf82fbb455f787da4fe4e","tarball":"https://registry.npmjs.org/rdf/-/rdf-3.0.1.tgz","integrity":"sha512-5opBoR+QQB29T3hRsYcSbGtj0qvM60ldUNW7fa+D67zTeiPBokFWlzAX0kK6D2MRAav2d56/nr2bxYK0GSW30g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBaUq01jyG4f/bDBl6bkQ2nue2zOdLouJny6oVrOv8pwAiEA8YsOrPA0aV+xlg1dXvAw6UQXlPhMq63FjfUhT7W6FAw="}]},"_from":".","_npmVersion":"1.4.6","_npmUser":{"name":"acubed","email":"diamondmagic@users.sourceforge.net"},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{}},"4.0.0":{"name":"rdf","version":"4.0.0","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/awwright/node-rdf","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"dependencies":{"iri":"~1"},"repository":{"type":"git","url":"git://github.com/awwright/node-rdf.git","web":"https://github.com/awwright/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"mocha"},"license":"Unlicense","devDependencies":{"mocha":"^5.2.0"},"gitHead":"206098cbd2a4c8cf71d0c7fd7fcc6be0fa88e9c1","bugs":{"url":"https://github.com/awwright/node-rdf/issues"},"_id":"rdf@4.0.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"acubed","email":"aaa@bzfx.net"},"dist":{"integrity":"sha512-6SWD2N0S0bdy3jdF1vQRGvxzWc/Or21E6FKx2jjU+DWJ0T6vfB7aS/3sl4g7BkHhCXwWVHOU0FJnTFh91hEyTQ==","shasum":"edf74761d23afb0188d335c971d9a2d8d9529b5a","tarball":"https://registry.npmjs.org/rdf/-/rdf-4.0.0.tgz","fileCount":42,"unpackedSize":285196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGlHyCRA9TVsSAnZWagAAB0kP/3FoH20n3IxDD2SaNamv\nWgktvaACIXiMY3CWMThnn0UmcXJFIfNDKZQ7/tpVTr6iQXtipqbCgGnDXab/\nYnx3DUQdTNRVIE/ELwVzYsCeh/kL7PEGtQKzqExAS/YOqZV881TREvIRkLu0\noK7lOXStu7zohPlDoP74BEU9FZuosLyo4Dy5Bgx43hj60Eb16jBABsYxgIFQ\nDlPsP3FERCVen+cF6K7wyfsg3q53GOkHnsN3WerSyd13cPJmtyrmYJEaIApM\nZddNXz75V5O64vpn0erQvGdN7LYbqcnLE/iTWeMGsauKmTvFkaWleS7cYGEl\n/hNsJtfnw9zbkFerOfeNroEu59lN3zvlinBNKvS7HvCOntSO7dGaRL8zs/g1\nxufjh+CYfCMvdbfnGmb2tdjAkXt2F07KMheNpdrH0rFyUuQd4SIUsZCaScjN\nh4BupTbFr0oNnWpvvN/6ZtcdPtfyqOQN7srN25+nC8pKJwXvg0yrP88sCwHn\nACo+WAYecaNa1xiI3cS22CKNdv41vBlw7qI9AeJyKMwEeUuiFejDdUyheLpt\nOBWP9U2BcPuWnk84oY2OmtJNkcTfeLcV6DDWVcH+Fy590zeWuQtvB5vUW1z7\nNkBGTVDBJn6rggz4mUTfHWaXC/Df3jLZUCw+l8bHRVw0tIBUOOkI1WUNMePB\nNLoW\r\n=j8bG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClPNGlSNYqHyDWujQqXc+Oiu4Qf0bSIrsUO4Sz4TomrAIgPMcZ4EbjYfNfytl6J03Ick/T8myrQ98Hd5MnC5/bfIc="}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rdf_4.0.0_1528451568910_0.2640276976052234"},"_hasShrinkwrap":false},"4.0.1":{"name":"rdf","version":"4.0.1","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/awwright/node-rdf","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"dependencies":{"iri":"~1"},"repository":{"type":"git","url":"git://github.com/awwright/node-rdf.git","web":"https://github.com/awwright/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"mocha"},"license":"Unlicense","devDependencies":{"mocha":"^5.2.0"},"gitHead":"b9b0b625d3d593676508d1200868d1c96e5a83f1","bugs":{"url":"https://github.com/awwright/node-rdf/issues"},"_id":"rdf@4.0.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"acubed","email":"aaa@bzfx.net"},"dist":{"integrity":"sha512-E6BOrd8VqySOkz3EwU525Ipf/BX7O2MF2oc+dDaRfbl3LVYXL68foEJHnJJ8sZlX6SLMBM7+0pxaNJ/zhrXyrw==","shasum":"38a5edcd27481bcaa6a819d04c8ca986ae26f8b7","tarball":"https://registry.npmjs.org/rdf/-/rdf-4.0.1.tgz","fileCount":42,"unpackedSize":299322,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHkHCCRA9TVsSAnZWagAAO00P/iCOIGNJRaTDDipah7RO\nQ7fGb1720PDusnWHjybzQGYl+b6SLCr3VihrAKZIK1m9oZVRF2TtSGjs/gSt\nq4jZre9i2/eCDvIthPOXslNA2iYcMsAq/Q+de+FZmfcdOxb13J9YviOConaQ\ne4JbhDUOG/nevbpF0OkqrT6nVPJsXkhsEjyw2vKDBZmGs1PWEklMy2gW/pCR\nCX0K/U4JBIas6mr1f89x+wJrnAA2kSntpj2Io+gxnEUESdYYOKUnTxbI4EuE\nrKWDv78dLadRHlxItqMLYfKgW1TmIYTZYv+rSsm365RX95sFoNKt6dJvobUG\nip4uEXwhAYH0l/UboKQivZnr2CCiXdn6J/BpzWiwcuEWDIMC3WKRdpwZH6nj\n3rH18JZLxJUvJnx8AU1buAIZ2lxoEWWVTbdEVphoUZdRyfkHK34NgJLpi7i8\n/3NKZH22MvOP+tBxwNrsM3/Oj4+PUxFsGmShv0rgVoTTvHhiHaOYCtm1i7eF\nOxG3QwkmRqUrUzIZzs2NXB6Fh39xnlg3bzm01E5AeeQhNsd+ftwNQFT6+qxr\nP1uTcU18ZL/hmo4W6QZtGco19y/Ou5CRC+jxha1oE5rJkA8qmy1zpc/7EG/Z\n/q7NDc1AC/dbz64eMYQSDWa8bn6W3UlAMXCKQPfi5dAhlNGVoL/B5jYurFkw\nu2fu\r\n=8r3b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIRrfozz7DNRb5ULC4bxneZneMlY/bJ3OpUtax8ntV0wIhAM+1UtOd01MOqkZtwIloXvikpt1ba4YS0Ad57V3RYj/y"}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rdf_4.0.1_1528709569147_0.31215517640974744"},"_hasShrinkwrap":false},"4.1.0":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/awwright/node-rdf","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"dependencies":{"iri":"~1"},"repository":{"type":"git","url":"git://github.com/awwright/node-rdf.git","web":"https://github.com/awwright/node-rdf"},"main":"lib/rdf.js","scripts":{"test":"mocha"},"license":"Unlicense","devDependencies":{"mocha":"^5.2.0","nyc":"^14.0.0"},"version":"4.1.0","bugs":{"url":"https://github.com/awwright/node-rdf/issues"},"_id":"rdf@4.1.0","_nodeVersion":"11.12.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-DNB0ZzlUSFWInVyMTfJDXepHhYdOlk5fvyPi8GZ0kin5flHT9C6WboRKj1mXN9Vs1lj8Md84J4p7+Wf05J4gpg==","shasum":"da3b15b4f260b6398b40adb58113cc138aabe8c1","tarball":"https://registry.npmjs.org/rdf/-/rdf-4.1.0.tgz","fileCount":53,"unpackedSize":386102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwR8ACRA9TVsSAnZWagAAQq8P/0XOi2Yrq6UrusS4hgWa\nZE4A66kvxGPhonpZpkOHAY7DXXawHWO/nSfHJqi7Mzq9Kjh6KxBTUprol9fP\nZVhH4ijYAB+e36HVjZmoAejQpZ8g7+8I599rj2RiSikYb2zERAAT6eciyr6X\nhZQCcis00nXoaKBiI5wAbCG6ngXlIWVzZrge/fBIAOPrIPx1sZUt0s/EimP6\nkOo1XXh+RBLYCYeM4decb2DkOgzIaUYu/fpwL8K1/7LUJbb5yKwcNvNJ0lTX\nnV3eLw+tkUGX7ncrG56KczTtHjdpLZKde5ryINBz8PemUybfmSptSTLkGcFb\nCh/RQEZxM73GNOsqptTlIH1+PThsS1drImxY8cx2JQiNrlY/89fcGkyGo78w\nUkXCTan+dIB/kOJrD8dPDY8018okZ4hmwj8wqYyhMf7aI6JoMXotR/HaCJ78\nCXm/Ilr/uIHImEG+H9oriZ4Dt1/2lEOdtNdpEgVkNnYvwtrQe1vrcNJC5DZH\nsugv/mnzGd23T+tc1mFHPAZAo6bhHP0D4kJPOid1mdQeW8qfMrpYUy8V17/3\nPyaMFMPg2XGpDGy7KXaCNbUv2wlhkfW8uuMl2Uyua5Sz9exmS7LifmOD3nHH\nrZgS32VVjlvvzUDdSiklMpr4oBjJ/zt8JP963imhFg9TIe2eMUuSp+mm1HxW\nrUd8\r\n=xS7k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB46rvBcoLLoCsGnBc8bSPkoFIidKNKsTF0bIxmegrZWAiEAx8bXe+pE1ufbT7suZRZ2UwF2tsKZWVkwXFJySGiIgws="}]},"maintainers":[{"name":"acubed","email":"diamondmagic@users.sourceforge.net"}],"_npmUser":{"name":"acubed","email":"aaa@bzfx.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rdf_4.1.0_1556160255311_0.9345333875047743"},"_hasShrinkwrap":false},"4.1.1":{"name":"rdf","description":"RDF datatype integration, RDF Interfaces API, and utility functions","homepage":"https://github.com/awwright/node-rdf","author":{"name":"Austin Wright"},"keywords":["RDF","RDF Interfaces","IRI","Turtle"],"dependencies":{"iri":"~1"},"repository":{"type":"git","url":"git://github.com/awwright/node-rdf.git","web":"https://github.com/awwright/node-rdf"},"main":"index.js","scripts":{"test":"mocha"},"license":"Unlicense","devDependencies":{"mocha":"^10.0.0","nyc":"^15.1.0"},"version":"4.1.1","gitHead":"898d536ac28c057636b61f9e60d3b3a512ea0b68","bugs":{"url":"https://github.com/awwright/node-rdf/issues"},"_id":"rdf@4.1.1","_nodeVersion":"18.8.0","_npmVersion":"8.18.0","dist":{"integrity":"sha512-WEXBQmMXubplwnpcL6Wo184LkAXvTaMJYxxXoTlBr4SM7XhIx3BVjltrrbh8ARTmwBthuI7p2vkv6m3rKNucgw==","shasum":"d7a80669272d13115eea7c5b64b5a37fb02720cd","tarball":"https://registry.npmjs.org/rdf/-/rdf-4.1.1.tgz","fileCount":55,"unpackedSize":387176,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEoRvh7l9VCVOrIu7yTmtcaH2Bz1pKpM4sI62i0LZ0r8AiBFPRGExhU0tslKCOoDJEQDy/JTBSfaPHkCldy8cynv1Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjDtRfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrLxw//eeVYvIdlnhsmbN86FEzRnfaGpwQFivFduFhHbcR5LYICjQc/\r\ndnDuRKX/jV55ImL532G53jZn8LeKXziN33EdMuklPDmzDj5GleSxzho9HgJ/\r\n1znOoXIeB8PSYM8chJYZ1GIX1Dti8gFeXuSI2AP6TU90705BScuPX7a3w/XZ\r\nV2UsNfGMFs53u6CeU5jkmdCFuz65wi1fnOi7lEyZXeoo3t0EqOBxRtcYy2Wp\r\n9t8MelvSSNEI3EmfHvkA7QiwEK0ZykPczcMA/mdEGkXLP70u1vB9SLkBk47B\r\nJjIkyLgEW1x4xqt6Lcw2wpOKmM/ICdKAO4ivLaUDTZehHO32O5ddN+ikWWAV\r\n1pBowAz9KhUZXUhKJcsnUcqwINx1bLvjPPHAFNUPp2MaAedg483nxNdV7R17\r\n3uJweXmF2CEoD6RrIir0IsnLZD7qijE247ptPHgrUXb+P+dNEI0Q+mxofybE\r\nM5p6CxzR697RGxN+Pg4GUZW4SOPTOYVx7vukynp3y1T2jAzEMxF0NuRvTCxh\r\nTJhsyJyRAAN5kIxTR59k3ndzAb3W1RRIyR7tI5MBm5Uijy+gWlXjLGddr2d6\r\n4OIqP5JCE7LzYUbTYVpBHeSnGAMLz2qqWJaQ2x+xBNc2kj0g0R/sE97FT2do\r\n5zsLwKOZTdaBajtqoVth7WmlSmf4MdOfu/8=\r\n=AhZ1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"acubed","email":"aaa@bzfx.net"},"directories":{},"maintainers":[{"name":"acubed","email":"aaa@bzfx.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rdf_4.1.1_1661916255587_0.10461472354391232"},"_hasShrinkwrap":false}},"maintainers":[{"name":"acubed","email":"aaa@bzfx.net"}],"time":{"modified":"2022-08-31T03:24:15.888Z","created":"2011-06-15T21:19:17.942Z","0.0.1":"2011-06-15T21:19:18.498Z","0.0.2":"2012-01-05T04:29:28.332Z","0.0.4":"2012-06-18T20:29:00.917Z","1.0.0":"2012-08-03T07:46:37.385Z","1.0.1":"2012-08-03T08:41:46.545Z","2.0.0":"2012-12-24T11:21:27.863Z","2.0.1":"2013-05-08T20:22:36.366Z","2.1.0":"2013-06-23T19:40:49.955Z","2.1.1":"2013-08-27T06:30:29.398Z","2.1.2":"2013-11-04T00:46:43.055Z","3.0.0":"2014-06-27T16:37:19.649Z","3.0.1":"2014-09-17T03:38:02.337Z","4.0.0":"2018-06-08T09:52:48.993Z","4.0.1":"2018-06-11T09:32:49.242Z","4.1.0":"2019-04-25T02:44:15.547Z","4.1.1":"2022-08-31T03:24:15.817Z"},"repository":{"type":"git","url":"git://github.com/awwright/node-rdf.git","web":"https://github.com/awwright/node-rdf"},"author":{"name":"Austin Wright"},"readme":"\n# RDF for ECMAScript\n\nThis package is a set of utilities aimed at making it simple to represent RDF data. It is targeted at Node.js, but should work cross-environment.\n\nRDF can be considered a superset of typical links found on the Web: It allows a collection of directional relationships from some _subject_, with a relationship _predicate_, to some _object_.\n\nOn the Web, normally all three are documents. In RDF, the object may also be a literal string containing data; and the subject or object may be an existential quantifier called a _blank node_.\n\nThe `NamedNode`, `BlankNode`, and `Literal` objects represent the fundamental types of data that can be found in an RDF Statement. Statements are represented as `Triple`.\n\nRDF doesn't define any representation of a blank nodes, except for the fact it is possible to compare two blank nodes to see if they are the same. In RDF Interfaces, a bnode is uniquely represented as an instance of `BlankNode`. This interface optionally allows a label, this is primarily for debugging, and two instances of BlankNodes with the same label may still represent different blank nodes.\n\nThe library also exposes a function to decorate the builtin ECMAScript protoypes with methods.\n\n## Features\n\n### Represent RDF nodes\n\n`NamedNode`, `BlankNode`, and `Literal` instances represent nodes in an RDF graph.\n\n```javascript\nconst rdf = require('rdf');\nconst { NamedNode, BlankNode, Literal } = rdf;\n\nconst namednode = new NamedNode('http://example.com/');\nnamednode.toNT()\n```\n\n    '<http://example.com/>'\n\n```javascript\nconst blanknode = new BlankNode();\nblanknode.toNT()\n```\n\n    '_:b1'\n\n```javascript\nconst literal = new Literal('plain string');\nliteral.toNT()\n```\n\n    '\"plain string\"'\n\nA factory-style interface is also available:\n\n```javascript\nconst rdfjs = rdf.factory;\nrdfjs.blankNode()\n```\n\n    BlankNode { nominalValue: 'b2' }\n\nAs well as the RDF Interfaces environment:\n\n```javascript\nconst rdfenv = rdf.environment;\nrdfenv.createLiteral(\"true\", null, rdf.xsdns(\"boolean\")).toTurtle()\n```\n\n    'true'\n\n### Represent RDF statements\n\nA `Triple` instance represents an edge in an RDF graph (also known as a Statement).\n\n```javascript\nconst statement1 = rdfjs.triple(blanknode, namednode, literal);\nstatement1.toString()\n```\n\n    '_:b1 <http://example.com/> \"plain string\" .'\n\n### Represent RDF graphs\n\nA `Graph` instance stores and queries for Triples:\n\n```javascript\nconst graph = new rdf.Graph();\ngraph.add(new rdf.Triple(\n\tnew BlankNode(),\n\trdf.rdfsns('label'),\n\tnew Literal('Book', '@en'))\n\t);\ngraph.add(new rdf.Triple(\n\tnew BlankNode(),\n\trdf.rdfns('value'),\n\tnew Literal('10.0', rdf.xsdns('decimal')))\n\t);\ngraph.add(new rdf.Triple(\n\tnew BlankNode(),\n\trdf.rdfns('value'),\n\tnew Literal('10.1', rdf.xsdns('decimal')))\n\t);\ngraph.length\n```\n\n    3\n\n```javascript\ngraph\n\t.match(null, rdf.rdfns('value'), null)\n\t.forEach(function(triple){ console.log(triple.toString()); });\n```\n\n    _:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> \"10.0\"^^<http://www.w3.org/2001/XMLSchema#decimal> .\n    _:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#value> \"10.1\"^^<http://www.w3.org/2001/XMLSchema#decimal> .\n\n### Simplify RDF namespaces\n\nUse the `ns` function to create a URI factory.\n\n```javascript\nconst foaf = rdf.ns('http://xmlns.com/foaf/0.1/');\nfoaf('knows')\n```\n\n    'http://xmlns.com/foaf/0.1/knows'\n\nUse the builtin `rdfns`, `rdfsns`, and `xsdns` functions too:\n\n```javascript\nrdf.rdfsns('label')\n```\n\n    'http://www.w3.org/2000/01/rdf-schema#label'\n\n### Compare nodes, triples, and graphs for equality\n\nUse the `NamedNode#equals`, `BlankNode#equals`, `Literal#equals`, `Triple#equals`, and `Graph#isomorphic` methods to compare equality.\n\nLiterals verify codepoint, datatype, and language tag equality. Triples verify equality of each three nodes.\n\nGraphs test for isomorphism, that there's a mapping that can map the blank nodes in one graph to the blank nodes in the other one-to-one. If so isomorphic, it returns the mapping.\n\n```javascript\nconst graph2 = new rdf.Graph();\nconst bn2 = rdf.factory.blankNode();\n\ngraph2.add(rdf.factory.triple(\n\tbn2,\n\tnamednode,\n\tliteral\n\t));\ngraph2.add(rdf.factory.triple(\n\tbn2,\n\trdf.rdfsns('label'),\n\trdfjs.literal('Price')\n\t));\ngraph2.add(rdf.factory.triple(\n\tbn2,\n\trdf.rdfns('value'),\n\trdfjs.literal('10.0', rdf.xsdns('decimal'))\n\t));\n\ngraph.isomorphic(graph2)\n```\n\n### Compose RDF graphs as native Objects\n\nUse the `rdf.parse` function to cast a native object into a graph:\n\n```javascript\nconst person = rdf.ns('http://example.com/');\nconst partyDocument = rdf.parse({\n\t\"@context\": {\n\t\t\"@vocab\": \"http://xmlns.com/foaf/0.1/\",\n\t\t\"foaf\": \"http://xmlns.com/foaf/0.1/\",\n\t\t\"person\": \"http://example.com/\",\n\t},\n\t\"@id\": person('a'),\n\tgivenname: rdfjs.literal(\"Alice\"),\n\tage: 26,\n\tknows: [\n\t\t{\n\t\t\t\"@id\": person('b'),\n\t\t\tgivenname: rdfjs.literal(\"Bob\"),\n\t\t\tage: 36,\n\t\t\tknows: person('a'),\n\t\t},\n\t\t{\n\t\t\t\"@id\": person('c'),\n\t\t\tgivenname: rdfjs.literal(\"Carol\"),\n\t\t\tage: 46,\n\t\t\tknows: person('a'),\n\t\t},\n\t\t{\n\t\t\t\"@id\": person('d'),\n\t\t\tgivenname: rdfjs.literal(\"Dan\"),\n\t\t\tage: 56,\n\t\t\tknows: [person('a'), person('b')],\n\t\t}\n\t]\n})\nconsole.log(partyDocument.n3());\n```\n\n    [\n    \tfoaf:givenname \"Alice\";\n    \tfoaf:age 26;\n    \tfoaf:knows [\n    \t\tfoaf:givenname \"Bob\";\n    \t\tfoaf:age 36;\n    \t\tfoaf:knows person:a\n    \t\t], [\n    \t\tfoaf:givenname \"Carol\";\n    \t\tfoaf:age 46;\n    \t\tfoaf:knows person:a\n    \t\t], [\n    \t\tfoaf:givenname \"Dan\";\n    \t\tfoaf:age 56;\n    \t\tfoaf:knows person:a, person:b\n    \t\t]\n    \t]\n\nUse the `graphify` method to produce an `rdf.Graph` from the data:\n\n```javascript\nconst partyGraph = partyDocument.graphify();\n\npartyGraph\n\t.toArray()\n\t.sort(function(a,b){ return a.compare(b); })\n\t.forEach(function(triple){ console.log(triple.toString()); });\n```\n\n    <http://example.com/a> <http://xmlns.com/foaf/0.1/age> \"26\"^^<http://www.w3.org/2001/XMLSchema#integer> .\n    <http://example.com/a> <http://xmlns.com/foaf/0.1/givenname> \"Alice\" .\n    <http://example.com/a> <http://xmlns.com/foaf/0.1/knows> <http://example.com/b> .\n    <http://example.com/a> <http://xmlns.com/foaf/0.1/knows> <http://example.com/c> .\n    <http://example.com/a> <http://xmlns.com/foaf/0.1/knows> <http://example.com/d> .\n    <http://example.com/b> <http://xmlns.com/foaf/0.1/age> \"36\"^^<http://www.w3.org/2001/XMLSchema#integer> .\n    <http://example.com/b> <http://xmlns.com/foaf/0.1/givenname> \"Bob\" .\n    <http://example.com/b> <http://xmlns.com/foaf/0.1/knows> <http://example.com/a> .\n    <http://example.com/c> <http://xmlns.com/foaf/0.1/age> \"46\"^^<http://www.w3.org/2001/XMLSchema#integer> .\n    <http://example.com/c> <http://xmlns.com/foaf/0.1/givenname> \"Carol\" .\n    <http://example.com/c> <http://xmlns.com/foaf/0.1/knows> <http://example.com/a> .\n    <http://example.com/d> <http://xmlns.com/foaf/0.1/age> \"56\"^^<http://www.w3.org/2001/XMLSchema#integer> .\n    <http://example.com/d> <http://xmlns.com/foaf/0.1/givenname> \"Dan\" .\n    <http://example.com/d> <http://xmlns.com/foaf/0.1/knows> <http://example.com/a> .\n    <http://example.com/d> <http://xmlns.com/foaf/0.1/knows> <http://example.com/b> .\n\n### Query information from RDF sources\n\nUse the ResultSet interface to quickly drill into the specific data you want:\n\n```javascript\n// Get the name of Alice\npartyGraph.reference(person('a'))\n\t.rel(foaf('givenname'))\n\t.one()\n\t.toString()\n```\n\n    'Alice'\n\n```javascript\n// Get all the names of everyone who Alice knows\npartyGraph.reference(person('a'))\n\t.rel(foaf('knows'))\n\t.rel(foaf('givenname'))\n\t.toArray()\n\t.sort()\n\t.join(', ')\n```\n\n    'Bob, Carol, Dan'\n\n### Read RDF data sources as native data types\n\nUse `Literal#valueOf` to convert from lexical data space to native value space:\n\n```javascript\nrdfjs.literal('2018-06-04T23:11:25Z', rdf.xsdns('date')).valueOf()\n```\n\n    2018-06-04T23:11:25.000Z\n\n```javascript\nrdfjs.literal('24.4400', rdf.xsdns('decimal')).valueOf()\n```\n\n    24.44\n\n```javascript\nrdfjs.literal('0', rdf.xsdns('boolean')).valueOf()\n```\n\n    false\n\nRead the ages of everyone that Alice knows as a native number, and sum them:\n\n```javascript\n// sum the ages of everyone that Alice knows\npartyGraph.reference(person('a'))\n\t.rel(foaf('knows'))\n\t.rel(foaf('age'))\n\t.reduce(function(a, b){ return a.valueOf() + b; }, 0);\n```\n\n    138\n\n### Manage documents with RDF data\n\nUse the `RDFEnvironment`, `Profile`, `TermMap`, and `ProfileMap` interfaces to work with RDF documents that think in terms of CURIEs and Terms.\n\nHere's an example to take an RDF graph, and output a Turtle document with the prefixes applied:\n\n```javascript\nconst profile = rdf.environment.createProfile();\nprofile.setDefaultPrefix('http://example.com/');\nprofile.setPrefix('ff', 'http://xmlns.com/foaf/0.1/');\nconst turtle = partyGraph\n\t.toArray()\n\t.sort(function(a,b){ return a.compare(b); })\n\t.map(function(stmt){\n\t\treturn stmt.toTurtle(profile);\n\t});\n//console.log(profile.n3());\nconsole.log(turtle.join('\\n'));\n```\n\n    :a ff:age 26 .\n    :a ff:givenname \"Alice\" .\n    :a ff:knows :b .\n    :a ff:knows :c .\n    :a ff:knows :d .\n    :b ff:age 36 .\n    :b ff:givenname \"Bob\" .\n    :b ff:knows :a .\n    :c ff:age 46 .\n    :c ff:givenname \"Carol\" .\n    :c ff:knows :a .\n    :d ff:age 56 .\n    :d ff:givenname \"Dan\" .\n    :d ff:knows :a .\n    :d ff:knows :b .\n\n### Treat native data types as RDF data\n\nIf you think creating RDF Term is too verbose, enable builtins mode with `setBuiltins()`. This amends the prototype of primitives:\n* Strings are treated as a `NamedNode`\n* String#l(langtag) produces a language `Literal`\n* String#tl(datatype) produces a typed `Literal`\n* Date, Boolean, Number are treated as a `Literal`\n\n```javascript\nrdf.setBuiltins();\n\n[\n    \"http://example.com/\".toNT(),\n    (3 * 4).toNT(),\n    true.toNT(),\n    new Date('2112-06-06').toNT(),\n    \"The Hobbit\".l('en-GB').toNT(),\n    \"4.0\".tl(rdf.xsdns('decimal')).toNT(),\n]\n```\n\n    [ '<http://example.com/>',\n      '\"12\"^^<http://www.w3.org/2001/XMLSchema#integer>',\n      '\"true\"^^<http://www.w3.org/2001/XMLSchema#boolean>',\n      '\"2112-06-06T00:00:00Z\"^^<http://www.w3.org/2001/XMLSchema#dateTime>',\n      '\"The Hobbit\"@en-GB',\n      '\"4.0\"^^<http://www.w3.org/2001/XMLSchema#decimal>' ]\n\nChange your mind? Use `unsetBuiltins` to remove them:\n\n```javascript\nrdf.unsetBuiltins();\n```\n\n### Native support for RDF 1.1 semantics\n\nThe domains of the functions ensure consistency with all the other applications found in the RDF universe.\n\n`Literal` treats xsd:string as no datatype, and treats any language literal as rdf:langString. The RDF1.1 datatype is available through the `Literal#datatype` property. The RDF1.0 datatype, which null for plain literals and language strings, is available through `Literal#type`.\n\n```javascript\nconst literal = new Literal('Foo');\nconsole.dir(literal.datatype.toNT());\nconsole.dir(literal.type);\nconsole.dir(literal.language);\n```\n\n    '<http://www.w3.org/2001/XMLSchema#string>'\n    null\n    null\n\n```javascript\nconst langLiteral = new Literal('Foo', '@en');\nconsole.dir(langLiteral.datatype.toNT());\nconsole.dir(langLiteral.type);\nconsole.dir(langLiteral.language);\n```\n\n    '<http://www.w3.org/1999/02/22-rdf-syntax-ns#langString>'\n    null\n    'en'\n\n```javascript\nconst typedLiteral = new Literal('Foo', rdf.xsdns('string'));\nconsole.dir(typedLiteral.datatype.toNT());\nconsole.dir(typedLiteral.type);\nconsole.dir(typedLiteral.language);\n```\n\n    '<http://www.w3.org/2001/XMLSchema#string>'\n    null\n    null\n\nThe data model is enforced in the domain of each of the functions; `Triple` doesn't allow bnodes as predicates, for example:\n\n```javascript\ntry {\n    rdfjs.triple(rdfjs.blankNode(), rdfjs.blankNode(), rdfjs.blankNode());\n}catch(e){\n    console.log(e.toString());\n}\n```\n\n    Error: predicate must be a NamedNode\n\n### Parse Turtle data\n\nUse the `TurtleParser.parse(document, base)` function to parse Turtle data into a Graph object:\n\n```javascript\nconst parse = rdf.TurtleParser.parse('<> a <Page> .', 'http://example.com/');\nparse.graph.toArray().join(\"\\n\")\n```\n\n    '<http://example.com/> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Page> .'\n\n### Public Domain unlicensed\n\nUse this library in whatever application you want! Give credit when you do so, or don't (but preferably the former). Use it to take over the world, or don't (but preferably the latter).\n\n## About\n\nThis implements:\n\n* http://www.w3.org/TR/2012/NOTE-rdf-interfaces-20120705/ (Working Group Note)\n* http://www.w3.org/TR/2014/REC-turtle-20140225/ (Recommendation)\n* http://www.w3.org/TR/2014/REC-n-triples-20140225/ (Recommendation)\n\nSee also:\n\n* http://www.w3.org/TR/2012/NOTE-rdfa-api-20120705/ (Working Group Note)\n* http://www.w3.org/TR/2012/NOTE-rdf-api-20120705/ (Working Group Note)\n* http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140225/ (Working Group Note)\n\nImplementation largely adapted from webr3's js3, rdfa-api, and rdf-api implementations:\n\n* https://github.com/webr3/rdfa-api\n* https://github.com/webr3/js3\n\nThis is free and unencumbered software released into the public domain. For information, see <http://unlicense.org/>.\n\n## Usage\n\n### RDFNode\n\n`rdf.Triple`, `rdf.RDFNode`, `rdf.NamedNode`, `rdf.BlankNode`, `rdf.Literal` are implemented as defined under [RDF Interfaces: Basic Node Types](http://www.w3.org/TR/2011/WD-rdf-interfaces-20110510/#basic-node-types).\n\nFor parsing the IRI and converting to a URI that can be used in an HTTP request, see the [IRI package](https://github.com/Acubed/node-iri).\n\n### Triple\n\nRepresents an edge in an RDF Graph, also known as a Statement or a Triple.\n\nCreate an instance of a triple with `rdf.environment.createTriple(subject, predicate, object)`.\n\nUse the `Triple#subject`, `Triple#predicate`, and `Triple#object` properties to access the respective RDF nodes in the Triple.\n\n#### Triple#toString()\n\nReturns the triple encoded as N-Triples. Same as `Triple#toNT()`.\n\n#### Triple#toNT()\n\nReturns the triple encoded as N-Triples.\n\n#### Triple#toTurtle(profile)\n\nReturns the triple encoded as a statement in Turtle, optionally with the given prefix map applied.\n\n### RDFNode\n\nAlso exposed as `Term`, this is the abstract superclass of things that can be found in an RDF Triple.\n\n#### RDFNode#equals(other)\n\nReturns true if the given node `other` would be considered the same node as itself in an RDF graph.\n\n`Literal`s and `NamedNode`s always compare by their contents. `BlankNode`s sometimes compare by their label, but sometimes may only be equal if they're the same instance.\n\nIf you're managing a single RDF graph, you should keep a mapping of labels to BlankNode instances, and use the instances from this mapping, instead of creating a new BlankNode and setting the label.\n\n### NamedNode\n\nRepresents an IRI node in an RDF graph. Instances are uniquely identified by their contents, so two different contents will still be considered equal if the inner IRIs are the same.\n\nCreate an instance of a triple with `rdf.environment.createTriple(subject, predicate, object)`.\n\n#### NamedNode#equals(other)\n\nReturns true if the given NamedNode `other` is the same IRI, otherwise false. See `RDFNode#equals` for details\n\n#### NamedNode#toString()\n\nReturns the inner IRI as a string.\n\n#### NamedNode#toNT()\n\nSerializes the node as an IRI for N-Triples, inside angle brackets.\n\n#### NamedNode#toTurtle(profile)\n\nSerializes the node as an IRI for N-Triples inside angle brackets, or the shrunken CURIE form if provided in the optional `profile`.\n\n### BlankNode\n\nRepresents a blank node in an RDF graph. BlankNode instances are typically identified by their instance, so two instances may be considered different even if they have the same label.\n\nCreate an instance of a triple with `rdf.environment.createBlankNode()`.\n\n#### BlankNode#equals(other)\n\nReturns true if the given NamedNode `other` is the same IRI, otherwise false. See `RDFNode#equals` for details\n\n#### BlankNode#toString()\n\nSerializes the node as a Turtle-style BlankNode. See toTurtle for information.\n\n#### BlankNode#toNT()\n\nSerializes the node as a Turtle-style BlankNode. See toTurtle for information.\n\n#### BlankNode#toTurtle()\n\nSerializes the BlankNode as a Turtle-style blank node, e.g.:\n\n* `_:bn0`\n* `_:label`\n\n### Literal\n\nRepresents a content literal in an RDF graph. Literals may have edges pointing only towards them (i.e. they're only found in the object position of a triple). Literals are Unicode strings with a datatype IRI, and optional associated language tag.\n\n* `Literal#value` - the string contents of the literal (note that ECMAScript/JavaScript uses UTF-16 to encode Unicode strings)\n* `Literal#datatype` - NamedNode that identifies the datatype of the literal.\n* `Literal#type` - getter that returns `null` if the datatype is an xsd:string, or a language literal, as seen in RDF1.0 semantics.\n* `Literal#language` - stores the language tag, if any, or `null` otherwise.\n\n#### Literal#valueOf()\n\nReturns a native representation of the literal, based on its datatype.\n\n* The numeric datatypes will produce a number: `xsd:float`, `xsd:integer`, `xsd:long`, `xsd:double`, `xsd:decimal`, `xsd:nonPositiveInteger`, `xsd:nonNegativeInteger`, `xsd:negativeInteger`, `xsd:int`, `xsd:unsignedLong`, `xsd:positiveInteger`, `xsd:short`, `xsd:unsignedInt`, `xsd:byte`, `xsd:unsignedShort`, `xsd:unsignedByte`\n* The datetime datatypes will produce a Date object: `xsd:date`, `xsd:time`, `xsd:dateTime`\n* The boolean datatype will produce a boolean: `xsd:boolean`\n* The string datatypes will produce a string: `xsd:string` `rdf:langString`\n\n#### Literal#equals(other)\n\nReturns true if the given Literal `other` has the same contents, datatype, and language tag. See `RDFNode#equals` for details.\n\n#### Literal#toString()\n\nReturns the literal contents as a string, discarding the other type/tags.\n\n#### Literal#toNT()\n\nSerializes the node as a string with datatype for N-Triples, inside double-quotes followed by language tag or datatype IRI (if not xsd:string).\n\n#### Literal#toTurtle(profile)\n\nSerializes the node as a string. For datatypes of xsd:integer, xsd:decimal, xsd:double, xsd:boolean, and xsd:string, the literal is printed without the datatype IRI.\n\nIf the datatype IRI can be shrunk with the given profile, it is printed as a CURIE, otherwise it prints the full brackted IRI.\n\n### Graph\n\nRepresents a set of RDF `Triple` instances. Since a graph in RDF is a set of edges, nodes are only known to exist in the graph if there is an edge (a Triple) containing them.\n\nThis implements [RDF Interfaces: Graph](http://www.w3.org/TR/2011/WD-rdf-interfaces-20110510/#idl-def-Graph) with three indexes for fast querying.\n\nInstances of Graph are uniquely identified by their instance (however, Graph#equals tests isomorphism). Graphs are mutable. Methods with a return value are pure, non-pure (mutating) methods always return undefined.\n\n#### new Graph\n\nCreates an empty in-memory RDF graph.\n\n#### Graph#add(Triple triple)\n\nAdds a triple to the Graph, if it doesn't already exist.\n\n#### Graph#addAll(graph)\n\nAdds the given graph or array of `Triple` instances to the Graph.\n\n#### Graph#remove(Triple triple)\n\nRemoves the given triple from the Graph, if it exists.\n\n#### Graph#removeMatches(subject, predicate, object)\n\nRemoves the given triple from the Graph, if it exists.\n\n#### Graph#toArray()\n\nReturns an array of Triples currently in the Graph.\n\n#### Graph#some(function callback)\n\nSame behavior as `Array#some`: Evaluates `callback` over each Triple in the Graph, and returns true if the callback returns truthy for any of them.\n\n#### Graph#every(function callback)\n\nSame behavior as `Array#every`: Evaluates `callback` over each Triple in the Graph, and returns true if the callback returns truthy for all of them.\n\n#### Graph#filter(function callback)\n\nSame behavior as `Array#filter`: Evaluates `callback` over each Triple in the Graph, and returns a Graph with the triples that evaluated truthy.\n\n#### Graph#forEach(function callback)\n\nSame behavior as `Array#forEach`: Evaluates `callback` over each Triple in the Graph.\n\n#### Graph#isomorphic(graph)\n\nDetermines if the provided graph is isomorphic with the current one: Determines if all the Literal and NamedNode instances equal, and is there a one-to-one mapping of bnodes between the two graphs. If so, it returns the mapping, the toString blanknode as the key, the graph argument's BlankNode instance as value. If there's no match, it returns null.\n\n#### Graph#union(graph)\n\nReturns a new Graph that's the concatenation of this graph with the argument.\n\n#### Graph#reference(resource)\n\nReturns a `ResultSet`, a pointer to a node in a graph that can be walked to query for data.\n\nThe provided `resource` does not necessarily have to exist in the graph, however, any operations on it will produce an empty set.\n\n### Dataset\n\nRepresents a set of RDF `Quad` instances.\n\nThis implements most of the [RDF/JS: Dataset specification](https://rdf.js.org/dataset-spec/), using six indexes for fast querying.\n\nInstances of Dataset are uniquely identified by their instance. Datasets are mutable. Methods with a return value are pure, non-pure (mutating) methods always return undefined.\n\n### Variable\n\nRepresents a variable for subgraph matching, in e.g. SPARQL queries. This is also an instance of `RDFNode`.\n\nA `Variable` instance may be used in a `TriplePattern` instance. Instances are not allowed in `Triple` statements, since they're for subgraph matching, and not actual graph data.\n\n### ResultSet\n\nRepresents a node in an instance of a graph, whose relationships inside the graph can be walked and then queried. This is called ResultSet instead of NodeSet because it also contains a pointer to the graph of data and other nodes that can be walked.\n\nProperties:\n\n* `ResultSet#length` - provides the size of the set\n\n#### ResultSet#rel(predicate)\n\nWalks the `predicate` relationship over each node in the set, returning a new ResultSet with the destination nodes, and a reference to the same graph.\n\nIf the current set is an empty set, the return value will also be an empty set.\n\nIf any nodes in the current set are literals, they will be ignored and will not produce any destination nodes.\n\n#### ResultSet#rev(predicate)\n\nWalks the `predicate` relationship _backwards_ from each node in the set, returning a new ResultSet with the destination nodes, and a reference to the same graph.\n\nIf the current set is an empty set, the return value will also be an empty set.\n\nThis method will walk backwards from `Literal`, destination nodes will be `BlankNode` or `NamedNode`.\n\n#### ResultSet#toArray()\n\nReturn the nodes in the set as an Array.\n\n#### ResultSet#some(function callback)\n\nSame behavior as `Array#some`: Evaluates `callback` over each RDFNode in the ResultSet, and returns true if the callback returns truthy for any of them.\n\n#### ResultSet#every(function callback)\n\nSame behavior as `Array#every`: Evaluates `callback` over each RDFNode in the ResultSet, and returns true if the callback returns truthy for all of them.\n\n#### ResultSet#filter(function callback)\n\nSame behavior as `Array#filter`: Evaluates `callback` over each RDFNode in the ResultSet, and returns a new ResultSet with the triples that evaluated truthy.\n\n#### ResultSet#forEach(function callback)\n\nSame behavior as `Array#forEach`: Evaluates `callback` over each RDFNode in the ResultSet.\n\n#### ResultSet#map(function callback)\n\nSame behavior as `Array#map`: Evaluates `callback` over each RDFNode in the ResultSet, and returns a new ResultSet of each of the returned triples.\n\n#### ResultSet#reduce(function callback, any initial)\n\nSame behavior as `Array#reduce`: Evaluates `callback` over each RDFNode in the ResultSet with the current node and the previous return value, or `initial` if the first item.\n\n#### ResultSet#one()\n\nReturns the only item in the set if there is one, or `null` otherwise. Or else if there is more than one item in the set, throws an Error.\n\n### TriplePattern\n\nA variant of `Triple` that allows `Variable` instances in the subject, predicate, or object.\n\n### TurtleParser\n\nAn implementation of [the Data parser API of RDF Interfaces](http://www.w3.org/TR/2011/WD-rdf-interfaces-20110510/#parsing-and-serializing-data).\n\nTo synchronously parse a Turtle document, use `TurtleParser.parse()`\n\n### TurtleParser.parse(document, base)\n\nReturns a TurtleParser that has processed `document` with given `base`.\n\nThe parsed Graph instance is available at `TurtleParser#graph`:\n\n```javascript\nconst parse = rdf.TurtleParser.parse('<http://example.com/> a <http://example.com/Page> .');\nconsole.log(parse.graph.toArray().join(\"\\n\"));\n```\n\n### parse(object, id)\n\nReturns an object generated by parsing the properties of `object` to create Triples about `id`. These can later be serialized to a Turtle document or a Graph.\n\nThe format is similar to JSON-LD, except strings are assumed to be IRIs or CURIEs by default. The `@context`, `@vocab`, `@set`, `@list`, and `@id` properties work as in JSON-LD.\n\nThe `id` argument, if provided, must be a fully qualified IRI, and should be a `NamedNode` or `BlankNode`.\n\n#### parse(object, id).n3()\n\nReturns a string that's a Turtle document parsed out of `object`.\n\n#### parse(object, id).graphify()\n\nReturns a Graph of the triples parsed out of `object`.\n\n### RDFEnvironment\n\nRDFEnvironment is the data factory that generates RDF nodes, graphs, and stores process-level prefix mappings.\n\nIt implements the [RDF Environment API of RDF Interfaces](http://www.w3.org/TR/2011/WD-rdf-interfaces-20110510/#rdf-environment-interfaces).\n\nThe rdf module creates one such global environment by default, accessible at `rdf.environment`. Others are created where necessary, e.g. when parsing a Turtle document, and may be created using `new rdf.RDFEnvironment`.\n\n### environment\n\nThe `environment` export is the default instance of RDFEnvironment.\n\nGenerally, you'll want to alias this to something:\n\n```javascript\nconst rdfenv = require('rdf').environment;\n```\n\n### Prefixes\n\n#### ns(prefix)\n\nReturns an IRI factory, a function that produces an IRI of `prefix` plus the provided argument. It's a simple wrapper around string concatenation:\n\n```javascript\nconst foaf = rdf.ns('http://xmlns.com/foaf/0.1/');\nfoaf('knows')\n```\n\n#### rdfns(name)\n\nReturns an IRI produced by appending `name` to the rdf: namespace, `http://www.w3.org/1999/02/22-rdf-syntax-ns#`.\n\n#### rdfsns(name)\n\nReturns an IRI produced by appending `name` to the rdfs: namespace, `http://www.w3.org/2000/01/rdf-schema#`.\n\n#### xsdns(name)\n\nReturns an IRI produced by appending `name` to the xsd: namespace, `http://www.w3.org/2001/XMLSchema#`.\n\n### Builtins\n\nInstead of using NamedNode, URIs by default are represented as plain strings. The RDFNode interface may be overloaded onto the standard String object using `rdf.setBuiltins()` or onto a particular prototype by using:\n\n\trdf.builtins.setObjectProperties(Object.prototype);\n\trdf.builtins.setStringProperties(String.prototype);\n\trdf.builtins.setArrayProperties(Array.prototype);\n\trdf.builtins.setBooleanProperties(Boolean.prototype);\n\trdf.builtins.setDateProperties(Date.prototype);\n\trdf.builtins.setNumberProperties(Number.prototype);\n\nas done in the setBuiltins function call in `lib/Builtins.js`.\n\nThis extends the prototype definitions to act as native RDF types as well, for example:\n\n\ttrue.toNT();         // \"true\"^^<http://www.w3.org/2001/XMLSchema#boolean>\n\t(12 * 1.4).toNT();   // \"12.3\"^^<http://www.w3.org/2001/XMLSchema#decimal>\n\n#### Object Builtins\n\nAny two values may be compared with each other using the `equals` method:\n\n\t(true).equals(rdf.environment.createLiteral('true', null, 'xsd:boolean'.resolve()) // true\n\nThe node type may be queried with the `nodeType` method:\n\n\t\"_:bnode\".nodeType()\n\t\"http://example.com/\".nodeType()\n\nAn object may be assigned a URI and parsed for triples with the `ref` method:\n\n\tvar structure =\n\t\t{ 'dbp:dateOfBirth': '1879-03-14'.tl('xsd:date')\n\t\t, 'foaf:depictation': 'http://en.wikipedia.org/wiki/Image:Albert_Einstein_Head.jpg'\n\t\t}.ref('dbr:Albert_Einstein');\n\n`ref` may be called without any argument to create a BlankNode.\n\nThe resulting object has a number of methods:\n\n* `structure.n3()` returns a Turtle/N3 document close to the original structure.\n* `structure.toNT()` returns an N-Triples formatted list of triples.\n* `structure.graphify()` returns an IndexedGraph of triples.\n\nIf multiple properties with the same predicate need to be added, put the multiple values in an Array:\n\n\t{a: ['foaf:Person']}.ref()\n\nAn Array may also be used to make an RDF Collection (linked list), with the `toList` method:\n\n\t['rdfs:Class', 'rdfs:Resource'].toList()\n\n#### String Builtins\n\nStrings may be used in place of a NamedNode and BlankNode, and have the same properties. There are the following methods:\n\n* `tl(type)` creates a typed literal out of the given value.\n* `l(lang)` creates a standard literal, with an optional language value.\n* `resolve()` resolves a CURIE/term to an IRI. Unlike the environment/profile method, this returns the original string if unsuccessful (for instance, if the string is already a URI).\n\nURIs passed to these functions may be CURIEs and are resolved with the global `rdf.environment`.\n\n## Tests\n\nA Mocha test suite is found in the tests directory. Run `make test` to evaluate the tests.\n\n## Index of Files\n\n* bin/turtle-equal.js - executable that determines of two Turtle files encode the same graph\n* bin/turtle-nt.js - executable that prints an N-Triples document of the triples found in the listed Turtle files\n* index.js - exposed module entry point\n* lib/ - additional library files imported by index.js\n* Makefile - Downloads and runs test suite\n* package.json - some metadata about this package\n* README.md - You're looking at it\n* README.ipynb - Sources for execution results in README.md\n* test/*.test.js - Mocha test suite files\n* test/graph-test-lib.js - A generic test for a Graph interface\n* test/TurtleTests/ - Tests from the Turtle test suite are extracted here\n* UNLICENSE - Public Domain dedication\n","homepage":"https://github.com/awwright/node-rdf","keywords":["RDF","RDF Interfaces","IRI","Turtle"],"bugs":{"url":"https://github.com/awwright/node-rdf/issues"},"readmeFilename":"README.md","users":{"lazerluke":true,"ali1k":true,"aristov":true},"license":"Unlicense"}