CSVW RDF Convertor - Documentation
    Preparing search index...

    Module @csvw-rdf-convertor/core

    @csvw-rdf-convertor/core

    The core library for bidirectional conversion between CSV-W (CSV on the Web) and RDF formats, with full W3C CSVW specification support and validation capabilities.

    • 🔄 Bidirectional conversion between CSVW and RDF formats
    • 📊 Multiple RDF serializations (Turtle, N-Triples, N-Quads, TriG, JSON-LD and RDF/XML)
    • CSVW validation against W3C specification
    • 🚀 Streaming support for large datasets
    • 🎯 Schema inference from RDF data
    • 📝 Template IRIs and custom prefix support
    • 🔧 Configurable options for fine-tuned conversion
    • 📋 Issue tracking with detailed error reporting
    npm install @csvw-rdf-convertor/core
    
    import { csvwDescriptorToRdf, Csvw2RdfOptions } from '@csvw-rdf-convertor/core';
    import fs from 'node:fs';

    const descriptor = JSON.parse(fs.readFileSync('metadata.json', 'utf8'));
    const options: Csvw2RdfOptions = {
    templateIris: true,
    minimal: false,
    resolveJsonldFn: yourJsonLdLoaderFunction
    };
    const rdfStream = csvwDescriptorToRdf(descriptor, options);

    // Process the RDF quads
    for await (const quad of rdfStream) {
    console.log(quad.subject.value, quad.predicate.value, quad.object.value);
    }

    import { rdfToCsvw, parseRdf, Rdf2CsvOptions } from '@csvw-rdf-convertor/core';
    import fs from 'node:fs';

    // Parse RDF data
    const rdfData = fs.readFileSync('data.ttl', 'utf8');
    const rdfStream = parseRdf(rdfData, 'text/turtle');
    const descriptorText = fs.readFileSync('descriptor.jsonld', 'utf8')
    // Convert to CSVW
    const options: Rdf2CsvOptions = {
    descriptor: descriptorText
    };

    const csvwStream = await rdfToCsvw(rdfStream, options);

    // Process the CSVW output
    csvwStream.pipe(process.stdout);
    import { validateCsvwFromDescriptor, Csvw2RdfOptions } from '@csvw-rdf-convertor/core';

    const descriptor = '{"@context": "http://www.w3.org/ns/csvw", ...}';
    const options: Csvw2RdfOptions = { baseIri: 'http://example.org/' };

    // Validate and collect issues
    for await (const issue of validateCsvwFromDescriptor(descriptor, options)) {
    console.log(`${issue.type}: ${issue.message}`);
    if (issue.location) {
    console.log(` at ${issue.location.line}:${issue.location.column}`);
    }
    }

    Options for CSVW to RDF conversion:

    interface Csvw2RdfOptions extends ConversionOptions {
    /** Use template IRIs instead of full URIs (default: false) */
    templateIris?: boolean;

    /** Generate minimal RDF output, omitting optional metadata (default: false) */
    minimal?: boolean;

    /** Function for loading CSV files */
    resolveCsvStreamFn?: ResolveCsvStreamFn;

    /** Function for loading .well-known/csvm files */
    resolveWkfFn?: ResolveWkfFn;
    }

    Options for RDF to CSVW conversion:

    interface Rdf2CsvOptions extends ConversionOptions {
    /** CSVW descriptor template for conversion */
    descriptor?: string | AnyCsvwDescriptor | TableGroupSchema;

    /** Use vocabulary metadata to enrich conversion (default: false) */
    useVocabMetadata?: boolean;

    /** Number of quads to process at once (default: auto) */
    windowSize?: number;

    /** Function for loading remote RDF data */
    resolveRdfFn?: ResolveRdfFn;
    }

    Base options for all conversions:

    interface ConversionOptions {
    /** Path replacement patterns [pattern, replacement] */
    pathOverrides?: [string | RegExp, string][];

    /** Base IRI for resolving relative references */
    baseIri?: string;

    /** Function for loading JSON-LD resources */
    resolveJsonldFn?: ResolveJsonldFn;

    /** Logging level (Error=0, Warn=1, Debug=2) */
    logLevel?: LogLevel;

    /** Caching interface for remote resources */
    cache?: FetchCacheInterface;
    }
    Format MIME Type Extension Streaming
    Turtle text/turtle .ttl
    N-Triples application/n-triples .nt
    N-Quads application/n-quads .nq
    TriG application/trig .trig
    JSON-LD application/ld+json .jsonld
    RDF/XML application/rdf+xml rdf, xml
    • Streaming: Use streaming APIs for large datasets to minimize memory usage
    • Window Size: Adjust windowSize for RDF to CSVW conversion based on available memory
    • Minimal Mode: Use minimal: true for faster conversion when metadata richness isn't required

    The library is written in TypeScript and provides comprehensive type definitions:

    Developer documentation available here: Dev doc Full API documentation is available online: https://s0ft1.github.io/CSVW-RDF-convertor/

    Modules

    index
    lib/conversion-options
    lib/csv-parser
    lib/csvw2rdf/convertor
    lib/csvw2rdf/public-api
    lib/descriptor
    lib/fetch-cache
    lib/loaders/parse
    lib/loaders/prefix-lookup
    lib/loaders/rdf-serialization
    lib/loaders/serialize
    lib/rdf2csvw/bindings-to-row-transformation
    lib/rdf2csvw/convertor
    lib/rdf2csvw/create-query
    lib/rdf2csvw/public-api
    lib/rdf2csvw/schema-inferrer
    lib/rdf2csvw/schema/column-schema
    lib/rdf2csvw/schema/table-group-schema
    lib/rdf2csvw/schema/table-schema
    lib/rdf2csvw/window-store
    lib/req-resolve
    lib/types/descriptor/column-description
    lib/types/descriptor/csvw.json
    lib/types/descriptor/datatype
    lib/types/descriptor/descriptor
    lib/types/descriptor/dialect-description
    lib/types/descriptor/expanded
    lib/types/descriptor/inherited-properties
    lib/types/descriptor/namespace
    lib/types/descriptor/schema-description
    lib/types/descriptor/table
    lib/types/descriptor/table-group
    lib/types/descriptor/top-level-props
    lib/types/descriptor/transformation-definition
    lib/types/modules/bcp47-validate
    lib/types/modules/ldml-number
    lib/utils/all-uris
    lib/utils/code-location
    lib/utils/coerce
    lib/utils/event-emitter
    lib/utils/expand-iri
    lib/utils/find-object-path
    lib/utils/format-boolean
    lib/utils/format-datetime
    lib/utils/format-number
    lib/utils/format-other
    lib/utils/issue-tracker
    lib/utils/parse-date
    lib/utils/parse-number
    lib/utils/prefix
    lib/utils/replace-url
    lib/utils/stream-to-array
    lib/utils/url-trimming
    lib/validation/column
    lib/validation/context
    lib/validation/datatype
    lib/validation/dialect
    lib/validation/foreign-key
    lib/validation/generic
    lib/validation/inherited-properties
    lib/validation/schema
    lib/validation/table
    lib/validation/table-group
    lib/validation/template