Subject: Web interface for CDS/isis databases
I am sending herewith some info on IQUERY version 1.0.3 which would help=20
you interface a back end cds/isis database with a web based query form=20
via Iquery. The program is at: http://gti.net/iquery/binaries
If any Indian LIbrary succeesfully uses this IQUERY, I would like to=20
benefit from their experience!
>=20
> Interactive Query for CDS/ISIS Search System Access:
> [Image]
> [Image] Introducing IQUERY=A9 v1.0.3 Engine August 199=
6
>=20
> Description
> IQUERY is a software designed to run under three plattforms, Linux,
> SCO and DOS. The system was designed to act as an interactive
> search engine for Mini Micro CDS/ISIS DataBases, it was developed
> taking the directives showed in the ISIS 3.0 version. The software
> can run in three different modes, as an interactive command shell,
> as a CGI to run under WWW servers, and as an interpreter taking the
> statements from a file.
>=20
> How it Works
> When you start up IQUERY, the fisrt thing, is search for the
> SYSPAR.PAR file in the default ISIS install path defined by IQUERY
> ( '/usr/local/isis-3.0/' for Linux and SCO or 'C:\ISIS\' for DOS)
> or the path that you can pass to the program with the '-conf
> absolute_path' parameter, in that file is searched for the DataPath
> that is where your databases files reside in ( IQUERY also
> recognizes that you can have your files redirected by the dbn.PAR
> file where dbn is the Data Base Name), from there, it changes to
> one of the three modalities: shell, html or file. In any of the
> modalities IQUERY reads and process one line at a time showing the
> results in the standard output terminal.
> Keep in mind that when you pass an 'absolute_path' with the '-conf'
> parameter this path must have the final slash, this is, if your
> 'SYSPAR.PAR' is located in the 'isis' directory under '/usr' your
> parameter would be '/usr/isis/' and NOT '/usr/isis'.
> The Search Engine has two special parameters to play with, there
> are '-nocase' permitting you the search of KeyWords case
> insensitive, and '-nostrict' that consider all the blank spaces in
> the beginning and end of the KeyWord to find for, case sensitive
> searchs and strict delete of blank spaces is the default for
> IQUERY.
> The line below describes all the parameters to IQUERY, refer to the
> Specification for HTML for a complete explanation on how IQUERY
> works for httpd CGI interfaces.
>=20
> iquery [ -conf isis_path ][ -html | -file absolute_path_to_file ] [
> -nocase ] [ -nostrict ]
>=20
> Statements recognized.
> Reads the file identified by
> 'FileName' and outputs its
> contents. Note that 'FileName'
> #FILEPRINT FileName would be an absolute file path or
> a relative one ( relative to the
> isis system path).
> -----------------------------------
> This statement prints the
> 'OutputString', this string can be
> of any format, but be carefull
> #STRPRINT OutputString when you are in HTML (read the
> Specification for HTML later in
> this document).
> -----------------------------------
> Open the Data Base file determined
> by 'DBFile' and build inside
> IQUERY all the structures
> #OPEN DBFile:DBAlias necessary to manage the
> information, from there, this Data
> Base is refered as 'DBAlias'.
> -----------------------------------
> Closes and freeis the memory of
> the Data Base file structure that
> #CLOSE DBAlias was created by a previous OPEN
> statement.
> -----------------------------------
> Do a 'CLOSE DBAlias' for any open
> #CLOSEALL alias in the internal IQUERY Data
> Base Structure.
> -----------------------------------
> First the SELECT statement opens
> all the comma separated DBFile_x
> associating DBAlias_x, and those
> alias/files were maintained open
> as long as IQUERY terminates or
> when a CLOSE statement is
> encountered. Iterates along the
> #SELECT OutputFormat Data Base, secuential or indexed,
> FROM DBFile_1:DBAlias_1, and for those registers that match
> WHERE ... the 'QueryCondition' prints in the
> QueryCondition standard output the
> 'OutputFormat', read later in this
> document the Field Replacement
> Section, to understand how to
> build in IQUERY SELECT statements,
> the 'OutputFormat' and
> 'QueryCondition' fields.
> -----------------------------------
> Prints IQUERY version and some
> information about registered
> #VERSION version or the Trial up expiration
> date, only works in shell mode.
> -----------------------------------
>=20
> Field Replacement
> Each field in each register has two identifers, Field Tag and Field
> Name, and also you may have more than one open Alias corresponding
> to different Data Base Files, thus, we need to set a convention on
> naming each field in each Alias in some part of the output string
> or in a query condition of a SELECT statement.
> When you are constructing the 'QueryCondition' you have to put your
> query like: DBAlias, followed by a '.', the Tag Number, the match
> separator '=3D', and finally the string that you have to match. The
> matches will be reached by default when the string is part of the
> field in the record, if you would like to change this type of match
> be sure to check the Match String/Integers Modifiers below. For
> example, i have to select in the alias CORPORATION those records
> that have in the Tag number 40 ( that is identified also by the
> Field Name 'Section') the string 'Sales', then my 'QueryCondition'
> must be 'CORPORATION.40=3DSales'.
> Also it's possible to write QueryConditions including boolean
> operators joining two or more conditions in a query which is very
> common in database searching to narrow down the search request, be
> sure to check later the Boolean Operators section.
> The format of the 'OutputFormat' is so similar, you can put
> anything you want that will be printed when a match is found, and
> when you would like to replace a Field Value in the string, you
> have to put there a '%' Field Replacement Character folowed by the
> DBAlias, a '.' and finally the Tag Number of the field. Continuing
> with the example in the previous paragraph, now i would like to
> output the Tag numer 20 ( that is identified also by the Field Name
> 'Employer's Name'), so, my 'OutputFormat' must be
> '%CORPORATION.20', if you also would like to output the real
> character '%' then you have to put a '%%' to say IQUERY that
> ignores the Field Replacement function.
> Of course this is not the format used in CDS/ISIS program, this is
> because the software is oriented to WWW Clients that have its own
> Format Macro Language, unless you can use it in text only format.
> Also in this IQUERY version there isn't a way to extract a Sub
> Field nor defining a block of repeatable extraction, i'm working
> now in this features for a newer version...
>=20
> Match String/Integer Modifiers
> The match string modifier is the first character in the string
> you want to match, and the actions taken are described below...
>=20
> '=3D' Match exactly the string passed, i.e., 'ALIAS.40=3D=3DSales=
'
> match for 'Sales' and do not match for 'Sales Representative'.
> '!' Is the complement of the '=3D' modifier, do not match for
> 'Sales', and match for 'Sales Representative or any other
> field string value.
> '~' Do not match those fields that have the match string
> inside, i.e, 'ALIAS.40=3D~Sales', do not match for 'Sales',
> 'Sales Representative' or 'Dept. of Sales', and do match for
> 'February Sale' or any other.
> '^' Match those fields that begins with the match string
> passed, the match were reached for 'Sales' and do not for
> 'Sales Representative' or 'Corp. Sales'.
> '>' This applies only to a integer filed, this is, if you want
> to match those fields that are greater than some integter you
> must put this modifier. The condition 'ALIAS.60=3D>45' match
> those records that have persons of 45 years old or more having
> the tag 60 corresponding to the description Employee's name.
> '<' This is the complement of the above modifier, that is, if
> you want to match records having integer fields less than some
> integer value, the last chance is if you want to match fields
> having and exact integer value, you have to use the '=3D' sign
> as for the string exact matching, the type conversion will be
> done automatically.
> '\' Is the escape char, for example if your fields have in its
> first position any of the Modifiers Characters and you'd like
> to match exactly for '^Sales-Rep', then your match string must
> be '\^Sales-Rep'.
>=20
> Boolean Operators
> It's so difficult to think in good QueryConditions without
> boolean operators, you need this feature to join two or more
> conditions building more complex expressions, as an example,
> suppose you have to do a query that match for some Country and
> also a Description, so you need to put in your QueryCondition two
> expressions joined by an AND. IQUERY have included the two
> necessary boolean operators: %AND and %OR. As an example suppose
> you has a Library DataBase and your job consist in matching those
> books that were edited in 'Uruguay' and has 'Computers
> Architecture' in it's Description, so your QueryCondition will
> be: 'ALIAS.80=3D=3DUruguay %AND ALIAS.90=3DComputers Architecture'
> having the tags 80 and 90 as Country and Description. You can
> build QueryConditions of more than two match statements joining
> with %AND and %OR's.
>=20
> Specification for HTML
> In shell mode or file mode, there is no mystery, the statement you
> enter is the order that IQUERY will process and the iquery program
> could be installed in any directory; in html mode there are three
> things that you have to keep in mind when you pass data to the
> IQUERY CGI.
> First, you have to link or copy your iquery program to your CGI
> execute path and rename it to iquery.cgi or do anything you want
> that permits the httpd server to execute iquery. Also, you have to
> learn the HTML code to build FORMS (maybe you are a doctor in
> that), and the convention to pass data to a CGI, the prefered
> method of passing data to IQUERY is POST, in any case GET is also
> covered by IQUERY.
> Second, if you would like to pass more than one command line
> parameter to a CGI, the HTML interface only can pass the first,
> that's why I added a variable that you must call 'HTMLPARAMS' to
> pass there the other parameters like '-nocase' and '-nostrict', and
> you have to pass only '-html' parameter to the CGI.
> Third, IQUERY takes the statements from the 'QUERY' variable, so
> when you are writing an IQUERY code you must have to put it in a
> variable called 'QUERY', inside this variable IQUERY takes its
> order statements ignoring spaces and CR's/LF's (like HTML code),
> and translate the ';' character as a CR/LF, so the line 'strprint
> hi world; strprint bye', will be translated inside IQUERY as
> strprint hi world
> strprint bye
> processing 'strprint hi world' and then 'strprint bye', if you
> forget to put the ';' in the end of each statement in your code,
> IQUERY understands nothing.
>=20
> Macro Substitution
> Up to here, you have the knowledge for writing IQUERY code for
> static orders, now i will explain how you can write a code to
> pass inside the 'QUERY' variable a macro substitution to tell
> IQUERY to replace that macro with a real value.
> A Macro Substitution will occur when you put the beginning macro
> character '$' followed by a '{', the variable name and the close
> macro character '}', when IQUERY finds a macro, try to obtain the
> real value from the variable that has a name equal to the name of
> the macro, for example the statement 'strprint ${SEARCH}' will be
> interpreted inside IQUERY as a print out of the value of the
> variable 'SEARCH' passed to IQUERY. Also you have to know that
> IQUERY does the macro substitution before the execution of the
> first statement has passed.
>=20
> IQUERY Examples
> Employees Corporation Database. This is a simple example putting
> all the information in this document together. I make a separate
> html page for the real form & query code explanation so you can
> view or save in a simple action of 'View -> Document Source'.
>=20
> Spanish Web Servers This is a real IQUERY example of a search in a
> CDS/ISIS DataBase that have information for all the Spanish Web
> Hosts maintained here by Marcelo Kruk.
>=20
> DOWNLOAD!!!
> IQUERY=A9 v1.0.3b trial version
>=20
> ----------------------------------------------------------------------
> WebEdition and IQUERY Design by Alejandro Ferreira Guido.
--=20