public function groupGraphPattern() { $value = null; $t1 = null; $v = null; $t2 = null; $value = new Erfurt_Sparql_Query2_GroupGraphPattern(); try { $this->match($this->input, $this->getToken('OPEN_CURLY_BRACE'), self::$FOLLOW_OPEN_CURLY_BRACE_in_groupGraphPattern691); // Sparql10.g:127:22: (t1= triplesBlock )? $alt25 = 2; $alt25 = $this->dfa25->predict($this->input); switch ($alt25) { case 1: $this->pushFollow(self::$FOLLOW_triplesBlock_in_groupGraphPattern696); $t1 = $this->triplesBlock(); $this->state->_fsp--; $value->addElements($t1); break; } // Sparql10.g:128:3: ( (v= graphPatternNotTriples | v= filter ) ( DOT )? (t2= triplesBlock )? )* //loop29: do { $alt29 = 2; $LA29_0 = $this->input->LA(1); if ($LA29_0 >= $this->getToken('OPTIONAL') && $LA29_0 <= $this->getToken('GRAPH') || $LA29_0 == $this->getToken('FILTER') || $LA29_0 == $this->getToken('OPEN_CURLY_BRACE')) { $alt29 = 1; } switch ($alt29) { case 1: // Sparql10.g:128:5: (v= graphPatternNotTriples | v= filter ) $alt26 = 2; $LA26_0 = $this->input->LA(1); if ($LA26_0 >= $this->getToken('OPTIONAL') && $LA26_0 <= $this->getToken('GRAPH') || $LA26_0 == $this->getToken('OPEN_CURLY_BRACE')) { $alt26 = 1; } else { if ($LA26_0 == $this->getToken('FILTER')) { $alt26 = 2; } else { $nvae = new NoViableAltException("", 26, 0, $this->input); throw $nvae; } } switch ($alt26) { case 1: $this->pushFollow(self::$FOLLOW_graphPatternNotTriples_in_groupGraphPattern710); $v = $this->graphPatternNotTriples(); $this->state->_fsp--; break; case 2: $this->pushFollow(self::$FOLLOW_filter_in_groupGraphPattern716); $v = $this->filter(); $this->state->_fsp--; break; } $value->addElement($v); // Sparql10.g:129:13: ( DOT )? $alt27 = 2; $alt27 = $this->dfa27->predict($this->input); switch ($alt27) { case 1: $this->match($this->input, $this->getToken('DOT'), self::$FOLLOW_DOT_in_groupGraphPattern734); break; } // Sparql10.g:129:18: (t2= triplesBlock )? $alt28 = 2; $alt28 = $this->dfa28->predict($this->input); switch ($alt28) { case 1: $this->pushFollow(self::$FOLLOW_triplesBlock_in_groupGraphPattern740); $t2 = $this->triplesBlock(); $this->state->_fsp--; $value->addElements($t2); break; } break; default: break 2; //loop29; } } while (true); $this->match($this->input, $this->getToken('CLOSE_CURLY_BRACE'), self::$FOLLOW_CLOSE_CURLY_BRACE_in_groupGraphPattern749); } catch (RecognitionException $re) { $this->reportError($re); $this->recover($this->input, $re); } catch (Exception $e) { throw $e; } return $value; }
protected function _buildSubCheckQuery($uri, $setup) { $subVar = new Erfurt_Sparql_Query2_Var('subResourceUri'); $searchVar = new Erfurt_Sparql_Query2_Var('resourceUri'); //$classVar = new Erfurt_Sparql_Query2_Var('classUri'); $query = new Erfurt_Sparql_Query2(); $query->addProjectionVar($subVar); $query->setDistinct(); $this->_owApp->logger->info("data: " . print_r($query, true)); $elements = array(); $in = array(); $out = array(); if (isset($setup->config->hierarchyRelations->in)) { if (count($setup->config->hierarchyRelations->in) > 1) { // init union var $unionSub = new Erfurt_Sparql_Query2_GroupOrUnionGraphPattern(); // parse config gile foreach ($setup->config->hierarchyRelations->in as $rel) { // sub stuff $groupPattern = new Erfurt_Sparql_Query2_GroupGraphPattern(); // add triplen $groupPattern->addTriple($subVar, new Erfurt_Sparql_Query2_IriRef($rel), $searchVar); // add triplet to union var $unionSub->addElement($groupPattern); } $in[] = $unionSub; } else { $rel = $setup->config->hierarchyRelations->in; // add optional sub relation // create optional graph to load sublacsses of selected class $queryOptional = new Erfurt_Sparql_Query2_GroupGraphPattern(); $queryOptional->addTriple($subVar, new Erfurt_Sparql_Query2_IriRef($rel[0]), $searchVar); $in[] = $queryOptional; } } if (isset($setup->config->hierarchyRelations->out)) { if (count($setup->config->hierarchyRelations->out) > 1) { // init union var $unionSub = new Erfurt_Sparql_Query2_GroupGraphPattern(); // parse config gile foreach ($setup->config->hierarchyRelations->out as $rel) { // sub stuff $optPattern = new Erfurt_Sparql_Query2_OptionalGraphPattern(); // add triple $optPattern->addTriple($searchVar, new Erfurt_Sparql_Query2_IriRef($rel), $subVar); // add triplet to union var $unionSub->addElement($optPattern); } $out[] = $unionSub; } else { $rel = $setup->config->hierarchyRelations->out; // add optional sub relation // create optional graph to load sublacsses of selected class $queryOptional = new Erfurt_Sparql_Query2_GroupGraphPattern(); $queryOptional->addTriple($searchVar, new Erfurt_Sparql_Query2_IriRef($rel[0]), $subVar); $out[] = $queryOptional; } } $inout = new Erfurt_Sparql_Query2_GroupOrUnionGraphPattern(); $inout->addElements($in); $inout->addElements($out); $elements[] = $inout; /*$elements[] = new Erfurt_Sparql_Query2_Triple( $searchVar, new Erfurt_Sparql_Query2_IriRef(EF_RDF_TYPE), $classVar );*/ // add filter $elements[] = new Erfurt_Sparql_Query2_Filter(new Erfurt_Sparql_Query2_sameTerm($searchVar, new Erfurt_Sparql_Query2_IriRef($uri))); $query->addElements($elements); $query->setLimit(1); // log results $this->_owApp->logger->info('NavigationController CHECK SUB: ' . PHP_EOL . $query->__toString()); return $query; }