X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=doc%2Frecordmodel-alvisxslt.xml;h=93ce649c4304cbbd36a036cf56ccf0b7cb481176;hb=b19b79e382ef8196f1625763db1af3a82b1e0c81;hp=328bbce68b27c9a79765944d0663605c19a74fea;hpb=5ca4e60e990af6ad6b62ebff855d7b642f37c3ec;p=idzebra-moved-to-github.git diff --git a/doc/recordmodel-alvisxslt.xml b/doc/recordmodel-alvisxslt.xml index 328bbce..93ce649 100644 --- a/doc/recordmodel-alvisxslt.xml +++ b/doc/recordmodel-alvisxslt.xml @@ -1,5 +1,5 @@ - + ALVIS &xml; Record Model and Filter Module @@ -22,7 +22,7 @@
ALVIS Record Filter - The experimental, loadable Alvis &xml;/XSLT filter module + The experimental, loadable Alvis &xml;/&xslt; filter module mod-alvis.so is packaged in the GNU/Debian package libidzebra1.4-mod-alvis. It is invoked by the zebra.cfg configuration statement @@ -31,12 +31,12 @@ In this example on all data files with suffix *.xml, where the - Alvis XSLT filter configuration file is found in the + Alvis &xslt; filter configuration file is found in the path db/filter_alvis_conf.xml. - The Alvis XSLT filter configuration file must be + The Alvis &xslt; filter configuration file must be valid &xml;. It might look like this (This example is - used for indexing and display of OAI harvested records): + used for indexing and display of &oai; harvested records): <?xml version="1.0" encoding="UTF-8"?> <schemaInfo> @@ -44,7 +44,7 @@ <schema name="index" identifier="http://indexdata.dk/zebra/xslt/1" stylesheet="xsl/oai2index.xsl" /> <schema name="dc" stylesheet="xsl/oai2dc.xsl" /> - <!-- use split level 2 when indexing whole OAI Record lists --> + <!-- use split level 2 when indexing whole &oai; Record lists --> <split level="2"/> </schemaInfo> @@ -57,9 +57,9 @@ names defined in the name attributes must be unique, these are the literal schema or element set names used in - SRW, - SRU and - Z39.50 protocol queries. + &srw;, + &sru; and + &z3950; protocol queries. The paths in the stylesheet attributes are relative to zebras working directory, or absolute to file system root. @@ -68,10 +68,10 @@ The <split level="2"/> decides where the &xml; Reader shall split the collections of records into individual records, which then are - loaded into DOM, and have the indexing XSLT stylesheet applied. + loaded into &dom;, and have the indexing &xslt; stylesheet applied. - There must be exactly one indexing XSLT stylesheet, which is + There must be exactly one indexing &xslt; stylesheet, which is defined by the magic attribute identifier="http://indexdata.dk/zebra/xslt/1". @@ -80,24 +80,24 @@ ALVIS Internal Record Representation When indexing, an &xml; Reader is invoked to split the input files into suitable record &xml; pieces. Each record piece is then - transformed to an &xml; DOM structure, which is essentially the - record model. Only XSLT transformations can be applied during + transformed to an &xml; &dom; structure, which is essentially the + record model. Only &xslt; transformations can be applied during index, search and retrieval. Consequently, output formats are - restricted to whatever XSLT can deliver from the record &xml; + restricted to whatever &xslt; can deliver from the record &xml; structure, be it other &xml; formats, HTML, or plain text. In case - you have libxslt1 running with EXSLT support, + you have libxslt1 running with E&xslt; support, you can use this functionality inside the Alvis - filter configuration XSLT stylesheets. + filter configuration &xslt; stylesheets.
ALVIS Canonical Indexing Format - The output of the indexing XSLT stylesheets must contain + The output of the indexing &xslt; stylesheets must contain certain elements in the magic xmlns:z="http://indexdata.dk/zebra/xslt/1" - namespace. The output of the XSLT indexing transformation is then - parsed using DOM methods, and the contained instructions are + namespace. The output of the &xslt; indexing transformation is then + parsed using &dom; methods, and the contained instructions are performed on the magic elements and their subtrees. @@ -128,7 +128,7 @@ This means the following: From the original &xml; file - one-record.xml (or from the &xml; record DOM of the + one-record.xml (or from the &xml; record &dom; of the same form coming from a splitted input file), the indexing stylesheet produces an indexing &xml; record, which is defined by the record element in the magic namespace @@ -187,8 +187,8 @@ the same character normalization map w. - Finally, this example configuration can be queried using PQF - queries, either transported by Z39.50, (here using a yaz-client) + Finally, this example configuration can be queried using &pqf; + queries, either transported by &z3950;, (here using a yaz-client) open localhost:9999 @@ -205,21 +205,21 @@ or the proprietary extentions x-pquery and x-pScanClause to - SRU, and SRW + &sru;, and &srw; - See for more information on SRU/SRW - configuration, and or the YAZ - CQL section - for the details or the YAZ frontend server. + See for more information on &sru;/&srw; + configuration, and or the &yaz; + &cql; section + for the details or the &yaz; frontend server. Notice that there are no *.abs, - *.est, *.map, or other GRS-1 + *.est, *.map, or other &grs1; filter configuration files involves in this process, and that the literal index names are used during search and retrieval. @@ -236,7 +236,7 @@ As mentioned above, there can be only one indexing stylesheet, and configuration of the indexing process is a synonym - of writing an XSLT stylesheet which produces &xml; output containing the + of writing an &xslt; stylesheet which produces &xml; output containing the magic elements discussed in . Obviously, there are million of different ways to accomplish this @@ -247,29 +247,29 @@ Stylesheets can be written in the pull or the push style: pull means that the output &xml; structure is taken as starting point of - the internal structure of the XSLT stylesheet, and portions of + the internal structure of the &xslt; stylesheet, and portions of the input &xml; are pulled out and inserted into the right spots of the output &xml; structure. On the other - side, push XSLT stylesheets are recursavly + side, push &xslt; stylesheets are recursavly calling their template definitions, a process which is commanded by the input &xml; structure, and avake to produce some output &xml; whenever some special conditions in the input styelsheets are met. The pull type is well-suited for input &xml; with strong and well-defined structure and semantcs, like the - following OAI indexing example, whereas the + following &oai; indexing example, whereas the push type might be the only possible way to sort out deeply recursive input &xml; formats. A pull stylesheet example used to index - OAI harvested records could use some of the following template + &oai; harvested records could use some of the following template definitions: @@ -282,12 +282,12 @@ - + - + @@ -312,7 +312,7 @@ Notice also, that the names and types of the indexes can be defined in the - indexing XSLT stylesheet dynamically according to + indexing &xslt; stylesheet dynamically according to content in the original &xml; records, which has opportunities for great power and wizardery as well as grande disaster. @@ -375,14 +375,14 @@ ALVIS Exchange Formats An exchange format can be anything which can be the outcome of an - XSLT transformation, as far as the stylesheet is registered in - the main Alvis XSLT filter configuration file, see + &xslt; transformation, as far as the stylesheet is registered in + the main Alvis &xslt; filter configuration file, see . In principle anything that can be expressed in &xml;, HTML, and TEXT can be the output of a schema or element set directive during search, as long as the information comes from the - original input record &xml; DOM tree + original input record &xml; &dom; tree (and not the transformed and indexed &xml;!!). @@ -421,15 +421,15 @@
- ALVIS Filter OAI Indexing Example + ALVIS Filter &oai; Indexing Example The sourcecode tarball contains a working Alvis filter example in the directory examples/alvis-oai/, which should get you started. - More example data can be harvested from any OAI complient server, - see details at the OAI + More example data can be harvested from any &oai; complient server, + see details at the &oai; http://www.openarchives.org/ web site, and the community links at @@ -450,7 +450,7 @@