Pages in System

Konfiguration


Server-Konfiguration Allgemeine Hinweise Die Server-Konfiguration steht in einer .ini-Datei, die beim Start des Servers auf der Kommandozeile angegeben wird. Im Gegensatz zur Domain-Konfiguration werden dieser statischen Konfiguration keine weiteren Konfigurationsquellen zur Laufzeit hinzugefügt. Es gilt also die Konfiguration in der Datei unverändert für die gesamte Laufzeit des Systems. Bemerkung Der Übersicht halber verwenden wir in dieser Dokumentation eine gepunktete Schreibweise für Konfigurations-Optionen. So steht z. B. server.http.on für die Option on im Unterabschnitt [[http]] des Abschnitts [server] in der .

Domains


Einführung Domains sind die zentralen Bausteine zur Organisation und Konfiguration von Objekten in VLS. Domains werden hierarchisch modelliert. Über diese Hierarchie werden einerseits Navigationsräume definiert und andererseits wird die Konfiguration vom Root in Richtung Kind vererbt. Mehrere Rootknoten sind möglich. Filesystem Die Domainstruktur wird auf dem Filesystem hierarchisch abgelegt: domain |–> DOMAIN-1 | |–> config | |–> domain | |–> KIND-DOMAIN-1 | |–> KIND-DOMAIN-2 |–> DOMAIN-2 Es besteht auch die Möglichkeit Domains ohne Filesystembezug anzulegen.

Dateien und Verzeichnisse


Codepfade Die Codeverzeichnisse werden von Semantics im Rahmen der Installation und der Updates gepflegt. Der größte Teil der Applikation wird unter /opt auf einem Linuxsystem installiert und ausgeführt. Die Verzeichnisse unter /opt/vls gehöhren dem User vlserver der Gruppe vls. /opt/vls{VERSION} VLS-Instanz in einer bestimmten Version ./etc/vls/server.ini: Instanzkonfiguration: Ports, Verzeichnisse, … ./domain: Mandantenkonfiguration/Code ./server: Core /opt/vls Hostkonfiguration + Tools ./bin/supervisord: Prozessmanager ./bin/bucky: Monitoring ./bin/diamond: Monitoring /opt/firebird{VERSION} Firebird-Binaries

Typsystem


VLS-Typesystem Dieses Kapitel beschreibt das Types-System des VLS. Jeder Knoten der primären Datenbanktabelle OPR_Tree besitzt einen Knotentyp, durch den Verhaltensweisen, Interaktionsmöglichkeiten, zusätzliche Abhängigkeiten zu anderen Tabellen, sowie gegebenenfalls die Darstellung beeinflusst werden. In der Datenbank selbst ist dieser Knotentyp als Kombinations zweier Integer-Werte notiert, der rcvTypeDef. Typen deliverer description domain i18n job list metadata name order page physicallocation place resource substructure syscollection topstructure webresource wiki substructure Typ Subtyp Name domainTypen 0 0 folder domain, retro, esa, retroNewspaper, retroPeriodicals 0 1 front cover domain, retro, retroNewspaper, retroPeriodicals, autograph, manuscript 0 2 back cover domain, retro, retroNewspaper, retroPeriodicals, autograph, manuscript 0 3 table of contents domain, retro, retroNewspaper, retroPeriodicals 0 4 index domain, retro, retroNewspaper, retroPeriodicals 0 5 section domain, retro, pubserv, oaPeriodical, retroNewspaper, retroPeriodicals, autograph, manuscript, readingRoom 0 6 title page domain, retro, retroNewspaper, retroPeriodicals 0 7 preface domain, retro, retroNewspaper, retroPeriodicals 0 8 dedication domain, retro, retroPeriodicals 0 9 scan card folder domain, retro, retroNewspaper, retroPeriodicals 0 10 corrigenda domain, retro, retroPeriodicals 0 11 unsure domain, retro, retroNewspaper, retroPeriodicals 0 12 additional domain, retro, pubserv, retroNewspaper, retroPeriodicals, autograph, manuscript 0 13 annotation domain, retro, retroPeriodicals 0 14 bookplate domain, retro 0 15 chapter domain, retro, retroPeriodicals 0 16 collation domain, retro 0 17 endsheet domain, retro, retroNewspaper, retroPeriodicals, autograph, manuscript 0 18 engraved titlepage domain, retro 0 19 provenance domain, retro, retroPeriodicals 0 20 imprint domain, retro, retroNewspaper, retroPeriodicals 0 21 ornament domain, retro 0 22 paste down domain, retro, autograph, manuscript 0 23 privileges domain, retro 0 24 end notes domain, retro 0 25 bibliography domain, retro, retroPeriodicals 0 26 finalsheet manuscript 0 27 tome domain, retro, retroNewspaper, retroPeriodicals 0 28 volume domain, retro, pubserv, retroNewspaper, retroPeriodicals 0 29 issue domain, retro, pubserv, oaPeriodical, retroNewspaper, retroPeriodicals 0 30 struct article domain, retro, oaPeriodical, retroPeriodicals 0 31 introduction domain, retro, retroPeriodicals 0 32 entry domain, retro 0 33 written annotation domain, retro 0 34 written dedication domain, retro 0 35 illustrations domain, retro, retroPeriodicals 0 36 verses domain, retro, retroPeriodicals 0 37 maps domain, retro, retroPeriodicals 0 38 printers marks domain, retro 0 39 printings of notes domain, retro 0 40 stamps domain, retro, retroPeriodicals 0 41 abstract domain, retro 0 42 appendix domain, retro 0 43 bibliographic note domain, retro 0 44 obituary domain, retro 0 45 miscellaneous domain, retro 0 46 scientific note domain, retro 0 47 index of collaborators domain, retro 0 48 report domain, retro 0 49 correspondence domain, retro 0 50 part domain, epflicht, pubserv, autograph, manuscript 0 51 Other Material domain, retro 0 52 Material to be reviewed domain, retro 0 53 address domain, retro 0 54 colophon domain, retro 0 55 table domain, retro, retroPeriodicals 0 56 spine domain, retro, retroNewspaper, retroPeriodicals, autograph, manuscript 0 57 portfolio case domain, retro 0 58 edge domain, retro 0 59 periodical section oaPeriodical 0 60 binding domain, retro 0 61 scale manuscript 0 62 back endpaper manuscript 0 63 front endpaper manuscript 0 64 bookblock manuscript 0 72 additional pages domain, retro 0 73 struct piece of music retroPeriodicals 0 90 protocol domain, retro 0 91 book review domain, retro metadata Typ Subtyp Name domainTypen 1 0 document domain, retro, esa, epflicht, pubserv, oaPeriodical, retroNewspaper, retroPeriodicals, autograph, manuscript, music, readingRoom 1 1 book domain, retro 1 4 letter domain, retro 1 7 handwritten domain, retro, autograph, manuscript 1 8 still image domain, retro 1 9 cartographic domain, retro 1 10 notated music domain, retro, retroPeriodicals 1 11 ebook epflicht 1 12 ejournal epflicht, pubserv 1 14 mixed material domain, retro 1 15 article domain, retro, retroPeriodicals, epflicht 1 16 journal domain, retro, retroPeriodicals 1 17 contribution domain, retro 1 18 fulltome domain, retro 1 19 multivolumework domain, retro, epflicht 1 20 series domain, retro, retroPeriodicals 1 21 newspaper domain, retro, retroNewspaper, retroPeriodicals 1 22 journal volume domain, retro, oaPeriodical, retroNewspaper, epflicht, retroPeriodicals 1 23 journal issue domain, retro, epflicht, retroPeriodicals, retroNewspaper 1 24 periodical domain, retro, retroPeriodicals 1 25 periodicaltome domain, retro, retroPeriodicals 1 30 oaDoctoralThesis pubserv 1 31 oaBachelorThesis pubserv 1 32 oaMasterThesis pubserv 1 33 oaStudyThesis pubserv 1 34 oaDiplom pubserv 1 35 oaExamen pubserv 1 36 oaBook pubserv 1 37 oaHabil pubserv 1 38 oaPreprint pubserv 1 39 oaArticle pubserv, oaPeriodical 1 40 oaBookPart pubserv 1 41 oaBdArticle pubserv 1 42 oaBdOther pubserv 1 43 workingPaper pubserv 1 44 conferenceObject pubserv 1 50 news domain, retro 1 51 collection of illustrations domain, retro 1 52 illustration document domain, retro 1 53 collection document domain, retro 1 54 piece of music domain, retro 1 55 press comment domain, retro 1 56 review domain, retro 1 57 journal additional domain, retro, epflicht, pubserv, retroNewspaper, retroPeriodicals 1 58 journal month domain, retro 1 60 inventory domain, retro 1 70 description domain, retro 1 71 archive_box domain, retro 1 72 record archiveCollection 1 80 interlending domain, retro 1 81 acquisition esa 1 82 reader domain, retro 1 90 music autograph music 1 91 music copy music 1 92 music printed libretto music 1 93 music handwritten libretto music 1 94 music handwritten theoretikum music 1 95 music printed theoretikum music 1 96 music additional source music 1 97 music partial autograph music 1 98 music print music 1 99 music questionable autograph music topstructure Typ Subtyp Name domainTypen 2 0 main folder ALL 2 7 container ALL 2 10 titlesubject ALL 2 11 namesubject ALL 2 26 classification ALL 2 51 collection ALL 2 52 webpage ALL 2 53 wikifolder ALL page Typ Subtyp Name domainTypen 3 0 page domain, retro, epflicht, pubserv, esa, oaPeriodical, retroNewspaper, retroPeriodicals, autograph, manuscript, music, readingRoom 3 1 map domain, retro, retroNewspaper 3 2 verse domain, retro, retroNewspaper, music 3 3 tablepage domain, retro, retroNewspaper 3 4 scan card page domain, retro, retroPeriodicals 3 5 illustration domain, retro, retroNewspaper, music 3 6 empty page domain, retro, retroNewspaper, music 3 7 color check page domain, retro, retroNewspaper, music 3 8 printers mark domain, retro, retroNewspaper 3 9 printing of notes domain, retro, retroNewspaper, music 3 10 stamp domain, retro, retroNewspaper 3 11 annotation hs domain, retro, retroNewspaper physicallocation Typ Subtyp Name domainTypen 4 0 location ALL 4 1 main location ALL 4 2 sub location ALL order Typ Subtyp Name domainTypen 5 1 inhouse digitalization esa 5 2 suborder esa 5 3 duplicate order esa list Typ Subtyp Name domainTypen 6 1 member list ALL wiki Typ Subtyp Name domainTypen 7 1 wiki domain container ALL 7 2 webresource domain container ALL 7 11 system collection domain container ALL 7 13 names domain container ALL 7 16 places domain container ALL 7 17 topics domain container ALL i18n Typ Subtyp Name domainTypen 8 0 i18n folder ALL 8 1 i18n domain container ALL 8 2 short translation ALL webresource Typ Subtyp Name domainTypen 9 0 empty ALL 9 1 other ALL 9 2 webimage ALL 9 3 image ALL 9 10 pdf ALL domain Typ Subtyp Name domainTypen 10 0 domain ALL 10 1 domain folder ALL 10 2 retro ALL 10 3 pubserv ALL 10 4 epflicht ALL 10 5 esa ALL 10 6 mandant ALL 10 7 root NULL 10 8 oaPeriodical ALL 10 9 oaPeriodicals ALL 10 10 retroNewspaper ALL 10 11 retroPeriodicals ALL 10 12 archiveCollection ALL 10 13 autograph ALL 10 14 music ALL 10 15 manuscript ALL 10 16 readingRoom ALL syscollection Typ Subtyp Name domainTypen 11 0 syscol folder ALL 11 1 oai collection ALL description Typ Subtyp Name domainTypen 12 1 tei description ALL name Typ Subtyp Name domainTypen 13 0 name folder root, domain, retro 13 1 name root, domain, retro 13 2 person root, domain, retro 13 3 undifferentiated person root, domain, retro 13 4 differentiated person root, domain, retro 13 5 collective pseudonym root, domain, retro 13 6 gods root, domain, retro 13 7 literary or legendary character root, domain, retro 13 8 pseudonym root, domain, retro 13 9 royal or member of a royal house root, domain, retro 13 10 spirits root, domain, retro 13 20 corporate body root, domain, retro 13 21 fictive corporate body root, domain, retro 13 22 organ of corporate body root, domain, retro 13 23 project or program root, domain, retro 13 30 conference or event root, domain, retro 13 31 series of conference or event root, domain, retro deliverer Typ Subtyp Name domainTypen 14 0 deliverer folder ALL 14 1 deliverer domain container ALL 14 2 publisher ALL resource Typ Subtyp Name domainTypen 15 1 attachment ALL place Typ Subtyp Name domainTypen 16 0 place folder domain, retro 16 1 place domain, retro 16 2 country domain, retro 16 3 state domain, retro 16 4 region domain, retro 16 5 county domain, retro 16 6 city domain, retro 16 7 continent domain, retro 16 8 political entity domain, retro job Typ Subtyp Name domainTypen 20 1 job ALL 20 2 importpackage ALL 20 10 job domain container ALL

Jobsystem


Einführung Übersicht Das Jobsystem ermöglicht in VLS lang-laufende Operationen (Jobs) zu verwalten. Solche Operationen können zum Beispiel Importe von Images oder Updates von vielen Datensätzen sein. Operationen, die nur wenig Zeit benötigen und daher synchron abgearbeitet werden können, werden im Gegensatz zu Jobs als Actions realisiert. VLS bringt im Core etwa 100 verschiedene Jobs mit. In den Domainverzeichnissen können weitere domain-spezifische Jobs im ./jobs Verzeichnis abgelegt werden. >>> len(component.vls.job.Jobs) 103 Jobs werden als Python-Klassen implementiert, die von einer Job-Basisklasse abgeleitet sind.

APIs


Übersicht VLS bietet verschiedene HTTP-APIs an. In der folgenden Tabelle sind die wichtigesten APIs beschrieben: Name Auth Format Routing Consumer Source VLM immer xml /vlm/action/NAME VLM-Client DB/Index Act immer xml/json/plain /action/NAME Backend DB/Index OAI opt xml /oai?command Harvester/DFG-Viewer DB SRU opt xml /sru?query VLS-Suche Index METS opt xml /mets/FMT/IDNAME/ID Debugging DB RSS opt xml /rss/oai_dc Feedreader DB IIIF opt json /i3f Thirdparty SPAs, UIX0 DB/Index Filter opt json/xml /api/filter/NAME UIX DB/Index S2W fehlt xml /s2w Technische Partner DB OPDS opt xml /opds EB Reader DB/Index DOWN opt binary /download/RES/ID Browser/Harvester DB/FS Name Stabilität Protocol/Payload Protocol Payload VLM mittel/schwach Alles Administration, Resourcen Act schwach/schwach Alles Administration, Resourcen OAI stark/mittel DT1-Listen/IDs OAI-Writer (mets, mods, mab, .

Metadaten-Eingabeformulare (ModsForms)


Einleitung Dieses Kapitel behandelt die Infrastruktur und Konfiguration der Metadaten-Eingabeformulare, wie sie, zum Beispiel im Publikationsserver-Kontext zum Einsatz kommen. Die Modsforms Komponente des VLS ermöglicht es dem Portalnutzer, einen neuen MetadataKnoten anzulegen. Zum Verständnis der Metadaten-Eingabeformulare werden, im folgenden Kapitel, einige Begriffe vorrausgesetzt: Modsforms Komponente des VLS zur Web-basierten Metadateneingabe im MODS Format durch Nutzer. Formtype Ein Formulartyp - zum Beispiel zur Erfassung von Dissertationen. Das Verhalten eines Formtype in Bezug auf Authentifizierung und Workflow wird durch die Formconfig spezifiziert.

Datenbank


Überblick Für die Speicherung der Daten verwendet der VLS die Datenbank Firebird. Bei Firebird handelt es sich um ein Open-Source relationales DBMS, das für unterschiedliche Betriebssysteme verfügbar ist, u.a. Linux und Windows. Außerdem läßt es sich leicht installieren und verwalten. Zum Einsatz kommt die aktuelle Version 2.5.x. Weitere Informationen zu Firebird findet man auf der Projektseite unter http://www.firebirdsql.org/ . Für den direkten Zugriff auf Firebird kommt u.a. Flame Robin in Frage: http://www.

Komponenten


Überblick Wesentliche Plugins Wesentliche Plugins bilden die zentralen Funktionen des VLS. Es ist nicht vorgesehen, einzelne Plugins dieser Art abzuschalten (mit Ausnahme der HTTPS-Plugins). Plugin Modul Aktiv Default Beschreibung VlsAppPlugin vls.core config.app.on ja Stellvertretend für die VLS Applikation. StartStopLogger vls.core stets N/A Das Plugin wird vor allen anderen gestartet. MonitorParentProcessPlugin vls.core Kind-Prozesse N/A Beendet den Prozess, wenn der Elternprozess beendet wird.

Web-Frontend


VLS Templating Das VLS Templating-System basiert auf “Classes” und “Tabs”. So enthält die URL eines VLS-Portals idR. eine Class und ein Tab. Auf der Seite Neuzugänge sind dies zum Beispiel die Class ‘nav’ und das Tab ‘history’ http://s2w.visuallibrary.de/nav/history. Classes dienen der Gruppierung von Tabs. Tabs definieren VLS-Seitentypen. Im Navigations-Port einer Einzelseitenansicht, zB. http://s2w.visuallibrary.de/dls/content/pageview/2571 ist “Seite” das selektierte Tab. Für einige Routen sind Tabs oder Classes implizit: http://s2w.visuallibrary.de gehört zur Class-doc mit Tab-home, http://s2w.

Zugriffsbeschränkungen


Einführung Übersicht Zugriffsbeschränkungen und Sperrfristen werden gebraucht um Materialien aus unterschiedlichsten Gründen der Öffentlichkeit zu entziehen. Konfiguration Um die Unterstützung von Zuggriffbeschränkungen für eine VLS-Instanz zu aktivieren muss in der server.ini der Wert auth.licence.on=True gesetzt werden. Weiterhin müssen auf den betroffenen Domains konkrete Zugriffsbeschränkungsstufen konfiguriert werden, die dann normalerweise mit sogenannten IP-Gruppen kombiniert werden. In folgendem Beispiel wird eine Domain mit mehreren Beschränkungsstufen versehen und zwei Gruppen eingeführt, die an IP-Ranges gekoppelt sind:

Metadaten-Export


ZVDD METS/MODS Problematik Der Export für das Zentrale Verzeichnis Digitalisierter Drucke stellt besondere Formatanforderungen an das auszuliefernde MODS/METS. Damit Metadaten vom ZVDD akzeptiert werden, müssen sie den Validator des ZVDD passieren. Ein nicht-Bestehen der Validierung hat die Ablehnung der Datensätze zur Folge. Möglich Gründe für Validierungsfehler sind: Das ZVDD erwartet Daten, die im Katalog nicht zur Verfügung stehen. Divergierende Interpretation der MODS-Felder zwischen ZVDD und VLS. Als Antwort auf dieses Problem, bietet die OAI <apis/oai/full> Export-Schnittstelle des VLS Abfrageformate an, die speziell auf die Anforderungen des ZVDD zugeschnitten sind.

Custom-Import


Motivation VL kann bibliographische Standards wie z.B. mabxml oder marc direkt importieren. Es gibt jedoch auch Formate, die nur explizit in einer Domain gemapped werden können. Für diese Aufgabe müssen XSL-Transformationen implementiert werden. Konfiguration Die Konfiguration wird an der gewünschten Domain abgelegt: [imports] [[custom]] # activate feature on = boolean(default=False) # trigger on these file extensions in import directory extensions = string_list(default=list(‘.xml’)) # generate data records from input file # splitmode = dumb: use children of root element as data records splitmode = option(dumb, trafo, mets, default=dumb) # splitmode = trafo: split input file into data records that are stored # in OM_XML/rawCatalogData and fed into mapper trafo splitter = string(default=‘splitter.

WebDAV


/webdav Struktur * import + <domain> (flache Domainstruktur) * system + core + <root-domains> - <child-domains> - factory - diagnostics + "xmerge.ini" - resources + "<resource-ident>" - wiki + "<wiki-ident>.md" - "config.ini" - "styles.css" - "home.md" - "languages.xml" * tei (wenn templating.tei.on in einer Domain aktiv ist) + <domain> (flache Struktur der Domains mit templating.tei.on) - "<otid>.tei" * tests (wenn tests/out Verzeichnis vorhanden ist) * upload + <domain> (flache Domainstruktur) * zipbackup (wenn preservation.

System


Dies ist das Systemhandbuch zum Visual Library Server (VLS).