Agora System
2.3.2 Agora index - 'index.xml'
In 'index.xml' definiert der Benutzer den Indexaufbau der Agora Anwendung. Er legt fest, nach welchen Elementen und nach welchen Attributen im der fertigen Anwendung gesucht werden soll. Zusätzlich bestimmt er, ob ein Volltext-Index für die Recherche im Textbestand aufgebaut werden soll. Der Aufbau von 'index.xml' ist einfach. Es gibt eine Liste der Indices und einen Liste für die Formatierungen der Recherchedaten.
-
1. <formatter-list> - für die Formatierung der Objekte
-
2. <index-list> - für die Behandlung des Index
Beispiel für eine <formatter-list>:
<formatter-list>
<formatter name="f1">
<filter type="TranslateGermanUmlautAccent" />
</formatter>
</formatter-list>
Im Beispiel wird ein Formatierer f1 definiert, der einen Filter aufweist: TranslateGermanUmlautAccent. Dieser Filter erzeugt einen Index, der alle deutschen Umlaute auf ihren Grundvokal reduziert, d. h. in der späteren Recherche werden Umlaute ignoriert. Es können sowohl pro <formatter> mehrere <filter> eingetragen werden, als pro <formatter-list> mehrere <formatter>-Typen.
Die <index-list> enthält die Zusammenstellung aller Indices. Der Benutzer kann diese Indices beliebig festlegen. Als Index können sowohl die in der 'docstrct.xml' definierten Elemente als auch die Attribute verwendet werden. Üblicherweise unterscheidet man daher die Bereiche Element-Index und Attribut-Index. In beiden Bereichen können mehrere Indices zu einem übergreifenden Index zusammengefaßt werden. Alles was in der <index-list> als Index aufgeführt wird, kann dann innerhalb der Webanwendung zur Recherche benutzt werden.
Beispiel Element-Index:
... <index name="Volume"> <collection-ref ref="c1" /> <element-ref ref="Volume" /> </index> ...
Hier wird ein Index 'Volume' definiert, der sich auf die Repository-Kollektion 'c1' bezieht und das Element 'Volume' umfaßt. 'Element'-Indices werden als Bool'sche Werte gespeichert, d. h. in der Websuche können sie auf ihr Vorhandensein bzw. Nicht-Vorhandensein abgefragt werden - üblicherweise in Kombination mit einem Attribut-Index. Ein Beispiel wäre die Prüfung, ob ein Attributwert (z. B. ein bestimmter Titeleintrag) in Kombination mit einem bestimmten Element-Index (z. B. im Index 'Kapitel') einen Treffer ergibt.
Beispiel zusammengefaßter Element-Index:
... <index name="AllElements"> <name xml:lang="en">all elements</name> <collection-ref ref="c1" /> <element-ref ref="Volume" /> <element-ref ref="Cover" /> <element-ref ref="TitlePage" /> <element-ref ref="TableOfContents" /> <element-ref ref="Article" /> <element-ref ref="Annex" /> <element-ref ref="Review" /> </index> ...
Der Index 'AllElements' wird für eine englischsprachige Benutzeroberfläche mit dem Namen ' all elements' versehen. Der Index umfaßt alle aufgeführten Elemente.
Beispiel Attribut-Index:
...
<index name="Keyword" sortable="yes">
<collection-ref ref="c1" />
<attribute-ref ref="Keyword">
<formatter-ref ref="f1" />
</attribute-ref>
</index>
...
Der Index 'Keyword' wird als 'sortierbar' definiert, d. h. das bzw. die mit diesem Index assoziierten Attribut(e) können z. B. im der Trefferliste sortiert (alphabetisch) ausgegeben werden. Der Beispielindex ist nur mit einem Attribut 'Keyword' ausgestattet. Die jeweiligen Werte dieses Attributs werden entsprechend dem Formatierer 'f1' ausgerichtet
Beispiel zusammengefaßter Attribut-Index:
...
<index name="Title" sortable="yes">
<collection-ref ref="c1" />
<attribute-ref ref="Title">
<formatter-ref ref="f1" />
</attribute-ref>
<attribute-ref ref="SubTitle">
<formatter-ref ref="f1" />
</attribute-ref>
<attribute-ref ref="TitleOfVolume">
<formatter-ref ref="f1" />
</attribute-ref>
</index>
...
Der Index 'Title' subsumiert die Attribute 'Title', 'SubTitle' und 'TitleOfVolume'.
Sonderfall Fulltext-Index:
...
<index name="Fulltext">
<name xml:lang="en">fulltext</name>
<collection-ref ref="c1" />
<element-ref ref="Agora:Page" />
<resource-ref ref="text/xml/fulltext/internal">
<formatter-ref ref="f1" />
</resource-ref>
</index>
...
Der Index 'Fulltext' bezieht sich auf Textinformationen, die z. B. aufgrund einer OCR erzeugt worden sind. Um diese Texte in Verbindung mit einem gescannten Images recherchierfähig zu machen, muss 'Fulltext' mit dem speziellen Agora-Element 'Agora:Page', d. h. mit der sozusagen untersten Elementebene 'Dokumentseite' verknüpft werden. Die referenzierte Resource 'text/xml/fulltext/internal' stellt, zusammen mit der Textinformation, auch die Information zur Verfügung, wo auf der digitalisierten Seite sich der jeweilige Text befindet. Dies ist die Voraussetzung für das sog. Highlighting-on-Facsimile-Verfahren, das einen gefundenen Text auf einer digitalisierten Seite markieren kann.