(* Copyright (C) 2004, 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://helm.cs.unibo.it/ *) let position_prefix = "http://www.cs.unibo.it/helm/schemas/schema-helm#" (* let position_prefix = "" *) let inconcl_pos = position_prefix ^ "InConclusion" let mainconcl_pos = position_prefix ^ "MainConclusion" let mainhyp_pos = position_prefix ^ "MainHypothesis" let inhyp_pos = position_prefix ^ "InHypothesis" let inbody_pos = position_prefix ^ "InBody" type main_position = [ `MainConclusion of int option (* Pi depth *) | `MainHypothesis of int option (* Pi depth *) ] type position = [ main_position | `InConclusion | `InHypothesis | `InBody ] type pi_depth = int type metadata = [ `Sort of Cic.sort * main_position | `Rel of main_position | `Obj of string * position ] type constr = [ `Sort of Cic.sort * main_position list | `Rel of main_position list | `Obj of string * position list ] let constr_of_metadata: metadata -> constr = function | `Sort (sort, pos) -> `Sort (sort, [pos]) | `Rel pos -> `Rel [pos] | `Obj (uri, pos) -> `Obj (uri, [pos]) (** the name of the tables in the DB *) let sort_tbl_original = "refSort" let rel_tbl_original = "refRel" let obj_tbl_original = "refObj" let conclno_tbl_original = "no_inconcl_aux" let conclno_hyp_tbl_original = "no_concl_hyp" let name_tbl_original = "objectName" (** the names currently used *) let sort_tbl_real = ref sort_tbl_original let rel_tbl_real = ref rel_tbl_original let obj_tbl_real = ref obj_tbl_original let conclno_tbl_real = ref conclno_tbl_original let conclno_hyp_tbl_real = ref conclno_hyp_tbl_original let name_tbl_real = ref name_tbl_original (** the exported symbols *) let sort_tbl () = ! sort_tbl_real ;; let rel_tbl () = ! rel_tbl_real ;; let obj_tbl () = ! obj_tbl_real ;; let conclno_tbl () = ! conclno_tbl_real ;; let conclno_hyp_tbl () = ! conclno_hyp_tbl_real ;; let name_tbl () = ! name_tbl_real ;; (** to use the owned tables *) let ownerize_tables owner = sort_tbl_real := ( sort_tbl_original ^ "_" ^ owner) ; rel_tbl_real := ( rel_tbl_original ^ "_" ^ owner) ; obj_tbl_real := ( obj_tbl_original ^ "_" ^ owner) ; conclno_tbl_real := ( conclno_tbl_original ^ "_" ^ owner) ; conclno_hyp_tbl_real := ( conclno_hyp_tbl_original ^ "_" ^ owner) ; name_tbl_real := ( name_tbl_original ^ "_" ^ owner) ;;