Command-Line Client (CLI)

The Dydra command-line client is a Ruby gem installable via RubyGems. This client has command-line functions for most of the REST and RPC APIs. You may never need to use it, but you can use it to easily write scripts to automate certain repository actions, and to use query results inside other, simple scripts.

Installing the Client

The client is installed via RubyGems. The client is tested on Ruby 1.8.7, 1.9.1, 1.9.2, and JRuby.

OS X

RubyGems is installed by default on OS X. Simply open a terminal ( Applications –> Utilities –> Terminal) and type:

$ sudo gem install dydra

You’ll be asked to enter your system password.

Windows

Windows users can install a working RubyGems environment with the Ruby installer at http://rubyinstaller.org/. If you have any trouble, there’s a wealth if tutorials for getting Ruby started on windows at https://github.com/oneclick/rubyinstaller/wiki/Tutorials

After installing Ruby via the Ruby Installer, run a shell (Win+R and type cmd) and type:

C:\Users\Administrator>gem update --system
Updating RubyGems
Nothing to update
C:\Users\Administrator>gem install dydra
Linux

Most Linux systems have Ruby and RubyGems easily available. For Ubuntu 10.x, we recommend the rubygems1.9.1 package. If you have another version of Ruby installed, that’s fine too.

After Ruby and RubyGems are installed, whatever package your distribution uses, type:

$ gem install dydra

The dydra command should now be available. If not, your distributions may require adjustments to your PATH environment variable to properly use RubyGems. Check your distribution’s RubyGems documentation.

Using the Client

The first time you run the Dydra command, you’ll be asked to authenticate. When you type your username and password, your API token will be saved to ~/.dydra/credentials and used for future commands.

$ dydra create foaf
Username or email: alice
Password:
alice/foaf

The client currently performs several basic operations at the command line.

Specifiying Repositories

After you log in with the client, your account name will be cached, and any command which specifies a repository will default to your own.

$ dydra count foaf
10 foaf
10 total
$

But you can always specify any repository to which you have access for any command by specifying the username:

$ dydra count bhuga/foaf
20 foaf
20 total
Repository Creation

Create a new repository with the create command:

$ dydra create foaf
$

This creates a repository for your account named foaf.

Importing

Imports a URL or local file into a repository.

$ dydra import foaf http://datagraph.org/jhacker/foaf.nt
completed: Completed at 2011-03-19 21:29:37 +0000
Querying

Runs a SPARQL query on a repository.

$ dydra query foaf 'select distinct ?s where { ?s ?p ?o }'
s
<http://datagraph.org/jhacker/#self>
<http://datagraph.org/jhacker/foaf>

Command-line sparql queries are output in a tab-delimited format for easy processing by further command-line tools. The first line will be a list of variables.

You can also get raw SPARQL results to feed in to an existing tool, if you choose. Add -x to get SPARQL-XML results.

$ dydra query foaf 'select distinct ?s where { ?s ?p ?o }' -x
<?xml version='1.0'?>
<sparql xmlns='http://www.w3.org/2005/sparql-results#'>
 <head>
  <variable>s</variable>
 </head>
 <results>
  <result>
   <binding name='s'><uri>http://datagraph.org/jhacker/#self</uri></binding>
  </result>
  <result>
   <binding name='s'><uri>http://datagraph.org/jhacker/foaf</uri></binding>
  </result>
 </results>
</sparql>

Add -j for SPARQL-JSON results.

$ dydra query foaf 'select distinct ?s where { ?s ?p ?o }' -j
{ "head": { "vars": [ "s" ] },
   "results": {
   "bindings": [
   { "s": {"type":"uri", "value":"http://datagraph.org/jhacker/#self"} },
   { "s": {"type":"uri", "value":"http://datagraph.org/jhacker/foaf"} } ] } }
Clearing a Repository

Clear a repository’s contents with the clear command:

$ dydra clear foaf
$
Counting Triples

Get a count of the triples in a repository with the count command:

$ dydra count foaf empty-repo
10 foaf
0 empty-repo
10 total
Listing Repositories

List your repositories, or those of another user, with the list command:

$ dydra list
foaf
empty-repo
$ dydra list bhuga
foaf
sparql-test
example
$
Deleting a Repository

Delete a repository permanently with the drop command:

$ dydra drop foaf
$

Client API

The Dydra gem can also be used as an API for writing Ruby programs.