[Isis-users] J-ISIS Release Candidate 1.2

Ernesto Spinak ernesto_luis_96 at hotmail.com
Tue Jun 13 14:01:59 CEST 2017


Jean Claude
Good news, thanks for your effort
Ernesto Spinak

________________________________________
De: isis-users [isis-users-bounces+ernesto_luis_96=hotmail.com at iccisis.org] en nombre de Jean-Claude Dauphin [jc.dauphin at gmail.com]
Enviado: domingo, 11 de junio de 2017 16:55
Para: <isis-users at iccisis.org>; Jean-Claude Dauphin
Asunto: [Isis-users] J-ISIS Release Candidate 1.2

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<mailto: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


More information about the isis-users mailing list