JSPM

  • Created
  • Published
  • Downloads 21555
  • Score
    100M100P100Q150145F
  • License MIT

Zazuko's RDF/JS Environment

Package Exports

  • @zazuko/env
  • @zazuko/env/Environment.js
  • @zazuko/env/index.js
  • @zazuko/env/lib/DatasetFactory.js
  • @zazuko/env/web.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@zazuko/env) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Zazuko's RDF/JS Environment

Like rdf-ext, with some additional features.

import env from '@zazuko/env'

// bind namespace to create named nodes
const tbbt = env.namespace('https://tbbt.tv/')

// use clownface for easy graph manipulation
const sheldonCooper = env.clownface()
  .namedNode(tbbt.sheldon)
  // use common vocabularies out-of-the box  
  .addOut(env.ns.rdf.type, env.ns.schema.Person)
  .addOut(env.ns.schema.knows, tbbt.leonard)

Browser usage

The main export includes rdf-dataset-ext package to extend the dataset's functionality. This package may cause issues in the browser, so you can import the @zazuko/env/web.js instead.

Additional features

Dataset

Static util functions

The dataset factory implemented by the main module environment provides some static utility functions from the rdf-dataset-ext package.

import { Stream, DatasetCore } from '@rdfjs/types'
import env from '@zazuko/env'

let stream: Stream

// shorthand for creating a dataset from a stream
const dataset: DatasetCore = await env.dataset.fromStream(stream)

// stream any DatasetCore
const streamFromCoreDataset: Stream = env.dataset.toStream(dataset)

// convert any DatasetCore to a canonical form
const canonicalQuads = env.dataset.toCanonical(dataset)

rdf-ext functionality

The provided DatasetCore implementation provides additional methods, matching the rdf-ext interface.

Serializing

It also includes a serialize method to easily get a string representation for supported formats. Serializers are not added out of the box and the need to be imported first

import rdf from '@zazuko/env'
import formats from '@rdfjs/formats'

rdf.formats.import(formats)

const dataset = rdf.dataset()

// create some data

const turtle = await dataset.serialize({ format: 'text/turtle' })

Extending environments

This package adds the ability to create environments on top of existing ones. To do that, pass the parent environment to the constructor options.

import env from '@zazuko/env';
import Environment from '@zazuko/env/Environment.js';
import MyFactory from './my-factory.js';

const myEnv = new Environment([MyFactory], { parent: env });

The myEnv will have all the factories from env and MyFactory.