Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cdli-api-client

Package Overview
Dependencies
Maintainers
0
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cdli-api-client

A client for the CDLI REST API

  • 0.1.6
  • latest
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

Framework API Client

Client for CDLI framework API.

  • Install
  • Getting started

Install

A prerequisite for this client is Node.JS and a package manager like npm, which usually comes with it.

npm install -g cdli-api-client

Or install it locally into an existing project:

npm install cdli-api-client

Alternatively, the command can be run with npx:

npx cdli-api-client --help

Getting started

Right now, the client supports two basic operations:

  • exporting parts of the database as linked data (or specifically N-Triples). The parts that can be chosen are the types of entities in the catalogue, such as artifacts, materials, proveniences, inscriptions and periods.
  • searching artifacts in the database.

Command-Line Interface

cdli [command]

Commands:
  cdli export  Export catalog and text data
  cdli search  Export catalog and text data

Options:
  --version          Show version number                               [boolean]
  --host, -h         Host URL to use for API calls
                         [string] [default: "https://cdli.mpiwg-berlin.mpg.de/"]
  --format, -f       File format
                  [choices: "ndjson", "csv", "tsv", "ntriples", "bibtex", "atf"]
  --output-file, -o  Output file (outputs to stdout by default)
  --help             Show help                                         [boolean]
Export
cdli export

Export catalog and text data

Options:
      --version      Show version number                               [boolean]
  -h, --host         Host URL to use for API calls
                        [string] [default: "https://cdli.mpiwg-berlin.mpg.de/"]
  -f, --format       File format
          [choices: "ndjson", "csv", "tsv", "ntriples", "ttl", "bibtex", "atf"]
  -o, --output-file  Output file (outputs to stdout by default)
      --help         Show help                                         [boolean]
  -e, --entities     Which types of entities to fetch
  [array] [choices: "abbreviations", "archives", "artifacts", "artifact-assets",
                          "artifacts-external-resources", "artifacts-materials",
      "entities-external-resources", "entities-names", "authors", "collections",
        "dynasties", "external-resources", "genres", "inscriptions", "journals",
  "languages", "locations", "materials", "material-aspects", "material-colors",
      "periods", "places", "proveniences", "publications", "regions", "rulers"]
                                                                  [default: []]
  -i, --index        Which index(es) to fetch              [array] [default: []]

So to export place-related entities from a locally-running framework instance you could do this:

cdli export \
  --host http://localhost:2354/ \
  --entities archives proveniences regions \
  --output-file places.nt

Fetching all artifacts from the live server could look like this:

cdli export \
  --host https://cdli.mpiwg-berlin.mpg.de/ \
  --entities artifacts \
  --format csv \
  --output-file artifacts.csv

Export all linked data:

cdli export \
  --host https://cdli.mpiwg-berlin.mpg.de/ \
  --entities abbreviations archives artifacts artifact-assets \
    artifacts-external-resources artifacts-materials authors collections \
    dynasties entities-external-resources entities-names external-resources \
    genres inscriptions journals languages locations materials material-aspects \
    material-colors periods places proveniences publications regions rulers \
  --format ntriples \
  --output-file all.nt
cdli search

Search artifacts in the catalog

Simple search:
  -q, --query                Search query                                [array]
      --queryCategory, --qc  Search category
        [array] [choices: "keyword", "publication", "collection", "provenience",
                               "period", "transliteration", "translation", "id"]
      --queryOperator, --qo  Search operator      [array] [choices: "AND", "OR"]

Advanced search:
      --advancedField, --af  Search field                                [array]
      --advancedQuery, --aq  Search query                                [array]

Filter:
      --filterField, --fk  Filter by field                               [array]
      --filterValue, --fv  Filter by value                               [array]

Options:
      --version      Show version number                               [boolean]
  -h, --host         Host URL to use for API calls
                         [string] [default: "https://cdli.mpiwg-berlin.mpg.de/"]
  -f, --format       File format
                  [choices: "ndjson", "csv", "tsv", "ntriples", "bibtex", "atf"]
  -o, --output-file  Output file (outputs to stdout by default)
      --help         Show help                                         [boolean]

Example:

cdli search -q holland --fk genre --fv "Official or display" -f tsv

Programming Interface

const CDLI = require('cdli-api-client')

const client = new CDLI.Client('http://localhost:2354/')

// process logging
client.on('log', msg => process.stderr.write(msg))

client.export(['archives', 'proveniences', 'regions' ], 'places.nt')
    .then(entities => {
        for (const { status, reason } of entities) {
            if (status === 'rejected') {
                console.error(reason)
            }
        }
    })

Keywords

FAQs

Package last updated on 27 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc