DATA_BASE, 'db_user' => USER_NAME, 'db_pwd' => USER_PASS, 'db_host' => SQL_SERVER, /* store */ 'store_name' => 'ontology', /* stop after 100 errors */ 'max_errors' => 100, 'store_strip_mb_comp_str' => 0 ); self::$store = new onto_store_arc2($onto_store_config); self::$store->set_namespaces(array( "skos" => "http://www.w3.org/2004/02/skos/core#", "dc" => "http://purl.org/dc/elements/1.1", "dct" => "http://purl.org/dc/terms/", "owl" => "http://www.w3.org/2002/07/owl#", "rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs" => "http://www.w3.org/2000/01/rdf-schema#", "xsd" => "http://www.w3.org/2001/XMLSchema#", "pmb" => "http://www.pmbservices.fr/ontology#" )); global $class_path; self::$store->load($class_path."/rdf/skos_pmb.rdf"); } } public static function get_store(){ self::init(); return self::$store; } /** * Exécute une nouvelle requête SPARQL sur le store de l'ontologie SKOS * @param query string
Requête SPARQL a lancer sur le store ARC2
* @return bool * @access public */ public static function query($query){ self::init(); return self::$store->query($query); } /** * Retourne le nombre de lignes de la dernière requete SPARQL sur le store de l'ontologie SKOS * @returnNombre de lignes pour la dernière requete
FALSE si le store n'est pas initialisé
Tableau du résultat pour la dernière requete
FALSE si le store n'est pas initialisé
URI de la classe associée
* @param property_uri stringURI de la propriéte dont on veut le label PMB
* @returnRetourne le label associé
* @access public */ public static function get_property_label($class_uri,$property_uri){ if(!isset(self::$labels[$class_uri])){ self::get_properties_labels($class_uri); } if(isset(self::$labels[$class_uri][$property_uri])){ return self::$labels[$class_uri][$property_uri]['label']; }else{ return $property_uri; } } /** * Retoune les labels PMB des propriétés d'une classe de l'ontologie SKOS. Interroge le store si nécessaire * @param class_uri stringURI de la classe associée
* @returnRetourne le tableau de labels associés
* @access public */ public static function get_properties_labels($class_uri){ // on trouve les libellés? if(!isset(self::$labels[$class_uri])){ //on recherche toutes les propriétés associés $query = "select * where { ?property rdf:typeURI de la classe associée
* @param property_uri stringURI de la propriéte dont on veut le label PMB
* @param default_label stringLibellé récupéré dans le store de l'ontologie
* @returnRetourne le libellé le plus approprié pour la propriété d'une classe de l'ontologie
* @access private */ private static function calc_label($class_uri, $property_uri,$default_label = ""){ global $msg; if(isset($msg['onto_skos_'.self::$labels[$class_uri][$property_uri]['pmb_name']])){ //le message PMB spécifique pour l'ontologie courante $label = $msg['onto_skos_'.self::$labels[$class_uri][$property_uri]['pmb_name']]; }else if (isset($msg['onto_common_'.self::$labels[$class_uri][$property_uri]['pmb_name']])){ //le message PMB générique $label = $msg['onto_common_'.self::$labels[$class_uri][$property_uri]['pmb_name']]; }else { $label = $default_label; } return $label; } }