Die Link Tabellen
Allgemeines
Neben der Indizierung der Metadaten zur Suche wird auch über einen entsprechenden Event-Handler (MCRLinkTableEventHandler) dafür gesorgt, dass Verweise zwischen den einzelnen Metadaten-Objekten gesondert in einer Datenbanktabelle gespeichert werden. Über entsprechende Zugriffe sind so Abfragen von Referenzen und Zählungen möglich. Die Definition des Tabellennamens erfolgt in der Konfigurationsdatei mycore.private.properties
MCR.Persistence.LinkTable.Store.Table=MCRLINKHREF
Die Tabelle enthält die Spalten MCRFROM, MCRTO, MCRTYPE, MCRATTR.
- MCRFROM enthält die Quelladresse (Source) des Link (i.d.R. eine MCRObjectID).
- MCRTO enthält die Zieladresse (Target/Destination) des Link. Dies kann u. a. eine MCRObjectID sein. Links auf Kategorien von Klassifikationen werden in der Form {classid}##{categid} abgespeichert.
- MCRTYPE enthält den Typ des Links. Derzeit sind folgende Typen vorgesehen:
- parent – Link zu einem Elternobjekt
- child – Link zu einem Kindobjekt
- derivate – Link zu einem Derivate
- classid – Link zu einer Kategorie einer Klassifikation
- reference – Link zu einem anderen Metadaten-Objekt
- MCRATTR – derzeit nicht belegt
Zugriff via API
Der Zugriff auf die Link-Tabellen mittels API erfolgt über die Klasse org.mycore.datamodel.metadata.MCRLinkTableManager. Diese organisiert auch den Zugiff auf die Persistenz-Schicht durch Nutzung eines Interface.
MCRLinkTableManager LTM = MCRLinkTableManager.instance(); ArrayList to = LTM.getSourceOf(from,“reference“);

Abbildung 2.2: Klassendiagramm für die Link Tables
Zugriff über die Web-Schnittstellen
Für den Zugriff via Web stellt das System ein Servlet bereit. Dieses liefert als Rückgabewert ein mcr.results-XML-Objekt. Abhängig von der Angabe der Parameter from oder to enthält das Ergebnis die ID's der Ziel- oder Quellobjekte. Wird der Parameter type weggelassen, so ist 'reference' der Standardwert.
http://myhost/servlets/MCRLinkServlet?XSL.Style=xml&from=DocPortal_Document_00000001&type=derivate
Alternativ kann der Zugriff über den WebService erfolgen. Dies geschieht entweder über den URIResolver (Siehe Beschreibung des URIResolvers in diesem Handbuch) oder direkt als URL. Die WebService URL lautet dazu beispielsweise:
http://localhost:8481/services/MCRWebService?method=MCRDoRetrieveLinks&
to=TestPapyri_schrift_00000001


