{"_id":"rdf-parser-abstract","_rev":"7-95d024c3c6c88a2b81be48ed1d67e418","name":"rdf-parser-abstract","description":"Abstract base class for RDF Interface parser implementations","dist-tags":{"unstable":"0.3.0-rc1","latest":"0.3.2"},"versions":{"0.3.0-rc1":{"name":"rdf-parser-abstract","version":"0.3.0-rc1","description":"Abstract base class for RDF Interface parser implementations","main":"index.js","scripts":{"lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/rdf-ext/rdf-parser-abstract.git"},"keywords":["rdf-parser","rdf","linked","data"],"author":{"name":"Thomas Bergwinkl","email":"bergi@axolotlfarm.org","url":"https://www.bergnet.org/people/bergi/card#me"},"license":"MIT","bugs":{"url":"https://github.com/rdf-ext/rdf-parser-abstract/issues"},"homepage":"https://github.com/rdf-ext/rdf-parser-abstract","dependencies":{"concat-stream":"^1.5.0"},"gitHead":"44d2f2cff9316b8c11bfa4545e0d054fc5ddbf18","_id":"rdf-parser-abstract@0.3.0-rc1","_shasum":"1368bcc90a9d033a10abc1046ab5dbb368626e70","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"bergos","email":"bergi@axolotlfarm.org"},"maintainers":[{"name":"bergos","email":"bergi@axolotlfarm.org"}],"dist":{"shasum":"1368bcc90a9d033a10abc1046ab5dbb368626e70","tarball":"https://registry.npmjs.org/rdf-parser-abstract/-/rdf-parser-abstract-0.3.0-rc1.tgz","integrity":"sha512-hxp+OI7YOEB0aMlJfvMDtIiBRBL/rsgCZ1ONYz4N7F8znqN55I1g+b10s9GejZLHPEMkFvvY3Smt7fyyB8pvew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA2UZKQHsqlar1cQ6m2PHGEUWOr7IQIPwto56TD1PSgmAiAKXQAlYk0D/+xVk7R8jZ/Grs+kY3L8K/ASK1+dNwg70Q=="}]},"directories":{}},"0.3.0":{"name":"rdf-parser-abstract","version":"0.3.0","description":"Abstract base class for RDF Interface parser implementations","main":"index.js","scripts":{"lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/rdf-ext/rdf-parser-abstract.git"},"keywords":["rdf-parser","rdf","linked","data"],"author":{"name":"Thomas Bergwinkl","email":"bergi@axolotlfarm.org","url":"https://www.bergnet.org/people/bergi/card#me"},"license":"MIT","bugs":{"url":"https://github.com/rdf-ext/rdf-parser-abstract/issues"},"homepage":"https://github.com/rdf-ext/rdf-parser-abstract","dependencies":{"concat-stream":"^1.5.0","mocha":"^2.3.3"},"gitHead":"fc8e0b5fca99762cc98ceac8948a449d61f2f3fe","_id":"rdf-parser-abstract@0.3.0","_shasum":"ea01f6cc5ae68593325d44afc0b5483533023e2e","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.2.4","_npmUser":{"name":"bergos","email":"bergi@axolotlfarm.org"},"maintainers":[{"name":"bergos","email":"bergi@axolotlfarm.org"}],"dist":{"shasum":"ea01f6cc5ae68593325d44afc0b5483533023e2e","tarball":"https://registry.npmjs.org/rdf-parser-abstract/-/rdf-parser-abstract-0.3.0.tgz","integrity":"sha512-3z1IGHExa08yziBCDs0cfZ4MW9wIoN3yydX5kK8gO2vEwehwYtpw2nM4g9v3WapG2s2StIciEDK8QYpz4LLxqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbLVWdLHs1hkjSJACK/4AzLMRX7yL5xFNn9Z5prgtdTgIhAOhmKmmPNrO1vTgznNTd72uq4knvJGJxt67EiN54V8gE"}]},"directories":{},"deprecated":"This package is no longer maintained"},"0.3.1":{"name":"rdf-parser-abstract","version":"0.3.1","description":"Abstract base class for RDF Interface parser implementations","main":"index.js","scripts":{"lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/rdf-ext/rdf-parser-abstract.git"},"keywords":["rdf-parser","rdf","linked","data"],"author":{"name":"Thomas Bergwinkl","email":"bergi@axolotlfarm.org","url":"https://www.bergnet.org/people/bergi/card#me"},"license":"MIT","bugs":{"url":"https://github.com/rdf-ext/rdf-parser-abstract/issues"},"homepage":"https://github.com/rdf-ext/rdf-parser-abstract","dependencies":{"concat-stream":"^1.5.0","inherits":"^2.0.1"},"devDependencies":{"mocha":"^2.3.3","rdf-ext":"^0.3.0"},"gitHead":"d7cc107eb3ed180a989696c440317b2b0484d562","_id":"rdf-parser-abstract@0.3.1","_shasum":"182cf904ac0818511fc2e6d01479691c76e5dc39","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.5.0","_npmUser":{"name":"bergos","email":"bergi@axolotlfarm.org"},"dist":{"shasum":"182cf904ac0818511fc2e6d01479691c76e5dc39","tarball":"https://registry.npmjs.org/rdf-parser-abstract/-/rdf-parser-abstract-0.3.1.tgz","integrity":"sha512-urh/3ge6KjLGEXh3kKKOvWg3kznBOl/WHFbaXaekTXmxZMMx6M7Kr5vp5lAWzKowI+/VnyFgEgTpNPs8CagTTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEcOGQlpqcvk5a6xIs62WnWH6LwYN5wLrq6ouz3kJ8rcAiAWUuwa1AkynkcTND0HyCJUpgna8CJa6/kKa+9Zl/cOPw=="}]},"maintainers":[{"name":"bergos","email":"bergi@axolotlfarm.org"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/rdf-parser-abstract-0.3.1.tgz_1473257711852_0.4083620507735759"},"directories":{},"deprecated":"This package is no longer maintained"},"0.3.2":{"name":"rdf-parser-abstract","version":"0.3.2","description":"Abstract base class for RDF Interface parser implementations","main":"index.js","scripts":{"lint":"standard"},"repository":{"type":"git","url":"git+https://github.com/rdf-ext/rdf-parser-abstract.git"},"keywords":["rdf-parser","rdf","linked","data"],"author":{"name":"Thomas Bergwinkl","email":"bergi@axolotlfarm.org","url":"https://www.bergnet.org/people/bergi/card#me"},"license":"MIT","bugs":{"url":"https://github.com/rdf-ext/rdf-parser-abstract/issues"},"homepage":"https://github.com/rdf-ext/rdf-parser-abstract","dependencies":{"concat-stream":"^1.5.0","inherits":"^2.0.1","readable-stream":"^2.2.3"},"devDependencies":{"mocha":"^2.3.3","rdf-ext":"^0.3.0"},"gitHead":"772e378e3db76fc4866b7745f69ba18cf32951d5","_id":"rdf-parser-abstract@0.3.2","_shasum":"5a72066d0606879c1b5d6681002d202dcf3a5808","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"bergos","email":"bergi@axolotlfarm.org"},"maintainers":[{"name":"bergos","email":"bergi@axolotlfarm.org"}],"dist":{"shasum":"5a72066d0606879c1b5d6681002d202dcf3a5808","tarball":"https://registry.npmjs.org/rdf-parser-abstract/-/rdf-parser-abstract-0.3.2.tgz","integrity":"sha512-HiOtz8ONZxq/5s/j9uwJcMDu4Q9oOqn4DpC0kviY+aKqpT8BOG5dFVodPth7+VKMAw+5zIGRdP0G7t4GKBx6uw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmLaqWPpcPFZxxS6qJXVUkW3WilRzC2MOZG9uXiDRZpQIhAIiIyqKpN5AhAlHmWOpz4xrCFixPrhrZr4v+6Ll++imk"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/rdf-parser-abstract-0.3.2.tgz_1488617361429_0.543645759113133"},"directories":{},"deprecated":"This package is no longer maintained"}},"readme":"# rdf-parser-abstract\n\n[![Build Status](https://travis-ci.org/rdf-ext/rdf-parser-abstract.svg?branch=master)](https://travis-ci.org/rdf-ext/rdf-parser-abstract)\n[![NPM Version](https://img.shields.io/npm/v/rdf-parser-abstract.svg?style=flat)](https://npm.im/rdf-parser-abstract)\n\nAbstract base class for RDF-Interfaces parser implementations.\n\n## Usage\n\nThe `AbstractParser` class adds default implementations for `.parse(data, callback, base, filter, graph)` and `.stream(inputStream, base, filter)`.\nOnly the `.process(data, callback, base, filter, done)` method must be implemented.\n\nYour own parser hast to inherit from the abstract parser.\nFirst let's install the package.\nStart a terminal and run:\n\n\tnpm install rdf-abstract-parser --save\n\nNow let's start coding.\nTo inherit from the abstract parser, we have to load the inherits and the `AbstractParser` itself first:\n\n\tvar inherits = require('inherits')\n\tvar AbstractParser = require('rdf-abstract-parser')\n\nYour parser must accept the optional parameter `rdf` to use the given RDF environment.\nTo initialize the `AbstractParser`, you have to call the `AbstractParser` constructor in your own constructor.\n\n\tfunction YourParser (options) {\n\t  // use the given RDF environment or RDF-Ext if none was given\n\t  this.rdf = options.rdf || require('rdf-ext')\n\n    // call the AbstractParser constructor\n\t  AbstractParser.call(this, rdf)\n\t}\n\nAfter the constructor code you have to inherit with the `inherits` function.\n\n\tinherits(YourParser, AbstractParser)\n\nOnly the `.process` method is required to be implemented.\nThe `base` parameter is optional, let's check if it is given and createt a `NamedNode` from the string, so we can use it for the `graph` property for the quads.\nThe `filter` parameter is optional, so let's assign a accept all triples filter, if none was given.\nFinally you can implement your parser code.\nThe example code accepts strings with one triple per line and spo space separated and only named node without additional escaping.\nTo parse the string we only have to split the string per line and than split every line into spo.\nFor every spo we create a quad with the RDF environment and check if the filter accepts the quad.\nIf the filter accepts the quad we can forward it.\nThat's it, your parser is complete!\n\n\tYourParser.prototype.process = function (data, callback, base, filter, done) {\n\t  var self = this\n\n    // create a NamedNode if the base parameter is given\n    base = !!base ? null : self.rdf.createNamedNode(base.toString())\n\n\t  // use a accept all triples filter, if none was given\n\t  filter = filter || function () {\n\t    return true\n\t  }\n\n\t  // split string into triples\n\t  data.split('\\n').forEach(function (line) {\n\t    // split triple into spo\n\t    var spo = line.split(' ')\n\n\t    // create the Quad using the RDF environment\n\t    var quad = self.rdf.createQuad(\n\t      self.rdf.createNamedNode(spo[0]),\n\t      self.rdf.createNamedNode(spo[1]),\n\t      self.rdf.createNamedNode(spo[2]),\n\t      base)\n\n      // only forward the quad if the filter accepts it\n\t    if (filter(quad)) {\n\t      // forward the quad\n      \tcallback(quad)\n      }\n\t  })\n\t}\n","maintainers":[{"name":"bergos","email":"bergi@axolotlfarm.org"}],"time":{"modified":"2022-06-25T15:05:19.940Z","created":"2015-11-05T11:03:08.478Z","0.3.0-rc1":"2015-11-05T11:03:08.478Z","0.3.0":"2016-01-14T22:08:41.596Z","0.3.1":"2016-09-07T14:15:12.962Z","0.3.2":"2017-03-04T08:49:22.109Z"},"homepage":"https://github.com/rdf-ext/rdf-parser-abstract","keywords":["rdf-parser","rdf","linked","data"],"repository":{"type":"git","url":"git+https://github.com/rdf-ext/rdf-parser-abstract.git"},"author":{"name":"Thomas Bergwinkl","email":"bergi@axolotlfarm.org","url":"https://www.bergnet.org/people/bergi/card#me"},"bugs":{"url":"https://github.com/rdf-ext/rdf-parser-abstract/issues"},"license":"MIT","readmeFilename":"README.md"}