Ejemplo n.º 1
0
 /**
  *   Needs to be executed before getOrderifiedSqls and willBeDataDependent
  *
  *   @param SparqlEngineDb_SqlGenerator $sg  SQL generator object
  */
 public function setData($sg)
 {
     $this->arUsedVarTypes = $sg->getUsedVarTypes();
     $this->arUsedVarAssignments = $sg->getUsedVarAssignments();
     $this->arVarAssignments = $sg->getVarAssignments();
     $this->arUnionVarAssignments = $sg->arUnionVarAssignments;
     $this->_sg = $sg;
 }
Ejemplo n.º 2
0
 /**
  *   Set options to subobjects like SqlGenerator
  */
 protected function setOptions()
 {
     //allow changing the statements' table name
     if (isset($GLOBALS['RAP']['conf']['database']['tblStatements'])) {
         $this->sg->setStatementsTable($GLOBALS['RAP']['conf']['database']['tblStatements']);
     }
 }
Ejemplo n.º 3
0
 /**
  * Query the database with the given SPARQL query.
  *
  * @param Erfurt_SparqlQuery $query Parsed SPARQL query.
  * @param string $resultform Result form. If set to 'xml' the result will be
  * SPARQL Query Results XML Format as described in @link http://www.w3.org/TR/rdf-sparql-XMLres/.
  *
  * @return array/string  array of triple arrays, or XML. 
  * Format depends on $resultform parameter.
  */
 public function queryModel(Erfurt_Sparql_Query $query, $resultform = 'plain')
 {
     $this->query = $query;
     require_once 'Erfurt/Sparql/EngineDb/QuerySimplifier.php';
     $qsimp = new Erfurt_Sparql_EngineDb_QuerySimplifier();
     $qsimp->simplify($this->query);
     require_once 'Erfurt/Sparql/EngineDb/QueryOptimizer.php';
     $queryOptimizer = new Erfurt_Sparql_EngineDb_QueryOptimizer($this);
     $result = $queryOptimizer->optimize($this->query);
     if ($result instanceof Erfurt_Sparql_Query) {
         $this->query = $result;
     }
     $resultform = strtolower($resultform);
     switch ($resultform) {
         case 'xml':
             require_once 'Erfurt/Sparql/EngineDb/ResultRenderer/Xml.php';
             $rc = new Erfurt_Sparql_EngineDb_ResultRenderer_Xml();
             break;
             //require_once 'Erfurt/Exception.php';
             //throw new Erfurt_Exception('XML result format not supported yet.');
             //require_once 'Erfurt/Sparql/EngineDb/ResultRenderer/EfZendDb/Xml.php';
             //$this->rc = new Erfurt_Sparql_EngineDb_ResultRenderer_RapZendDb_Xml();
             //break;
         //require_once 'Erfurt/Exception.php';
         //throw new Erfurt_Exception('XML result format not supported yet.');
         //require_once 'Erfurt/Sparql/EngineDb/ResultRenderer/EfZendDb/Xml.php';
         //$this->rc = new Erfurt_Sparql_EngineDb_ResultRenderer_RapZendDb_Xml();
         //break;
         case 'extended':
             require_once 'Erfurt/Sparql/EngineDb/ResultRenderer/Extended.php';
             $rc = new Erfurt_Sparql_EngineDb_ResultRenderer_Extended();
             break;
         case 'json':
             require_once 'Erfurt/Sparql/EngineDb/ResultRenderer/Json.php';
             $rc = new Erfurt_Sparql_EngineDb_ResultRenderer_Json();
             break;
         case 'plain':
         default:
             require_once 'Erfurt/Sparql/EngineDb/ResultRenderer/Plain.php';
             $rc = new Erfurt_Sparql_EngineDb_ResultRenderer_Plain();
     }
     if (is_array($result)) {
         $result = $rc->convertFromDbResults($result['data'], $this->query, $this, $result['vars']);
         return $result;
     }
     require_once 'Erfurt/Sparql/EngineDb/SqlGenerator/Adapter/Ef.php';
     $this->sg = new Erfurt_Sparql_EngineDb_SqlGenerator_Adapter_Ef($this->query, $this->arModelIdMapping);
     require_once 'Erfurt/Sparql/EngineDb/TypeSorter.php';
     $this->ts = new Erfurt_Sparql_EngineDb_TypeSorter($this->query, $this);
     $this->_setOptions();
     $arSqls = $this->sg->createSql();
     #var_dump($arSqls);exit;
     $this->ts->setData($this->sg);
     return $rc->convertFromDbResults($this->_queryMultiple($this->ts->getOrderifiedSqls($arSqls)), $this->query, $this, $this->sg->arVarAssignments);
 }
Ejemplo n.º 4
0
 /**
  *   Needs to be executed before getOrderifiedSqls and willBeDataDependent
  *
  *   @param SparqlEngineDb_SqlGenerator $sg  SQL generator object
  */
 public function setData(SparqlEngineDb_SqlGenerator $sg)
 {
     $this->arUsedVarTypes = $sg->getUsedVarTypes();
     $this->arUsedVarAssignments = $sg->getUsedVarAssignments();
     $this->arVarAssignments = $sg->getVarAssignments();
 }