Class RdqlDbEngine

Description

This class performs as RDQL query on a DbModel.

Provided an rdql query parsed into an array of php variables and constraints at first the engine generates an sql statement and queries the database for tuples matching all patterns from the WHERE clause of the given RDQL query. Subsequently the result set is is filtered with evaluated boolean expressions from the AND clause of the given RDQL query.

  • access: public
  • author: Radoslaw Oldakowski <radol@gmx.de>
  • version: $Id: RdqlDbEngine.html,v 1.15 2006/06/26 12:34:21 tgauss Exp $

Located in /rdql/RdqlDbEngine.php (line 23)

Object
   |
   --RdqlEngine
      |
      --RdqlDbEngine
Variable Summary
array $parsedQuery
array $rsIndexes
Method Summary
array filterQueryResult (object ADORecordSet &$recordSet)
string generateSql (integer $modelID)
string generateSql_WhereClause (integer $modelID)
array &queryModel ( &$dbModel, array &$parsedQuery, [boolean $returnNodes = TRUE], object DbModel $dbModel)
array toNodes (array &$queryResult)
array toString (array &$queryResult)
array _convertRsRowToQueryResultRow (array &$record)
string _generateSql_SelectVar (string $varName,  &$index)
Variables
array $parsedQuery (line 52)

Parsed query variables and constraints.

  • var: ['selectVars'][] = ?VARNAME ['sources'][] = URI ['patterns'][]['subject']['value'] = VARorURI ['predicate']['value'] = VARorURI ['object']['value'] = VARorURIorLiterl ['is_literal'] = boolean ['l_lang'] = string ['l_dtype'] = string ['filters'][]['string'] = string ['evalFilterStr'] = string ['reqexEqExprs'][]['var'] = ?VARNAME ['operator'] = (eq | ne) ['regex'] = string ['strEqExprs'][]['var'] = ?VARNAME ['operator'] = (eq | ne) ['value'] = string ['value_type'] = ('variable' | 'URI' | 'Literal') ['value_lang'] = string ['value_dtype'] = string ['numExpr']['vars'][] = ?VARNAME ( [] stands for an integer index - 0..N )
  • access: private
array $rsIndexes (line 67)

When an RDQL query is performed on a DbModel, in first step the engine searches in database for triples matching the Rdql-WHERE clause. A recordSet is returned.

$rsIndexes maps select and filter variables to their corresponding indexes in the returned recordSet.

  • var: [?VARNAME]['value'] = integer ['nType'] = integer ['l_lang'] = integer ['l_dtype'] = integer
  • access: private
Methods
filterQueryResult (line 225)

Filter tuples containing variables matching all patterns from the WHERE clause of an RDQL query. As a result of a database query using ADOdb these tuples are returned as an ADORecordSet object, which is then passed to this function.

  • return: [][?VARNAME]['value'] = string ['nType'] = string ['l_lang'] = string ['l_dtype'] = string
  • access: private
array filterQueryResult (object ADORecordSet &$recordSet)
  • object ADORecordSet &$recordSet
generateSql (line 103)

Generate an SQL string to query the database for tuples matching all patterns of $parsedQuery.

  • access: private
string generateSql (integer $modelID)
  • integer $modelID
generateSql_FromClause (line 155)

Generate SQL FROM clause

  • access: private
string generateSql_FromClause ()
generateSql_SelectClause (line 119)

Generate SQL SELECT clause.

  • access: private
  • throws: PHPError
string generateSql_SelectClause ()
generateSql_WhereClause (line 172)

Generate an SQL WHERE clause

  • access: private
string generateSql_WhereClause (integer $modelID)
  • integer $modelID
queryModel (line 80)

Perform an RDQL Query on the given DbModel.

  • return: [][?VARNAME] = object Node (if $returnNodes = TRUE) OR array [][?VARNAME] = string
  • access: public
array &queryModel ( &$dbModel, array &$parsedQuery, [boolean $returnNodes = TRUE], object DbModel $dbModel)
  • object DbModel $dbModel
  • array &$parsedQuery: (the same format as $this->parsedQuery)
  • boolean $returnNodes
  • &$dbModel
toNodes (line 386)

Convert variable values of $queryResult to objects (Node).

  • return: [][?VARNAME] = object Node
  • access: private
array toNodes (array &$queryResult)
  • array &$queryResult: [][?VARNAME]['value'] = string ['nType'] = string ['l_lang'] = string ['l_dtype'] = string
toString (line 351)

Serialize variable values of $queryResult to string.

  • return: [][?VARNAME] = string
  • access: private
array toString (array &$queryResult)
  • array &$queryResult: [][?VARNAME]['value'] = string ['nType'] = string ['l_lang'] = string ['l_dtype'] = string

Redefinition of:
Object::toString()
Serializes a object into a string
_convertRsRowToQueryResultRow (line 485)

Converts a single row of ADORecordSet->fields array to the format of $queryResult array using pointers to indexes ($this->rsIndexes) in RecordSet->fields.

  • return: [?VARNAME]['value'] = string ['nType'] = string ['l_lang'] = string ['l_dtype'] = string
  • access: private
array _convertRsRowToQueryResultRow (array &$record)
  • array &$record: [] = string
_generateSql_SelectVar (line 423)

Generate a piece of an sql select statement for a variable.

Look first if the given variable is defined as a pattern object. (So you can select the node type, literal lang and dtype) If not found - look for subjects and select node label and type. If there is no result either go to predicates. Predicates are always resources therefore select only the node label.

  • access: private
string _generateSql_SelectVar (string $varName,  &$index)
  • string $varName
  • &$index

Inherited Methods

Inherited From RdqlEngine

RdqlEngine::writeQueryResultAsHtmlTable()

Inherited From Object

Object::toString()

Documentation generated on Mon, 26 Jun 2006 14:25:59 +0200 by phpDocumentor 1.3.0RC6