View Gyula Kalcsó's profile on LinkedIn

I use TEI

Legújabb hozzászólások

2011. augusztus 6.

TEI és Drupal

A címben említett házasság biztosan a sikeresebbek közé fog tartozni, még akkor is, ha – mint minden házasság – ez sem mentes a súrlódásoktól, kisebb zökkenőktől. Már említettem, hogy a TEI az antikvakorpusz esetében kötelező választás volt, nincs igazán jó alternatívája. A Drupalról hasonlókat lehet elmondani. Bár igen sok CMS (Content Management System, azaz tartalomkezelő rendszer) áll már rendelkezésre, véleményem szerinte azonban a Drupal messze kimagaslik a többihez képest rugalmasságával, és nem ami talán még fontosabb: biztonságosságával.

Ahhoz, hogy a Drupalba TEI-t lehessen integrálni, a CMS-ünket alkalmassá kell tennünk az XML kezelésére. Ehhez külön modulokkal kell (?) kiegészítenünk. Az XML-kezelő modulok mindegyike a PHP XML-feldolgozó képességeit használja ki.

Stephanie Shchlitz blogjában ír arról, hogy a TEI-EJ projektben hogyan használják az XML Content modult. A modul nem csupán az XML-fájlok (akár XSL-es) megjelenítésére képes, hanem alkalmas validálásra is. PHP 5-öt igényel, azon egyszerű oknál fogva, hogy a SimpleXML kiterjesztést használja. (A SimpleXML-lel nagyon elegánsan megoldható az XML-feldolgozás, ugyanis objektummá tudjuk konvertálni a forrásunkat, és onnantól kezdve egyszerűvé válik az egyes elemek, attribútumaik és tartalmuk elérése, valamint könnyedén tudunk velük tömbindexekkel műveleteket végezni.)

Az XML Content tulajdonképpen arra alkalmas, hogy a Drupalban új beviteli formát hoz létre, ahol XML-fájlt adhatunk meg. Telepítése a szokásos módon történik: a legjobb megoldás, ha a sites/all/modules mappába másoljuk a tömörített csomag tartalmát. Ezután az adminisztrációs felületen a modulok között engedélyeznünk kell. Mint említettem, új beviteli formát hoztunk létre, amely az új tartalmak beküldésekor lesz választható, tehát a webhelybeállítások között, a beviteli formák adminisztrációs felületén tudjuk megadni, hogy mely tartalomtípusok bevitelekor használható (alapértelmezés szerint mindegyikhez hozzá lesz rendelve), valamint itt konfigurálhatjuk az XML-lel kapcsolatos dolgokat: az XSLT elérési útját adhatjuk meg, továbbá a validálás módját (ha akarunk egyáltalán validálni).

Van azonban néhány ellenérv a modul használatával kapcsolatban. Egyrészt csak fejlesztői változatban létezik, jelenleg nincs belőle hivatalos stabil verzió. Másrészt csak Drupal 6-ig hozzáférhető, a legújabb Drupal-verzió alatt használhatatlan. Sajnos nincs azonban más modul, amely alkalmas lenne a TEI-XML-fájlok kezelésére. (Úgyhogy magyar Drupal-modulfejlesztők hajrá!)

Az egyetlen mód arra, hogy ne kelljen kompromisszumokat kötni az antikvakorpusz esetében, ha saját megoldást dolgozok ki a probléma kezelésére. A fentebb már említett PHP SimpleXML lehetőséget ad erre. Ebben az esetben a Drupal node tulajdonképpen egy PHP-szkriptet fog meghívni, amely elvégzi az XML-feldolgozást. Ennek részletei azonban már egy későbbi posztban kaphatnak helyet.

Kalcsó Gyula jegyezte be, 17:22-kor.

Címkék: antikvakorpusz PHP XML CMS Drupal TEI

3 komment

A bejegyzés trackback címe:

https://digitalisbolcseszet.blog.hu/api/trackback/id/tr123130265

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

kirunews 2011.09.02. 18:28:41

Szia,

gratulálok a blogodhoz. Sajnos csak most jutottam hozzá, hogy beleolvassak, de később igérem naprakész leszek. A saját modulomban elég sok XML-t kezelünk (10 millió fölött). Ezek könyvtári katalógusok és nem TEI-ben vannak, de az XML okán talán tanulságos, hogy hogyan. Amikor beolvassuk az XML-t, akkor átdolgozzuk PHP tömbbé (DOM fabejárással), majd a tömböt szerializált formában tároljuk. Mivel mi elsősorban keresni akarunk, a tömbökből PHP függvényekkel csinálunk egy kulcs-értékpáról álló egyszerűbb tömböt, amit elküldönk az Apache Solr-nak. A megjelenítés során a PHP tömbből sokkal egyszerűbben lehet megjelenítési nézetet csinálni mint akár XSLT-vel, akár valamelyik XML kezelő könyvtárral. Mind a SimpleXML, mind a DOM több sebből vérzik, ha mondjuk egy Java alapú XML-könyvtárral hasonlítjuk össze. Vagyis ha a triviélis dolgokon túli dolgokat akarunk, például névtereket, komolyabb XPath kifejezéseket stb. akkor a PHP-ben vért kell izzadni, de legalábbis nagyon sokat kódolni. A natív PHP struktúrása való átfordítással ezt kerüljük ki.

Egy másik projektemben - amiből végül nem lett semmi - maygar levéltári jegyzékeket tettem át EAD-ba (ami egy nemzetközi levéltári szabvány, és az alapstruktúráját tekintve több közös vonást mutat a TEI-vel is. Itt azt csináltam, hogy a rekordokat be sem vittem a Drupal-ba, hanem eleve Solr-ból szolgáltam ki mindent. A Drupal modul feladata mindössze az volt, hogy elkészítette a megfelelő kereséseket, és megjelenítette a rekordokat. Az EAD-ban az volt a nagy előny, hogy rekordok nagyjából hasonlóak voltak, ami egy TEI-s projektben nem biztosan áll fennt.

Kalcsó Gyula · http://digitalisbolcseszet.blog.hu 2011.09.02. 21:18:30

Szia Kiru, nagyon örülök, hogy itt vagy. A modulod hozzáférető valahol? Nagyon érdekelne. Nekem eddig a SimpleXML-lel nem volt bajom, igaz, nem is kellett igazán összetett feladatokat megoldanom vele.

kirunews 2011.09.06. 22:22:28

Az első részben említett modul: drupal.org/project/xc. De ebben elsősorban a struktúra az érdekes, mert ez ezen felül egy meglehetősen összetett komplet könyvtári katalógus-felület (discovery interface). De ha érdekel a forrása, akkor magánbeszélgetésben meg tudom mondani, hogy mit hol, hogyan találasz. Van valamennyi doksi is, ami bővebben kifejti, amit itt vázlatosan elmondtam. A másik modulnak nincs publikus változata, de ha megtalálom, akkor valahova fel tudom tenni.
süti beállítások módosítása