BlueSpice MediaWiki master
 All Classes Namespaces Files Functions Variables Groups Pages
QueryEngine

The QueryEngine handles the transformation of the ask query language into a SQL construct and is also responsible to return query results from the SQL back-end with the help of the following components:

  • The QuerySegmentListBuilder transforms ask descriptions into individual QuerySegment's (aka QuerySegmentList)
  • The DescriptionInterpreter interface describes classes that are responsible to interpret a specific Description object and turn it into an abstract SQL construct (a QuerySegment)
  • The QuerySegmentListProcessor flattens and transforms a list of QuerySegment's into a non-recursive tree of SQL statements (including resolving of property/category hierarchies)
  • The ConceptQueryResolver encapsulates query processing of a concept description in connection with the ConceptCache class

Overview

image

Examples

```php /**

$classDescription = new ClassDescription( new DIWikiPage( 'Foo', NS_CATEGORY ) );

/**

  • Equivalent to [[:+]]

$namespaceDescription = new NamespaceDescription( NS_MAIN );

/**

  • Equivalent to [[Foo::+]]

$someProperty = new SomeProperty( new DIProperty( 'Foo' ), new ThingDescription() );

/**

$description = new Conjunction( [ $namespaceDescription, $classDescription, $someProperty ] ); php $query = new Query( $description ); $query->setLimit( 10 );

$sqlStorefactory = new SQLStoreFactory( new SQLStore() );

$queryEngine = $sqlStorefactory->newMasterQueryEngine(); $queryResult = $queryEngine->getQueryResult( $query ); ```