http://4store.org/trac/wiki/Documentation
Installation
For Mac OS X with MacPorts? user.
git clone git@github.com:nakao/4store.git cd 4store ./configure
port install pkg-config port install raptor port install rasqal port install glib2 port install libxml2 port install pcre port install ncurses port instal readline port install zlib
+universal variant configuration may be useful. Install
./configure make make test
Making a Mac .dmg package
make macdmg
or
Install
sudo make install
Usage
4store Commands
$ ls /Applications/4store.app/Contents/MacOS/bin/ 4s-backend* 4s-cluster-create* 4s-httpd* 4s-backend-copy* 4s-cluster-destroy* 4s-import* 4s-backend-destroy* 4s-cluster-file-backup* 4s-info* 4s-backend-info* 4s-cluster-info* 4s-query* 4s-backend-passwd* 4s-cluster-replication-disable* 4s-resolve* 4s-backend-setup* 4s-cluster-start* 4s-restore* 4s-bind* 4s-cluster-stop* 4s-reverse-bind* 4s-cluster-cache* 4s-delete-model* 4s-size* 4s-cluster-copy* 4s-dump* 4s-update*
To setup a knowledge base (named demo) by 4s-backend-setup http://4store.org/trac/wiki/CreateDatabase
$ 4s-backend-setup demo 4store[39388]: backend-setup.c:176 erased files for KB demo 4store[39388]: backend-setup.c:301 created RDF metadata for KB demo
You can find the database files at /var/lib/4store/demo .
To boot a backend process by 4s-backend
4s-backend demo
To import triples by 4s-import http://4store.org/trac/wiki/ImportData
curl -O $ 4s-import -v demo data/tiger/tiger_features.rdf removing old data Reading <file:///Users/nakao/Applications/4store/4store/data/tiger/tiger_features.rdf>; Pass 1, processed 748 triples (748) Pass 2, processed 748 triples, 90250 triples/s Updating index Index update took 1.469478 seconds Imported 748 triples, average 505 triples/s
4s-query is a interactive query shell http://4store.org/trac/wiki/Query
$ 4s-query demo4store> SELECT * WHERE {?s ?p ?o} #EOQ ?s ?p ?o <http://www.census.gov/tiger/2002/CFCC/D85>; <http://www.w3.org/2000/01/rdf-schema#subClassOf>; <http://www.census.gov/tiger/2002/CFCC/D8>; <http://www.census.gov/tiger/2002/CFCC/F40>; <http://www.w3.org/2000/01/rdf-schema#subClassOf>; <http://www.census.gov/tiger/2002/CFCC/F4>; <http://www.census.gov/tiger/2002/CFCC/E0>; <http://www.w3.org/2000/01/rdf-schema#subClassOf>; <http://www.census.gov/tiger/2002/CFCC/E>;
Ctrl+D
To query in one-liner
$ 4s-query demo 'SELECT * WHERE { ?s ?p ?o } LIMIT 1' <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#">; <head> <variable name="s"/> <variable name="p"/> <variable name="o"/> </head> <results> <result> <binding name="s"><uri>http://www.census.gov/tiger/2002/CFCC/D85</uri></binding>; <binding name="p"><uri>http://www.w3.org/2000/01/rdf-schema#subClassOf</uri></binding>; <binding name="o"><uri>http://www.census.gov/tiger/2002/CFCC/D8</uri></binding>; </result> </results> </sparql>
in JSON format
$ 4s-query -f json demo 'SELECT * WHERE { ?s ?p ?o } LIMIT 1' {"head":{"vars":["s","p","o"]}, "results": { "bindings":[ {"s":{"type":"uri","value":"http://www.census.gov/tiger/2002/CFCC/D85";}, "p":{"type":"uri","value":"http://www.w3.org/2000/01/rdf-schema#subClassOf";}, "o":{"type":"uri","value":"http://www.census.gov/tiger/2002/CFCC/D8";}} ] }}
Serializing SPARQL Query Results in JSON
in SPARQL-RESULTS format
$ 4s-query -f sparql demo 'SELECT * WHERE { ?s ?p ?o } LIMIT 1' <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#">; <head> <variable name="s"/> <variable name="p"/> <variable name="o"/> </head> <results> <result> <binding name="s"><uri>http://www.census.gov/tiger/2002/CFCC/D85</uri></binding>; <binding name="p"><uri>http://www.w3.org/2000/01/rdf-schema#subClassOf</uri></binding>; <binding name="o"><uri>http://www.census.gov/tiger/2002/CFCC/D8</uri></binding>; </result> </results> </sparql>
SPARQL Query Results XML Format
in a text format
$ 4s-query -f text demo 'SELECT * WHERE { ?s ?p ?o } LIMIT 1' ?s ?p ?o <http://www.census.gov/tiger/2002/CFCC/D85>; <http://www.w3.org/2000/01/rdf-schema#subClassOf>; <http://www.census.gov/tiger/2002/CFCC/D8>;
in RDF test case format (Turtle)
$ 4s-query -f testcase demo 'SELECT * WHERE { ?s ?p ?o } LIMIT 1' @prefix rs: <http://www.w3.org/2001/sw/DataAccess/tests/result-set#>; . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>; . @prefix xsd: <http://www.w3.org/2001/XMLSchema#>; . [] rdf:type rs:ResultSet ; rs:resultVariable "s", "p", "o" ; rs:solution [ rs:binding [ rs:variable "s" ; rs:value <http://www.census.gov/tiger/2002/CFCC/D85> ] ; rs:binding [ rs:variable "p" ; rs:value <http://www.w3.org/2000/01/rdf-schema#subClassOf> ] ; rs:binding [ rs:variable "o" ; rs:value <http://www.census.gov/tiger/2002/CFCC/D8> ] ] .
4s-httpd for a SPARQL endpoint
$ 4s-httpd -p 8000 demo
RESTful interface
PUT
$ curl -T file.rdf http://localhost:8000/sparql/file.rdf
DELETE
$ curl -X DELETE http://localhost:8000/sparql/file.rdf
Note: http://4store.org/trac/wiki/TODO
Connecting from script language
http://4store.org/trac/wiki/ClientLibraries available php, python, ruby and Java (no Perl)
To install the ruby client
$ gem build 4store-ruby.gemspec WARNING: no rubyforge_project specified Successfully built RubyGem Name: 4store-ruby Version: 0.0.3 File: 4store-ruby-0.0.3.gem $ sudo gem install 4store-ruby-0.0.3.gem
Usage
>> require 'four_store/store' => true >> FourStore => FourStore >> FourStore::Store => FourStore::Store >> ep = FourStore::Store.new("http://localhost:8000/sparql/") => #<FourStore::Store:0x101763890 @endpoint=#<URI::HTTP:0x101763548 URL:http://localhost:8000/sparql/>>; >> res = ep.select("SELECT * WHERE { ?s ?p ?o } LIMIT 10") ?> " " => "\n" >> require 'pp' => true >> pp res [{"o"=>"http://www.census.gov/tiger/2002/CFCC/D8";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/D85";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/F4";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/F40";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/E";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/E0";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/B";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/B4";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/D2";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/D27";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/A";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/A5";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/A2";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/A21";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/H7";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/H70";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/B5";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/B52";}, {"o"=>"http://www.census.gov/tiger/2002/CFCC/D4";, "p"=>"http://www.w3.org/2000/01/rdf-schema#subClassOf";, "s"=>"http://www.census.gov/tiger/2002/CFCC/D43";}] => nil
Methods in FourStore::Store class.
>> FourStore::Store.instance_methods - Object.methods => ["delete", "add", "set", "select", "load"]