Lei tfade en fü ür die Data e Tei a Pro lnah ovide me a er als

Werbung
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
Herunterladen