Exemple #1
0
 /**
  * fetches all titles according the given array if Uris
  *
  * @param array resourceUris
  */
 private function _fetchTitlesFromResourcePool($resourceUris)
 {
     $resourcePool = $this->_erfurtApp->getResourcePool();
     $resources = array();
     if (!empty($this->_model)) {
         $modelUri = $this->_model->getModelIri();
         $resources = $resourcePool->getResources($resourceUris, $modelUri);
     } else {
         $resources = $resourcePool->getResources($resourceUris);
     }
     $memoryModel = new Erfurt_Rdf_MemoryModel();
     foreach ($resources as $resourceUri => $resource) {
         $resourceDescription = $resource->getDescription();
         $memoryModel->addStatements($resourceDescription);
         $found = false;
         foreach ($this->_titleProperties as $titleProperty) {
             $values = $memoryModel->getValues($resourceUri, $titleProperty);
             foreach ($values as $value) {
                 if (!empty($value['lang'])) {
                     $language = $value['lang'];
                 } else {
                     $language = '';
                 }
                 $this->_resources[$resourceUri][$titleProperty][$language] = $value['value'];
             }
         }
     }
 }
 /**
  * Method that counts already existing distinct datasets for given uri
  *
  * @param $uri uri string
  *
  * @return int distinct existing datasets
  */
 private function countUriPattern($uri)
 {
     $query = new Erfurt_Sparql_Query2();
     $query->setDistinct(true);
     $unions = new Erfurt_Sparql_Query2_GroupOrUnionGraphPattern();
     $subjectVar = new Erfurt_Sparql_Query2_Var('s');
     $query->addProjectionVar($subjectVar);
     // create six temporary vars (not selected in query)
     $tempVars = array();
     for ($i = 0; $i < 6; $i++) {
         $tempVars[] = new Erfurt_Sparql_Query2_Var('var' . $i);
     }
     $singlePattern = new Erfurt_Sparql_Query2_GroupGraphPattern();
     $singlePattern->addTriple($subjectVar, $tempVars[0], $tempVars[1]);
     $unions->addElement($singlePattern);
     $singlePattern = new Erfurt_Sparql_Query2_GroupGraphPattern();
     $singlePattern->addTriple($tempVars[2], $subjectVar, $tempVars[3]);
     $unions->addElement($singlePattern);
     $singlePattern = new Erfurt_Sparql_Query2_GroupGraphPattern();
     $singlePattern->addTriple($tempVars[4], $tempVars[5], $subjectVar);
     $unions->addElement($singlePattern);
     $query->getWhere()->addElement($unions);
     $filter = new Erfurt_Sparql_Query2_ConditionalOrExpression();
     $filter->addElement(new Erfurt_Sparql_Query2_Regex($subjectVar, new Erfurt_Sparql_Query2_RDFLiteral('^' . $uri), new Erfurt_Sparql_Query2_RDFLiteral('i')));
     $query->addFilter($filter);
     $result = $this->_owApp->erfurt->getStore()->countWhereMatches($this->_model->getModelIri(), $query->getWhere(), 's', true);
     return $result;
 }
Exemple #3
0
 public function getDescription($options = array())
 {
     // merge given options into default options
     $options = array_merge(array('maxDepth' => self::DESCRIPTION_MAX_DEPTH), $options);
     $this->_description = Erfurt_App::getInstance()->getStore()->getResourceDescription($this->getIri(), $this->_model ? $this->_model->getModelIri() : false, $options);
     return $this->_description;
 }
Exemple #4
0
 /**
  * Constructor
  */
 public function __construct(Erfurt_Store $store, Erfurt_Rdf_Model $graph)
 {
     // system variables
     $this->_store = $store;
     $this->_config = OntoWiki::getInstance()->config;
     $this->_logger = OntoWiki::getInstance()->logger;
     $this->_eventDispatcher = Erfurt_Event_Dispatcher::getInstance();
     if (isset($this->_config->system->inference) && !(bool) $this->_config->system->inference) {
         $this->_inference = false;
     }
     // data variables
     $this->_graph = $graph->getModelIri();
     $this->_model = $graph;
     $this->_titleHelper = new OntoWiki_Model_TitleHelper($this->_model, $store);
     // $this->_titleProperties = array_flip($this->_config->properties->title->toArray());
     $this->_titleProperties = array_flip($graph->getTitleProperties());
 }