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'];
             }
         }
     }
 }
Exemple #2
0
 /**
  * Returns a list of properties used by the current list of resources.
  * Original Name was getValues()
  * @return array
  */
 public function getAllProperties($inverse = false)
 {
     if (empty($this->_resources) && $this->_resourcesUptodate) {
         return array();
     }
     $pool = Erfurt_App::getInstance()->getResourcePool();
     $propertyUris = array();
     $memoryModel = new Erfurt_Rdf_MemoryModel();
     foreach ($this->_resources as $item) {
         $resourceUri = $item['value'];
         $resource = $pool->getResource($resourceUri, (string) $this->_model);
         if ($inverse == false) {
             $resourceDescription = $resource->getDescription();
             $memoryModel->addStatements($resourceDescription);
         } else {
             $resourceDescription = $resource->getDescription(array('fetchInverse' => true));
             $memoryModel->addStatements($resourceDescription);
             //remove s from memory model to extract only inverse relations
             $memoryModel->removeS($resourceUri);
         }
     }
     $predicates = $memoryModel->getPredicates();
     foreach ($predicates as $uri) {
         $propertyUris[] = array('uri' => $uri);
     }
     return $this->convertProperties($propertyUris);
 }