310 likes | 471 Views
Publishing ISIS-databases on the WWW. An introduction by E. de Smet Univ. of Antwerp. Why ?. the WWW is the most wide-spread data-medium nowadays software to access the web is freely available, very powerful and user-friendly no software distribution problem no training needed
E N D
Publishing ISIS-databases on the WWW An introductionby E. de SmetUniv. of Antwerp
Why ? • the WWW is the most wide-spread data-medium nowadays • software to access the web is freely available, very powerful and user-friendly • no software distribution problem • no training needed • ‘everybody does it’
How ? 2 different ways : • ‘static’ publication : • create print-format with embedded HTML (e.g. WinISIS PFT-wizard) • print your database using that format to a file • put that file on a WWW-server • … That’s it ! • ‘dynamic’ publication : real-time access to data in database and ‘on-the-fly’ generation of database-pages
Static : exercise with WinISIS • Open your database with WinISIS • Use ‘Print Format Assistant’ to create PFT with HTML-codes (add ‘<HR>’ at end) • Print your whole database using this PFT • FILE/Current Browse Set • Output to ASCII-file (Windows-ANSI) • Use other options (e.g. sort) at choice • Open result file with your browser : that’s it !
Static publishing • Easy, simple solution, but : • Problems : • whole database or each record in a web-page ? • updating of the data ? • do you want all your records to be indexed by the WWW-search engines ? • do you want searching your database only possible as a general WWW-search ? • providing only one print-format ? • …
Dynamic Publishing • each web-page dealing with your database is produced by a script which involves accessing the database, retrieving the data and formatting them into HTML-output • sophisticated approach : ‘database-driven’ dynamic HTML-pages • advantages : up-to-date, more flexible
The principles of dynamic database-publishing on the web • the user enters search specifications into a ‘form’ in a webpage (HTML forms) • the variables in the form are transmitted as a string to the server • the (web-)server passes through to database-server (e.g. for ISIS : wwwisis, openisis or isis3w) • database-server acts according to specifications and delivers HTML-formatted data • Webserver returns the HTML as a ‘normal’ page to browser of the ‘client’
The ‘client-server’ architecture • The client is the end-user’s PC running a WWW-browser (IE, Netscape, Opera, Mozilla/Firefox…) • The server is a computer running a WWW-server (Apache, IIS, Xitami…) • client and server interact using the CGI-protocol or ‘server-side scripts’ (ASP, PHP)
The CGI-protocol • CGI = Common Gateway Interface • a mechanism is agreed to put variables as ‘name/value-pairs’ into a string sent to the server which puts them into the ‘environment memory space’ for other applications to retrieve them • a mechanism allows to run an executable software on the server, e.g. wwwisis.exe or openisis.exe • this CGI-compatible software can read the variables from that memory and act upon them
e.g. : WWWISIS • produced by BIREME, based on their CISIS-tools (MX for Master/Xrf and MZ for IF manipulations) • can read CGI-variables and puts them into a ‘virtual ISIS-record’ where they become fields and subfields with tags • these fields can be used to process data, e.g. the ‘Boolean search command’ : “BOOL=“ • can format ISIS-data into HTML and send them back to the requesting WWW-server (who forwards to end-user)
WWWISIS : some history • 1st (and 2nd) generation needed ‘CGI-scripts’ to translate CGI-variables into WWWISIS-commands • v. 3 introduced ‘virtual record’ which reads directly from CGI-environment • v.4 and 5 : ‘WXIS’ uses own script language : ‘ISIS-scripting’ -> more powerful, controllable • More general PHP-scripting is not possible
Implementation possibilities • With wwwisis (Bireme) as the webdatabase-server : • GenISIS : full application generator available • WWWIRIS : JavaScript used to build HTML • With isis3w (FAO/Poland) webdatabase-server : • WEBLIS with HTP-templates and ISISDLL • With PHP/OpenISIS : PHP used to build the web-pages and CGI-commands, • IGLOO
Application building : GENISIS • GenISIS : French product, now provided by UNESCO and also available in English • 2 versions : WWW and CD publishing • CD-publishing with stand-alone viewer but same application-interface • WWW-publishing needs web-server and browser, installation best with Apache running • Actual version : v3 (French, also English but documentation lagging bit behind) • Form creation by interactive form-editor, easy!
GenISIS : implementation procedure • Installation form install-file for Web or CD • Application building with ‘GenISISWEB’ (or GenISISCD, but in French) executables • Three elements in ‘creation’ : • Query form (fields, indexes and page lay-out) • List-format (internal default available !) • Detailed format (internal default available !) • ‘Exporting’ or saving application to finalise • Testing on ‘localhost’ or ‘127.0.0.1’, with numbered folders in ‘wwwroot\wwwisis’-folder for each application • E.g. http://127.0.0.1/wwwisis/appli.htm for list of your applications • Make sure Apache is running (\Program Files\Apache Group\Apache\apache.exe -> black window minised)
WWWIRIS : interface for WWWISIS • web-version of IRIS-interface for ISIS/DOS • main features : • multi-lingual • multi-database • 3 interfaces (form, Q&E, command) • multi-stage presentation : shortlist->details • Z39.50 -like ‘interaction’ simulated • can also allow data-entry (create, edit, delete) - password protected and logged
WWWIRIS • the WWWIRIS main form : • HTML written by JAVASCRIPT to generate forms (language-, database-, format-, interface-and batch-selection and search statement) • two frames : left=static (‘remembers’ interaction variables), right=dynamic data display • this is the only ‘normal’ static HTML-file on the server • JavaScript allows form to be dynamic
HTML forms • Interactive input on webpages, e.g. to define a search statement, with ‘action’ (e.g. <form name="paraForm" method="post" action="wwwi32.exe/[ctttype=text/html]/[in=wis.in]/">) • Input types : • <INPUT TYPE="text" SIZE=66 VALUE="" NAME="qString“> • <input type=button value=“GO!”> • <INPUT TYPE=TEXTBOX NAME=“abstract” SIZE="78" ROWS="2" WRAP="ON" > • <TEXTAREA NAME=“ABSTRACT” ROWS=22 WRAP=ON COLS=64> • <INPUT TYPE=“hidden” NAME=“USERID”> • <SELECT multiple name="descriptors">' • '<option>listitem1</option>' • '<option>listitem2</option>‘ </SELECT> back to 'principles'
WWWIRIS (2) • all form-variables are sent to ‘WWWISIS-scripts’ (*.wis) which list the command-line variables on which WWWISIS operates into external (small) files, e.g. ‘WIS.WIS’ : • 'db='v4000/, • 'cipar='v4000'.cpr'/, • 'uctab=ansi.tab'/, • 'gizmo='v4001/, • if v3003='index' then @indx.wis else if v3003='editrec' then @edit.wis • else if v3003='newrec' then @newrec.wis else if v3003='deleterec' then • @delete.wis else if v3003='record' then @record.wis else @list.wis • fi,fi,fi,fi,fi
Why JAVASCRIPT ? • normal HTML is still ‘static’, e.g. to write a menu on databases : <select> <option>db1</option> <option>db2</option> </select> • in JS : db1, db2..dbi are stored in array-variables and these can be written as :for (i=0; i<dbs.length; i++) { dbOG=dbOG+'<option'+ ' value='+dbs[i][0]+'>'+dbs[i][6]+'</option>'; }
WWWIRIS : implementation • Adapt ‘wirvars.js’ with text-editor • Messages for each language • Database-parameters for all db’s/languages in arrays, see wwwiris.doc • Adapt ‘wirmenu.htm’ with text-editor • Cgi-path in ‘action=‘ parameter • A HREF’s and logo, to ‘local taste’ • Create ldbnsh.pft (see given model) • Create ldbnfu.pft (e.g. using WinISIS assistant)
WIRVARS.JS • This file lists all database-specific variables into JavaScript-arrays, e.g. dbs[0][0]=new Array(); dbs[0][0][0]='ARTIC'; dbs[0[[0][6]='ARTICLES'; dbs[0][0][1]=new Array(); dbs[0][0][2]=new Array(); dbs[0][0][1][0]='TW=';dbs[0][2][0]='Title words'; dbs[0][0][1][2]='AU=';dbs[0][2][1]='Authors'; dbs[0][0][1][2]='TI=';dbs[0][2][2]='Title'; dbs[0][0][1][3]='DE=';dbs[0][2][3]='Descriptors'; -> Dbs[0][1] is second database for first language etc. • WWWIRIS.HTM reads this file as first part of it
WWWIRIS.HTM • WWWIRIS is the starting page, containing the main search form (form, Q&E or command) and all the JS-functions for the interface, e.g. editRec puts ‘edit-modus’ and queryString into left frame-vars : function editRec(n) { with (window.menu.document.paraForm) { elements[3].value='editrec'; elements[5].value=queryString(); elements[6].value=n; target='cont'; submit(); } }
HTML-forms in JavaScript • example : the ‘command’-interface writes a ‘textarea’ input object : if (curIT=="Command") { writeln("<p><textarea name='qString' rows=5 cols=60 wrap=virtual onChange='top.advSearch=value'>"); writeln(advSearch+"</textarea><BR>"); writeln('<p><input type=button value="SEARCH" onClick="top.runQuery();"><br><hr>'); writeln(dbs[curDB][10]); }
The WWWIRIS-program logics (1) • the user selects language, database, interface, display format and batch-no. • according to interface selected, the user specifies the search command, possibly consulting search-dictionary • the ‘form’ interface allows multiple Boolean search commands to be combined
WWWIRIS program logics (2) • after the search command has been ‘sent’, the interface decides whether a dictionary-window, a shortlist-window, a full record-window or an editing window is requested • all variables are either sent as ‘normal’ (i.e. shown on the left frame lMENU.HTM) or as ‘hidden’ : <form name="paraForm" method="post" action="/../wwwi32.exe/[ctttype=text/html]/[in=wis.in]/"> <input type=hidden name='n^t4000'> <input type=hidden name='lang^t5000' value='e'> <input type=hidden name='b^t3005' value=''> <input type=hidden name='mfn^t3006' value=''> </form>
WWWIRIS program logics (3) • dedicated scripts for dictionary, shortlist, record-display and editing exist : resp. • indx.wis • list.wis • record.wis • edit.wis and upd.wis • all defining their own ‘variables’, e.g. PFT • Hidden variables imitate ‘interactive interface’
WWWIRIS program logics (4) • the dynamic pages are generated by ISIS-PFT’s using : • HTML-tags • HTML-forms • hyperlinks (A HREF=http://|mailto:// etc.) • pictures <IMG>, background <BGCOLOR> etc. • other calls, e.g. to PHP/MySQL : • '<form method="POST" action="/SAPPHP/newrequest.php" TARGET="_top">', • '<input type="hidden" name="sapid" value="',v1^a,v1^b'">',/ • '<input type="hidden" name="title" value="'v200'">',/ • '</form>'
WWWIRIS logics (5) • data entry : ISIS MFN’s are displayed with all fields in text-input elements of a form, e.g. : '<B>TITLE ARTICLE</B> [200]<P>Enter full title of the article<BR>'/ '<INPUT TYPE=text NAME=TITLE^t6200 size=85 value="'V200'"><P>'/ '<P>‘ • note : quotes ‘_’ because they are actually PFT-literals ! • vars are sent to WWWISIS with ‘new’, ‘proc’ and ‘update’ commands‘, • e.g. ‘proc=‘ parameter : proc= ‘D022D310','A022#'date'#','A062#'v6062'#',|A310#|v6310|#|,