Leitfade en fü ür die e Teilnahme a als Data a Pro ovide er projektn name verteile er: cc: kation: klassifik autor: reviewe ed by creation n date: last upd dated: dokume ent Name: dokume entenstatus: version:: Open n-Access-Stattistik Marcco Recke Marcc Giesmann 2013-03-21 2014 4-02-02 Leitfaaden_für_diee_Installation..pdf Final 1.8 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 INHAL LT 1 LLE VERSIONENKONTROL 3 3 2 AB BKÜRZUNG GEN 3 3 3 ÜB BERSICHT 4 4 3.1 DATTENFORMAT .............................................. ................................................................................................................. 4 4 4 TESTZUGAN NG / ZUGA ANGSVORA AUSSETZUNGEN 5 5 NDITIONEN UND U KOSTEN N ..................... ................................................................................................................. 5 5 4.1 KON 5 SYSTEM- UN ND HARDW WAREVOR RAUSSETZ ZUNGEN 5 5 5.1 5.2 5.3 5.4 NGEN .................................... ................................................................................................................. 6 6 PHPP-EINSTELLUN MYSSQL ............................................................ ................................................................................................................. 6 6 WEEBSERVER ..................................................... ................................................................................................................. 6 6 SQLLITE (DSPACEE KONFIGURA ATION) ......... ................................................................................................................. 7 7 6 INS STALLATIION/KONF FIGURATIO ON 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 HERRUNTERLADEN ........................................... ................................................................................................................. 7 7 ANPPASSUNG DESS OAS-DATA A-PROVIDERS AN DAS EIGENE REPOSITO ORIUM ......................................................... 7 7 DERR LOGFILE-PARSER A : ANPASSSUNG AN DA AS EIGENE REP POSITORIUM .................................................................... 8 8 INH HALT DER ALLGEMEINEN CO ONFIG.PHP.... ................................................................................................................. 9 9 DSPPACE KONFIG GURATION ........................... .............................................................................................................. 11 EINSSTELLUNGEN FÜR EINE CO ONFIG-DSPAC E.PHP: ................................................................................................... 14 4 SPEZ ZIELLE CONFIIG-STUB.PHP P ..................... .............................................................................................................. 14 4 IDEN NTIFIER ....................................................... .............................................................................................................. 18 8 AUSSGABE ......................................................... .............................................................................................................. 21 7 OP PEN JOURN NAL SYST TEMS - OJS [PKP] 2 22 8 REGELMÄßIG GE ROUTINEN (DP) 22 2 7 7 8.1 CLEEANUP ......................................................... .............................................................................................................. 222 9 AN NPASSUNG G OAI-PMH H SCHNIT TTSTELLE 22 2 9.1 KON NFIGURATION N DER OAI-P PMH SCHNITT TTSTELLE ................................................................................................ 22 2 10 VA ALIDATOR R 24 4 11 FEH HLERANA ALYSE 25 5 12 DA ATENRÜCK KFÜHRUN NG 25 5 12.1 FORRMATE ......................................................... .............................................................................................................. 255 12.2 GRA AFIKAUSGABEE ............................................. .............................................................................................................. 26 6 13 AN NHANG date: 02-066-2015 26 6 page 2 of 28 author: docum ment name: version: 1 V Versione enkontrrolle version 1.0 1.1 1.2 1.5 1.6 1.7 1.8 2 Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 date 21.03.2013 08.05.2013 06.06.2013 26.06.2013 02.07.2013 02.02.2014. 02.06.2015. Autor MR MR/MG MR MG MR MR MR commennt Erster Enntwurf Review 1 Erweiterrt Erweiterrt um parsersspezifische Daateien Aktualisiiert A Abkürzu ungen CTXO CLI DP DINI http OAS OAI OAI-PMH H PECL PDO SP STUB SVN VZG date: 02-066-2015 Conttext Object Com mmand Line In nterface Dataa Provider Deuttsche Initiativve für Netzweerkinformatio on e. V. Hypeertext Transffer Protocol Open-Access-Statistik Open Archives In nitiative Open Archives In nitiative Proto ocol for Metaadata Harvestting PHP Extension Community Li brary PHP Data Objectts Service Provider mpf”. Alle Schhlagwörter, die d mit STUB gekennzeichnnet sind, müsssen engliisch für „Stum umbenannt und speziell von Ihhnen angepasst werden! Subvversion, Softw ware zur Verssionsverwaltu ung Verbbundzentrale des GBV page 3 of 28 author: docum ment name: version: 3 Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Ü Übersich ht Die Tecchnik des entwickelten e n Dienstes basiert auff dem OAII-PMH Stanndard. Auch h hier wird d zwischen Data-Proovidern und d Service-Prrovidern un nterschieden. Es werrden allerd dings keinee bibliograafischen Mettadaten, son ndern ausschhließlich Nu utzungsdaten n ausgetausccht. Der Datenproviderr bietet üüber sein OAI-Interface e freien Zuggriff auf die Metadaten.. Der Servicce-Provider nutzen diee OAI-Schhnittstelle des Data Pro ovider um ddie Metadatten abzurufe en und zu sspeichern. Der D Service-Providerr liegt zentral bei der VZG. Wenn Sie noch niee etwas überr OAI-PMH gehört habe en bietet [1] einen guuten Überbliick. Der OA AS-Data-Pro ovider wird lokal bei deen beteiligteen Repositorien betriebben. Sie ben nötigen einee MySQL Datenbank,, die Dateie en des Pakeetes “Logfileeparser” und die Dateiien des Pak ketes “OAI-ovider”. Beide Pakete enthalten config-Datteien, die Sie an diee Erfordernisse Ihress Datapro Reposito oriums anpaassen müssen. 3.1 D Datenform mat Das Dattenformat baasiert auf XML, das einee formale Veerifikation von Input- unnd Output-D Daten ermögliccht. Es wird nach dem OpenURL-C O Context-Objekt-Schema serialisiert. Dabei wird d zwischen einem K Kernsatz (core-Set) und optionale EErweiterungeen unterschiieden. Die U Umsetzung der d Erweiterrungselemennte ist natürrlich optionaal. Ein Con text Objectt repräsentie ert eine Loggzeile. Das Wurzeleleme W ent <contextt-objects> umschließt den Conntainer. < <context-ob bjects> < <context-ob bject> ... </context-object> -object> < <context-ob bject> ... </context-object> < <context-ob bject> ... </context… … < </context-o objects> Untereleemente sind d: Elementt name minOccurs maxOccurs m Referentt 1 1 ReferrinngEntity 0 1 Requestter 1 1 ServiceT Type 1 1 Resolve r 1 1 Referrerr 0 1 1 ) OAI fo r Beginners - the Open Archives Forum online tutorial (http:///www.oaforum.o org/tutorial/indeex.php) date: 02-066-2015 page 4 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Die Zussammenführrung aller Nutzungsdateen erfolgt in n mehreren Schritten auuf dem zenttralen OAS-Service- Provider. Dieser D holt Daten als Context Obbject (CTXO O)2 vom D Dataproviderr über httpp (harvestting), zerlegtt die Inform mationen (paarsing), aggreegiert sie un nd berechneet die weite ere Statistik.. Die bereechneten Nutzungsdate en werden Ihhnen dann zur Verfügun ng gestellt. 4 T Testzuga ang / Zu ugangsvvorausse etzunge en 4.1 K Konditionen und Kosten K Testphase istt die Nutzun ng über die O OAI-Schnitttstelle generrell kostenfreei. Ihre Date en werden In der T in dieserr Zeit auf einer Testmaschine verarrbeitet. Nach einem erfolgreichen T Testverlauf erhalten e Sie auf Wunnsch die Verrtragsunterlaagen für denn Bezug kosttenpflichtige er Daten. Preise füür Zusatzleisstungen werrden nach veerbindlicherr Aufwandsschätzung beerechnet. Berechnnungsgrundlaage sind die aktuellen Taagessätze deer VZG. Der Tagessatz der VZG be eträgt 630,00 EEuro (Stand 05/2014). 5 S System- und Ha ardware evorausssetzung gen Ein akttueller Linuux Server mit dem Apache Web W Serverr, MySQL und PHP (>5.4) istt Systemvvoraussetzunng. werden perr Command entierten PH HP geschrieben. Die PH HP-Skripte w d Die Softtware ist inn objektorie Line Int erface (CLI)) von der Kommandoz K zeile aus aussgeführt. Sie e benutzen ddie PHP Daata Objects-Erweiterrung (PDO)). PHP Dataa Objects sttellt eine Ab bstraktionsebene für deen Datenban nkzugriff da.. PHP benötigt die PHP P DOM XML-Erweitterung um Lese- und Schreibzugri S iffe auf beliebige XML-Elementte zu ermöglichen. Als Mindestanfor rderung empfehlen wir PHP 5.4. M Getestet wurde untter Ubuntu 10.004 LTS (Linu ux 2.6) mit M MySQL 5.1 und u Ubuntu 14.004 LTS (Linu ux 3.13) mit MySQL 5.5 auf eineem virtuelleen Server (Intel Xeonn CPU 4 GB G Speiche er). Anderee Betriebssyysteme und d Datenbaanken mögeen auch funktionieren, sind aber von v uns nicht getestet worden. Auch A gibt ess nicht fürr alle Datenbanken eine en PDO Dattenbank-Treiber. ordert einschlägige Linu x-Kenntnissse. Auch sollten Sie mitt Regulären Ausdrücken A n Die Insttallation erfo etwas annfangen können. Ein kleines Tutoriuum für Anfänger findet sich s z.B. untter [1]. 2) ANSI/N NISO Z39.88: Thhe OpenURL Fraamework for Coontext-Sensitive Services (http:///xml.coverpages .org/NISO-OpenURL-Part1- PC-200303311.pdf) date: 02-066-2015 page 5 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 5.1 P PHP-Einsttellungen n Eine gannze OAI-Anntwort und der XML-- Documentt Object-Baaum (DOM)) müssen im Speicherr gehaltenn werden. Eventuell E muss m die phhp.ini (/etc/p php5/cli/php.ini) kontroolliert werd den Für diee Kommanndozeilenversion (CLI SAPI) sind die Parameeter max_ex xecution_ _time, memo ory_limit t und max x_input_ti ime meist bereits fest eeingestellt au uf 0, bzw. -1 und könne n so belasse en werden. 5.2 M MySQL ogramme beenötigen ein nen Datenbbankzugang, der über die Rechte für das Anlegen A vonn Die Pro Tabellenn verfügt. Für F die MySQ QL-Datenbaank müssen ebenfalls ein nige Variabl en konfiguriert werdenn (my.cnf)). Das Limit pro Anffrage solltee heraufgeseetzt werden, indem SSie die Servervariablee max_allowed_pac cket von ihrem Standa rdwert 16 Mbyte M herau ufsetzen, dam mit die Date enmenge im m Speicherr gehalten werden w kann, die in eineer OAI-Antw wort maximaal zu erwartten ist. Die Empfehlungg ist 32Mbbyte oder mehr. m Typiscche Fehler bbei zu wenigg Speicher sind s Fehlerm meldungen wie: w “ERROR R 2006 (HY000): MySQL M serv ver has g gone away“. “ Die We rte für die Query Q Cache Configuraation (query y_cache_li imit, que ery_cache_ _size) sollten nnach Bedarf erhöht werrden. 5.3 W Webserve er s konfigurie ert sein, daass Logfiles geschriebenn Der Ap ache-Webseerver Ihres Repositoriuums sollte so werden (oder in eine e Ausgab be umgeleiteet werden können). Für die Loog-Einstellun ng wird dass „Combined Log Forrmat“ im Mo odul mod_lo og_config beenötigt: LogForm mat "%h %l l %u %t \" "%r\" %>s %b \"%{R Referer}i\" \"%{Use er-agent}i i\"" combine ed Diese Eiinstellung beeinhaltet zussätzlich zum „Common Log Formatt“ Informatioonen über den d Referer (die direekt zuvor beesuchte Web bsite) und dden User-Agent, der zurr Roboterideentifikation benötigt wird. Ermöglicchen Sie nebben HTTP auch Zugriffee über das HTTPS-Proto H okoll müsse n sie ssl_acccess.log und d access.lo og - Dateienn berücksich htigen. date: 02-066-2015 page 6 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 5.4 SQLite (D DSpace Ko onfigurattion) Sofern Sie die Ideentifier für ihre Dokum mente (z.B.. DOI) nich ht aus der URL des Dokumentss d OAI-PM MH Schnittsstelle ihress herausleesen könneen, so ist es nötig die Identifiier über die Reposito oriums zu harvesten. h Hierfür H wird eine SQLitee Datenbank k als Cache eingesetzt. Wollen Siee den Datta Provider also z.B. fü ür DSpace kkonfigurieren, benötigen Sie sqlite Unterstützzung für dass Program mm harvest--identifier.php p. SQLite ist eine einfache e und kleine D Datenbank die keinenn eigenstäändigen Servver braucht. Probieren SSie die Befeh hle: php --ri sqlite3 ffür SQlite3 oder e search p php | gre ep sqlite apt-cache php -i | grep -i s sqlite aus, um sich zu überzeugen, dass sqlite instaalliert ist. Evventuell musss das Paket nachinstallie ert werden. 6 In nstallation/Kon nfigurattion 6.1 H Herunterlladen Im ersteen Schritt muss die Softw ware heruntter geladen werden. Die e Softwareppakete im Quellcode werden bei GIT akttuell gehalten: https://githuub.com/gbv/O OA-Statistikk Im zweiiten Schritt muss die Software S an die Erfordernisse des eigenen Reepositorium ms angepasstt werden.. 6.2 A Anpassung g des OA AS-Data-P Providerss an das eigene e Reepositoriu um AS-Data-Provvider besteh ht im Wesenntlichen aus zwei Eleme enten: Der OA Der Logfile e-Parser an nalysiert die Server-Logffiles, wertett ergänzendee Metadaten n des Repositoriums aus und bündelt diesse als OpenURL Contex xtObjects. D Diese werde en lokal in eeiner Datennbank gespeichert. Der OAS-D Data-Provider stellt d iese OpenU URL ContexttObjects übeer ein stand dardisiertes O OAI-Interfacce zur Verfü ügung. Damiit später übeer http darauf zugegriffeen werden kann k muß ddie Softwaree im Apache e Dokumenttverzeichnis liegen. Um Mißbrauch zzu vermeide en genügt eeine einfache Basic HTT TP-Authenti fizierung über .htaccesss. Teilen Sie uns den Zugang bitte m mit. date: 02-066-2015 page 7 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Installa ation: Entpack en Sie die beiden Eleme ente Logffile-Parser und OASS-Data-Provvider auf Ihrem m Repositorrium. Die Datteien des Lo ogfileparser kopieren k siee bitte im jew weiligen Ben nutzerverzeeichnis (/hom me). Sie sind d nicht vo on außen zuggänglich. Anschlieeßend benöttigen Sie nocch eine Dateenbank (Beisspiel): my ysql> create databas se oas_data a_provider r; und die entsprechennden Rechte e (Beispiel): my ysql> GRANT ALL ON oas_data_pr o rovider.* TO 'Benutz zer'@'local lhost' IDE ENTIFIED BY Y 'Pass'; 6.3 D Der Logfille-Parserr: Anpassu ung an da as eigene e Reposito orium Verzeichhnisstrukturr 1. 2. 3. 4. 5. logfiile-parser logfiile-parser logfiile-parser logfiile-parser logfiile-parser / / data d (SQLitee 3.x database) / lib / / lib / identifieers /lib / identifierrs / lib Das Verrzeichnis loggfile-parser enthält denn logfile-parser log2ct tx.php unnd verschied dene config-Dateien . Wie der Name N schon vermuten l ässt, konverrtiert log2c ctx.php diee Webserve er Logfile zuu XML) und scchreibt sie inn eine Datenbank. Die allgemeine a cconfig.php sp peichert diee Contextt Objects (X weiterer eiggener configg-Dateien köönnen Sie zum Parametter, die sich nicht ändern. Mittels w z Beispiell verschieedene Parser konfigurie eren. Die eiignen configg-Dateien ergänzen diee allgemeine config und d übersch reiben sie gegeben falls. f Die D Datei conf fig-STUB.p php stellt den Rump pf für ihree Anpassuungen bereitt. Nutzen Sie die desha lb die conf fig.php bitte nicht für eigene Mod difikationen,, sondernn modifiziereen Sie gewün nschte Wertte in ihrer spezifischen s config-ST TUB.php. Ersetzenn Sie alle Einträge mit „STUB“ „ durrch ihre eigeenen. Mit de em Parametter “-c” weisen Sie denn Logfile PParser dann an diese Daatei zu benuutzen. Eine Übersicht Ü üb ber weitere Parameter erhalten Siee mit php log2ct tx.php –h date: 02-066-2015 page 8 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 php -f l log2ctx.php -- [ -c conf figfile.php ] -O -R age_in_ _days -i identif fier [ -I in nputfile ] -c confi igfile.php : use confi igfile.php a as configura ation file(d default: con nfig.php) -O : initializ ze database, , create tab ble (none of the follo owing option ns must be specified!) s -R age_i in_days : clean up database, remove old data se ets older th han age_in_d days days (no other r options mu ust be speci ified!) -i ident tifier -S : use this as identifi ier string for f the reco ords : run in sy ynchronized mode, do not fo ork (slower but more re eliable) -I input t_file : Read from m specified file (inste ead of STDIN N) Mit dem m Parameter -o initialisie eren Sie die Datenbank erstmals fürr ihre spezififische Konfigguration. Das Pro ogramm legt dabei die be enötigte Tabbelle an. php –f log2ctx.p php –c con nfig-STUB.php -O UB.php nichtt verändert haben h ist es Wenn S ie die Einsteellung in derr config-STU ‘tablena ame' => = 'contex xtobjects' ' Jetzt ist der Logfilepparser komp plett konfiguuriert und Sie können ihn regelmäßiig nutzen um m Logdaten in Conteextobjects zu z konvertie eren und übeer die spezieelle OAI-PM MH Schnittsteelle zur Verrfügung zu stellen. Das upd date-scrip pt.sh enthäält einige Be ispiele für die Verwendung von ha arvestidentif fiers.php (Siehe unte er DSpace K Konfiguration n). 6.4 In nhalt der allgemeiinen conffig.php 6.4.1 p parser Standardd: ‘OASPars serWebserv verStandar rd‘. Hier gib bt es nichts zu ändern. ./lib/oas-webse erver-stan ndard.php enthält zu um Beispiel Routinen zzur Hostnam meauflösung.. Die vom m „oasparseer-webserver-standard.pphp“ erstelltten OpenURL ContexttObjects ste ellen keinenn ServiceTyype und keiinen Identifieer außer deer URI bereeit. Deshalb b muss er iin einer eigenen configg durch e ine Reposittorien-speziffische Klassee in „logfi ile-parser/lib/oas sparser-we ebserver<name>.php“ erwe eitert werde en. date: 02-066-2015 page 9 of 28 author: docum ment name: version: 6.4.2 Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Datenbank kparamete er Hierzu zzählen ‚databbase‘ ‚username‘ ‚passw word‘ und ‚taablename‘. Die D Daten soollten sich aus der Konfigurration ihrer MySQL Dattenbank erggeben. Beispiel:: 6.4.3 data abase' => "mysql:ho ost=localhost; dbname=xxx", File_in d Logfilepaarser sein Lo ogfile zu parrsen bekomm mt. Möglich sind Aufruffe wie Spezifiziert woher der php -f log2ctx.ph l hp -- -I F FILENAME.l log oder von STDIN: cat FILE ENAME.log | php -f log2ctx.p php Standarddmäßig wird d über den Befehl „caat“ die Logd datei aufgerufen und ü ber php://sttdin an denn Logfilepaarser übergeben. Der „-I“ Parameeter sollte der d cat- Um msetzung abeer vorgezoggen werden.. Mit tail --f könnte deer Parser dirrekt "on thee fly" aus den n Logfiles paarsen. 6.4.4 u url_prefix Die Anggabe, die auss dem Apach he-Log eine HTTP Adreesse macht. So wird aus „/files/abc.p pdf“ mithilfee des url_ _prefix http:///www.oas.d de/ die vollee Adresse „h http://www.o oas.de/files/aabc.pdf“ 6.4.5 iindent Gibt an, wie sehr daas XML jewe eils voneinannder eingerückt werden n soll. Bei Beedarf Leerze eichen eintrageen. 6.4.6 sservice_id Angabe, aus welchem Repositorium die auffgerufene Datei/dieses contextobjec c ct erstellt wurde. w Dies m logffile-parser eiinen Dataprrovider mit Informationeen versorgen. ist nützlich, wenn mehrere 6.4.7 e extensionffilter Dateien , die die hier aufgelistetten Dateienddungen vorw weisen werd den nicht verrarbeitet. Dies D erhöht ormance und verringertt die Auslasttung beim harvesten. die Perfo 6.4.8 ssend_anys Werte: false (defauult) | true Diese Eiinstellung beewirkt, dass contextobjeects, welchee nicht mit „fulltext“ „ odder „abstractt“ im „serviceetype“ beschhrieben worden sind, niccht weiter verarbeitet v werden. w Diees betrifft in der Regel Dateien , die mithilfee des Extenssionfilters beereits abgefaangen wurde en werden. Die Einteilu ung nach d „abstract“ wird nachfo olgend besch hrieben „any“/“ffulltext“ und date: 02-066-2015 page 10 of 28 author: docum ment name: version: 6.4.9 Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 iidentifier Wird in die Spalte „identifier” „ der d Datenbaank geschrieeben und taucht im OA AI Record Header auf, wenn err nicht mit Parameter P -i überschriebben wird. Z..B. "oai:hd" ergibt: oai:ddms.gbv.de:o oastatistik::oai:hd.951. Die Zahl daahinter ist d ie verarbeiteete Logfile-Z Zeilennumm mer. Der 'ideentifier_posttfix' schreibtt noch einenn unverwech hselbaren „Z Zeitstempel““. 6.4.10 maxchilds Bei gew ünschter asyynchroner Bearbeitung B legt dieser Wert W fest, wieviele w Thrreads beim Parsen P genutzt werden solllen. 6.4.11 p per_ent Anzahl dder context objects in einem e conteextobjects container c < <context-o objects> < <context-o object> .. .. </conte ext-object> ext-object> < <context-o object> .. .. </conte < <context-o object> .. .. </conte ext-object> < </context-objects> erlaufen brinngen. Voreinsttellung: 50, höhere Werte können die Datenbaank zum übe 6.4.12 hashsalt (z z.Zt. nicht benutzt) Eine zufäällig gewähltte Zeichenfo olge, die an eeinen gegeb benen Klarte ext vor der V Verwendungg als Eingabe einer Hashffunktion anggehängt wirdd, um die En ntropie der Eingabe E zu eerhöhen. Mo omentan wird keiin gemeinsam mer “Salt” benutzt. b get_sal lt.sh aktu ualisiert den Wert unterr ~/logfile-parser/lib .new < <?php $ $salt = 'B B123456789 9012345'; ? ?> 6.5 D DSpace Ko onfigurattion Für DSSpace-Repossitorien stellen wir eine angeepasste Klaasse bereitt. Editieren Sie Konfigurrationsdateien im Haupttverzeichniss „Logfile-Paarser“, beste ehend aus ei ner allgemeinen Konfigurrationsdatei namens „co onfig.php“ u nd einer Reepositorium -spezifische n Datei „configdspace.pphp“ diee Für die DSpace Konnfiguration müssen m Sie ddie OAI-PMH Schnittste elle ihres Reepositoriums harvesten,, da sich ddie Identifier für ihre Dokumente ( z.B. DOI) nicht aus der URL des D Dokuments herausfiltern h n lassen. B Benötigte Identifier stam mmen aus deer OAI-PMH H Schnittstelle ihres Reppositoriums. Führen Siee dazu dass Script har rvest-iden ntifiers.p php immer vor dem Pa arsen aus, inndem sie es im update-script.shh konfigurierren. date: 02-066-2015 page 11 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Beispiel:: #! /bin/bash da ate=`date +" "%Y-%m-%d" --date='yes terday'` ec cho $date # Step 1: Har rvest Metada ata for ide ntifier ass signment ph hp -f harves st-identifie ers.php -- -c config-d dspace.php # Step 2: Con nvert Webser rver log fi les ph hp -f ~/logf file-parser/ /log2ctx.ph hp -- -c con nfig-dspace. .php -I ~/ /rsync/local lhost_access s_log.${dat e}.txt e verfügbareen Identifier der OAI Richtig kkonfiguriert lädt Harvesst-identifierss beim ersteen Aufruf alle PMH Schnittstelle (o oaiid, datesttamp, assign ed_identifieer) in die SQ Qlite Datenb ank. Diese liegt im /data Veerzeichnis. Als Ausggabe erhalteen Sie: ph hp -f harves st-identifie ers.php -- -c config-d dspace.php HT TTP GET: htt tp://goedoc. .unigo oettingen.de e/oai/reques st?verb=Lis tRecords&me etadataPrefi ix=oai_dc& from=2013-07-26T02%3 3A20%3A23Z 6930 bytes read. server timestamp: 20 013-07-29T13 3:23:28Z Re eading recor rd <oai:goed doc.uni-goe ttingen.de:1/9172>, datestamp <2013-07-2 26T02:20:23Z Z> (=1374805 5223) Fo ound DC:Iden ntifier <htt tp://resolv ver.sub.uni-goettingen. .de/purl?gs-1/9172> Fo ound DC:Iden ntifier <htt tp://dx.doi .org/10.118 86/1471-2377 7-13-91> Fo ound DC:Iden ntifier <BMC C Neurology y. 2013 Jul 18;13(1):91 1> ig gnored ident tifier, sinc ce it doesn n't seem to be a techni ical one. Sie könnnen sich die Daten selbsst anschauenn: $> >sqlite3 oai i-harvester-goescholar r.db SQ QLite versio on 3.7.9 201 11-11-01 00 :52:41 En nter ".help" " for instru uctions En nter SQL sta atements ter rminated wi th a ";" sq qlite> sq qlite> .tabl les da ata sq qlite> .sche ema data CR REATE TABLE data ( oaiid d, dates stamp, assig gned_identif fier ); CR REATE INDEX oaiindex ON N data (oai id); sq qlite> sele ect * from data; d Ausgabee oaiid ass igned_ident tifier oai:goed doc.uni-goet ttingen.de:1/8827 oai:goed doc.uni-goet ttingen.de:1/8827 oai:goed doc.uni-goet ttingen.de:1/8828 oai:goed doc.uni-goet ttingen.de:1/8828 oai:goed doc.uni-goet ttingen.de:1/8829 oai:goed doc.uni-goet ttingen.de:1/8829 http p://resolve er.sub.uni-g goettingen.d de/purl?gs-1/8827 htt p://dx.doi.org/10.1007 7/s00784-012 2-0827-9 htt p://resolve er.sub.uni-g goettingen.d de/purl?gs-1/8828 htt tp://dx.doi. .org/10.1007 7/s00787-01 12-0323-4 htt tp://resolve er.sub.uni-g goettingen. de/purl?gs-1/8829 htt tp://dx.doi. .org/10.1007 7/s10021-01 12-9556-9 Der Loggfileparser lo og2ctx entniimmt aus deer Apache-Logfile-Zeile GET /goesc cholar/bitst tream/handle e/1/4231/125_2010_Articl le_1718.pdf? ?sequence=1 date: 02-066-2015 page 12 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 die benö ötigten Inforrmationen fü ür eine sqlitee Abfrage, z.B: z sqlite> select * fr rom data whe ere oaiid = 'oai:goedoc c.uni-goetti ingen.de:1/4 4231'; oai:goed doc.uni-goet ttingen.de:1/ /4231 http p://resolver r.sub.uni-go oettingen.de e/purl?gs-1/4231 oai:goed doc.uni-goet ttingen.de:1/ /4231 http p://dx.doi.o org/10.1007/ /s00125-010-1718-8 Diese Iddentifier find den sie ansch hließend im den contexttobjects: <referen nt> <identifie er>http://go oedoc.uni-go oettingen.de e/goescholar/ /handle/1/63 379</identif fier> <identifie er>oai:goedo oc.uni-goett tingen.de:1/6379</identi ifier> <identifie er>http://dx x.doi.org/10 0.1186/1465-9921-12-79</ /identifier> > </refere ent> date: 02-066-2015 page 13 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 6.6 Einstellungen für eine e confiig-dspace e.php: 6.6.1.1 d db_identifiier Sqlite caache: dirnam me(__FILE__ _).'/data/oaii-harvester-D Datenbank.d db' 6.6.1.2 o oai_serverr Hier steeht die URL, über die die Schnittsteelle angespro ochen wird. Beispiel:: 'http://goed doc.uni-goetttingen.de/o ai/request' 6.6.1.3 metadata aPrefix Gewünsschtes Format der OAI-Antwort. O OAI-PMH unterstützt die e Verbreitunng von mehrreren Metadattenformate aus a einem Repository. R R Repositoriess müssen unqualifiziertee Dublin Corre verbreitten können (metadataPr ( refix=oai_dcc) Weitere beliebige b Me etadaten-Forrmate könne en definiert werden und über diie OAI-PMH H Schnittstel le transporttiert werden n (z.B. metaddataPrefix=m marc21) Für Opeen Access Sttaticts wird “oas” verweendet. Beisp piele: provider.dmss/?verb=ListtRecords&m metadataPreffix=oas http://oaas-cdp.gbv.de/oai-data-p http://go oedoc.uni-go oettingen.de e/oai/requestt?verb=ListR Records&me etadataPrefixx=oai_dc http://memory.loc.ggov/cgi-bin/o oai2_0?verb= =GetRecord d&metadataP Prefix=marcc21 6.6.1.4 full_harve est Werte: false (defauult) | true Manche OAI-PMH Schnittstelle S en sind nichtt korrekt im mplementierrt. Dies führrt dazu, dasss Parameterr zum su kzessiven Harvesten H nicht korreekt erkanntt werden. Sofern diees auf ihre OAI-PMH H Schnittsttelle zutrifftt, setzen Sie e diese Einsttellung auf ‘ttrue’ (boole ean). Dies beewirkt, dasss der Cachee bei jede m Aufruf vo on harvest-identifie ers.php ge elöscht wird, und alle zuur Verfügungg stehendenn Metadatten komplettt neu heruntergeladen w werden. 6.7 Spezielle config-ST c TUB.php Diese D Datei ist sppezifisch für das jeweeilige Repossitorium, welches genuutzt werden soll. Diee spezifiscchen Angabeen überschrreiben die iin der config.php angelegten Fallb ack-Einstellu ungen. Hierr wird aucch der eigenne Parser de efiniert. Als B Beipiel dientt oasparser-webserver-SSTUB.php. require_oncce(dirname(_ __FILE__).'//lib/ oasparsser-webserver-STUB.phhp’ 6.7.1 Parser Der Parrser besteht im Wesentlichen aus d en Dateien ../lib/oasparsser-webserver-standard .php ../lib/oasparsser.php Die Dattei oasparserr-webserverr-standard w wird überladen von den Repositorieen spezifischen Parsern, wie zum m Beispiel deer oasparserr-webserver--STUB.php. date: 02-066-2015 page 14 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 6.7.1.1 ./lib/oasparser-websserver-STU UB.php In der D Datei oasparser-webservver-STUB.phhp muss einee Klasse, z.B B. “OASParrserWebservverSTUB” definiertt werden: (class s OASParse erWebserve erSTUB ext tends OASParserWebserverSta andard). Für die Funktion ge et_details s definieren Sie eine eige ene Klasse z.B. z STUB_ttoolbox (Ausschnitte aus dem m Code): o oasparser-w webserver-S STUB.php var $STU UB_toolbox= =false; $this->S STUB_toolbo ox=new STUB BToolbox($config, $logger); $data=$t this->STUB_ _toolbox->g get_details($document); 6.7.1.2 Classifica ation Außerdeem wird in dieser Datei angepasst, a w welche IP- Ranges als “inte erne” Zugriffffe, und welche als Nutzerzugriffe gezähhlt werden so ollen. Passenn Sie dafür die Funktion „get_requestter_classificaation” an: o oasparser-w webserver-S STUB.php functi ion get_req quester_cla assification($ip) { if($ip p == '123.4 45.678.90') )//Example IP return n array('ad dministrati ive'); ($ip,0,7) = === '124.68 8.')//Examp ple IP Rang ge if(substr( return n array('in nstitutiona al'); return arr ray(); } } Sie erhallten dann unter request terinfo <metada ata> <requeste erinfo> <hashed-ip p> 5c c72708e0b50 0….. </hashed-i ip> <hashed-c> > 9e e9ecb386….. . </hashed-c c> <hostname> >160.208</h hostname> <classific cation>inst titutional< </classific cation> < </requester rinfo> </metad data> Erlaubte Werte (opttional): "internall": "adminisstrative": "institutiional": date: 02-066-2015 Für techniscche Zugriffe jjeder Art, Manuelle Zu ugriffe, Fehleersuche, Testts. Zugriffe inne erhalb einer Institution page 15 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 6.7.1.3 ./lib/identtifiers/lib-S STUB.php Die lib-SSTUB.php ist die Datei, in der entscchieden wird d, ob ein Do okument lauut seiner UR RL ein „fulltextt“- Zugriff, ein e „abstractt“-Zugriff odder ein „anyy“, also ein irrrelevantes Dokument ist. Die Funktionn function get_de etails($pa ath) bekomm mt als Überggabeparametter den relattiven Pfad dees in der Lo ogdatei verzeeichneten Dokumeentenpfads. Wenn der Aufruf A also http://go oedoc.unigoettinggen.de/goesccholar/bitstream/handle//goescholar//3535/427_2 2008_Articlee_221.pdf war, steeht in $path „/goescholaar/bitstream//handle/goesscholar/3535 5/427_2008_ 8_Article_22 21.pdf“. Anhand der URL Struktur müssste sich nachhvollziehen lassen, ob es sich dabei um einen abstract oder ful ltext Zugrifff gehandelt hat. h Im Repo ositorium „ggoescholar“ ist das Schl üsselwort „bitstream“ weis auf eineen fulltext- Zugriff. Z Wennn lediglich „handle“ in der URL stäände, würde e es sich um ein Hinw einen Abbstract- Auffruf handeln. mmt in unseerem Fall die e ID, die Zudem ist die Nummer, die nacch dem Stichhwort „goesscholar“ kom auch im OAI-Identiffier des Dok kuments ste ht. Sofern es e ausreicht, den OAI-Iddentifier an uns u zu senden, müssen Sie ihn an diese er Stelle ma nuell zusammenbauen und u an das PProgramm üb bergeben. Dies wüürde in dieseem Fall folge endermaßen aussehen: Beispiel if(pr reg_match( ('/\/bitstr ream\/[^\/ /]+\/([0-9] ]+)\//', $p path, $mat tch)) { / // we have e a fulltex xt -- prob ably. $ $types[]='fulltext'; ; $ $id_list[]="oai:goed doc.uni-go ettingen.d de:goeschol lar/$match h[1]"; } els _match('/\/ /handle\/[ ^\/]+\/([0 0-9]+)/', $path, $ $ma atch)) { seif(preg_ / // This is s probably a metadat a page $ $types[]='abstract'; ; $ id_list[ []="oai:goe edoc.uni-g goettingen. .de:goescho olar/$matc ch[1]"; } els se { $ $types[]='any'; } rn array('ids'=>$id_ _list, 'ty ypes'=>$typ pes); retur Das Anhhängen weitterer Metad daten und Iddentifier (die z.B. ein DOI) D funktiooniert über die internee sqlite Scchnittstelle, die vor dem m Aufruf dess logfile-parsers mit dem m Befehle „ harvest-iden ntifiers.php““ befüllt w wurde. Hierrzu muss, wie w im oben genannten Beispiel, de er OAI-Idenntifier manuell aus URLL Bestandtteilen zusam mmengestellt werden. Dies biettet zudem eine differrenziertere Möglichkeitt zwischen abstract/ffulltext und any Dokum menten zu unterscheid den. Sofern die Datenb bank keinenn Eintrag mit dem geebildeten OA AI-PMH Ideentifier findeet, könnte dies d ein Hinnweis darau uf sein, dasss dieses D Dokument kein k fulltext sein kann, o obwohl es unter u Umstäänden durchh die URL Klassifikation K n so eingeestuft wurdee. U dung zwischeen abstract und fulltext,, anhand derr OAI-PMH Beispiel für eine diffferenzierte Unterscheid Daten, ddie von Ihrem Repository geharvesttet wurden (harvest-ide entifiers.php)). date: 02-066-2015 page 16 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 $search h = "oai:go oedoc.uni-goettingen n.de:goescholar/$mat tch[1]"; $oaiid= =false; // Read ds the inte ernal sqli ite databas se. It's a buffer fo or the oai-pmh // inte erface of your y repos sitory // to a avoid redun ndant quer rys. To kee ep this database up to date, c call // harv vest-identi ifiers.php p frequentl ly. $sql = 'SELECT oa aiid, assi igned_ident tifier FROM data WHE ERE oaiid L LIKE '.$th his->dbh>quote( ($search).' ';'; foreach h($this->db bh->query($sql) as $ $data) { =$data['as $id_list[] $ ssigned_id dentifier'] ]; $oaiid=$da $ ata['oaiid' ']; } if($che eck && (0== =count($id d_list))) { //Nothi ing found, so not re eally a doc cument (but rather a browsing page or //simil lar, which are ident tified like e abstract pages) $ $types=arr ray('any'); ; } elsei if($oaiid) {// prepe end oai ide entifier to list of document i identifier rs for abstrac ct and full ltext page es $ $id_list=a array($oaii id)+$id_li st; } date: 02-066-2015 page 17 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 6.8 Id dentifier 6.8.1 W Was sind OAI-Identi O ifier? OAI-Bezzeichner leitten sich von n der allgem meinen URI-SSyntax: <sch heme>: <schheme-speciffic-part> ab,, definiertt in RFC 23996. Sie sind Ressourcennbezeichner (URN) im Sinne S des RFFC17373. Sie e sind keinee „Resourrce Locatorss“ (URLs). Der OA AI-Identifier ist eine eindeutige Keennung und identifizierrt eindeutig ein Elemen nt in einem m Reposito ory. Elemente können Metadaten M inn verschiedeenen Formatten enthalteen. Das zugrundliegendee Schema ist http://ww ww.openarcchives.org/O OAI/2.0/oai-identifier.xsd d. Die Folgeenden Beispiele wurdenn aus httpp://www.opeenarchives.orrg/OAI/2.0/gguidelines-oai-identifier..htm entnom mmen. oai-ide entifier = scheme ":" " namesp pace-identifier ":" local-i identifier r scheme = "oai" space-iden ntifier = domainnam me-word "." domainname names "." domainname ] domai inname = domainname d e-word [ " anum | "-" ) domai inname-wor rd = alpha a *( alpha local l-identifi ier = 1*ur ric Alle dreei Teile des oai-identifie er sind “casee sensitive“. Beachten sie also die Groß-/Kleinschreibungg konsequuent. Reservieerte Zeichenn sollen nich ht verwendeert werden, da sie als Trrennzeichenn, Delimiter oder Separato oren zur Abbgrenzung einzelner Elem mente in Daaten verwendet werden können. Reserve ed Charact ters ; rved Chara acters unreser alphanu um | mark Mark = alp phanum = alpha a | di igit - _ . ! ~ * ' ( ) / ? : @ & = + $ , Der loc cal-identifier kann n sich aus r reserved | unreserv ved | esca aped zusam mmensetzen. Reservieerte Zeichenn müssen hie er nicht es caped werrden. eserved un nd reserved Set enthallten sind müüssen geschü ützt Alle Zeichen, die nicht im unre werden.. n < > # % { | } \ ^ [] unbe edingt geschüützt werden n müssen. Damit gibt sich, das die Zeichen 3 Functionnal Requirementts for Uniform Resource R Namess http://www.ietff.org/rfc/rfc1737 7.txt date: 02-066-2015 page 18 of 28 author: docum ment name: version: 6.8.2 Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Beispiele für f OAI-Ide entifier Gültige OAI-Bezeichner: scheme ":" namespaace-identifierr ":" local-iddentifier oai:arX Xiv.org:he ep-th/9901 1001 oai:HUB Berlin.de: :1253 oai:fra aunhofer.d de:N-45459 9 oai:foo o.org:some e-local-id d-53 oai:bat th.ac.uk: lisap-200 03-1286544 4 0136 oai:xtc cat.oclc.o org:OCLCNo o/ocm41020 oai:nat ture.com:1 10.1038/18 87504a0 oai:wib bble.org:a ab%20cd Keine güültigen Oai-B Bezeichner Bezeichner: oai:999 9:abc123 oai:wib bble:abc12 23 oai:wib bble.org:a ab cd oai:wib bble.org:a ab#cd oai:wib bble.org:a ab<cd oai:wib bble.org:a ab%3ccd 6.8.3 ;namespac ce-identifier must not star rt with di igit ce-identifier must be domai ;namespac in name ot permitted (must be escap ;space no ped as %20 0) ermitted ;# not pe ermitted ;< not pe be escaped at %3C not %3c ;< must b Mehrere Id dentifier, ein e Datapro ovider m Webserver Log wie z.B. Der Loggfileparser bildet aus dem Aufruf im "GET T /dms/zbw/732502993. pdf ... Eindeutiige Identifierr wie ( (1)http://w www.gbv.de/ /dms/zbw/73 32502993.pdf ( (2)oai.gbv. .de:dms:zbw w:toc:73250 02993 Diese w werden bei der anschließ ßenden Bereechnung übeer eine SQL LIKE Abfragge ausgewerrtet oai.gbv v.de:dms:zb bw:toc:% Daher isst es möglich, mehrer Id dentifier ausszuwerten, die d aus verscchiedenen Q Quellen stam mmen. oai.gbv v.de:dms:zb bw:toc:% oai.gbv v.de:mycore e:openagrar r% 6.8.4 W Wie konfig guriere ich h das im Daataprovide er? Standarddisierte Idenntifier werden u.a. für die Auswerrtung benötigt. Sie müsssen eindeuttig sein. Mitt unterschhiedlichen Id dentifieren lässt sich eiin Aufruf im m Logfile nacch verschieddenen Gesicchtspunktenn date: 02-066-2015 page 19 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 auswertten (Zeitschhrift, Jahr, PPN). Ein annspruchsvolles Beispiel wurde hierr konfigurierrt (Weiteree Beispielee sind im Annhang vorgestellt). Beispie el 1 (Ausschnitt aus dem m Metadatenn im contextt-object): <referen nt> <identif fier> htt tp://localho ost:8086/gcs/ /gcs?action= =pdf&metsFil le=PPN345574 4974_0058 &di ivID=log98&p pdftitlepage= =http://www. .digi.de/dms s/pdf-titlep page/? met tsFile=PPN345574974_0058 8&divID=log9 98&targetFil leName=PPN34 45574974_005 58_log98.pdf </identi ifier> <identif fier>digi.de e:PID:PPN3455 574974_0058/ /dmdlog98</i identifier> <identif fier>digi.de e:PERIODICAL: :PPN34557497 74</identifi ier> <identif fier>digi.de e:VOLUME:PPN3 345574974_00 058</identif fier> <identif fier>digi.de e:YEAR:2003</ /identifier> > <identif fier>digi.de e:ACL:Gesamta abo</identif fier> <identif fier>digide:ACL:MohrSieb beck</identi ifier> <identif fier>digi.de e:ACL:Law</id dentifier> <identif fier>digi.de e:DC:340.Law< </identifier r> <identif fier>digi.de e:TYPE:PDF</i identifier> <identif fier>oai:www w.digi.de:PPN N345574974_0 0058/dmdlog9 98</identifi ier> <identif fier>digi.de e:institution n:681</ident tifier> </refere ent> menbauen“: oai:Reposito oryname:Ze itschriftenID D:ArtikelID Mit Idenntifieren wiee den Identifier „zusamm Haben sie die ArttikelID mit der Zeitscchrift verknüpft, In de en meisten Fällen lasse en sich diee benötigtten Angabeen aus der aufgerufen en URL ex xtrahieren. Das geschiieht über reguläreree Ausdrüccke. Erstelleen Sie eine eigene lib uunter logfi ile-parser r/lib/iden ntifiers. Die libSTUB.ph hp dient als Beispiel. olbox aufgeerufen und über regulä äre Ausdrüccke unter an nderem derr Hier wi rd die Klasse STUBToo service-ttype (any/fuulltext/abstraact) gebildett, der sich ja nicht unbe edingt direkkt aus den Apache A Logss ergibt. A Außerdem wird w hier derr OAI Identiifier gebildett. D nnicht aus deer URL ablessen lassen, ddient die lib-dspace.phpp Sofern SSich die Idenntifier des Dokuments als Beisppiel. Sie zeiggt, wie das Tool T „identiifier-harvestter.php“ die e Identifier in den interrnen SQLitee cache abbgelegt hat, und wie Sie die Daten ddurch diese anreichern können. date: 02-066-2015 page 20 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 6.9 A Ausgabe Der Loggfileparser innformiert wäährend und nach der Verarbeitung V g über die geeparsten Loggzeilen. All loglines (cumulaated) gibt die Anzahl d er Logzeilen n aus. Dasse elbe Ergebnnis erhalten sie z:B. mitt “wc –l”” Mit dieserr Ausgabe lässt sich sschon im Vorfeld V überprüfen, obb die geparsten Zeilenn vollständdig erfasst wurden. w (...) <L:40434> > OK: <L:40899> > OK: <L:41634> > OK: <L:42019> > OK: <L:43089> > OK: <L:-1> OK K: 16 40 context objec cts written 40 context objec cts written 40 context objec cts written 40 context objec cts written 40 context objec cts written context objects written to to to to to to DB DB DB DB DB DB ------------ STATS -----------All logli ines (cumulated) (4319 90) _________ ___________ ____ Contextob bjects (3456) - abstract -> - fulltext -> - robots.txt -> _________ ___________ ____ : : : 1784 1614 58 Database entries (87) _________ ___________ ____ Loglines skipped (39734) 35915 - ANY document : -> - Invalid HTTP method -> d (HEAD) - Invalid HTTP status -> s (404) - Invalid HTTP status -> s (500) - Invalid HTTP status -> s (503) - Invalid extension ( -> (css) - Invalid extension ( -> (gif) - Invalid extension ( -> (jpeg) - Invalid extension ( -> (jpg) - Invalid extension ( -> (js) - Invalid extension ( -> (png) _________ ___________ ____ : : : : : : : : : : 11 175 300 1919 9 348 712 3 16 244 91 Duration: : 42.559922933578 seco onds date: 02-066-2015 page 21 of 28 author: docum ment name: version: 7 Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 O Open Journal Systems - OJS [PKP] [ Für Opeen Journal Systems S (OJJS) wurde eein Open Access Statistics (OA-S) Plug-In enttwickelt. Im m Wiki au f http://pkp..sfu.ca/wiki/iindex.php/O OJSdeStatisticsConcept dokumentie d ert. Ab Verssion OJS 2.33 über den automaatischen Plu ug-In-Installeer installierbar. Lesen n die die Readme-D Datei unterr https://ggithub.com/jeerico-dev/ojjs/tree/dev/pplugins/geneeric/oas. Fraggen dazu bittte nur an das d Supportt Forum hhttp://forum.pkp.sfu.ca/. 8 R Regelmä äßige Ro outinen n (DP) 8.1 C Cleanup Um die Datenbank von nicht mehr m benötiggten CTXOss zu löschen kann ein “ccleanup” mitt der Granula rität von einnem Tag erffolgen (php -f log2ct tx.php -- -R age_in n_days). Die Umrech nung in Unix-Zeit erfolgt dann stunndengenau ab a der aktue ellen Ausführrungszeit alss DELETE FROM coontextobjectss WHERE tim mestamp < '11362034252 2'. Da die D Daten der Logs selbst als CTXO veerpackt in deer Spalte DA ATA als longgblob vorlieggen, kann nur auf ddie Zeile tim mestamp zuggegriffen we rden, das Datum D an dem m es in die D Datenbank geschrieben g wurde. Da das O OAI-Protokkoll keine Rü ückgabewertte für übertrragene CTX XO vorsieht,, weiß der DP D nicht, ob die in deer Datenbannk gespeiche erten CTXO O bereits vom m SP geharvvestet wurdeen. Er weiß also auch nicht, obb die Daten bereits gelö öscht werdeen können. Wir W empfehllen, die Dateen erst dann n zu löschen,, wenn die Auswertung A auch vorlieggt. 9 A Anpassu ung OAII-PMH S Schnittstelle Der Datta Provider stellt die OA AI-Schnittsteelle zur Verrfügung. Er liefert contexxt-objects aus der Datenbaank, die tägliich vom Loggfileparser lo og2ctx dort abgelegt we erden. Dateien und Verzeicchnisstruktu ur (Beispiel):: va ar/www/oai-d data-provide er p index.php oai2.xsl va ar/www/oai-d data-provide er/lib myxmlwrit ter.php oai-data-provider.ph hp 9.1 K Konfigurattion der OAI-PMH H Schnitttstelle oai-dataa-provider.phhp enthält die Klassee OAI20DaataProvider in der ddie default-W Werte derr Schnittsttelle (verb=Identify) lieggen. var $config g=array('ma ax_items'=>f false); var $identi ify=array( 're epositoryNa ame'=>'Dummy y Repository y', 'ba aseURL'=>fa alse, 'pr rotocolVersion'=>'2.0' ', 'ea arliestDatestamp'=>'20 000-01-01', 'de eletedRecor rd'=>'persis stent', date: 02-066-2015 page 22 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 'gr ranularity'=>'YYYY-MM-DDThh:mm:ss sZ', 'ad dminEmail'= =>'not@valid d.example.or rg' Benutzeen Sie die co onfig.php um m den Datennbankzugangg und weiterre Informatioonen ihres Repositoryss dort einnzutragen: * OAI D Data Provide er Config * @subp package oai-data-provider * @vers sion 0.1 $config= =array( 'repo_name' ' atistik Data a Provider Logs L Server r http://dms s.gbv.de', =>'OA-Sta 'db_uri' =>'mysql: :host=localh host;dbname= =oas_data_p provider_dms s', 'db_table' =>'contex xtobjects', 'db_user' =>'oas_dp p_dms_gbv', 'db_passwor rd' =>'xxxxxx xx', 'oai_base_u url' =>'http:/ //oas-cdp.gb bv.de/oai-da ata-provide er.dms/', 'oai_server r_admin' =>'recke@ @gbv.de', 'oai_identi ifier_prefix'=>'oai:dm ms.gbv.de:oa a-statistik' ', 'fix_broken n_namespaces'=>true ); Wenn a lles funktionniert, können Sie sich diie HTML-Veersion der XML-OAI X A Antwort anscchauen: mo Dataprovid der finden Sie unter http://oaas-cdp.gbv.de/o oai-data-provid der.demo/indexx.php Einen Dem date: 02-066-2015 page 23 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 10 V Validato or Ein Onliine Validator zur Überp prüfung der X XML-Strukttur des OA-S Statistik-Datta-Provider (OAS-DP) nach denn Schemata erleichtert Ihnen die Feehlersuche http://oaas-sp.gbv.de//validator/ date: 02-066-2015 page 24 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 11 F Fehleran nalyse Beispielee für Fehler w während derr Validierungg Fehler 1824: Elemen nt "{info:ofi/ffmt:xml:xsd: ctx}identifier" enthält einen ungültiggen Wert: macau.uni"http://m kiel.de/seervlets/MCR RFileNodeSerrvlet/dissertaation_derivaate_00002798/Dissertatioon_[2].pdf". Gültige W Werte entsprechen folge endem Form at: "{info:ofii/fmt:xml:xsd d:ctx}identifiier‐type". Der Fehler trat ab folgenden Zeilen auf: 286 Vermutlich ist es die [2] im 1. Ide entifier <simpleType nam me="identi ifier-typ e"> <annotation> <d documentat tion>Ident tifiers i n the Ope enURL Fram mework ar e URIs</documenta ation> </annotation> > <restriction base="any yURI"/> </simpleType> 12 D Datenrü ückführu ung 12.1 Formate Die ausggewerteten Nutzerdaten können übber unsere API A als JSON N, CSV, XM L zurück geliefert werden.. Der Zugang wird mit einem e Passw wort geschüttzt. date: 02-066-2015 page 25 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 12.2 G Grafikausg gabe Wir bietten ein fertiges Grafikm modul an, dass die Statistiikdaten entssprechend viisualisiert. Näheres N wird im „Leitfaden für f die Verw wendung dess OAS-Grafiikmoduls“ beschrieben. 13 A Anhang 13.1.1 Beispiele zu z get_deta ails functi ion get_deta ails($path) { $ch heck=false; $id d_list=arra ay(); $ty ypes=array(); $se earch=false; if( (preg_match h('/\/(bg-[0 0-9\-]+).pdf f/', $path, $match)) { // Th his is a fin nal revised paper. $types[]='final_ _revised_pap per'; // $sear rch="oai:goe edoc.uni-goe ettingen.de: :goescholar r/$match[1]" "; } elseif e (preg_match('/\ \/(bg-[0-9\-]+).html/', , $path, $m match)) { // Th his is the a abstract pag ge $types[]='abstra act'; // $sear rch="oai:goe edoc.uni-goe ettingen.de: :goescholar r/$match[1]" "; } elseif e (preg_match('/\ \/(bgd-[0-9\ \-]+).pdf/', , $path, $m match)){ // Th his is a dis scussion pap per) $types[]='discus ssion_paper' '; } elseif e (preg_match('/\ \/(bg-[0-9\-]+).xml/ ', , $path, $m match)){ // Th his is a XML L File $types[]='XML_Fi ile'; } else e { $types[]='any'; } if( ($search) { $oaiid=false; forea ach($this->d dbh->query($ $sql='SELECT T oaiid, as ssigned_iden ntifier FROM dat ta WHERE oai iid LIKE '.$this->dbh->quote($sea arch).';') as a $data) { $id_list t[]=$data['a assigned_ide entifier']; $oaiid=$ $data['oaiid d']; } if($check && (0= ==count($id_ _list))) { // not r really a doc cument (but rather a b browsing pag ge or similar, , which are identified d like abstr ract pages) $types=a array('any') ); } elseif($oaiid) { // prepe end oai iden ntifier to list l of doc cument ident tifiers for abstract t and fullte ext pages $id_list t=array($oai iid)+$id_lis st; } } ret turn array('ids'=>$id_ _list, 'type es'=>$types) ); } date: 02-066-2015 page 26 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 Ausschnnitt aus dem Metadaten im context--object für OPUS <refere ent> <ident tifier>http p://www.ped docs.de/fro ontdoor.php p?source_op pus=4274</i identifier> > <ident tifier>4274 4</identifi ier> <ident tifier>oai:www.pedocs s.de-opus:4 4274</ident tifier> </refer rent> PHP Cod de 'servic ce_id' => 'http://'.$url, 'identi ifier' => 'oai:pe edocs', 'identi ifier_urlco ontextobjec cts' => 'oai:'.$ur rl.'-opus: functio on get_deta ails($path) { $ch heck=false; $id d_list=arra ay(); $ty ypes=array( (); $se earch=false e; if( (preg_match h('/^\/fron ntdoor\.php p\?[^ ]*sou urce_opus=( (\d\d*)/', $path, $ma atch)) { $ $types[]='a abstract'; $ $id_list[] = $match[1 1]; $ $id_list[] = $this->c config['ide entifier_ur rlcontextob bjects'].$m match[1]; } els seif(preg_m match('/^\/ /volltexte\ \/\d{4}\/(\ \d\d*)\/pdf f\/.+\.pdf$ $/i', $path h, $match)) { $ $types[]='f fulltext'; $ $id_list[] = $match[1 1]; $ $id_list[] = $this->c config['ide entifier_ur rlcontextob bjects'].$m match[1]; } els se { $ $types[]='a any'; / //return fa alse; } de 2 13.1.2 Beispielcod Ausschnnitt aus dem Metadaten im context--object <refere ent> <ident tifier>http p://www.gbv v.de/dms/zb bw/56056209 98.pdf</ide entifier> <ident tifier>5605 562098</ide entifier> <ident tifier>oai:www.gbv.de e-toc:56056 62098</iden ntifier> </refer rent> PHP Co ode strtolo ower(pathin nfo(parse_u url($path,P PHP_URL_PAT TH),PATHINF FO_FILENAME E)); //Ident tifier anfu uegen $id_list t[] = $file ename; $id_list t[] = "oai:www.gbv.de e-toc:" . $filename; $ date: 02-066-2015 page 27 of 28 author: docum ment name: version: Marcoo Recke Leitfadden_für_die_Installattion.doc 1.8 13.1.3 Links [1] http://www..danielfett.de e/internet-u nd-opensou urce,artikel,rregulaere-auusdruecke. [2] Demo Dataprovider (O OAI) dp.gbv.de/oai-data-providder.demo/ind dex.php http://oas-cd [3] O OJS-Plugin für f OAS Quellcode https://githu ub.com/jericco‐dev/ojs/trree/dev/pluggins/generic//oas http://pkp.sffu.ca/wiki/in ndex.php/OJ SdeStatisticssConcept [4] SSpecificationn: Data Form mat and Exc hange for OA O Statistics http://www..dini.de/fileadmin/oa-stattistik/projekktergebnisse e/Specificatioon_V5.pdf date: 02-066-2015 page 28 of 28