[Isis-users] J-ISIS Release Candidate 1.2

Jean-Claude Dauphin jc.dauphin at gmail.com
Sun Jun 11 21:55:18 CEST 2017


Dear ISIS Users,


Please find for your consideration the 11 June 2017 Release Candidate of
J-ISIS. The Release Candidate (*RC*) is a beta version with potential to be
a final product, which is ready to release unless significant bugs
<https://en.wikipedia.org/wiki/Computer_bug> emerge.

J-ISIS 11 June 2017
<https://github.com/J-ISIS/J-ISIS/releases/download/v1.2/jisis_suite.11.June.2017.zip>

The Release Note  describes the main Improvements and Bug fixes of J-ISIS
11 June 2017 Release Candidate

J-ISIS 11 June 2017 Release Note
<https://github.com/J-ISIS/J-ISIS/blob/master/J-ISIS%20release%201-2.pdf>


<https://kenai.com/projects/j-isis/downloads/download/jisis_suite%2015%20February%202016%20RC.zip>

You will find below a summary of the major bug fixes and improvements, but
please read the release note at it contains more details and screen shots.


As usual, I would be very grateful if you could take the time to try
J-ISIS. All your comments, suggestions, improvement requests and bug
descriptions are welcome.



Best wishes,

Jean-Claude


*J-ISIS Release Candidate 1.2*



*I.               **Fixes to the J-ISIS Print Format*



1)     *Repeatable literals were not working as expected with field dummy
selectors (D or N)*

|Hello|d270 was producing an empty string even if field 270 was present



2)     *Conditional literals with subfield dummy selectors (D or N)*

“Hello”d270^d was always producing Hello as output even if no subfield ^d
was present

 Same for “Hello”n270^d,

3)      *MFN command was raising an error in REF function expressions like*:

ref(mfn,

if p(v19) and v19^x<='0'then", "d963^i,

(if v19^x<='0'then|<b>|v19^a*2|</b>|,| |v19^b fi)

fi,

)

4)     *Extracting a fragment of a Subfield specifying only the offset
(*offset) was not working*

V270^a*2 for example

5)     *String function **F(expr-1 ,expr-2,expr-3)default width value*

6)     *String functions S, SS, and CISIS functions LEFT, MID, REPLACE, and
RIGHT were not working in repeatable group.*

For example

(if s(v270^d) <> '1966' then '****' else '1966' fi/)

7)     *New Print Format Command for Unconditional Literals <text> …</text>*


Plain text or most probably HTML formatting can now be imbedded between the
<text> and </text> tagging commands, it works like unconditional literals.

*II. Print Format for Repeatable Subfields*
Subfield occurrences

It is possible to access individual occurrences of a repeatable subfield by
specifying the occurrence number or range, enclosed in square brackets,
immediately following the field selector or field selector followed by
occurrence selector. For examples:

V270[1]^a[2],v270[1]^a[2]

It is possible to display specific occurrence of a repeatable subfield,
narrowing the output to one or a range of occurrences of a repeatable
subfield by specifying the occurrence number or range, enclosed in square
brackets, immediately following the field selector.

v10^a[1] for example:

It is coded as follows:

*[<index> [..<upper index>]]*

 *<index>* and *<upper index>* refer to the first (or unique) and last
occurrences, respectively. If the specified *<index>* is greater than the
actual number of occurrences, no output is generated. The same occurs if
data subfield is not repeatable and *<index>* is set to a number equal or
greater than 2*. *However, if *<index>* is set to 1 and it is used in a
non-repeatable subfield, content is normally output. This component must be
used outside a repeatable group; otherwise, *<upper index>* is ignored. If
double dot (..) is used and *<upper index>* is missing LAST is assumed*. *The
LAST keyword is set with the value of total occurrences of a data subfield.

*III.         **Print Format Global Variables*

Global variables are stored in a *virtual ISIS record* which is a
collection of fields, fields may be repeatable and have occurrences, and
fields or occurrences may have subfields. The record, field and subfield
concepts are identical to ISIS.

Global variables are referenced by the letter *G* followed by the *tag* of
the field. The G (a mnemonic code for Global variable) followed by the
virtual record tag is the command telling J-ISIS that you want to assign or
extract a field. It may be entered indifferently in upper or lower case.

Global variables can be assigned data through the Print Format commands:

g100:=((v25/)),(g100^a/)

g10 := (v10^a)

You may assign or change the value of a global variable as follows:

*Gn:=(format)* (for example: *G5:=(v10)*).

Note that the parentheses around *format* are required.

 Global variables can be extracted for output like V variables just by
replacing the V by G that means that data will be extracted from the
virtual record. It supports repeatable groups as well.

Please note that it is a first attempt to implement Global variables and
that specific functions could also be implemented to further manipulate
them. Please let me know if it is worth to continue working in this
direction.

*IV.         **New Paging feature into DB Browser and Terms Dictionary*

Databases could be huge. If a database has millions of records and all
records are loaded into memory, it will consume a huge amount of memory and
will of course be very slow. As a matter of facts, user will probably only
look at 10 or maybe 20 records depending on the viewport size, there is no
need to download all the records locally. That’s the reason why the paging
feature was introduced into the DB browser and Terms Dictionary Browser
modules.

To make it easy to use the Paging feature, a page navigation toolbar
provides the interface to do the navigation.

10 000 records are loaded per page and the user can scroll easily and fast
through the page records. For example, the VIAF database has near 32
million records (31 305 939 records exactly)



*V.            ** Export features to select search results and using a hit
file to drive output are now implemented*



You can now export records retrieved from search as well as export records
following the order defined by a hit file produced by the PrintSort module



Note: A hit file manager will be developed in the future to better manage
search hit files and hit sort files



*VI.         **The Number of Terms in the index is now stored in an
external file to avoid the time consuming task of counting them.*



The */indexes* directory contains a subdirectory called master that
contains the main index files generated by Lucene open-source search
software <http://lucene.apache.org/>. A new file named
“termscount.properties” is now generated by J-ISIS to keep the number of
terms in the index as well as a time stamp, and is stored in the
/indexes/master folder. The number of terms in the index is only computed
when the index has changed and replaced with the new time stamp in the
external file.





For databases with more than 2 millions records, it reduces considerably
the time spent to get the database information.



-- 
Jean-Claude Dauphin

jc.dauphin at gmail.com

https://github.com/J-ISIS <http://kenai.com/projects/j-isis/>

http://www.unesco.org/isis/
http://www.unesco.org/idams/
http://www.greenstone.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.iccisis.org/pipermail/isis-users/attachments/20170611/eaa57f98/attachment.html>


More information about the isis-users mailing list