Example #1
0
 /**
  *   Query the database with the given SPARQL query.
  *
  *
  *   @param  Dataset       $dataset    RDF Dataset
  *   @param  Query         $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 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($dataset, Query $query, $resultform = false)
 {
     if (isset($GLOBALS['debugSparql']) && $GLOBALS['debugSparql']) {
         echo "\n" . 'SPARQL query: ' . $query->getQueryString() . "\n";
     }
     $this->query = $query;
     $this->dataset = $dataset;
     $qsimp = new SparqlEngineDb_QuerySimplifier();
     $qsimp->simplify($this->query);
     $this->sg = new SparqlEngineDb_SqlGenerator($this->query, $this->dbConn, $this->arModelIds);
     $this->rc = new SparqlEngineDb_ResultConverter($this->query, $this->sg, $this);
     $this->ts = new SparqlEngineDb_TypeSorter($this->query, $this->dbConn);
     $this->setOptions();
     if ($this->query->isEmpty()) {
         $vartable[0]['patternResult'] = null;
         return $this->returnResult($vartable, $resultform);
     }
     $arSqls = $this->sg->createSql();
     $this->ts->setData($this->sg);
     return SparqlEngineDb_ResultConverter::convertFromDbResults($this->queryMultiple($this->ts->getOrderifiedSqls($arSqls)), $this, $resultform);
 }
Example #2
0
echo "Resulting query: " . $query->getQueryString() . "<br/>";
assert("SELECT DISTINCT ##Object.* FROM ##Object LEFT OUTER JOIN ##Class ON ##Object.ID = ##Class.ObjectID WHERE ##Class.className = 'news'" == $query->getQueryString());
echo "Query with CriteriaGroup instead of only one Criteria<br/>";
$query = new Query("object");
$criteriaGroup = new CriteriaGroup(CriteriaGroup::getAndSeparator());
$criteria = new Criteria($query, "hits", "10", Criteria::lessEqualThanType());
$criteriaGroup->addCriterion($criteria);
$criteria = new Criteria($query, "hits", "1", Criteria::moreEqualThanType());
$criteriaGroup->addCriterion($criteria);
$query->setCriterion($criteriaGroup);
echo "Resulting query: " . $query->getQueryString() . "<br/>";
echo "Query with multiples Criteria Groups and an order<br/>";
$query = new Query("object");
$criteriaGroupRoot = new CriteriaGroup(CriteriaGroup::getAndSeparator());
$criteriaGroupOne = new CriteriaGroup(CriteriaGroup::getAndSeparator());
$criteria = new Criteria($query, "created", "2005-04-15", Criteria::lessThanType());
$criteriaGroupOne->addCriterion($criteria);
$criteriaGroupTwo = new CriteriaGroup(CriteriaGroup::getOrSeparator());
$criteria = new Criteria($query, "updatedBy", "1");
$criteriaGroupTwo->addCriterion($criteria);
$criteria = new Criteria($query, "updatedBy", "2");
$criteriaGroupTwo->addCriterion($criteria);
$criteriaGroupRoot->addCriterion($criteriaGroupOne);
$criteriaGroupRoot->addCriterion($criteriaGroupTwo);
$query->setCriterion($criteriaGroupRoot);
$order = new Order($query, "hits", Order::OrderTypeAsc());
$query->addOrder($order);
echo "Resulting query: " . $query->getQueryString() . "<br/>";
$rs = $query->execute();
echo "Executed query: ";
print_r($rs);