	{ Cette extension de schema de structure decrit les informations
	necessaires a l application index.

	fusion des anciens schemas 
        RefIndex, RefOption, RefDesc et RefCrois  
	H. Richy  juillet 1992	}

STRUCTURE EXTENSION ExtIndex;

DEFPRES ExtIndexP;

STRUCT

   Marque_Index (ATTR  A_Vers_descripteur = REFERENCE(Descripteur);
                       NumeroMarque = Integer) = PAIR;

   Contenu = LIST OF (Unit\351 = UNIT);

   Car_Index =	BEGIN
		Titre_Car = LIST [0..*] OF (Car = TEXT);
		Contenu_Car = LIST [0..*] OF (Elem_Index);	
		END;

   Elem_Index =	BEGIN
              	Entr\351e;
	      ?	Suite_entr\351e = LIST [0..*] OF (Entr\351e1);
		END;

   Entr\351e =	BEGIN
		Terme (ATTR Niveau = Romain, Gras, Italique, ItalGras) 
                             = Contenu; 
             ?  Commentaire = Glose;
             ?  Liste_des_Ref = 
			BEGIN
		      ?	Liste_directe = LIST [0..*] OF (RefDirecte);
		      ?	Liste_crois\351e = LIST [0..*] OF (RefCrois\351e);
			END;
                END;

   RefCrois\351e =
	BEGIN
	RefCr (ATTR Force = Faible, Normal, Fort) 
               = REFERENCE (Entr\351e);
	Vers_crois\351e = REFERENCE (CCl\351s);
	END;

   RefDirecte =
	BEGIN	
      ? NoteNum = TEXT;
	PageNum	(ATTR Force) = 
	  CASE OF 
	  PageUnique
		(ATTR Vers_marque = REFERENCE (First Marque_Index)) 
 		= TEXT;
	  PageIntervalle =	
		BEGIN
		PageDebut 
		   (ATTR Vers_marque) 
			= TEXT;
		PageFin 
	 	   (ATTR Vers_marque_fin = 
			REFERENCE (Second Marque_Index))
			= TEXT;
		END;
          END;
        Vers_descripteur = REFERENCE (Cl\351s);
	END;

   Entr\351e1 = BEGIN
		Entr\351e;
	      ?	Suite_entr\351e1 = LIST [0..*] OF (Entr\351e2);
		END;

   Entr\351e2 = BEGIN
	 	Entr\351e;
	      ?	Suite_entr\351e2 = LIST [0..*] OF (Entr\351e3);
		END;

   Entr\351e3 = BEGIN
		Entr\351e;
		END;


EXTENS

	ROOT + (Marque_Index);
	Annexe - (Marque_Index);

ASSOC

	Descripteur (ATTR Vers_marque1 = REFERENCE(Marque_Index)) = 
           BEGIN
            Cl\351s (ATTR Valeur = faible, moyenne, forte)
		    = LIST [1..3] OF (Cl\351 = Contenu)
				WITH Valeur ? = moyenne;
         ?  Sujet = TEXT;
                { auteur, sujet,... => Niveau de Entr\351e dans Table_Index }
                {                   => Choix d une Table_Index specialisee }
         ?  S\351mantique = TEXT;
                { condition de fusion => separation des homographes }
         ?  Glose = Contenu ;
           END;

	Renvoi = 
           BEGIN
            CCl\351s (ATTR Valeur)
		    = LIST [1..3] OF (CCl\351 = Contenu)
				WITH Valeur ? = moyenne;
         ?  Sujet;
         ?  S\351mantique;
         ?  Glose;
            RenvoiCl\351s = REFERENCE(Cl\351s);
           END;

	Option = 
        BEGIN
        Idx_Titre (ATTR Tri = Alpha, Num, Typo, Personnel; 
		Pres_Renvoi = Par_page, Par_section;
		Pres_Terme = MAJUSCULES, Minuscules, 
			     Une_capitale, Des_capitales, Tel_quel;
 		Pres_Groupe = Visible, NonVisible) = 
		Titre_Index 
		WITH Tri ? = Alpha, 
                     Pres_Renvoi ? = Par_page, 
		     Pres_Terme ? = Une_capitale,
                     Pres_Groupe ? = Visible;
        Idx_Sujets  = LIST [0..4] OF (Idx_Sujet 
		(ATTR Pres_Sujet = Romain, Gras, Italique, ItalGras) = TEXT
		 WITH Pres_Sujet ? = Romain);
		       
      ? Idx_Intro = Intro_Index;
      ? Idx_Groupes =
		    LIST OF (Idx_Groupe =
			BEGIN
			Idx_CarGroupe = LIST [2..*] OF (Idx_CarElem = TEXT);
			END);
	END
      	- (Marque_Index);

   	Index_table (ATTR  Pres_Ref = Par_page, Par_section;
		      Pres_Car = Visible, NonVisible) = 
		BEGIN
		Titre_Index = Contenu;
	      ? Intro_Index = LIST OF (Paragraphe);
		Contenu_Index = LIST [0..*] OF (Car_Index);
		END;

EXCEPT

        EXTERN Titre:			1401;
	EXTERN Auteur:			1401;
        EXTERN Mots_cl\351s:		1401;
	EXTERN Titre_section:		1401;
	EXTERN Titre_du_chapitre:	1401;
	EXTERN Titre_abr\351g\351:	1401;

	EXTERN Importance:		1402;

	EXTERN Dossier:			1280;
	EXTERN Document:		1281;
				 
	EXTERN Section:			1200, 1201;
	EXTERN Note:			1217;
	EXTERN Ref_note:		1218;

	First Marque_Index:		1200, 1203;
	Second Marque_Index:		1200, 1204, NoCreate;
	A_Vers_descripteur:		1200, 1205, ActiveRef;
	NumeroMarque:			1200, 1206, Invisible;

	Index_table: 			1200, 1213, MoveResize, NoCreate, NoCut;
	Descripteur:			1200, 1214, MoveResize;
	Renvoi:				1200, 1215, MoveResize;
	Option:				1200, 1216, MoveResize;

	Cl\351:				1200, 1221, MoveResize;
	Valeur:				1200, 1222;
	Sujet:				1200, 1223, MoveResize;
	S\351mantique:			1200, 1227, MoveResize;
	Glose:				1200, 1228, MoveResize;
	Vers_marque1:			1200, 1229, ActiveRef, Invisible;

	RenvoiCl\351s:			1200, 1207, 1230, NoCut, NoCreate;
	CCl\351s:			MoveResize, NoCut;

	Elem_Index:			1200, 1240, MoveResize, NoCreate, NoCut;

	Car_Index: 			1200, 1242, MoveResize, NoCreate, NoCut;
	Liste_directe:			1200, 1243, MoveResize, NoCreate, NoCut;
	Liste_crois\351e:		1200, 1244, MoveResize, NoCreate, NoCut;
	PageUnique:			1200, 1245, MoveResize, NoCreate, NoCut;
	PageDebut:			1200, 1246, MoveResize, NoCreate, NoCut;
	Force:				1200, 1247;
	Liste_des_Ref:		 	1200, 1248, MoveResize, NoCreate, NoCut;
	Commentaire:			1200, 1249, MoveResize, NoCreate, NoCut;
	Car:				1200, 1250, MoveResize, NoCreate, NoCut;
	Suite_entr\351e:		1200, 1251, MoveResize, NoCreate, NoCut;
	Suite_entr\351e1:		1200, 1252, MoveResize, NoCreate, NoCut;
	Suite_entr\351e2:		1200, 1253, MoveResize, NoCreate, NoCut;
	RefCr:				1200, 1207, 1254, MoveResize, NoCreate, NoCut;

	Vers_marque:			1200, 1255, Invisible, ActiveRef;
	Vers_marque_fin:		1200, 1256, Invisible, ActiveRef;

	Pres_Ref:			1200, 1257, Invisible;
	Pres_Car:			1200, 1258, Invisible;
	PageIntervalle:			1200, 1259, MoveResize, NoCreate, NoCut;

	Contenu_Index:			1200, 1270, MoveResize, NoCreate, NoCut;
  	Intro_Index:			1200, 1271, MoveResize;
   	Niveau:				1200, 1272;
  	NoteNum:			1200, 1273, MoveResize, NoCreate, NoCut;
   	Vers_descripteur:		1200, 1274, MoveResize, NoCreate, NoCut;
	Titre_Index: 			1200, 1275, MoveResize, NoCreate, NoCut;

	Contenu_Car:			MoveResize, NoCreate, NoCut;
	Entr\351e:			MoveResize, NoCreate, NoCut;
	Terme:				MoveResize, NoCreate, NoCut;
	RefDirecte:			MoveResize, NoCreate, NoCut;
	RefCrois\351e:			MoveResize, NoCreate, NoCut;
	Vers_crois\351e:		MoveResize, NoCreate, NoCut;
	PageNum:			MoveResize, NoCreate, NoCut;
	PageFin:			MoveResize, NoCreate, NoCut;
	Entr\351e1:			MoveResize, NoCreate, NoCut;
	Entr\351e2:			MoveResize, NoCreate, NoCut;
	Entr\351e3:			MoveResize, NoCreate, NoCut;

	Pres_Sujet:			1200, 1261;
	Tri:				1200, 1262;
	Pres_Renvoi:			1200, 1263;
	Idx_CarGroupe:			1200, 1264, MoveResize;
	Pres_Groupe:			1200, 1265;
	Idx_CarElem:			1200, 1266, MoveResize;
	Pres_Terme:			1200, 1267;
        Idx_Intro:			1200, 1268, MoveResize;

END
