RDF::AllegroGraph::Server - AllegroGraph server handle
#-- orthodox approach my $server = new RDF::AllegroGraph::Server (ADDRESS => 'http://localhost:8080', AUTHENTICATION => 'joe:secret'); my @catalogs = $server->catalogs; #-- commodity # get handles to all models (repositories) at the server my @models = $server->models; # get one in particular my $model = $server->model ('/testcat/testrepo');
Objects of this class represent handles to a remote AllegroGraph HTTP server. Such a server can hold several catalogs and each of them can hold repositories. Here we also use the orthodox concept of a model which is simply one particular repository in one particular catalog.
For addressing one model we use a simple path structure, such as /testcat/testrepo
.
All methods die with protocol error
if they do not receive an expected success.
To get a handle to the AG server, you can instantiate this class. The following options are recognized:
ADDRESS
(no default)Specifies the REST HTTP address. Must be an absolute URL, without a trailing slash. The constructor dies otherwise.
AUTHENTICATION
(no default)String which must be of the form something:somethingelse
(separated by :
). That will be interpreted as username and password to do basic HTTP authentication against the server.
This method tries to figure out which protocol version the server talks. As the AG 3.x servers do not seem to support a dedicated endpoint, some guesswork is involved.
$server->ping
This method tries to connect to the server and will return 1
on success. Otherwise an exception will be raised.
@cats = $server->catalogs
This method lists the catalogs available on the remote server. The result is a list of relative paths.
%models = $server->models
This method lists all models available on the server. Returned is a hash reference. The keys are the model identifiers, all of the form /somecatalog/somerepository
. The values are repository objects.
$server->model ($mod_id, option1 => value1, ...)
This method tries to find an repository in a certain catalog. This model id is always of the form /somecatalog/somerepository
. The following options are understood:
MODE
(default: O_RDONLY
)This POSIX file mode determines how the model will be opened.
If the model already does exist, then an RDF::AllegroGraph::Repository object will be returned. If the specified catalog does not exist, then a no catalog
exception will be raised. Otherwise, if the repository there does not exist and the MODE
option is O_CREAT
, then it will be generated. Otherwise an exception cannot open repository
will be raised.
Robert Barta, <rho at devc.at>
Copyright 20(09|11) Robert Barta, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.