static function deleteGraph($graph, $endpoint) { //FIXME Not sparql for 4store $s = new FourStore_Store($endpoint); $r = $s->delete($graph); if (!$r) { $msg = "Query delete Graph"; throw new Exception($msg); } }
private function runQuery($q, $qt = '', $infos = '') { /* ep */ $ep = $this->_arc2_RemoteStore->v('remote_store_endpoint', 0, $this->_arc2_RemoteStore->a); if (!$ep) { return $this->_arc2_RemoteStore->addError('No Endpoint defined.'); } /* prefixes */ $q = $this->_arc2_RemoteStore->completeQuery($q); /* custom handling */ $mthd = 'run' . $this->_arc2_RemoteStore->camelCase($qt) . 'Query'; if (method_exists($this, $mthd)) { return $this->_arc2_RemoteStore->{$mthd}($q, $infos); } if (in_array($qt, array('insert', 'delete'))) { if ($this->_readOnly) { return $this->_arc2_RemoteStore->addError('No right to write in the triplestore.'); } else { $s = new FourStore_Store($ep, $this->_debug); $r = $s->queryUpdate($q); if (!$r) { $errmsg = "Error unknown."; if (Net::ping($ep) == -1) { $errmsg = "Could not connect to " . $ep; } return $this->_arc2_RemoteStore->addError($errmsg); } } } else { $s = new FourStore_Store($ep, $this->_debug); $resp = $s->queryRead($q); if ($resp == "") { $errmsg = "Error unknown."; if (Net::ping($ep) == -1) { $errmsg = "Could not connect to " . $ep; } return $this->_arc2_RemoteStore->addError($errmsg); } if (preg_match_all('%<!--(.*error.*)-->%m', $resp, $errorResponse)) { $message4s = $errorResponse[1][0]; return $this->_arc2_RemoteStore->addError("4Store message : " . $message4s . "\n query :\n" . $q); } $parser = @ARC2::getSPARQLXMLResultParser(); $parser->parse('', $resp); $err = $parser->getErrors(); if ($err) { return $this->_arc2_RemoteStore->addError($err); } if ($qt == 'ask') { $bid = $parser->getBooleanInsertedDeleted(); $r = $bid['boolean']; } elseif ($qt == 'select' && !method_exists($parser, 'getRows')) { $r = $resp; } elseif ($qt == 'select') { $r = array('rows' => $parser->getRows(), 'variables' => $parser->getVariables()); } else { $r = $parser->getSimpleIndex(0); } unset($parser); } return $r; }
<?php require 'bc-fourstore-php/FourStore/FourStore_Store.php'; require 'bc-fourstore-php/FourStore/FourStore_StorePlus.php'; $adds = explode("\n", $_POST['addedTriples']); $changes = explode("\n", $_POST['changedTriples']); $deletes = explode("\n", $_POST['deletedTriples']); $baseURL = 'http://contextus.net/resource/midsum_night_dream/'; $autoGraphURL = $baseURL . 'auto/'; $userGraphURL = $baseURL . $_POST['idhash'] . '/'; $queryUser = '******' . $userGraphURL . '> WHERE { ?s ?p ?o }' . "\n"; $s = new FourStore_StorePlus('http://contextus.net:7000/sparql/'); $sWrite = new FourStore_Store('http://contextus.net:7000/sparql/'); $userGraph = array(); $results = $s->query($queryUser); $err = $s->getErrors(); if ($err) { print_r($err); throw new Exception(print_r($err, true)); } foreach ($results['result']['rows'] as $result) { addTripleToGraph($userGraph, $result); } $results = array(); if ($_POST['saveType'] == 'character') { $continueURL = 'exp_characteredit.php?idhash=' . $_POST['idhash']; } else { if ($_POST['saveType'] == 'location') { $continueURL = 'exp_locationedit.php?idhash=' . $_POST['idhash']; } }