• Jump To … +
    IRIs.js N3DataFactory.js N3Lexer.js N3Parser.js N3Store.js N3StreamParser.js N3StreamWriter.js N3Util.js N3Writer.js index.js
  • N3Util.js

  • §

    N3Util provides N3 utility functions.

    import N3DataFactory from './N3DataFactory';
  • §

    Tests whether the given term represents an IRI

    export function isNamedNode(term) {
      return !!term && term.termType === 'NamedNode';
    }
  • §

    Tests whether the given term represents a blank node

    export function isBlankNode(term) {
      return !!term && term.termType === 'BlankNode';
    }
  • §

    Tests whether the given term represents a literal

    export function isLiteral(term) {
      return !!term && term.termType === 'Literal';
    }
  • §

    Tests whether the given term represents a variable

    export function isVariable(term) {
      return !!term && term.termType === 'Variable';
    }
  • §

    Tests whether the given term represents the default graph

    export function isDefaultGraph(term) {
      return !!term && term.termType === 'DefaultGraph';
    }
  • §

    Tests whether the given quad is in the default graph

    export function inDefaultGraph(quad) {
      return isDefaultGraph(quad.graph);
    }
  • §

    Creates a function that prepends the given IRI to a local name

    export function prefix(iri, factory) {
      return prefixes({ '': iri.value || iri }, factory)('');
    }
  • §

    Creates a function that allows registering and expanding prefixes

    export function prefixes(defaultPrefixes, factory) {
  • §

    Add all of the default prefixes

      const prefixes = Object.create(null);
      for (const prefix in defaultPrefixes)
        processPrefix(prefix, defaultPrefixes[prefix]);
  • §

    Set the default factory if none was specified

      factory = factory || N3DataFactory;
  • §

    Registers a new prefix (if an IRI was specified) or retrieves a function that expands an existing prefix (if no IRI was specified)

      function processPrefix(prefix, iri) {
  • §

    Create a new prefix if an IRI is specified or the prefix doesn’t exist

        if (typeof iri === 'string') {
  • §

    Create a function that expands the prefix

          const cache = Object.create(null);
          prefixes[prefix] = local => {
            return cache[local] || (cache[local] = factory.namedNode(iri + local));
          };
        }
        else if (!(prefix in prefixes)) {
          throw new Error(`Unknown prefix: ${prefix}`);
        }
        return prefixes[prefix];
      }
      return processPrefix;
    }