-
Notifications
You must be signed in to change notification settings - Fork 89
SPARQL Endpoint Setup
ARC2 makes the creation of SPARQL endpoints very easy. There is a protocol-compliant endpoint class which can be used for HTTP-based data access:
/* ARC2 static class inclusion */
include_once('path/to/arc/ARC2.php');
/* MySQL and endpoint configuration */
$config = array(
/* db */
'db_host' => 'localhost', /* optional, default is localhost */
'db_name' => 'my_db',
'db_user' => 'user',
'db_pwd' => 'secret',
/* store name */
'store_name' => 'my_endpoint_store',
/* endpoint */
'endpoint_features' => array(
'select', 'construct', 'ask', 'describe',
'load', 'insert', 'delete',
'dump' /* dump is a special command for streaming SPOG export */
),
'endpoint_timeout' => 60, /* not implemented in ARC2 preview */
'endpoint_read_key' => '', /* optional */
'endpoint_write_key' => 'REPLACE_THIS_WITH_SOME_KEY', /* optional, but without one, everyone can write! */
'endpoint_max_limit' => 250, /* optional */
);
/* instantiation */
$ep = ARC2::getStoreEndpoint($config);
if (!$ep->isSetUp()) {
$ep->setUp(); /* create MySQL tables */
}
/* request handling */
$ep->go();
Instead of the go() method, which will automatically send HTTP headers and the query result , you can also do the processing manually (e.g. if you want to adjust the result somehow):
/* request handling */
$ep->handleRequest();
$ep->sendHeaders();
echo $ep->getResult();
In case of an empty request, the endpoint will generate an HTML form. Custom result formats such as SPARQL/JSON can be specified via HTTP Accept Headers, or by adding a "format" argument to the request URI.
The endpoint also supports a "jsonp" or "callback" parameter which will wrap JSON results in parentheses and prepend the passed parameter value (e.g. &callback=handleSPARQLResult).
API keys for read (select, ask, describe, construct, dump) and/or write (load, insert, delete) operations, can be passed via a "key" parameter.