|
From: <cw...@us...> - 2007-06-21 14:48:59
|
Revision: 462
http://rdfapi-php.svn.sourceforge.net/rdfapi-php/?rev=462&view=rev
Author: cweiske
Date: 2007-06-21 07:48:58 -0700 (Thu, 21 Jun 2007)
Log Message:
-----------
Fixing parser again and using query flattener in SparqlEngineDb
Modified Paths:
--------------
trunk/rdfapi-php/api/sparql/SparqlEngineDb/QuerySimplifier.php
trunk/rdfapi-php/api/sparql/SparqlEngineDb.php
trunk/rdfapi-php/api/sparql/SparqlParser.php
Modified: trunk/rdfapi-php/api/sparql/SparqlEngineDb/QuerySimplifier.php
===================================================================
--- trunk/rdfapi-php/api/sparql/SparqlEngineDb/QuerySimplifier.php 2007-06-21 14:08:44 UTC (rev 461)
+++ trunk/rdfapi-php/api/sparql/SparqlEngineDb/QuerySimplifier.php 2007-06-21 14:48:58 UTC (rev 462)
@@ -35,6 +35,7 @@
self::dropEmpty($arPatterns);
$arPlan = $this->createPlan($arPatterns);
if (count($arPlan) == 0) {
+ $query->setResultPart($arPatterns);
return 0;
}
@@ -142,9 +143,8 @@
/**
- * Removes all empty graph patterns from the
- * array.
- * Modifies it directly
+ * Removes all empty graph patterns from the array.
+ * Modifies it directly.
*/
protected static function dropEmpty(&$arPatterns)
{
@@ -153,6 +153,13 @@
unset($arPatterns[$nId]);
}
}
+
+ foreach ($arPatterns as $nId => &$pattern) {
+ $nParent = $pattern->getSubpatternOf();
+ if (!isset($arPatterns[$nParent])) {
+ $arPatterns[$nId]->setSubpatternOf(null);
+ }
+ }
//FIXME: continued indexes?
}//protected static function dropEmpty(&$arPatterns)
Modified: trunk/rdfapi-php/api/sparql/SparqlEngineDb.php
===================================================================
--- trunk/rdfapi-php/api/sparql/SparqlEngineDb.php 2007-06-21 14:08:44 UTC (rev 461)
+++ trunk/rdfapi-php/api/sparql/SparqlEngineDb.php 2007-06-21 14:48:58 UTC (rev 462)
@@ -1,6 +1,7 @@
<?php
require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngine.php';
require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngineDb/Offsetter.php';
+require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngineDb/QuerySimplifier.php';
require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngineDb/ResultConverter.php';
require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngineDb/SqlGenerator.php';
require_once RDFAPI_INCLUDE_DIR . 'sparql/SparqlEngineDb/SqlMerger.php';
@@ -115,6 +116,8 @@
{
$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);
Modified: trunk/rdfapi-php/api/sparql/SparqlParser.php
===================================================================
--- trunk/rdfapi-php/api/sparql/SparqlParser.php 2007-06-21 14:08:44 UTC (rev 461)
+++ trunk/rdfapi-php/api/sparql/SparqlParser.php 2007-06-21 14:48:58 UTC (rev 462)
@@ -569,8 +569,6 @@
}
if (is_int($subpattern)) {
$pattern->setSubpatternOf($subpattern);
- } else {
- $subpattern = $pattern->getId();
}
if ($graph != false) {
$pattern->setGraphname($graph);
@@ -605,6 +603,10 @@
$this->_fastForward();
break;
case "{":
+ if (!is_int($subpattern)) {
+ $subpattern = $pattern->getId();
+ }
+
$this->parseGraphPattern(
false, false, false, false, false, $subpattern
);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|