DLXS Release Notes
DLXS Release 11a - 5 MAR
2004
General Information
DLXS Release 11a is an interim release consisting of a few enhancements to Release 11. Refer to that section below for more detail. Release 11a is a full release of all DLXS middleware. There are no database schema changes. No database upgrades are required. A Release 11 version 4 database is fully compatible with release 11a.
Unicode support available in XPAT since Release 11 has been extended to the middleware and is delivered with working sample data under TextClass. FindaidClass shares the TextClass Unicode support changes. Refer to DLXS Unicode Data Preparation and Online Presentation Issues. ImageClass and BibClass still require minor changes to be fully Unicode compliant.
Release 11a is comprised of:
- BibClass version 3.1.2
- Broker20 version 1.1.0
- Collmgr version 3.1.1
- FindaidClass version 5.2.0
- ImageClass version 3.1.0
- Lib version 3.3.3
- TextClass version 3.3.0
- XClass version 2.1.1
- XPAT version 5.3.2
- dlxsd version 1.0.1
- mrsid_retrieve version 1.3.1
- tif2web version 1.0.3
- kakadu version 4.0.2
- cjpeg version 6b
- dlps_auth version 1.5
- xpatutf8check 1.0
Known Problems
XPAT Known Problems
XPAT 5.3.0 is generally backward-compatible with indexes generated by 5.2.x subject to a few isolated
misses during searching. Re-indexing with 5.3 xpatbld resolves this deficiency.
Database Known Problems
The SQL::Statement version 1.005 perl module is not backward compatible with version 0.1021. Version 0.1021 was typical with Perl version 5.6.1 whereas 1.005 is typical of Perl 5.8.0. We recommend you install perl 5.8.0 or higher and SQL::Statement 1.005 or higher.
Image Class Known Problems
-
The HTTP header is not being created properly by the getimage-idx cgi in Image Class (DLXS 11, 11a). The error is actually in Sidget2.pm at line 176. Here is the correction.
$buf = qq{Content-type: $contentType\n} . $contentDisposition . qq{Content-length: $size\n\n};
-
Two bugs related to sorting in Image Class (DLXS 11a) were recently resolved. Thanks to Driek Heesakkers, University of Amsterdam Digital Production Centre for his extra effort helping me reproduce the problems for debugging.
Two patches are provided here...
In $DLXSROOT/cgi/i/image/ImageApp.pm the subroutine prepToSort needs a minor modification.
Move the closing curly bracket up a few lines so that it looks like this...
$sort = $xcollSortMaps[0];
}
# sgml data might have abbrevs with dots.
# collmgr has abbrevs with underscores.
# look for both when parsing the data for a sort value.
$sort =~ s,\_,\[\.\_\],;
my $totalResults = &ImageClassUtils::totalResults($cgi, $bbo);
Also in ImageApp.pm, replace the subroutine ProcessItems with the following...
sub ProcessItems
{
my $self = shift;
my ( $cgi, $cio, $dso, $itemIDsRef, $bbo ) = @_;
# Set $gSliceStart and $gSliceEnd
# done globally for easy reuse
$self->sliceBounds( $cgi );
my @rset;
my @sliceOccurArray;
for (my $i = $ICGlobals::gSliceStart; $i <= $ICGlobals::gSliceEnd; $i++)
{
my $idRef = $$itemIDsRef[$i];
# last if slice is larger than results
last if (! defined $idRef);
my @oneID = ($$idRef);
my ($coll) = ($$idRef =~ m/S-([^-]*)-/i);
$coll = lc($coll);
$self->ProcessItemsColl($cgi, $cio,
$dso, $bbo, $coll,
\@oneID, \@rset);
push @sliceOccurArray, $self->makeSliceOccurArray(\@oneID);
}
return ( \@rset, \@sliceOccurArray );
}
- Image filenames can not begin with the letter "x" (upper or lowercase). It is not certain when this problem was introduced, but it is believed to exist in DLXS 10. It is known to exist in DLXS 11 and 11a.
- Any field that, such as an ID field, that includes non-alphanumeric chars, such as "-", should be mapped to ic_exact in the in the admin_field_maps Colldb/Collmgr field if exact searching of the entire field value is desired. This is not so much a problem as it is a fact.
- Display of JPEG2000 images as JPEG in the browser behaves oddly if the image is zoomed several times near the edge of the full image. The zoomed portion of the image is stretched to match the aspect ratio of the full-size image.
- "rgn" CGI parameters containing full field names generate an error. The CGI now expects field abbreviations, not full field names.
XPAT version 5.3.0
- No changes. Please see release notes for Release 11.
Lib version 3.3.3
New and Changed Functionality
- Middleware support for UTF-8 Unicode collections. XPat.pm sets the Perl UTF-8 flag on strings from collections configured in Collmgr to have UTF-8 localed. DlpsUtils::HighlightHit is completely new to supporting highlighting of multi-byte UTF-8 encoded results data.
- Visible in TextClass and FindaidClass: Implementation of frequency sorting, cross-collection results guide frame collection names are links to the collection's home page, sort select menu is based on the sort options of just
those collections with results from a cross collection search.
- DlpsUtils::HighlightHit has been rewritten to support highlighting multi-byte UTF-8 results. It emulates the full mapping performed by XPAT during searching to match search terms exactly in the results.
- Email addresses configured in the Collmgr and displayed via PIs in the output are automatically obfuscated to make them harder for web crawlers to harvest in an effort to reduce spam.
- Support for "foreign" URLs (URLs that go offsite) in the Collmgr 'homesite' field.
- No longer delete the 'g' (group) URL parameter when building the link to the collection home so the 'g' parameter will be carried around on subsequent links maintaining the group look and feel (if any).
Text Class version 3.3.0
New and Changed Functionality
- Support for UTF-8 encoded Unicode collection data. Utilizes xpatu as search engine for Unicode collections. Reads the 'locale' field in Collmgr to determine encoding, either UTF-8 or ISO-8859-*. Adds charset=UTF-8 META tag to existing html templates on output. Refer to DLXS Unicode Data Preparation and Online Presentation Issues. A Unicode sample collection named "sampletc_utf8" accompanies this release.
- Template and CSS style sheet changes to provide page image borders in Pageviewer.
- The data prep utility program, dtdalyzer.pl, is now XML aware i.e. case-sensitive.
- Two new data prep utility programs are delivered: isocer2utf8 converts SGML ISO Character Entity References to UTF-8 encoded Unicode characters and ncr2utf8 converts Numeric Character References to UTF-8 encoded Unicode characters.
- Frequency sorting is now a supported sort option.
- Changes to footer.chnk supporting email address obfuscation.
- PageView changes to handle multiple records in Pageview table in dlxs database (contone and bitonal page images can now live side by side).
- Cross-collection results guide frame collection names are links to the collection's home page, sort select menu is based on the sort options of just those collections with results from a cross collection search.
- A summary description of the search result is saved in the Search History instead of just
a single number under "Total Results" in the search history page.
- Implemented enhanced handling for TEI Level 2 materials with <DIV> depths greater than 1. This work is a generalization of a DLXS 10 contribution by Frances Webb at Cornell.
Bib Class version 3.1.2
New and Changed Functionality
Release of Z39BC.pm implementing a subclass of BibClass that is able to query Z3950 search engines. It uses Net::Z3950 (obtained from CPAN) to connect and create Z3950 queries which it then issues to a Z3950 search engine.
Presently it is designed to expect UTF-8 responses from its Z3950 queries, so the Z39App.pm application subclass should be modified to insert charset=UTF-8 <META> tags when outputting template files to handle the UTF-8 responses.
The collmgr 'host' field for Z39-based collections indicates the server where the Z3950 engine resides.
It is important to note that presently the Z39 implementation will only create queries for following fields: title, author, pubyear, language, and id, and that it assumes that the Z3950 search engine has a database with the same name as the collid, which is indicated when connecting to the engine. Here at UM, we are using Zebra as our Z3950 general-purpose structured text indexing and retrieval engine.
Image Class version 3.1.0
New and Changed Functionality
- In situations where the collection metadata is in MySQL and there are multiple "q" CGI parameters (e.g,. q1, q2, q3) it is now acceptable for any combination of the "q" parameters to have values or not. In the past if, for instance, q1 and q3 had values, but q2 did not, an assertion error would occur. Now it works fine. It also works with XPAT collections, but that is old news.
- Custom (user driven) ordering of portfolio items was added. The related MySQL tables BookBagDB and BookBagItems did not change in structure (no new or changed fields).
- The ability for any user (logged-in or not) to create a portfolio was added. If login is enabled in Image Class and the user logs in, the user's portfolios are stored long term.
- Portfolio code is more clearly separated in the middleware. Dependency on BookBag library methods increased (this is good).
- A new script called manageportfolios.pl is provided ($DLXSROOT/bin). It deletes temporary portfolios older than 2 days with the assumption the user's session has expired. It is only needed if Portfolios are enabled. Works well as a cron job.
- Template chunking was added. Results templates now use header chunks, which are found in $DLXSROOT/web/i/image with the templates. The javascript that sniffs the browser and platform is now in a chunk and all templates use it. Templates that don't use chunks should still work just fine.
- Collection and group webdir values in Collmgr/Colldb must have a leading slash. In the past Image Class would work with our without the leading slash. This is no longer the case.
- Colldb/Collmgr field "dfltsrch" fields is now required to have specific values. "default" does not work. and collid_all should be included if brwsimg and brwsrec are to work.
- The PATH processing instruction is no longer supported in Image Class templates. Use FBFILE processing instruction instead. There is no backward compatibility for this in DLXS 11a (there was in DLXS 11), so all existing templates must make this change.
- "Revert Size" functionality was added to the middleware, however the PIs are commented-out in the class level entry.tpl and bbentry.tpl templates. See also comments in entry.tpl
- Email obfuscation was added to the CONTACT processing instructions. Javascript is used to disguise email addresses from crawlers. It is recommended that the contacttext Colldb/Collmgr field value not be an email address since only the contact link is disguised.
- Significant Portfolio template, chunk, and stylesheet changes were made in the process of adding portfolio support for users not logged in. Some template cleanup was done as well.
- Added logout link to complement login.
- Made changes to bring prep under DLXSDATAROOT for data prep scripts.
- Fixed a bug in middleware that caused the MO attribute
of ISTRUCT to be omitted when the collection has
no media.
- Significant changes were made to the
collhomeLink subroutine that is used by the COLLHOME
PI. It is now able to return a collection home, group
home, or class home link depending on the situation.
This alllows it to be utilized from a wider array
of templates. The COLLHOME PI was renamed HOME. COLLHOME
will also continue to work through DLXS 12, after
which it is flagged for removal.
- Changes were made to make use of the
new hiliting routines in lib.
- Portfolios were not sorting properly
with mysql collections. Fixed.
- A single collection can now be searched
by cross collection fields, if so desired.
- Changes were needed in the mysqlImageApp::BuildCategorySearch
method to properly handle all xcoll and coll specific
situations. Also added a method to mysqlImageApp.pm
that converts cgi parameters in to a natural language
query string for display to the user when no results
are achieved. This has been sorely missing from the
mysql version of Image Class.
- Corrected problem where Next/Previous links were not always working properly. This was MySQL specific.
- The known problem of DLXS 11 regarding the "MEDIAEQUIVS" PI has been resolved.
Broker20 version 1.1.0
New and Changed Functionality
- No change from Release 11. See below.
Collmgr version 3.1.0
New and Changed Functionality
- No change from Release 11. See below.
FindaidClass version 5.2.0
New and Changed Functionality
- Unicode enabled due to code in Lib shared by TextClass.
- Addition of Previous and Next Item links.
- Email PIs now obfuscate the email addresses from the colldb, to aid in
preventing spam.
- Changes to URL parameters (view, subview, etc.) to more closely parallel TextClass usage.
- Code moved up to DLXSApp::FullTextApp and DLXSClass::FullTextClass so it could be shared by TextClass and FindaidClass.
- Addition of "Search Within" one Finding Aid functionality.
- Addition of Next/Previous links in results.
XClass version 2.1.1
New and Changed Functionality
- No change from DLXS release 11. See below.