Neutered Paranoid Meerkat

    TypeScript icon, indicating that this package has built-in type declarations

    2.0.1 • Public • Published

    RDF Serialize

    Build status Coverage Status npm version

    This library serializes RDF/JS quad streams to RDF streams based on content type.

    This is useful in situations where have a stream of RDF/JS quads, and you want to serialize them to a certain RDF serialization.

    The following RDF serializations are supported:

    Name Content type Extensions
    TriG application/trig .trig
    N-Quads application/n-quads .nq, .nquads
    Turtle text/turtle .ttl, .turtle
    N-Triples application/n-triples .nt, .ntriples
    Notation3 text/n3 .n3
    JSON-LD application/ld+json .jsonld

    Internally, this library makes use of RDF serializers from the Comunica framework, which enable streaming processing of RDF.

    Internally, the following fully spec-compliant serializers are used:


    $ npm install rdf-serialize


    $ yarn add rdf-serialize

    This package also works out-of-the-box in browsers via tools such as webpack and browserify.


    import rdfSerializer from "rdf-serialize";


    const rdfSerializer = require("rdf-serialize").default;


    Serializing by content type

    The rdfSerializer.serialize method takes in an RDFJS stream emitting RDF quads, and an options object, and outputs text stream containing RDF in a certain serialization.

    const streamifyArray = require('streamify-array');
    const stringifyStream = require('stream-to-string');
    const quad = require('rdf-quad');
    const quadStream = streamifyArray([
      quad('', '', ''),
      quad('', '', ''),
    const textStream = rdfSerializer.serialize(quadStream, { contentType: 'text/turtle' });
    // Handle the serialization in the streaming manner
        .on('error', (error) => console.error(error))
        .on('end', () => console.log('All done!'));
    // Or merge it in a single string.
    console.log(await stringifyStream(textStream));

    Serializing for file name

    Sometimes, you know the desired path/URL of the serialized RDF document, but not the content type. For those cases, this library allows you to provide the path/URL of the RDF document, using which the content type will be determined.

    For example, Turtle documents can be detected using the .ttl extension.

    const quadStream = streamifyArray([
      quad('', '', ''),
      quad('', '', ''),
    const textStream = rdfSerializer.serialize(quadStream, { path: '' });

    Getting all known content types

    With rdfSerializer.getContentTypes(), you can retrieve a list of all content types for which a serializer is available. Note that this method returns a promise that can be await-ed.

    rdfSerializer.getContentTypesPrioritized() returns an object instead, with content types as keys, and numerical priorities as values.

    // An array of content types
    console.log(await rdfSerializer.getContentTypes());
    // An object of prioritized content types
    console.log(await rdfSerializer.getContentTypesPrioritized());


    This software is written by Ruben Taelman.

    This code is released under the MIT license.


    npm i rdf-serialize

    DownloadsWeekly Downloads






    Unpacked Size

    33.2 kB

    Total Files


    Last publish


    • rubensworks