コード例 #1
0
ファイル: QueryEngine.php プロジェクト: whysasse/kmwiki
 /**
  * Get the output string for a query in debugging mode.
  *
  * @param Query $query
  *
  * @return string
  */
 public function getDebugQueryResult(Query $query)
 {
     $this->sortkeys = $query->sortkeys;
     $sparqlCondition = $this->compoundConditionBuilder->setSortKeys($this->sortkeys)->buildCondition($query->getDescription());
     $entries = array();
     if ($sparqlCondition instanceof SingletonCondition) {
         if ($sparqlCondition->condition === '') {
             // all URIs exist, no querying
             $sparql = 'None (no conditions).';
         } else {
             $condition = $this->compoundConditionBuilder->convertConditionToString($sparqlCondition);
             $namespaces = $sparqlCondition->namespaces;
             $sparql = $this->connection->getSparqlForAsk($condition, $namespaces);
         }
     } elseif ($sparqlCondition instanceof FalseCondition) {
         $sparql = 'None (conditions can not be satisfied by anything).';
     } else {
         $condition = $this->compoundConditionBuilder->convertConditionToString($sparqlCondition);
         $namespaces = $sparqlCondition->namespaces;
         $options = $this->getOptions($query, $sparqlCondition);
         $options['DISTINCT'] = true;
         $sparql = $this->connection->getSparqlForSelect('?' . self::RESULT_VARIABLE, $condition, $options, $namespaces);
     }
     $sparql = str_replace(array('[', ':', ' '), array('[', ':', ' '), $sparql);
     $entries['SPARQL Query'] = "<pre>{$sparql}</pre>";
     return QueryOutputFormatter::formatDebugOutput('SPARQLStore', $entries, $query);
 }
コード例 #2
0
ファイル: RedirectLookup.php プロジェクト: whysasse/kmwiki
 private function lookupResourceUriTargetFromDatabase(ExpNsResource $expNsResource)
 {
     $resourceUri = TurtleSerializer::getTurtleNameForExpElement($expNsResource);
     $rediUri = TurtleSerializer::getTurtleNameForExpElement(Exporter::getSpecialPropertyResource('_REDI'));
     $skeyUri = TurtleSerializer::getTurtleNameForExpElement(Exporter::getSpecialPropertyResource('_SKEY'));
     $federateResultSet = $this->connection->select('*', "{$resourceUri} {$skeyUri} ?s  OPTIONAL { {$resourceUri} {$rediUri} ?r }", array('LIMIT' => 1), array($expNsResource->getNamespaceId() => $expNsResource->getNamespace()));
     return $federateResultSet->current();
 }