OWLIM-RUBY
This is a Semantic Web program which provides a front-end library and a command line tool for using the OWLIM (www.ontotext.com/owlim) triple store with ease. You need a remote or local OWLIM installation.
Install
gem install owlim-ruby
Usage as a command
owlim command [repository [arguments]]
Environmental variable
Specify your OWLIM server by the environmental variable ‘SESAME_URL’. Default is “localhost:8080/openrdf-sesame”.
for B shell:
export SESAME_URL="http://example.org/openrdf-sesame"
for C shell:
setenv SESAME_URL "http://example.org/openrdf-sesame"
Info commands
Show the Sesame OWLIM server URI in use.
owlim host
Show list of repositories.
owlim list
Show number of triples in a repository.
owlim size repository
CRUD commands
Create a new repository.
owlim create repository
Import a RDF file to a repository.
owlim import repository file [format]
Export contents of a repository in RDF (default is RDF/XML).
owlim export repository [format]
Clear the contents of a repository.
owlim clear repository
Drop a repository.
owlim drop repository
Valid formats for import and export
-
RDF/XML: “rdf” or “rdfxml”
-
Turtle: “ttl” or “turtle”
-
N3: “n3”
-
N-Triples: “nt”
-
TriX: “trix”
-
TriG: “trig”
-
Bionary RDF: “rdfbin”
If not specified, format will be guessed from the file name suffix for import.
Query commands
Show a list of pre-defined prefixes
owlim prefix
SPARQL query against a repository without pre-defined prefixes
owlim query repository "SPARQL" [format]
SPARQL query against a repository including pre-defined prefixes
owlim q repository "SPARQL" [format]
Search for literal objects by a keyword.
owlim find repository "keyword" [format]
Peek the triples in the store.
owlim head repository [limit [offset [format]]]
Results will be printed in a tabular text format by default.
Available alternative formats
-
“json” for “application/sparql-result+json”
-
“xml” for “application/sparql-result+xml”.
Help
owlim help
Examples
owlim host
owlim list
owlim create hoge
owlim import hoge ../hoge.ttl
owlim export hoge > hoge.rdf
owlim size hoge
owlim clear hoge
owlim drop hoge
owlim prefix
owlim q hoge 'select * where { ?s ?p ?o . } limit 1000'
owlim q hoge 'select * where { ?s ?p ?o . } limit 1000' json
owlim q hoge 'select * where { ?s ?p ?o . } limit 1000' xml
owlim query hoge 'select * where { ?s ?p ?o . } limit 1000'
owlim query hoge 'select * where { ?s ?p ?o . } limit 1000' json
owlim query hoge 'select * where { ?s ?p ?o . } limit 1000' xml
owlim find hoge "fuga"
owlim find hoge "fuga" json
owlim find hoge "fuga" xml
owlim head hoge
owlim head hoge 10
owlim head hoge 10 50
owlim head hoge 10 50 json
owlim head hoge 10 50 xml
Usage as a library
Enable this library.
require 'rubygems'
require 'owlim'
Create a server object. Argument is a URI of the OWLIM endpoint.
uri = "http://localhost:8080/openrdf-sesame"
owlim = OWLIM.new(uri)
Show the endpoint URI.
puts owlim.host
Show all repositories.
puts owlim.list
Show the size of a given repository.
puts owlim.size(repository)
Create new repository.
owlim.create(repository)
Import a RDF file into a repository.
owlim.import(repository, rdf_file)
owlim.import(repository, rdf_file, :format => "turtle")
The file format is automatically guessed by the suffix of a given file name. To specify the format, use :format => format option. Available formats are described in the “Valid formats for import and export” section above.
Export triples from a repository.
owlim.export(repository)
owlim.export(repository, :format => "turtle")
Clear a repository.
owlim.clear(repository)
Drop a repository.
owlim.drop(repository)
SPARQL query to a repository.
owlim.query(repository, sparql) {|x| print x}
or
result = owlim.query(repository, sparql)
Use :format => “xml” option to retrieve results in the SPARQL Query Results XML Format (www.w3.org/TR/rdf-sparql-XMLres/; “application/sparql-results+xml”) and use :format => “json” to retrieve in the JSON (www.w3.org/2001/sw/DataAccess/json-sparql/; “application/sparql-results+json”) format.
owlim.query(repository, sparql, :format => "xml") {|x| print x}
owlim.query(repository, sparql, :format => "json") {|x| print x}
or
result = owlim.query(repository, sparql, :format => "xml")
result = owlim.query(repository, sparql, :format => "json")
Search for a triple which has a keyword as a literal in its object and finds all relevant triples sharing the same subject.
owlim.find(repository, keyword) {|x| print x}
or
result owlim.find(repository, keyword)
Peak the triples in the store. By default, OWLIM adds 62 triples to the empty repository when created, so offset + 61 is used internally.
opts = {:limit => 50, :offset => 100, :format => "json"}
owlim.head(repository, opts) {|x| print x}
or
result = owlim.head(repository, opts)
With a :format option and a block, the search results will be immediately sent in a stream for “query”, “find” and “head” methods. In other cases, results are buffred and will not be returened until the search is completed.
Show formatted SPARQL prefixes.
puts owlim.prefix
Access current SPARQL prefixes.
owlim.prefix_hash.each {|pfx, uri| puts "PREFIX #{pfx}: <#{uri}>"}
Add a SPARQL prefix.
owlim.prefix_hash["vcard"] = "http://www.w3.org/2006/vcard/ns#"
Delete a SPARQL prefix.
owlim.prefix_hash.delete("skos")
Authors
-
Toshiaki Katayama (DBCLS; [email protected])
-
Tatsuya Nishizawa (IMSBIO)
License
This program is free software. You can redistribute it and/or modify it under the same terms as Ruby itself.