Command line interface

CLI scripts can be used perform all actions available in the UI

LinkedDataHub CLI wraps the HTTP API into a set of shell scripts with convenient parameters. The scripts should run on any Unix-based system. They can be used for testing, automation, scheduled execution and such. It is usually much quicker to perform actions using CLI rather than the user interface, as well as easier to reproduce.

Some scripts correspond to a single request to LinkedDataHub, others combine others into tasks with multiple interdependent requests, such as CSV import.

You will need to supply a .pem file of your WebID certificate as well as its password as script arguments, among others.

The CLI scripts use the environmental variable $SCRIPT_ROOT, which should point to the scripts in your LinkedDataHub fork.

They also use the Jena's CLI commands internally, so make sure to have them on $PATH before running the scripts.

Parameters

Common parameters used by most scripts include:

-f
--cert-pem-file
.pem file with the WebID certificate of the agent
-p
--cert-password
Password of the WebID certificate
-b
--base
Base URI of the application
--proxy
The host this request will be proxied through (optional)
It can be used with port 5443 for which the client certificate authentication is always enabled, for example --proxy https://localhost:5443/

Other parameters are script-specific.

Usage

A usage message with parameters of a script is printed when the scripted is run without any arguments. There can be named parameters and default parameters, both of those can be optional. For example:

~/WebRoot/AtomGraph/LinkedDataHub/scripts$ ./create-select.sh
Creates a SPARQL SELECT query.

Usage:  ./create-select.sh options

Options:
  -f, --cert-pem-file CERT_FILE        .pem file with the WebID certificate of the agent
  -p, --cert-password CERT_PASSWORD    Password of the WebID certificate
  -b, --base BASE_URI                  Base URI of the application
  --proxy PROXY_URL                    The host this request will be proxied through (optional)

  --title TITLE                        Title of the chart
  --description DESCRIPTION            Description of the chart (optional)
  --slug STRING                        String that will be used as URI path segment (optional)
  --fragment STRING                    String that will be used as URI fragment identifier (optional)

  --query-file ABS_PATH                Absolute path to the text file with the SPARQL query string
  --service SERVICE_URI                URI of the SPARQL service specific to this query (optional)

The optional parameters are marked with (Optional). In this case there is no default argument, but some scripts require document (named graph) URI as the default parameter, e.g. ontology document URL.

This is how a create-select.sh invocation would look like:

./create-select.sh \
  -b "$base" \
  -f "$cert_pem_file" \
  -p "$cert_password" \
  --proxy "$proxy" \
  --title "Select concepts" \
  --slug select-concepts \
  --query-file "$pwd/queries/select-concepts.rq"

Scripts

Currently supported:

Purpose Script
General
Create document create-document.sh
Update document update-document.sh
Create container create-container.sh
Create item create-item.sh
Create result set chart create-result-set-chart.sh
Create SELECT query create-select.sh
Imports
Create file imports/create-file.sh
Create query imports/create-query.sh
Create CSV import imports/create-csv-import.sh
Import CSV data imports/import-csv.sh
Administration
Add owl:import to ontology admin/add-ontology-import.sh
Clear and reload ontology admin/clear-ontology.sh
Access control
Add agent to group admin/acl/add-agent-to-group.sh
Create authorization admin/acl/create-authorization.sh
Create group admin/acl/create-group.sh
Make application publicly readable to any agent admin/acl/make-public.sh
Model
Create class admin/model/create-class.sh
Create CONSTRUCT query admin/model/create-construct.sh
Create ontology admin/model/create-ontology.sh
Create property constraint admin/model/create-property-constraint.sh
Create SELECT query admin/model/create-select.sh
Import ontology admin/model/import-ontology.sh

Usage example:

./create-file.sh https://linkeddatahub.com/my-context/my-dataspace/ \
  -f "${cert_pem_file}" \
  -p "${cert_password}" \
  --title "Friends" \
  --file-slug 646af756-a49f-40da-a25e-ea8d81f6d306 \
  --file friends.csv \
  --file-content-type text/csv

See also the Import CSV data tutorial.

Find the CLI scripts on GitHub or check out the demo apps that use them.