예제 #1
0
 public function testUndefinedVariableDetected()
 {
     $queryBuilder = new QueryBuilder(self::$prefixes);
     $queryBuilder->select('?email')->where('?person', 'test:name', '?name')->also('test:age', '?age');
     $this->setExpectedException('RangeException', '?email');
     $queryBuilder->getSPARQL();
 }
예제 #2
0
 public function getPropertyEntityIdValueMatches(PropertyId $propertyId, EntityId $valueId)
 {
     $propertyText = $propertyId->getSerialization();
     $valueText = $valueId->getSerialization();
     $queryBuilder = new QueryBuilder($this->config->get('WikidataQueryPrefixes'));
     $queryBuilder->select('?id')->where("?id", "wdt:{$propertyText}", "wd:{$valueText}");
     $queryExecuter = new QueryExecuter($this->config->get('WikidataQueryUrl'));
     $results = $queryExecuter->execute($queryBuilder->getSPARQL());
     return $this->parseResults($results);
 }
예제 #3
0
 public function testGetSPARQL_noPrefixes()
 {
     $queryBuilder = new QueryBuilder(array('foo' => 'bar'));
     $this->assertEquals('SELECT * WHERE { }', $queryBuilder->getSPARQL(false));
 }
예제 #4
0
 /**
  * Adds the given subquery.
  *
  * @param QueryBuilder $queryBuilder
  * @return self
  * @throws InvalidArgumentException
  */
 public function subquery(QueryBuilder $queryBuilder)
 {
     $this->subqueries[] = $queryBuilder->getSPARQL(false);
     $this->usageValidator->trackDefinedVariables(implode(' ', $queryBuilder->getSelects()));
     // @todo temp hack to add AS definitions to defined variables
     $regexHelper = new RegexHelper();
     $matches = $regexHelper->getMatches('AS \\{variable}', implode(' ', $queryBuilder->getSelects()));
     $this->usageValidator->trackDefinedVariables($matches);
     return $this;
 }