concepts[$row->order_concept] = new skos_concept($row->num_concept); } return true; } return false; } /** * Définit les concepts depuis un tableau de concepts passé en paramètre * @param skos_concept $concepts */ public function set_concepts($concepts) { $this->concepts = $concepts; } /** * Ajoute un concept au tableau de concepts * @param skos_concept $concept */ public function add_concept($concept) { $this->concepts[] = $concept; } /** * Retourne le tableau des concepts de la liste * @return skos_concept Tableau des concepts de la liste */ public function get_concepts() { return $this->concepts; } /** * Retourne le tableau des concepts de la liste triés par schémas * @return skos_concept Tableau des concepts de la liste */ public function get_concepts_by_schemes() { if (isset($this->concepts_by_schemes)) { return $this->concepts_by_schemes; } foreach ($this->concepts as $concept) { foreach ($concept->get_schemes() as $scheme_id => $scheme_label) { if (!isset($this->concepts_by_schemes[$scheme_id])) { $this->concepts_by_schemes[$scheme_id] = array( 'scheme_label' => $scheme_label, 'elements' => array() ); } $this->concepts_by_schemes[$scheme_id]['elements'][] = $concept; } } return $this->concepts_by_schemes; } /** * Retourne le tableau des concepts de la liste sans schémas * @return skos_concept Tableau des concepts de la liste */ public function get_concepts_without_sheme() { $concepts_no_schemes = array(); foreach ($this->concepts as $concept) { if(!count($concept->get_schemes())) { $concepts_no_schemes[] = $concept; } } return $concepts_no_schemes; } /** * Retourne les concepts composés qui utilisent un élément * @param int $element_id Identifiant de l'élément * @param string $element_type Type de l'élément (Disponible dans vedette.xml) * @return skos_concept Tableau de concepts composés */ public function set_composed_concepts_built_with_element($element_id, $element_type) { // On va chercher les vedettes construites avec l'élément $vedettes_ids = vedette_composee::get_vedettes_built_with_element($element_id, $element_type); foreach ($vedettes_ids as $vedette_id) { // On va chercher les concepts correspondant à chaque vedette if ($concept_id = vedette_composee::get_object_id_from_vedette_id($vedette_id, TYPE_CONCEPT_PREFLABEL)) { $this->concepts[] = new skos_concept($concept_id); } } if (!count($this->concepts)) { return false; } return true; } /** * Retourne les concepts utilisés dans un schéma par libellé de schéma * @param string $label Label du schéma * @return skos_concept Tableau de concepts */ public function set_concepts_from_scheme_label($label) { $query = "select ?concept where { ?scheme skos:prefLabel '".$label."' . ?concept skos:inScheme ?scheme }"; skos_datastore::query($query); if(skos_datastore::num_rows()){ $results = skos_datastore::get_result(); foreach($results as $key=>$result){ $this->concepts[] = new skos_concept(0,$result->concept); } } } /** * Retourne les concepts utilisés dans un schéma par uri de schéma * @param string $uri URI du schéma * @return skos_concept Tableau de concepts */ public function set_concepts_from_scheme_uri($uri) { $query = "select ?concept where { ?concept skos:inScheme <".$uri."> }"; skos_datastore::query($query); if(skos_datastore::num_rows()){ $results = skos_datastore::get_result(); foreach($results as $key=>$result){ $this->concepts[] = new skos_concept(0,$result->concept); } } } } // fin de définition de la classe index_concept