User Tools

Site Tools


libcoll_zope

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

libcoll_zope [2007/05/30 10:42] (current)
Line 1: Line 1:
 +[[Library Workflows|↩ Library Workflows]]
  
 +===== Libcoll-Management in Zope =====
 +
 +**Hinter [[Libcoll]] steckt Zope ("Z Object Publishing Environment"​),​ ein objektorientierter Webanwendungs-Manager. Die gesamte Struktur und die Prozesse zur Generierung von Libcoll werden hier definiert und verwaltet. Nur kurz: Zope verwaltet (über ein Web-basiertes Objekt-Management-System) eine Hierarchie von Objekten, dynamisch und jederzeit erweiterbar. Das sind Instanzen von speziellen Klassen, die wiederum in den sogenannten Produkten definiert sind. Diese Produkte sind einfach Anwendungen (in der Programmiersprache Python geschrieben),​ die von Zope selber oder von der ITgroup stammen. In der folgenden Dokumentation sollte klar werden, was damit gemeint ist. Wer näheres über Zope erfahren möchte, schaue bitte [[http://​www.dzug.org/​dokumentation/​einfuehrung/​zopebuch01|hier]] oder [[http://​www.linux-magazin.de/​Artikel/​ausgabe/​1999/​06/​Zope/​zope.html|hier]] nach. **\\ \\
 +
 +Folgender Libcoll-Flow-Chart gibt einen Überblick über die Elemente, die beim [[online_stellen]] von Dokumenten verwendet werden.
 +
 +{{libcoll_zope_flow.jpg?​850}}
 +
 +Zur Erklärung:​\\ ​
 +  * Jedes Dokument in libcoll wird durch ein [[metadaten|index.meta]] ausgewiesen,​ in welchem alle relevanten Metadaten stehen.
 +  * Diese Metadaten werden in einem jeweiligen Zope-Objekt (‘Resource‘) eingespeist. Im einzelnen Fall geschieht das über 'Sync Metadata',​ bei mehreren über '​Reload Metadata'​.
 +  * Für die Darstellung in Libcoll (Autor, Titel, Jahr) werden die Ressourcen noch gerendert. Wiederum im Einzelfall durch '​generate_title/​label'​ und bei vielen Ressourcen durch '​Rerender all Labels and Titles'​
 +  * Gleichzeitig werden alle Ressourcen im sogenannten ‘Resource Catalog‘ noch einmal mit ihren wichtigsten Daten (Autor, Titel, Jahr) indiziert, um für die Suche und die Autorenliste einen schnelleren Zugriff zu liefern.
 + 
 +
 +=== Basics ===
 +
 +Man gelangt in das Zope-Management,​ indem man an die URL einfach ein /manage hängt. Den Einstieg in Zope kann man an jedem Unterpunkt vollziehen, also bspw. auch in libcoll/​elib/​all_documents. Je nachdem an welchem Unterpunkt (Collection) man eingestiegen ist, sieht man nun die versammelten Zope-Objekte,​ die in dem jeweiligen Verzeichnis angelegt sind.
 +
 +{{libcoll_zope2.png?​700}}
 +
 +Ganz in bekannter Dateimanager-Manier navigiert man innerhalb dieses hierarchischen Verzeichnisses von Objekten, die alle einer bestimmten Klasse zugewiesen sind (das Icon zeigt jeweils die Klasse an). Auf der Root-Ebene liegen hier bspw. die User-Verwaltung,​ das html-file und die Images zum Aufbau der Seite, und für uns wohl am wichtigsten der elib-Ordner,​ über welchen man zu den einzelnen Kollektionen gelangt. Prinzipiell können jedoch viele verschiedene Objekte unterschiedlicher Klassen abgelegt sein. Im weiteren tauchen so z. B. Python-Scripte oder externe Links auf.
 +
 +Um solche Objekte anzulegen, wählt man aus der Pop-Up-Liste auf der rechten Seite eine Klasse aus und füllt das angezeigte Formular zur Definition und Beschreibung des Objektes aus. '​ID',​ '​Title',​ und '​Label'​ sind Pflichangaben.
 +
 +Die Reiter am oberen Rand sind Funktionen, die für das momentan aufgerufene Objekt verfügbar sind. '​View'​ bspw. zeigt einfach den Inhalt in der html-Umgebung an und mit [[undo|'​undo'​]] kann man die letzten Änderungen rückgängig machen. Einige Funktionen vererben sich, d. h. sie werden auf alle Inhalte in den Unterordnern angewendet. Bei dem nun folgenden Durchnavigieren durch die Struktur werden die jeweilig relevanten Funktionen aufgeführt.
 +
 +Im obigen "​Root-Verzeichnis"​ von libcoll ist nur ein einziger Reiter von Interesse:
 +
 +  * **Update Resource Catalog**: Hier aktualisiert man den Katalog, aus welchem die Libcoll-Suche und die Autorenliste ihre Daten beziehen. Da beide Funktionen sämtliche Ressourcen in Libcoll umfassen, steht diese Funktion an dieser Stelle in der Hierarchie.
 +
 +In aller Regel möchte man in der electronic library ('​elib'​) arbeiten. In diesem Objekt erhält man eine Liste der Collections,​ wie sie in der Label-Leiste von libcoll auftauchen. ​
 +
 +  * **Main Config**: ist generell immer eine Eingabemaske zum Konfigurieren des jeweiligen Objektes, in diesem Fall also der collection elib.
 +  * **Rerender Lables and Titles**: damit wird die Darstellung sämtlicher Ressourcen (Autor, Titel, Jahr) in elib neu generiert
 +  * **Reload Metadata**: hier werden von allen aktuell aufgerufenen Ressourcen die zugehörigen index.metas erneut ausgelesen ​
 +  * **Copy MD for Indexing and Search**: alle Metadaten werden mit einem Klick in einen Katalog eingespielt,​ welcher Suchabfragen behandelt und die Autorenliste erstellt
 +
 +
 +Geht man in eine der Collections,​ erhält man eine Liste der Ressourcen, im Falle von all_documents sollten diese also sämtliche Werke in libcoll beinhalten.
 +
 +  * **create resources from xml**: damit können eine größere Anzahl von Ressourcen mittels eines vorher erstellten [[http://​pythia.mpiwg-berlin.mpg.de/​digigroup/​workflows/​create_resources_from_xml|xml-files]] angelegt werden
 +  * auch hier kann man alle Funktionen wie **Rerender**,​ **Reload** oder **Copy MD** ausführen, sie gelten wie gesagt jedoch nur für die Collection, in der man sich momentan befindet
 +
 +
 +
 +Klickt man eine individuelle Ressource an, stehen einem noch weitere Funktionen zur Verfügung:
 +
 +  * **Change Metadata**: hier kann man die Metadaten im jeweiligen index.meta direkt ändern. ​
 +  * **Sync Metadata**: die Ressource (Zope) wird mit dem jeweiligen index.meta (Storage) abgeglichen. Durch einen Klick auf ('copy to ECHO! NO UNDO!!!'​) werden die Daten aus dem index.meta in die Ressource eingespielt. Man kann hier auch das index.meta und die Ressource editieren
 +  * auch hier steht die Funktion Copy MD for Indexing and Search zur Verfügung. Für eine einzelne Resource ist dies recht ineffizient,​ man sollte dies deshalb besser eine Ebene höher machen.
 +\\
 +\\
 +
 +Das sind alles viele, verwirrende Funktionen, deren Sinn sich erst mit etwas Erfahrung erschließt. Ebenso deren Bugs. Im Folgenden werden ein paar typische Verfahren aufgelistet und gleichzeitig Probleme angedeutet:
 +
 +  * Oft will man einzelne oder gleich [[changemeta|mehrere]] index.metas nachträglich ändern, z.B. um Tippfehler, die in der libcoll-Darstellung deutlich wurden, zu bereinigen. Das erfordert natürlich ein anschließendes Update der Ressource(n). Bei einer einzelnen Ressource läuft dies über Sync-Metadata,​ bei mehreren über Reload Metadata. Anschließend müssen die erneuerten Ressourcen noch in das ganze libcoll-Zope-System eingepflegt (Copy MD + Update Catalog) und die Darstellung in libcoll neu gerendert werden (Rerender Label and Title). Dies sollte möglichst lokal, d. h. in der jeweiligen Collection geschehen, da ein Reload auf der elib-Ebene nicht nur ewig dauert, sondern zudem auch gern mal verkrüppelte Ressourcen produziert.
 +  * Will man eine Ressource verschieben,​ löschen, umbenennen oder kopieren macht man das nach guter alter Art durch die Management-Buttons unter der Ressourcen-Liste. So kann man bspw. auch den Inhalt einer ganzen Collection kopieren (Select All -> Copy ->​[Verzeichniswechsel]->​ Paste). Bei sehr vielen Ressourcen (ca. >300) funktioniert dies allerdings nicht, und man muss sich durchklicken. Paradoxerweise...
 +
 +
 +
 +=== Professional ===
 +
 +
 +Man hat noch weitere Eingriffsmöglichkeiten,​ insbesondere auf die Darstellung von libcoll, wenn man eine Ebene über den der Bibliothek zugewiesenen root-Ordner in das Management einsteigt. Dies sollten nur erfahrene libcoll-Administratoren machen und dann auch nur in Absprache mit der ITgroup. ​
 +
 +Zope läuft auf xserve02, der port auf welchem libcoll liegt ist 28880. Mit unserem digigroup-passwort gelangt man in den lib-Ordner:
 +\\
 +{{28880_lib.png?​250 }}
 +\\
 +\\
 +
 +Hier sind mehrere Objekte und Produkte abgelegt, die für das Funktionieren von libcoll relevant sind. 
 +
 +  * **label_templates**:​ hier kann man die Darstellung der einzelnen [[bib_type|Bib-Typen]] editieren. Wie und ob Autor, Titel, Volume, Pages etc. angezeigt werden wird hier in einem script festgelegt. ​
 +  * **standardMD**:​ hierüber werden die [[bib_type|Bib-Typen]] selbst generiert und verwaltet. Mittels Main Config kann man die Datenfelder festlegen, die jedem einzelnen Typ zugeordnet sind ("​Metadata-Mapping"​).
 +  * **resourceCatalog**:​ gewährt einen kleinen Einblick in den Katalog
 +  * **storage**:​ das alte Ablagesystem
 +  * **storage2**:​ das neue Ablagesystem,​ bisher nur für Videodaten
 +  * Weitere Formatierungs-Templates für Libcoll: **css**, **collection**,​ **links** etc.
 +
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +\\
 +
 + --- //​[[Christoph Rosol]] 2006/08/01 17:38//
libcoll_zope.txt · Last modified: 2007/05/30 10:42 (external edit)