TARTALOMJEGYZÉK SZOLGÁLTATÁS MYSQL ÉS PHP SEGÍTSÉGÉVEL
Table Of Contents Service with MYSQL and PHP
Abstract
The staff of the Library, Archives and Museum of the
University of Miskolc created a Table of Contents (TOC) service using
three popular open source softwares (Apache Webserver, MySQL relation
database system and PHP, a HTML embedded scripting language). The TOC of
15 technical and natural science journals published in Hungary are included
in the database. It is the first TOC service in Hungary enabling not only
the browsing of the TOCs of the journal issues but also searching of authors
and/or title keywords. After retrieving an author or title keyword or the
combination of them the most important data of the article and the journal
appear (max. 5 authors pro article, title, journal title, ISSN, year of
publishing, enumeration data, pages). The creation of the database and
the service will be presented from the programmers point of view but the
problems of the librarians working on the data input and the methods applied
to overcome them will be sketched as well.
Összefoglaló
A ME Könyvtár, Levéltár, Múzeum munkatársai tartalomjegyzék
adatbázist hoztak létre Linux operációs rendszeren három népszerű szabad
felhasználású szoftver (Apache webszerver, MySQL relációs adatbáziskezelő
és PHP HTML-be ágyazható programozási nyelv) segítségével, melyben 15 magyar
kiadású műszaki és természettudományi folyóirat tartalomjegyzékét dolgozták
fel. Magyarországon ez az első olyan tartalomjegyzék szolgáltatás, amely
nemcsak a folyóirat számok tartalomjegyzékének böngészését, hanem a szerző
és/vagy a címben levő szavak szerinti keresést is lehetővé teszi. Adott
szerzőre vagy kulcsszóra való keresés során megjelennek a cikkek és a folyóiratok
legfontosabb adatai (max. 5 szerző, cikkcím, a folyóirat címe, ISSN száma,
megjelenési év, számozási adatok, oldalszám). Az előadás egyrészt ismerteti
a szolgáltatás létrehozását informatikai szempontból, bemutatja az adatbázis
szerkezetét, másrészt ecseteli az adatbevitel során tapasztalt könyvtárosi
problémákat, és az alkalmazott módszereket ezek leküzdésére.
1. Bevezetés
2002. első félévében a NKÖM 2001. évre kiírt ún.
telematikai pályázati támogatását felhasználva tartalomjegyzék szolgáltatást
hoztunk létre. Célunk az volt, hogy 15 magyar nyelvű és kiadású tudományos
(műszaki és természettudományi) folyóirat tartalomjegyzékét dolgozzuk fel
havi frissítéssel és 10 évre visszamenően is. A szolgáltatást a Könyvtár
honlapján tettük elérhetővé, ahol mind a tartalomjegyzékekben való böngészést,
mind a szerző ill. cím kulcsszavakra történő keresést biztosítjuk. A szolgáltatás
jelenleg a
http://marki.lib.uni-miskolc.hu/kezdo.php oldalon érhető el.
2. A felhasznált szabad szoftverek
1.1. Apache. A web oldalakat
szolgáltató webszerver. Honlapjuk:
http://www.apache.org
1.2. MySQL. a világ legnépszerűbb nyílt forráskódú relációs adatbázis
kezelője, több mint két millió helyen telepítették. A MySQL AB svéd cég
készíti és ingyenesen hozzáférhetővé teszi. Honlapjuk:
http://www.mysql.com.
1.3. PHP. Eredeti neve: Personal Home Page Tools, mai neve: Hypertext
Preprocessor. Olyan önállóan használható programozási nyelv, amely képes
nagyméretű webes adatbázis alkalmazások működtetésére is. Tulajdonképpen
kiszolgáló oldali programozási nyelv, amit jellemzően HTML oldalakon használnak.
A hagyományos HTML oldalakkal szemben azonban a kiszolgáló a PHP parancsokat
nem küldi el az ügyfélnek, azokat a kiszolgáló oldalán a PHP értelmező
dolgozza fel. A programokban lévő HTML elemek érintetlenül maradnak, de
a PHP kódok lefutnak. A kódok végezhetnek adatbázis kezelést (feltöltés,
lekérdezés), dinamikusan létrehozhatnak képeket, fájlokat olvashatnak
és írhatnak. Honlapjuk:
http://www.php.net.
Az Apache + PHP + MySQL szoftverek együttese közkedvelt megoldásnak
számít, igen sok honlap készül ezzel a technikával. Az Apache és a PHP biztosítja
a stabil HTTP szervert és a programozási nyelvet, mellyel dinamikus weboldalakat
készíthetünk, míg a MySQL adatbázis kezelő rendszer az adatok tárolását
teszi lehetővé.
3. Az adatbázis létrehozása
Legfontosabb feladat bármilyen alkalmazás létrehozásánál
az alapos, átgondolt tervezés. A cél ismeretében legelőször az adatbázist
kell megtervezni. A táblák felvétele nem tart sokáig, de a táblák szerkezetének,
egymással való kapcsolatának kialakítása komoly megfontolást vesz igénybe.
Ezzel sok későbbi bosszúságot és felesleges munkát takaríthatunk meg.
Az adatbázis folyamatosan növekedik. A cikk írásának időpontjában az
adatbázis tartalma:
10950 cím
ebből 7190 cikk tartalmaz szerzőt is
5644 szerző
10982 cikkszerző kapcsolat
21886 szó
1. ábra: A 'Tartalom' adatbázis táblái.
Az 1. ábra mutatja az adatbázis tábláit. A vastag betűs
mezőnevek egyedi azonosítók, ún. kulcsok, amelyekre a tábla indexelve
van, vagyis az adatok gyorsan kereshetők.
2. ábra: Az adatbázis tábláinak kapcsolata
A szaggatott vonallal rajzolt táblák kapcsoló táblák,
azonosító számokat rendelnek egymáshoz, pl. a 'cikkszerzo' tábla minden
sora egy cikk számához ('cikksz' mező) hozzárendeli a szerzők szerzőszámát
('szerzosz' mező). Egy cikkhez max. 5 szerzőt engedünk meg, vagyis egy
cikkszámhoz max. 5 sor tartozhat a táblában.
4. A PHP programok elkészítése
Összesen 49 php ill. inc kiterjesztésű file készült
107 Kbyte terjedelemben. Van még ezen kívül 4 jpg file az egyedi, csinos
megjelenítéshez. A beviteli programok elkészítése sokkal több munkát vett
igénybe, mint a lekérdezések programjaié.
4.1. Adatbevitel
Először készültek el természetesen az adatbevitelhez
szükséges HTML oldalak a beágyazott PHP sorokkal, hogy a könyvtárosok
elkezdhessék a munkát. A folyóiratok, a kötetek, füzetek (vagy számok)
és cikkek felvehetők, módosíthatók, törölhetők.
3. ábra: Cikkbeviteli űrlap
4.2. Lekérdezés
A bevitt tartalomjegyzékek egyrészt böngészhetők
a folyóirat adott kötetének adott száma szerint, illetve kereshetők a címben
levő szavak ill. a szerzők szerint. A lekérdező ablakban kétféle keresési
lehetőség nyílik. Egyrészt a szerzők és kulcsszavak böngészhetők, majd a
hozzájuk tartozó cikkek megjeleníthetők, másrészt a szerző(k) neve és a címben
levő szavak kombinálhatók és úgy képezhetők a találati halmazok. Mind a két
keresési módnál lehet idő szerint szűkíteni.
5. A folyóiratok feldolgozása
5.1. Elvek
A feldolgozás során ragaszkodtunk a tartalomjegyzék
sorrendiségéhez, akkor is, ha az nem követte a cikkek oldalszám szerinti
sorrendjét az adott folyóiraton belül. A tartalomjegyzékben szereplő rovatcímeket
általában elhagytuk, kivéve, ha azon belül cikkcím nem volt feltüntetve,
a rovat kezdő oldalszáma azonban igen.
Az oldalszámokat viszont sosem a tartalomjegyzék szerint vettük
fel, hanem a folyóirat átvizsgálása során állapítottuk meg a tényleges oldalszámot.
A szerzők nevét nem egységesítettük.
5.2. Tapasztalatok
5.2.1. Pozitívumok
- A felhasznált szoftverek ingyenesen elérhetőek. A kereséshez
és adatbevitelhez egyaránt elegendő az internetkapcsolat és egy böngészőprogram.
Ezáltal az adatbázis bővítésébe könnyen bevonhatók más intézmények is,
a szolgáltatás akár országos jellegűvé is tehető.
- Az adatok bevitele a felhasznált módszerekkel rendkívül gyors, a bevitel
módja egyszerű, könnyen elsajátítható, nagyobb szakképzettséget nem igényel.
- A kulcsszó szerinti keresés biztosítja, hogy egy adott témában kereső
felhasználó nagy mennyiségű folyóirat átvizsgálása nélkül is megtalálja
a témába vágó cikkek halmazát.
5.2.2. Negatívumok
- A szolgáltatás csupán kiindulópontot nyújt egy adott
témában való kereséshez, de a találati halmaz leszűkítése a valóban hasznos
információkra további helyben történő kutatást igényel.
- A webes bevitel miatt a vegyjelek hű tükrözése nem megoldott. Az idegen
nevekben esetlegesen használt speciális karakterek ugyan Unicode-os formában
tükrözhetőek, viszont az ilyen nevek nem kereshetőek.
- A gyors adatbevitel nem jelent feltétlen pontos és egységes bevitelt.
- Hibaforrások pl.:
- elírások,
- helyesírási hibák,
- adatkihagyások,
- problémás esetek nem egységes kezelése,
- alcímek és párhuzamos címek nem szabályszerű felvétele (amennyiben
nem képzett könyvtáros a feldolgozó).
5.3. Problémák
A feldolgozás során az alapvető gondot az okozza,
hogy a tartalomjegyzékek messzemenően nem tükrözik az adott folyóirat
tartalmát.
El kell dönteni, hogy a tartalomjegyzékhez szigorúan ragaszkodva felvállaljuk-e
az előforduló (nem kevés!) pontatlanság átvételét, avagy teljes egészében
a folyóirat tartalmához igazodva történjen az adatfelvétel. Utóbbi esetben
azonban lényegesen több cikk (köztük számos, információforrásként lényegében
használhatatlan kisebb hír) kerülne feldolgozásra, ami nagyságrendekkel
meghosszabbítaná a feldolgozás folyamatát, és irreleváns információkkal
telítve az adatbázist, megnehezítené a keresést.
A harmadik lehetőség, amelyhez végül mi folyamodtunk, szintén rejt
magában számos buktatót. E módszer lényege, hogy a tartalomjegyzékhez
ragaszkodtunk annyiban, hogy csak azokat a cikkeket dolgoztuk fel, amelyek
ott feltüntetésre kerültek, és abban a sorrendben, ahogy ott szerepeltek.
De az ezekben az adatokban szereplő hibákat igyekeztünk kijavítani. Gyakran
azonban nehéz eldönteni, hogy mennyiben szükséges tükrözni a tartalomjegyzéket,
és mennyiben célszerű az adatok pontosítására időt és energiát fordítani.
Külön kérdés, hogy az esetleges pontosításkor fel kell-e tüntetnünk (és
ha igen, hogyan), hogy a tartalomjegyzékhez képest hol és milyen változtatás
történt?
Alapvetően 3 csoportba oszthatók a felbukkanó problémák:
- A tartalomjegyzék kevesebb, mint a tényleges tartalom:
- pl. kimarad egy szakcikk a tartalomjegyzékből,
- adott rovathoz tartozó cikkek közül csak egyet, vagy nem mindegyiket
tünteti fel,
- egy rovat több helyen is megjelenik a lapon belül, de csak egy oldalszám
van hozzá feltüntetve,
- csak rovatcím van feltüntetve, a hozzátartozó, releváns információt
tartalmazó cikkcímek pedig nem,
- különszám (akár belekötve is egy rendszeres számba): a különszám címét
a tartalomjegyzék csak egyszer tünteti fel, holott valamilyen módon jelezni
kellene, hogy a megfelelő cikkek ehhez tartoznak,
- a szerző neve csak rövidített alakban van feltüntetve,
- csak a rovatcímhez van rendelve oldalszám, az ahhoz tartozó címekhez
(noha fel vannak tüntetve) nincs.
- A tartalomjegyzék több, mint a tényleges tartalom:
- olyan cikkcím is szerepel a tartalomjegyzékben, amely nem található
meg a folyóiratban,
- "semmitmondó" rovatcímek (Egyesületi hírek, Szemle),
- feltünteti az idegen nyelvű tartalomjegyzékeket is,
- egy vagy több idegen nyelven is feltünteti a cikk címét,
- szakirodalmi ismertetők címe megtévesztő lehet: a cikk csupán az írást
ismerteti, maga a téma, melyre a cím utal, nincs részletesen tárgyalva.
- A tartalomjegyzék más, mint a tényleges tartalom:
- a cikkcímek sorrendje más, mint a tényleges,
- a cikk címe teljesen vagy csak néhány szóban eltérő,
- a cikk címe csak magyarul, vagy több nyelven is fel van tüntetve, a
cikk pedig idegen nyelvű (ez különösen súlyos gond, mert megtévesztő lehet
a felhasználó számára, aki esetleg olyan cikk után kutat a szolgáltatás alapján,
melynek szövegét végül nem is érti meg)
- a tartalomjegyzékben hibásan (elírás vagy helyesírási hiba) van feltüntetve
valamelyik adat.
6. Összefoglaló
A szolgáltatás kibővítésén gondolkozunk, hiszen az
adatbevitel nagyon gyorsan megy és a felsorolt negatívumok ellenére a szolgáltatás
sok mindenre használható:
- gyors irodalomkutatás adott témában és/vagy szerző szerint magyar nyelvű
címekben,
- adott szerző cikkeinek összegyűjtése,
- adott folyóirat tartalomjegyzékeinek böngészése.
Irodalomjegyzék:
László József: Dinamikus weboldalak, CGI programozás Windows és Linux
rendszereken, 2002.
Matt Zandstra: Tanuljuk meg a PHP4 használatát 24 óra alatt, 2001.