Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 231 → Rev 232

/trunk/scripts/modules/prometheus/Prometheus.php
3,7 → 3,7
* Exemple de lancement du script : /opt/lampp/bin/php cli.php ontologie -a analyser
*
*/
class Prometheus extends Script {
class Prometheus extends EfloreScript {
 
private $lecteur = null;
private $fichier = '';
35,11 → 35,19
 
public function executer() {
try {
$this->bdd = new Bdd();
$this->initialiserProjet('prometheus');
 
$this->fichier = realpath(dirname(__FILE__)).'/../../../donnees/prometheus/v1.00_2003-02-18/Ontology.xml';
// Lancement de l'action demandée
$cmd = $this->getParametre('a');
switch ($cmd) {
case 'chargerTous' :
$this->chargerStructureSql();
$this->lireFichierXml();
break;
case 'chargerStructureSql' :
$this->chargerStructureSql();
break;
case 'analyser' :
$this->vider();
$this->lireFichierXml();
46,6 → 54,9
break;
case 'vider' :
$this->vider();
case 'supprimerTous' :
$this->supprimerTous();
break;
default :
throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
}
438,9 → 449,9
}
 
private function insererLotDeTermes() {
$champs = implode(',', array('id_terme', 'ce_type', 'terme', 'definition', 'preference', 'ce_auteur', 'ce_publication', 'ce_image'));
$champs = implode(',', array('id_terme', 'ce_type', 'nom_en', 'description_en', 'preference', 'ce_auteur', 'ce_publication', 'ce_image'));
$values = $this->creerValues($this->lotsTermes);
$requete = "INSERT INTO prometheus_ontologie_terme_v1_00 ($champs) VALUES $values";
$requete = "INSERT INTO prometheus_ontologies_terme_v1_00 ($champs) VALUES $values";
$this->executerSql($requete);
}
 
447,7 → 458,7
private function insererLotDeRelations() {
$champs = implode(',', array('id_terme_01', 'id_terme_02', 'relation'));
$values = $this->creerValues($this->lotsRelations);
$requete = "INSERT INTO prometheus_ontologie_relation_v1_00 ($champs) VALUES $values";
$requete = "INSERT INTO prometheus_ontologies_relation_v1_00 ($champs) VALUES $values";
$this->executerSql($requete);
}
 
454,7 → 465,7
private function insererLotImages() {
$champs = implode(',', array('id_image', 'uri', 'ce_publication'));
$values = $this->creerValues($this->lotsImages);
$requete = "INSERT INTO prometheus_ontologie_image_v1_00 ($champs) VALUES $values";
$requete = "INSERT INTO prometheus_ontologies_image_v1_00 ($champs) VALUES $values";
$this->executerSql($requete);
}
 
461,7 → 472,7
private function insererLotDePublications() {
$champs = implode(',', array('id_publication', 'ce_auteur_principal', 'titre', 'date', 'uri'));
$values = $this->creerValues($this->lotsPublications);
$requete = "INSERT INTO prometheus_ontologie_publication_v1_00 ($champs) VALUES $values";
$requete = "INSERT INTO prometheus_ontologies_publication_v1_00 ($champs) VALUES $values";
$this->executerSql($requete);
}
 
468,7 → 479,7
private function insererLotAuteurs() {
$champs = implode(',', array('id_auteur', 'prenom', 'nom', 'naissance_date', 'deces_date'));
$values = $this->creerValues($this->lotsAuteurs);
$requete = "INSERT INTO prometheus_ontologie_auteur_v1_00 ($champs) VALUES $values";
$requete = "INSERT INTO prometheus_ontologies_auteur_v1_00 ($champs) VALUES $values";
$this->executerSql($requete);
}
 
475,7 → 486,7
private function insererLotHierarchie() {
$champs = implode(',', array('id_noeud', 'id_noeud_parent', 'chemin_noms', 'chemin_ids', 'ce_terme'));
$values = $this->creerValues($this->lotsHierarchie);
$requete = "INSERT INTO prometheus_ontologie_hierarchie_v1_00 ($champs) VALUES $values";
$requete = "INSERT INTO prometheus_ontologies_hierarchie_v1_00 ($champs) VALUES $values";
$this->executerSql($requete);
}
 
497,26 → 508,33
}
 
private function executerSql($requete) {
$this->bdd->requeter($requete);
$this->getBdd()->requeter($requete);
}
 
private function proteger($chaine) {
return $this->bdd->proteger($chaine);
return $this->getBdd()->proteger($chaine);
}
 
private function vider() {
$requete = 'TRUNCATE TABLE prometheus_ontologie_auteur_v1_00';
$requete = 'TRUNCATE TABLE prometheus_ontologies_auteur_v1_00';
$this->executerSql($requete);
$requete = 'TRUNCATE TABLE prometheus_ontologie_hierarchie_v1_00';
$requete = 'TRUNCATE TABLE prometheus_ontologies_hierarchie_v1_00';
$this->executerSql($requete);
$requete = 'TRUNCATE TABLE prometheus_ontologie_image_v1_00';
$requete = 'TRUNCATE TABLE prometheus_ontologies_image_v1_00';
$this->executerSql($requete);
$requete = 'TRUNCATE TABLE prometheus_ontologie_publication_v1_00';
$requete = 'TRUNCATE TABLE prometheus_ontologies_publication_v1_00';
$this->executerSql($requete);
$requete = 'TRUNCATE TABLE prometheus_ontologie_relation_v1_00';
$requete = 'TRUNCATE TABLE prometheus_ontologies_relation_v1_00';
$this->executerSql($requete);
$requete = 'TRUNCATE TABLE prometheus_ontologie_terme_v1_00';
$requete = 'TRUNCATE TABLE prometheus_ontologies_terme_v1_00';
$this->executerSql($requete);
}
 
private function supprimerTous() {
$requete = "DROP TABLE prometheus_meta, prometheus_ontologies_auteur_v1_00, prometheus_ontologies_hierarchie_v1_00,
prometheus_ontologies_image_v1_00, prometheus_ontologies_publication_v1_00, prometheus_ontologies_relation_v1_00,
prometheus_ontologies_terme_v1_00, prometheus_ontologies_type_v1_00";
$this->getBdd()->requeter($requete);
}
}
?>
/trunk/scripts/modules/prometheus/prometheus.ini
New file
0,0 → 1,12
version="1_00"
dossierTsv = "{ref:dossierDonneesEflore}prometheus/v1.00_2003-02-18/"
dossierSql = "{ref:dossierTsv}"
 
[tables]
ontologies = "prometheus_ontologies_v{ref:version}"
 
[fichiers]
structureSql = "prometheus_v1_00.sql"
 
[chemins]
structureSql = "{ref:dossierSql}{ref:fichiers.structureSql}"