Import záznamů diplomových prací nové řešení Antonín Vaishar, SUAleph, 26. –
PROGRAM 1.Staré řešení 2.Nové řešení 3.Technologie 4.Použité služby 5.Vlastní moduly 6.Konečný automat 7.Budoucnost
STARÉ ŘEŠENÍ p_manage 18 a další hrozná šablona aktuální obraz celé báze (CVIS) implementace bash + python knihovníci neměli nad záznamy kontrolu
NOVÉ ŘEŠENÍ stahovat se budou jen ty, které mají jednotky v knihovně (na základě dodaných eVŠKP id) stažení se provede pouze jednou, knihovna bude moci se záznamem volně nakládat kvalitní šablony pro různé typy dokumentů služby x-serveru implementace v perlu + XSLT na transformaci dat
TECHNOLOGIE komunikace
TECHNOLOGIE transformace dat JSON JavaScript Object Notation JSON JSON XML Vlastní záležitost XML::Simple OAI MARC Transformace pomocí XSLT (Saxon) Veškeré úpravy dat Záznam pro Aleph
TECHNOLOGIE použité moduly LWP (the Library for World Wide Web in Perl) – HTTP komunikace JSON – zpracování JSON dat XML::Simple – tvorba JSON XML XML::LibXML – ostatní práce s XML Vlastní výroba: Server_x a Result_x – perlovský obal pro dotazy na a odpovědi od x_serveru
POUŽITÉ SLUŽBY Find & Present ověřování existence záznamu id práce v poli 035, na něm index EVSKP find provede vyhledávání a vrátí množinu výsledků present vrátí výsledné záznamy Update_doc vytvoření záznamu v Alephu (OAI MARC)
POUŽITÉ SLUŽBY vývojový diagram
POUŽITÉ SLUŽBY Na co si dát pozor Aleph má problémy s XML: Při tvorbě či updatu záznamu záleží na pořadí atributů elementů OAI MARCu cze #OK cze #KO Všechny zprávy do elementu empty set #prázdný výsledek vyhledávání Field "520" contains subfield "9" which is not allowed. – warning error #varování Text "S" for Field with sub-field "a" is not allowed (check_doc_tag_text). - mandatory error #opravdová chyba Document: was updated successfully. #úspěch
VLASTNÍ MODULY Server_x zpracované služby: find, find_doc, present, update_doc metody zabezpečují sestavení a odeslání dotazu Result_x výsledky volání x služeb metody zabezpečují zprac. a vrácení těchto výsledků Server_x::Find => Result_x::Set Server_x::Find_doc => Result_x::Record Server_x::Present => Result_x::Record Server_x::Update_doc => Result_x::Update
VLASTNÍ MODULY příklad volání my $dotaz=Server_x::Find_doc->new('Pokusná Aplikace',' $dotaz->request('94599','BUT01'); my $odpoved=$dotaz->content; #odpoved je objekt Result_x::Record if ($odpoved->is_error){print "Došlo k chybě";} else{print $odpoved->get_records($odpoved->get_sysnos->[0]);} není úplně intuitivní vyžaduje znalost služeb x-serveru zpracovávám dokumentaci
KONEČNÝ AUTOMAT pokus o (objektovou) implementaci konečného automatu objekt, jehož metody jsou stavy; generují zprávy přehledný hlavní program (žádné vnořené podmínky) lehce upravitelné chování skriptu (např. pro ladění) fuška správně navrhnout implementaci
BUDOUCNOST samoobsluha webová služba více zapojit x server (autentikace knihovníků apod.) zatím v nedohlednu
DĚKUJI ZA POZORNOST dotazy na