Skip to content
N3 parser that implements the RDFJS Sink interface
JavaScript
Branch: master
Clone or download
Pull request Compare This branch is 3 commits behind rdfjs-base:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
.npmrc
.travis.yml
README.md
index.js
package.json

README.md

@rdfjs/parser-n3

Build Status

npm version

N3 parser which implements the RDFJS Sink interface using the N3.js library.

Usage

The package exports the parser as a class, so an instance must be created before it can be used. The .import method, as defined in the RDFJS specification, must be called to do the actual parsing. It expects a Turtle, N-Triples or N-Quads string stream. The method will return a stream which emits the parsed quads. It also emits prefix events as defined in the RDFJS specification.

The constructor accepts an options object with the following optional keys:

  • baseIRI: Allows passing the base IRI manually to the N3.js library.
  • factory: Use an alternative RDFJS data factory. By default the reference implementation us used.

It's also possible to pass options as second argument to the .import method. The options from the constructor and the .import method will be merged together.

Example

This example shows how to create a parser instance and how to feed it with a stream from a string. The parsed quads and the prefixes are written to the console.

const ParserN3 = require('@rdfjs/parser-n3')
const Readable = require('stream').Readable

const parserN3 = new ParserN3()

const input = new Readable({
  read: () => {
    input.push(`
      PREFIX s: <http://schema.org/>

      [] a s:Person ;
        s:jobTitle "Professor" ;
        s:name "Jane Doe" ;
        s:telephone "(425) 123-4567" ;
        s:url <http://www.janedoe.com> .
    `)
    input.push(null)
  }
})

const output = parserN3.import(input)

output.on('data', quad => {
  console.log(`quad: ${quad.subject.value} - ${quad.predicate.value} - ${quad.object.value}`)
})

output.on('prefix', (prefix, ns) => {
  console.log(`prefix: ${prefix} ${ns.value}`)
})
You can’t perform that action at this time.