コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: savedata.php プロジェクト: klaffenboeck/contextus
<?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'];
    }
}