(* Copyright (C) 2000, HELM Team. * * This file is part of HELM, an Hypertextual, Electronic * Library of Mathematics, developed at the Computer Science * Department, University of Bologna, Italy. * * HELM is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * HELM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HELM; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * * For details, see the HELM World-Wide-Web page, * http://cs.unibo.it/helm/. *) (* * *) open Dbconn;; open Utility;; open MathQL;; (* * implementazione della funzione NAME * * esempio: * name "cic:/Algebra/CC_Props/CC_CauchySeq.ind#xpointer(1/1/1)" = CC_CauchySeq *) let func_name value = try ( let i = Str.search_forward (Str.regexp "[^/]*\.") value 0 in let s = Str.matched_string value in let retVal = Str.string_before s ((String.length s) - 1) in retVal ) with Not_found -> "" ;; (* * *) let func_theory value = "" ;; (* * implementazione delle funzioni dublin core *) let func_dc (value, name) = let c = pgc () and p = helm_property_id name in pgresult_to_string (c#exec ("select t" ^ p ^ ".att1 from t" ^ p ^ " where " ^ "t" ^ p ^ ".att0 = '" ^ value ^ "'")) ;; (* * *) let apply_func f value = match f with MQName -> func_name value | MQTheory -> func_theory value | MQTitle -> func_dc (value, "title") | MQContributor -> func_dc (value, "contributor") | MQCreator -> func_dc (value, "creator") | MQPublisher -> func_dc (value, "publisher") | MQSubject -> func_dc (value, "subject") | MQDescription -> func_dc (value, "description") | MQDate -> func_dc (value, "date") | MQType -> func_dc (value, "type") | MQFormat -> func_dc (value, "format") | MQIdentifier -> func_dc (value, "identifier") | MQLanguage -> func_dc (value, "language") | MQRelation -> func_dc (value, "relation") | MQSource -> func_dc (value, "source") | MQCoverage -> func_dc (value, "coverage") | MQRights -> func_dc (value, "rights") | MQInstitution -> func_dc (value, "institution") | MQContact -> func_dc (value, "contact") | MQFirstVersion -> func_dc (value, "firstversion") | MQModified -> func_dc (value, "modified") ;;