31
Publishing ISIS- databases on the WWW An introduction by E. de Smet Univ. of Antwerp

Publishing ISIS-databases on the WWW An introduction by E. de Smet Univ. of Antwerp

Embed Size (px)

Citation preview

Publishing ISIS-databases on the WWW

An introductionby 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

‘everybody does it’

How ? 2 different ways :

‘static’ publication : create HTML-PFT (e.g. WinISIS PFT-wizard) print your database using that PFT 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 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

the variables in the form are transmitted as a string to the server

the (web-)server passes through to ISIS-server ISIS-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

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)

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

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>

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

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'; 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

The form interface

The command-interface

The Quick & Easy interface

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

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|#|,