Page MenuHomec4science

guide.html.wml
No OneTemporary

File Metadata

Created
Sun, May 12, 12:29

guide.html.wml

This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=Edit-Time-Data
href="./BibFormat_Configuration_Manual_files/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>FlexElink Configuration Manual</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Author>hsanchez</o:Author>
<o:LastAuthor>hsanchez</o:LastAuthor>
<o:Revision>2</o:Revision>
<o:TotalTime>1</o:TotalTime>
<o:LastPrinted>2002-03-13T15:26:00Z</o:LastPrinted>
<o:Created>2002-07-31T13:41:00Z</o:Created>
<o:LastSaved>2002-07-31T13:41:00Z</o:LastSaved>
<o:Pages>27</o:Pages>
<o:Words>7712</o:Words>
<o:Characters>43961</o:Characters>
<o:Company>CERN</o:Company>
<o:Lines>366</o:Lines>
<o:Paragraphs>87</o:Paragraphs>
<o:CharactersWithSpaces>53987</o:CharactersWithSpaces>
<o:Version>9.4402</o:Version>
</o:DocumentProperties>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Courier;
panose-1:0 0 0 0 0 0 0 0 0 0;
mso-font-charset:0;
mso-generic-font-family:modern;
mso-font-format:other;
mso-font-pitch:fixed;
mso-font-signature:3 0 0 0 1 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:553679495 -2147483648 8 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
h1
{mso-style-next:Normal;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:1;
font-size:16.0pt;
mso-bidi-font-size:12.0pt;
font-family:Arial;
mso-font-kerning:0pt;
font-weight:normal;}
h2
{mso-style-next:Normal;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:2;
font-size:10.0pt;
mso-bidi-font-size:12.0pt;
font-family:Arial;
text-decoration:underline;
text-underline:single;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:12.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:24.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:48.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:60.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:72.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:84.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:96.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:108.0pt;
margin-bottom:.0001pt;
text-indent:-12.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{mso-style-update:auto;
mso-style-next:Normal;
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:12.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:24.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:36.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:48.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:60.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:72.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:84.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{mso-style-update:auto;
mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:96.0pt;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:center 216.0pt right 432.0pt;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
tab-stops:center 216.0pt right 432.0pt;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-next:"Index 1";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{mso-style-next:Normal;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
p.MsoTof, li.MsoTof, div.MsoTof
{mso-style-next:Normal;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:24.0pt;
margin-bottom:.0001pt;
text-indent:-24.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
font-size:20.0pt;
mso-bidi-font-size:12.0pt;
font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";
font-weight:bold;
text-decoration:underline;
text-underline:single;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
font-size:10.0pt;
mso-bidi-font-size:12.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
font-size:9.0pt;
mso-bidi-font-size:12.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
mso-pagination:widow-orphan;
font-size:10.0pt;
mso-bidi-font-size:12.0pt;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";
font-weight:bold;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;
text-underline:single;}
p.Apartadonivel1, li.Apartadonivel1, div.Apartadonivel1
{mso-style-name:"Apartado nivel 1";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:14.0pt;
mso-bidi-font-size:12.0pt;
font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";
text-decoration:underline;
text-underline:single;}
p.Texto, li.Texto, div.Texto
{mso-style-name:Texto;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-indent:27.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";}
p.EBNF, li.EBNF, div.EBNF
{mso-style-name:EBNF;
mso-style-parent:Texto;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
mso-pagination:widow-orphan;
font-size:10.0pt;
mso-bidi-font-size:12.0pt;
font-family:Courier;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:"Courier New";}
p.Apartadonivel2, li.Apartadonivel2, div.Apartadonivel2
{mso-style-name:"Apartado nivel 2";
mso-style-parent:Texto;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-indent:27.0pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";
font-weight:bold;
text-decoration:underline;
text-underline:single;}
p.figuremarker, li.figuremarker, div.figuremarker
{mso-style-name:"figure marker";
mso-style-parent:Texto;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
text-indent:27.0pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
mso-bidi-font-size:12.0pt;
font-family:Courier;
mso-fareast-font-family:"Times New Roman";
mso-bidi-font-family:Tahoma;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 45.0pt 72.0pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
/* List Definitions */
@list l0
{mso-list-id:16079807;
mso-list-type:hybrid;
mso-list-template-ids:-684034640 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:99.0pt;
mso-level-number-position:left;
margin-left:99.0pt;
text-indent:-18.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:135.0pt;
mso-level-number-position:left;
margin-left:135.0pt;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:69931913;
mso-list-type:hybrid;
mso-list-template-ids:937734046 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:99.0pt;
mso-level-number-position:left;
margin-left:99.0pt;
text-indent:-18.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l2
{mso-list-id:327293559;
mso-list-type:hybrid;
mso-list-template-ids:-555838332 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;}
@list l3
{mso-list-id:577903942;
mso-list-type:hybrid;
mso-list-template-ids:1524282006 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l3:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l4
{mso-list-id:652219475;
mso-list-type:hybrid;
mso-list-template-ids:-722965820 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l4:level1
{mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;}
@list l5
{mso-list-id:665206514;
mso-list-type:hybrid;
mso-list-template-ids:340062660 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l5:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l6
{mso-list-id:681972721;
mso-list-type:hybrid;
mso-list-template-ids:1453904326 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l6:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l7
{mso-list-id:923536071;
mso-list-type:hybrid;
mso-list-template-ids:1756416122 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l7:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l8
{mso-list-id:1202280677;
mso-list-type:hybrid;
mso-list-template-ids:1204463410 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l8:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l9
{mso-list-id:1345984231;
mso-list-type:hybrid;
mso-list-template-ids:-1586443144 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l9:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l9:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:99.0pt;
mso-level-number-position:left;
margin-left:99.0pt;
text-indent:-18.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l10
{mso-list-id:1744179890;
mso-list-type:hybrid;
mso-list-template-ids:-898886362 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l10:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l11
{mso-list-id:1756586211;
mso-list-type:hybrid;
mso-list-template-ids:1598746082 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l11:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l12
{mso-list-id:1820732132;
mso-list-type:hybrid;
mso-list-template-ids:1404969010 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l12:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
@list l13
{mso-list-id:2118717409;
mso-list-type:hybrid;
mso-list-template-ids:-1182652458 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l13:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:63.0pt;
mso-level-number-position:left;
margin-left:63.0pt;
text-indent:-18.0pt;
font-family:Symbol;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050">
<o:colormenu v:ext="edit" strokecolor="black"/>
</o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
<o:regrouptable v:ext="edit">
<o:entry new="1" old="0"/>
<o:entry new="2" old="0"/>
<o:entry new="3" old="0"/>
<o:entry new="4" old="0"/>
</o:regrouptable>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
<div class=Section1>
<p class=MsoTitle>BibFormat Configuration Manual</p>
<p class=MsoTitle><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt;
text-decoration:none;text-underline:none'>V0.3, 31 July 2002<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:Tahoma'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:Tahoma'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=MsoNormal><b><u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;
font-family:Tahoma'>Table of contents<span style='mso-tab-count:10'>                                                                            </span></span></u></b><span
style='font-family:Tahoma'><span style='mso-tab-count:2'>                   </span><span
style='mso-tab-count:3'>                             </span><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><!--[if supportFields]><span
style='font-family:Tahoma'><span style='mso-element:field-begin'></span><span
style="mso-spacerun: yes"> </span>TOC \h \z \t &quot;Apartado nivel
1,1,Apartado nivel 2,2&quot; <span style='mso-element:field-separator'></span></span><![endif]--><span
style='font-family:Tahoma'><span class=MsoHyperlink><a href="#_Toc3803663"><span
style='mso-bidi-font-size:14.0pt'>1. - About BibFormat</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803663 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>2</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360033000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803664"><span
style='mso-bidi-font-size:14.0pt'>2. - How it works?</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803664 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>3</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360034000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803665"><span
style='mso-bidi-font-size:14.0pt'>3. - A first look at the web configuration
interface</span><span style='color:windowtext;display:none;mso-hide:screen;
text-decoration:none;text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803665 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>5</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360035000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803666"><span
style='mso-bidi-font-size:14.0pt'>4. – Mapping the input (OAI Extraction Rules)</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803666 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>7</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360036000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803667"><span
style='mso-bidi-font-size:14.0pt'>5. – Defining output types: Behaviors</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803667 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>10</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360037000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803668"><span
style='mso-bidi-font-size:14.0pt'>6. – Formats</span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803668 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>12</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360038000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803669"><span
style='mso-bidi-font-size:14.0pt'>7. – Knowledge bases (KBs)</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803669 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>13</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600360039000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803670"><span
style='mso-bidi-font-size:14.0pt'>8. – User Defined Functions (UDFs)</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803670 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>14</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370030000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803671"><span
style='mso-bidi-font-size:14.0pt'>9. – Defining links</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803671 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>16</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370031000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc2 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803672">9.1.
- EXTERNAL link conditions<span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803672 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>17</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370032000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc2 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803673">9.2.
- INTERNAL link conditions<span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803673 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>17</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370033000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc2 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803674">9.3.
– Example<span style='color:windowtext;display:none;mso-hide:screen;text-decoration:
none;text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803674 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>18</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370034000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803675"><span
style='mso-bidi-font-size:14.0pt'>10. – User management</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'> </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803675 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>20</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370035000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoToc1 style='tab-stops:right dotted 476.5pt'><span
class=MsoHyperlink><span style='font-family:Tahoma'><a href="#_Toc3803676"><span
style='mso-bidi-font-size:14.0pt'>11. - Evaluation Language Reference</span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span><!--[if supportFields]><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'><span style='mso-element:field-begin'></span></span><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'> PAGEREF _Toc3803676 \h </span><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-separator'></span></span><![endif]--><span
style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
text-underline:none'>21</span><span style='color:windowtext;display:none;
mso-hide:screen;text-decoration:none;text-underline:none'><!--[if gte mso 9]><xml>
<w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000C0000005F0054006F00630033003800300033003600370036000000</w:data>
</xml><![endif]--></span><!--[if supportFields]><span style='color:windowtext;
display:none;mso-hide:screen;text-decoration:none;text-underline:none'><span
style='mso-element:field-end'></span></span><![endif]--></a></span></span><span
style='font-family:Tahoma'><o:p></o:p></span></p>
<p class=MsoNormal><!--[if supportFields]><span style='font-family:Tahoma'><span
style='mso-element:field-end'></span></span><![endif]--><span style='font-family:
Tahoma'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<span style='font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:
"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:EN-US;
mso-bidi-language:AR-SA'><br clear=all style='mso-special-character:line-break;
page-break-before:always'>
</span>
<p class=MsoHeader style='tab-stops:36.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel1><a name=aboutFlexelink></a><a name="_Toc240507"></a><a
name="_Toc241005"></a><a name="_Toc3803663"><span style='mso-bookmark:_Toc241005'><span
style='mso-bookmark:_Toc240507'><span style='mso-bookmark:aboutFlexelink'>1. -
About BibFormat</span></span></span></a><span style='mso-bookmark:aboutFlexelink'></span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'>BibFormat is a piece
of software that is part of the CERN Document Server (CDS, </span><a
href="http://www.cds.ch/"><span style='mso-bookmark:aboutFlexelink'>http://www.cds.ch</span><span
style='mso-bookmark:aboutFlexelink'></span></a><span style='mso-bookmark:aboutFlexelink'>)
and more concretely of the CDS Search module (</span><a
href="http://weblib.cern.ch/"><span style='mso-bookmark:aboutFlexelink'>http://weblib.cern.ch</span><span
style='mso-bookmark:aboutFlexelink'></span></a><span style='mso-bookmark:aboutFlexelink'>).
</span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'>Its mission, in few
words, is to provide a flexible mechanism to format the bibliographic records
that are shown as a result of CDS Search user queries allowing the
administrators or users customize the view of them. Besides, it offers the
possibility of using a linking system that can generate automatically all the
links included in the displayed records (fulltext access, electronic journals
reference, etc) reducing considerably maintenance.</span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'>To clarify this too
formal definition, we’ll try to illustrate the role of BibFormat inside the CDS
Search module by showing the following figure. Please, note that this drawing
is trying to show the main role that BibFormat plays in the CDS structure and
it’s quite simplified, but of course the underlying logic is a bit more
complex.</span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'><!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:397.5pt;
height:156pt'>
<v:imagedata src="./guide001.gif"
o:title="Image2"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=530 height=208
src="./guide001.gif" v:shapes="_x0000_i1025"><![endif]></span></p>
<p class=figuremarker><span style='mso-bookmark:aboutFlexelink'>[Fig. 0]</span></p>
<p class=Texto align=center style='text-align:center'><span style='mso-bookmark:
aboutFlexelink'><span style='font-size:10.0pt;mso-bidi-font-size:12.0pt;
font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'>As you can see, when a
user query is received, Weblib determines which records from the database match
it; then it ask BibFormat to format the obtained records. BibFormat looks at
its rule repository and for each record determines which format has to be
taken, applies the format specification and solves the possible links; gives
all this (in a formatted way) back to Weblib and it makes a nice HTML page
including the formatted results given by BibFormat among other info.</span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'>The good point in all
this is that anyone that has access to BibFormat rule repository is able to
modify the final appearance of a query result in the CDS Search module without
altering the logic of the search engine.</span></p>
<p class=Texto><span style='mso-bookmark:aboutFlexelink'>In order to be able to
modify this BibFormat rule repository, a web configuration interface is
provided. Trough this paper, we’ll try to explain (in a friendly way and form
the user point of view) how to access this interface, how it’s structured and
how to configure BibFormat trough it to achieve desired results.</span></p>
<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='mso-special-character:line-break;page-break-before:always'>
<span style='mso-bookmark:aboutFlexelink'></span></span>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel1><a name=howItWorks></a><a name="_Toc240508"></a><a
name="_Toc241006"></a><a name="_Toc3803664"><span style='mso-bookmark:_Toc241006'><span
style='mso-bookmark:_Toc240508'><span style='mso-bookmark:howItWorks'>2. - How
it works?</span></span></span></a><span style='mso-bookmark:howItWorks'></span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>We’ve outlined which is
the role of BibFormat inside the CDS, so it’s time now to have an overview of
how it works and how it’s organized. We’ll try not to be very technical,
however a few explanation about the BibFormat repository and architecture is
needed to understand how it works.</span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>BibFormat, basically,
takes some bibliographic records as input and produces a formatted &amp; linked
version of them as output. By “formatted” we mean that BibFormat can produce an
output containing a transformed version of the input data (normally an HTML
view); the good part is that you can entirely specify the transformation to
apply. At the same time, by “linked” we mean that you can ask BibFormat to
include (if necessary) inside this formatted version references to some
Internet resources that are related to the data from some pre-configured rules.
</span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>As an example, we could
imagine that you’d want to see the resulting records from CDS Search queries to
show their title in bold followed by their authors separated by comas. For
achieving this you’ll have to go to the BibFormat configuration interface and
define a behavior for BibFormat in which you describe how to format incoming
records: </span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 3.0pt'>
<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 3.0pt'><span
style='mso-bookmark:howItWorks'><span style='font-family:"Courier New"'>“&lt;b&gt;”
$title “&lt;/b&gt;” <o:p></o:p></span></span></p>
<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 3.0pt'><span
style='mso-bookmark:howItWorks'><span style='font-family:"Courier New"'>forall($author){
<o:p></o:p></span></span></p>
<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 3.0pt'><span
style='mso-bookmark:howItWorks'><span style='font-family:"Courier New"'><span
style="mso-spacerun: yes">  </span>$author separator(“, “)<o:p></o:p></span></span></p>
<p class=Texto style='margin-top:0cm;margin-right:117.0pt;margin-bottom:0cm;
margin-left:117.0pt;margin-bottom:.0001pt;text-indent:0cm;page-break-after:
avoid;border:none;mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:
1.0pt 4.0pt 1.0pt 3.0pt'><span style='mso-bookmark:howItWorks'><span
style='font-family:"Courier New"'>}<o:p></o:p></span></span></p>
</div>
<p class=MsoCaption align=center style='text-align:center'><span
style='mso-bookmark:howItWorks'><a name="_Toc261502"></a><a name="_Toc261578"><span
style='mso-bookmark:_Toc261502'>Figure <span style='mso-field-code:"SEQ Figure \\* ARABIC"'>1</span>.-
A very first <i>Evaluation Language</i> </span></a>example</span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>Don’t be scared!! It’s a
first approach to the way BibFormat allows you to describe formats. As you can
see, BibFormat uses a special language that you’ll have to learn if you want to
be able to specify formats or links; it seems difficult (as much as a
programming language) but you’ll see that it’s quite more easy than it seems at
first sight.</span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>In the next figure, is
shown how BibFormat works internally. When BibFormat is called, it receives a
set of bibliographic records to format. It separates each record and translates
it into a set of what we call “internal variables”; these “internal variables”
are simply an internal representation of the bibliographic record; the
important thing with them is that they will be available when you have to describe
the formats. Once it has these “internal vars”, the processor module looks into
the behavior repository for that one (let’s say format) you’ve asked BibFormat
to apply (when BibFormat is called, you can indicate which of the
pre-configured behaviors to apply; this allows it to have more than one
behavior); inside this behavior you can specify which data you want to appear,
how it has to appear, some links if they exist…in other words, the format
(actually, it’s something more than a format, it describes how BibFormat has to
behave for a given input; that’s why we refer to it as behavior). <span
style="mso-spacerun: yes"> </span>As we’ve already said, you can include links
in a behavior specification; links are a special BibFormat feature that helps
you to reduce the maintenance of your formats: you can include a link in
several formats or behaviors. </span></p>
<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='page-break-before:always'>
</span>
<p class=Texto><span style='mso-bookmark:howItWorks'>The picture below,
describes all this explanation. </span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto style='text-indent:0cm'><span style='mso-bookmark:howItWorks'><!--[if gte vml 1]><v:shape
id="_x0000_i1026" type="#_x0000_t75" style='width:477pt;height:237.75pt'>
<v:imagedata src="guide002.png"
o:title="Image3"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=636 height=317
src="./guide003.jpg" v:shapes="_x0000_i1026"><![endif]></span></p>
<p class=figuremarker><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=figuremarker><span style='mso-bookmark:howItWorks'>[Fig. 2]</span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>Summarizing, BibFormat can
transform an input made up of bibliographic records in an HTML output (not only
HTML but any text-based output) according to certain pre-configured
specifications (behaviors) that you can entirely define using a certain
language.</span></p>
<p class=Texto><span style='mso-bookmark:howItWorks'>Just to mention, currently
BibFormat is working taking OAI MARC XML as format for input records, but it
can be adapted to other ways of inputs (reading a database, function call, etc)
with a little of development.</span></p>
<span style='mso-bookmark:howItWorks'></span><u><span style='font-size:14.0pt;
mso-bidi-font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name=firstLookAtWebIF></a><a name="_Toc240509"></a><a
name="_Toc241007"></a><a name="_Toc3803665"><span style='mso-bookmark:_Toc241007'><span
style='mso-bookmark:_Toc240509'><span style='mso-bookmark:firstLookAtWebIF'>3.
- A first look at the web configuration interface</span></span></span></a><span
style='mso-bookmark:firstLookAtWebIF'></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>BibFormat can be
configured through its configuration interface that is accessible via web. It’s
made up of a bunch of web pages that present you the main configuration aspects
of BibFormat allowing you to change them. In this section we are going to have
a first look at this web interface, how it’s structured and its correspondence
with BibFormat features.</span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>Before entering
these web pages you’ll be asked for your accessing username &amp; password.
Only certain users are allowed to access BibFormat WI; first you need a CDS
account that you can create easily by using the standard CDS account manager;
then you have to ask BibFormat administrator to give privileges to access the
WI.</span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><span
style="mso-spacerun: yes"> </span>Once your password is accepted you’ll access
the configuration interface. You’ll see that is quite simple: It’s structured
in different sections; each of them corresponds to a BibFormat feature and you
can navigate through them by using a navigation bar that is always present on
the left.</span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=figuremarker><span style='mso-bookmark:firstLookAtWebIF'>[Fig. 3]</span></p>
<p class=Texto style='text-indent:0cm'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>Here you are a list
of the different sections the interface offers you and their correspondence
with BibFormat features:</span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>Behaviors</b>: This is the main section, the one you
enter by default when you access the web interface. It contains definitions for
the different pre-configured output types or behaviors that allow you to define
how you want BibFormat to behave when each output type is selected. More information
in chapter <i>Defining output types: Behaviors</i> of this manual.</span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>OAI Extraction Rules</b>: The input types and
mapping rules for OAI MARC XML inputs are defined here. You’ll find here the
information about all the internal variables and their correspondence with the
input XML tags. See chapter <i>Mapping the input</i> of this manual for more
information.</span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol;mso-bidi-font-weight:bold'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>Link Rules: </b>Allows you to access the link rules
repository for defining the way links are generated. See chapter <i>Defining
Links</i> for a more detailed description about the BibFormat linking system.<b><o:p></o:p></b></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol;mso-bidi-font-weight:bold'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>UDFs: </b>Presents you a list of all the User
Defined Functions (UDFs) that you can use inside <i>Evaluation Language </i>(<i>EL</i>)<i>
</i>statements that are used for specifying different configuration aspects.
You’ll also be able to modify or extend this list within this section.
Everything about using UDFs and defining new ones in chapter <i>User Defined
Functions (UDFs)</i>.<b><o:p></o:p></b></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol;mso-bidi-font-weight:bold'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>Formats: </b>Another <i>EL</i> feature: You can
define a certain piece of <i>EL</i> code under a name for re-using it whenever
you want. See chapter <i>Formats</i>.<b><o:p></o:p></b></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol;mso-bidi-font-weight:bold'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>KBs: </b>A complete management interface for <i>Knowledge
Bases </i>(<i>KBs</i>); those <i>KBs</i> will also be available inside <i>EL</i>
statements. See chapter <i>Knowledge Bases(Kbs)</i> for more specific
information. <b><o:p></o:p></b></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol;mso-bidi-font-weight:bold'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>Execution Test: </b>You’ll be able to execute
BibFormat from this section and view the results and some debug info in a web
page. You have to specify an input data file (through a URL). <b><o:p></o:p></b></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l6 level1 lfo8;
tab-stops:list 63.0pt'><span style='mso-bookmark:firstLookAtWebIF'><![if !supportLists]><span
style='font-family:Symbol;mso-bidi-font-weight:bold'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><b>User management: </b>Allows you to define which CDS
users can access or not the BibFormat web interface.<b><o:p></o:p></b></span></p>
<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><span
style='mso-bookmark:firstLookAtWebIF'><b><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></b></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'>Each section has
different particularities but the way of dealing with them follows a common
line through the interface. However, each section with their common things and
particular characteristics are treated in the following chapters of this
manual.</span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='mso-bookmark:firstLookAtWebIF'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<span style='mso-bookmark:firstLookAtWebIF'></span>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc240510"></a><a name="_Toc241008"></a><a
name="_Toc3803666"><span style='mso-bookmark:_Toc241008'><span
style='mso-bookmark:_Toc240510'>4. – Mapping the input (OAI Extraction Rules)</span></span></a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>We have already spoken a bit about BibFormat <i>internal
variables</i>. These are a key point to understand the BibFormat way of
working. As you know, BibFormat takes some bibliographic records as input and,
according to some pre-configured behavior, formats them into HTML, for example.
The problem is that this input records can come in several formats: different
XML conventions, database records, etc. For now, at CDS we only consider that
the input comes in OAI MARC XML but for the near future we’ll may be have to
extend it to accept other input formats.</p>
<p class=Texto>That’s the reason why <i>internal variables</i> appear; they
provide a common way to refer to input data without relaying in any concrete
format. In other words, we will define BibFormat links and behaviors referring
to these <i>internal variables</i> and we’ll have some rules that define how to
map an input format to them, so we would be able to use any BibFormat defined
behavior with any input that can be mapped to <i>internal variables</i>.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75"
style='width:455.25pt;height:153.75pt'>
<v:imagedata src="./guide004.gif"
o:title="Image4"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=607 height=205
src="./guide004.gif" v:shapes="_x0000_i1027"><![endif]></p>
<p class=figuremarker>[Fig. 4]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>You shouldn’t worry about this because is more in the
development/administration side, but it’s important to know where <i>internal
variables </i>come from and what they refer to. Besides, for CDS we only
consider the incoming data in OAI MARC XML format, so we’ll talk only about
this case.</p>
<p class=Texto><i>Internal variables</i> are quite a simple concept: It’s just
a label that represents some values from the input. Besides, a variable can
have <i>fields</i> that are also labels that represent values from the input
but that are related to other under the variable (e.g. You can have a variable
that maps authors and another that maps authors home institutes independently;
but if you want to have represent an author and his home institute you need to
relate these two variables in some way). Variables and their fields also
support multiple values. </p>
<p class=Texto>Focusing on OAI MARC XML, the concept of variable and field is
already in the input structure.:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l13 level1 lfo9;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Each occurrence of OAI MARC XML <i>varfield</i> element
will correspond to a different variable value.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l13 level1 lfo9;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Each occurrence of OAI MARC XML <i>subfield</i> inside
a certain <i>varfield </i>element will correspond to a different field value of
the variable that maps the <i>varfield</i>.</p>
<p class=Texto>So what we will have in BibFormat is a set of rules that tells a
variable name to which <i>varfield </i>element corresponds and each variable
field name which <i>subfield</i> element maps. Trough the web interface you’ll
be able to add or delete new fields to variables or variables themselves,
you’ll be able even to modify the mapping tags of variables (this way you can
keep your formats independent of changes in the meaning of MARC tags). </p>
<p class=Texto>In the web interface, all this is located in <i>OAI Ext. Rules</i>
section as you can see in the following figure:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 5]</p>
<p class=Texto>Let’s illustrate how BibFormat maps a certain input to variables
and fields with an example:</p>
<p class=Texto>We have this variable &amp; field definition on BibFormat:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<table border=1 cellspacing=0 cellpadding=0 width=624 style='width:468.0pt;
margin-left:-3.6pt;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=41 valign=top style='width:30.9pt;border:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Var. label<o:p></o:p></span></b></p>
</td>
<td width=205 valign=top style='width:153.8pt;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#E0E0E0;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Mapping tag<o:p></o:p></span></b></p>
</td>
<td width=67 valign=top style='width:50.35pt;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#E0E0E0;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Mult. V.<o:p></o:p></span></b></p>
</td>
<td width=311 valign=top style='width:232.95pt;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#E0E0E0;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b><span
style='font-size:10.0pt;mso-bidi-font-size:12.0pt'>Fields<o:p></o:p></span></b></p>
</td>
</tr>
<tr>
<td width=41 valign=top style='width:30.9pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><span style='font-size:9.0pt;
mso-bidi-font-size:12.0pt'>100<o:p></o:p></span></p>
</td>
<td width=205 valign=top style='width:153.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;varfield
id=&quot;100&quot; i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
</td>
<td width=67 valign=top style='width:50.35pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Yes<o:p></o:p></span></p>
</td>
<td width=311 valign=top style='width:232.95pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
background:#D9D9D9;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Field label<o:p></o:p></span></p>
</td>
<td width=172 valign=top style='width:128.7pt;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#D9D9D9;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Mapping tag<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>a<o:p></o:p></span></p>
</td>
<td width=172 valign=top style='width:128.7pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;subfield
label=&quot;a&quot;&gt;<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>e<o:p></o:p></span></p>
</td>
<td width=172 valign=top style='width:128.7pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;subfield
label=&quot;e&quot;&gt;<o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=41 valign=top style='width:30.9pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><span style='font-size:9.0pt;
mso-bidi-font-size:12.0pt'>909C0<o:p></o:p></span></p>
</td>
<td width=205 valign=top style='width:153.8pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;varfield
id=&quot;909&quot; i1=&quot;C&quot; i2=&quot;0&quot;&gt;<o:p></o:p></span></p>
</td>
<td width=67 valign=top style='width:50.35pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>No<o:p></o:p></span></p>
</td>
<td width=311 valign=top style='width:232.95pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
background:#D9D9D9;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Field label<o:p></o:p></span></p>
</td>
<td width=172 valign=top style='width:128.7pt;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#D9D9D9;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>Mapping tag<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=74 valign=top style='width:55.65pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>b<o:p></o:p></span></p>
</td>
<td width=172 valign=top style='width:128.7pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'>&lt;subfield
label=&quot;b&quot;&gt;<o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>And then a record like the following arrives as input:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>&lt;oai_marc&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;varfield id=&quot;037&quot;
i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">      </span>&lt;subfield
label=&quot;a&quot;&gt;SCAN-0009119&lt;/subfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;/varfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;varfield id=&quot;100&quot;
i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">      </span>&lt;subfield
label=&quot;a&quot;&gt;Racah, Giulio&lt;/subfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;/varfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">  </span>&lt;varfield id=&quot;100&quot;
i1=&quot;&quot; i2=&quot;&quot;&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">      </span>&lt;subfield
label=&quot;a&quot;&gt;Guignard, G&lt;/subfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">      </span>&lt;subfield
label=&quot;e&quot;&gt;editor&lt;/subfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;/varfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;varfield id=&quot;909&quot;
i1=&quot;C&quot; i2=&quot;0&quot;&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">      </span>&lt;subfield
label=&quot;b&quot;&gt;11&lt;/subfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;/varfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;varfield id=&quot;909&quot;
i1=&quot;C&quot; i2=&quot;0&quot;&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">      </span>&lt;subfield
label=&quot;b&quot;&gt;12&lt;/subfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'><span
style="mso-spacerun: yes">   </span>&lt;/varfield&gt;<o:p></o:p></span></p>
<p class=Texto style='margin-top:0cm;margin-right:72.0pt;margin-bottom:0cm;
margin-left:63.0pt;margin-bottom:.0001pt;text-indent:0cm;border:none;
mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>&lt;/oai_marc&gt;<o:p></o:p></span></p>
</div>
<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='mso-special-character:line-break;page-break-before:always'>
</span>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>The result of the mapping would be like this:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=590 colspan=4 valign=top style='width:442.8pt;border:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Variable
“100”<o:p></o:p></b></p>
</td>
</tr>
<tr>
<td width=118 valign=top style='width:88.55pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E0E0E0;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'>Value#
0</p>
</td>
<td width=118 valign=top style='width:88.55pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</td>
<td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>Field “a” value</p>
</td>
<td width=177 style='width:132.85pt;border-top:none;border-left:none;
border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>Racah,
Giulio</span></p>
</td>
</tr>
<tr>
<td width=118 rowspan=2 style='width:88.55pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E0E0E0;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'>Value#
1</p>
</td>
<td width=118 rowspan=2 style='width:88.55pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</td>
<td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>Field “a” value</p>
</td>
<td width=177 style='width:132.85pt;border-top:none;border-left:none;
border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>Guignard,
G<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>Field “e” value</p>
</td>
<td width=177 style='width:132.85pt;border-top:none;border-left:none;
border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>editor<o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=590 colspan=4 valign=top style='width:442.8pt;border:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Variable
“909C0”<o:p></o:p></b></p>
</td>
</tr>
<tr>
<td width=118 valign=top style='width:88.55pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E0E0E0;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'>Value#
0</p>
</td>
<td width=118 valign=top style='width:88.55pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</td>
<td width=177 valign=top style='width:132.85pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
background:#E0E0E0;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>Field “b” value</p>
</td>
<td width=177 style='width:132.85pt;border-top:none;border-left:none;
border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:Courier'>12</span></p>
</td>
</tr>
</table>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Notice how <i>varfield 037</i> is not considered because there
isn’t an entry in the BibFormat configuration. Also notice how the values are
created: if “allow multiple values” is set to “Yes” each occurrence of a <i>varfield</i>
element determines a new value (variable “100”); in other case, the last value
is taken as single value for the variable (variable “909C0”).</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc240511"></a><a name="_Toc241009"></a><a
name="_Toc3803667"><span style='mso-bookmark:_Toc241009'><span
style='mso-bookmark:_Toc240511'>5. – Defining output types: Behaviors</span></span></a>
</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Now that we already know how internal variables are structured
and what they represent in the input, it’s time to have a look at how to
configure BibFormat to transform that input data mapped into variables into
HTML results (although any text-based output could be generated).</p>
<p class=Texto>When BibFormat is asked to format a bunch of bibliographic
records, it is also necessary to specify which <i>output type</i> it has to
use. This output type is a string that identifies a pre-configured set of
conditions and actions that tells BibFormat how to behave with the given input
data (that’s why the terms <i>output type</i> and <i>behavior</i> are used
indifferently along this document).</p>
<p class=Texto>BibFormat can have several pre-configured behaviors each one
identified by a different label. There are two different types of behaviors
(you can choose the behavior type when you define it):</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo10;
tab-stops:list 63.0pt'><![if !supportLists]>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
</span><![endif]>Normal <span style='font-family:Wingdings;mso-ascii-font-family:
Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;mso-symbol-font-family:
Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:Wingdings'>à</span></span>
Consists in a behavior that outputs exactly the result of its evaluation.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo10;
tab-stops:list 63.0pt'><![if !supportLists]>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
</span><![endif]>Input Erich (only for XML inputs)<span style='font-family:
Wingdings;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:
symbol;mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;
mso-symbol-font-family:Wingdings'>à</span></span> It echoes each xml record
from the input inserting the behavior result just before the xml closing
element of the record.</p>
<p class=Texto>Each behavior contains an ordered list of conditions; a
condition can contain zero or more associated actions (actions are ordered
inside a condition). A condition is a behavior item described by an <i>Evaluation
Language</i> expression that gives as result “TRUE” or “FALSE”. An action is an
<i>Evaluation Language</i> (<i>EL</i>) statement that produces any output. </p>
<p class=Texto>When BibFormat is called to format a set of input records with a
given behavior label, it looks for the behavior conditions. It evaluates their <i>EL</i>
in order and when one of them produces “TRUE” as result, it looks for their
associated actions. Then BibFormat evaluates the actions in the specified order
and concatenates their result.</p>
<p class=Texto>By using different conditions you can specify alternative
formats inside a behavior (imagine that you want to format a record differently
depending on its base number); it’s true that you could also reach this
solution by using <i>EL IF</i> statements, but it’s more clear, efficient and
re-usable (you can change one condition without touching the rest or you can
give it more priority than others, that means give it the chance to be
evaluated before others, by changing its apply order). </p>
<p class=Texto>Actions are used for specifying the format itself or the actions
you want to carry on with in case the condition is accomplished.</p>
<p class=Texto>Through the web interface you can define new output types or
modify the ones that already exist. The use is quite easy: you just have to
select the link in the desired item with the operation you want to do over it.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 6]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Let’s have a look at a simple example to illustrate how to
define behavior that fit our needs:</p>
<p class=Texto>Imagine a typical case where you want to format bibliographic
records but depending on their base number you want to apply different formats.
Whenever a record from base 27 (standards) arrives we want only to show its
title and the standard numbers, in other case a default format will be applied
in which the title and authors are shown. We’ll assume CDS variable notation
and that the input rules are defined properly. </p>
<p class=Texto>We are going to define a new NORMAL behavior for this new
situation, let’s call it <i>SIMPLE</i>. In it we’ll need two conditions to be
defined: one for applying the default format and another one for the 27-base
special one. The base number comes in variable 909C0.b, so the conditions would
be based on this variable content.</p>
<p class=Texto>The result behavior should be defined like this:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<table border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;
border:none;mso-border-alt:solid windowtext .5pt;mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=650 colspan=2 valign=top style='width:487.8pt;border:solid windowtext .5pt;
background:#0C0C0C;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b>SIMPLE
</b><b><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt'>(NORMAL)</span><o:p></o:p></b></p>
</td>
</tr>
<tr>
<td width=55 valign=top style='width:41.4pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E6E6E6;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>10</p>
</td>
<td width=595 valign=top style='width:446.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
background:#E6E6E6;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>$909C0.b=”27”</p>
</td>
</tr>
<tr>
<td width=650 colspan=2 valign=top style='width:487.8pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto style='text-indent:0cm'>“&lt;b&gt;”$245.a”&lt;/b&gt;”</p>
<p class=Texto style='text-indent:0cm'>forall($0248.a){</p>
<p class=Texto style='text-indent:0cm'><span style="mso-spacerun: yes"> 
</span>rep_prefix(“ – “)<span style="mso-spacerun: yes"> 
</span>$0248.a&nbsp;separator(&quot;; &quot;)&nbsp;</p>
<p class=Texto style='text-indent:0cm'>}</p>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</td>
</tr>
<tr>
<td width=55 valign=top style='width:41.4pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;background:#E6E6E6;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>50</p>
</td>
<td width=595 valign=top style='width:446.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
background:#E6E6E6;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'>“”=””</p>
</td>
</tr>
<tr>
<td width=650 colspan=2 valign=top style='width:487.8pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto style='text-indent:0cm'>“&lt;b&gt;”$245.a”&lt;/b&gt;”</p>
<p class=Texto style='text-indent:0cm'>forall($100.a){</p>
<p class=Texto style='text-indent:0cm'><span style="mso-spacerun: yes"> 
</span>rep_prefix(“ –<span style="mso-spacerun: yes">  </span>Authors:
“)<span style="mso-spacerun: yes">  </span>$100.a&nbsp;separator(&quot;;
&quot;)&nbsp;</p>
<p class=Texto style='text-indent:0cm'>}</p>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</td>
</tr>
</table>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Some explanations on this example are needed:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo12;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>As you can see we have defined two conditions: one for
the 27-format and another for the default format. The point that is important
is the order in which we put the conditions: For each record in the input the
special one is evaluated first (because it has a lower evaluation number, 10)
and if the condition is true the format will be applied; in case the base is
not 27 the default condition is evaluated and because its condition <i>EL </i>code
is always true the default will be used to format the record.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo12;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Don’t worry too much about the action code because it’s
quite trivial. There are some “strange” things like the use of functions <i>rep_prefix</i>
and <i>separator</i>. These are special <i>UDFs</i> that have a special
behavior inside a FORALL statement:</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l1 level2 lfo12;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><i>rep_prefix</i> <span style='font-family:Wingdings;
mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
Wingdings'>à</span></span> Prints the string argument only when we are in the
first iteration of a <i>FORALL</i>. In order words, put the prefix of the
string which is to be generated by the <i>FORALL </i>statement.</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l1 level2 lfo12;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><i>Separator </i><span style='font-family:Wingdings;
mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
Wingdings'>à</span></span> Prints the string argument in every <i>FORALL</i>
iteration but not in the last one.</p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc240518"></a><a name="_Toc241010"></a><a
name="_Toc3803668"><span style='mso-bookmark:_Toc241010'><span
style='mso-bookmark:_Toc240518'>6. – Formats</span></span></a></p>
<p class=Apartadonivel1><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><i>Formats</i> are a special construction that BibFormat <i>Evaluation
Language </i>(<i>EL</i>) offers. It allows you to group under an identifier
some <i>EL</i> code and after you can call it from every <i>EL </i>statement. </p>
<p class=Texto>You can manage these formats using the web interface. It is
quite easy to do so: When you access the <i>Formats</i> section it will present
you a list with all the format identifiers that are already defined and a small
documentation about what’s the format for. From there you can see the whole <i>EL
</i>code by using the link <i>[Code]</i>. You can add a new format by using the
set of input boxes that you’ll find at the end of the page. Also delete and
modify operations are possible for already defined formats.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 7]</p>
<p class=Texto style='text-indent:0cm'><b><u>Note:</u> </b>When defining formats,
one has to pay attention not to use “recursive” format calls (either direct or
indirect); this can lead to execution problems. For example, imagine that we
have a format called “ex 1” that has a call for itself:</p>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<table border=1 cellspacing=0 cellpadding=0 width=432 style='width:324.05pt;
margin-left:4.0cm;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
text-indent:0cm'>Format “ex_1”</p>
</td>
</tr>
<tr>
<td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
text-indent:0cm'>“hello world”</p>
<p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
text-indent:0cm'>format(“ex_1”)</p>
</td>
</tr>
</table>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto style='text-indent:0cm'>…this is a “direct” recursive call; you
should never have these kind of calls as the web interface should warn you if
it finds these kind of troubles. However, “indirect” calls are not detected by
the web interface, so you have to care about them. One example of “indirect”
recursion:</p>
<table border=1 cellspacing=0 cellpadding=0 width=432 style='width:324.05pt;
margin-left:4.0cm;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
text-indent:0cm'>Format “ex_1”<o:p></o:p></p>
</td>
</tr>
<tr>
<td width=432 valign=top style='width:324.05pt;border:solid windowtext .5pt;
border-top:none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
text-indent:0cm'>“hello world”<o:p></o:p></p>
<p class=Texto align=center style='margin-top:0cm;margin-right:126.0pt;
margin-bottom:0cm;margin-left:108.0pt;margin-bottom:.0001pt;text-align:center;
text-indent:0cm'>format(“ex_2”)<o:p></o:p></p>
</td>
</tr>
</table>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc240521"></a><a name="_Toc241011"></a><a
name="_Toc3803669"><span style='mso-bookmark:_Toc241011'><span
style='mso-bookmark:_Toc240521'>7. – Knowledge bases (KBs)</span></span></a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>This is yet another special feature provided by BibFormat <i>Evaluation
Language</i>. In a few words, this allows you to map one string value to
another according to a pre-stored set of key values that map to other values
(the knowledge bases). All the knowledge bases are identified by a label that
has to be unique (among other KBs identifiers); remember that identifiers are
not case-sensitive.</p>
<p class=Texto>These sets of values, normally lived in a file, but with this
new development there was the need to have an easy KB management that was
integrated in BibFormat. For this reason, you can manage KBs from the BibFormat
configuration interface: section <i>KBs</i>.</p>
<p class=Texto>When accessing to <i>KBs</i> section, the list of all the KBs
identifiers defined will be displayed. Below it you’ll find a set of controls
to add new KBs; the use of these controls is as usual along the interface but
there’s something a bit special: Normally, you shouldn’t fill in the input box
that asks you for the <i>Knowledge base table name</i>; all the knowledge base
data is handled by a database in which each KB corresponds to a DB table; this
input box gets the internal table name for that KB; normally the KB manager
will generate it for you so you shouldn’t need to use it.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 8]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Each KB has a link for accessing the list of values that it
contains. If you click on it, a new window will show you the list of current
values (key and mapped ones) and a very easy interface to add new values or to
delete existing ones (KB values are case sensitive).</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 9]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc240524"></a><a name="_Toc241012"></a><a
name="_Toc3803670"><span style='mso-bookmark:_Toc241012'><span
style='mso-bookmark:_Toc240524'>8. – User Defined Functions (UDFs)</span></span></a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>The use of <i>User Defined Functions </i>(<i>UDFs</i>) is one of
the more powerful features of BibFormat <i>Evaluation Language</i> (<i>EL</i>).
The idea is that inside <i>EL</i> you can use operations or functions over
strings; normally a large number of different string transformations are needed
when talking about formatting but we cannot pretend implement all this
operations inside <i>EL</i> because it’s in constant growing and new needs
appear all the time. For dealing with this problem, BibFormat defines a
mechanism that allows you to use define as much functions (<i>UDFs</i>) as you
want and use them inside any <i>EL </i>statement.</p>
<p class=Texto>These functions are identified by a unique name and they receive
data (over which they do operations) by parameters. These functions are defined
in a programming language (PHP) and therefore good knowledge of this language
is needed.</p>
<p class=Texto>BibFormat offers a complete UDF management through the <i>UDFs</i>
web interface section. There you’ll see a complete list of all defined <i>UDFs</i>
with their identifier, parameters and a small documentation about what the UDF
does. You can also add, delete or modify <i>UDFs</i> or even have a look at the
PHP code of an already defined function (there you’ll be able to launch small
tests over the defined functions).</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 10]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>The definition of these functions should be reserved to
administrators and some particularities have to be taken into account when
defining <i>UDFs</i>:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo11;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>When you want to add or modify a <i>UDF</i> you are
asked for the parameter list; you have to enter the parameter names separated
by comas. Ex: You want to define a new function for prefixing a given string
with another, so you need two parameters (one for the string which is going to
be prefixed, let’s name it <i>str</i>, and another one for the prefix itself,
let’s name it <i>prefix</i>); you should enter them in the parameter input box
like this: <i>prefix, str</i></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo11;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>The order in which you specify the parameters when
defining a function is the order in which they have to be passed to the <i>UDF</i>
from an <i>EL</i> statement.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo11;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>When defining the PHP code of a function, there are
some important things to consider:</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>The result of a function has to be a string.</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>The parameters are available inside the PHP code as
variables with the parameter name.</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>The result of the function has to be defined by a PHP
result clause giving the resulting string.</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Make sure the PHP code is correct (there’s no way to
know if the code is correct from BibFormat and it won’t tell you if it is).</p>
<p class=Texto style='margin-left:99.0pt;text-indent:-18.0pt;mso-list:l0 level2 lfo11;
tab-stops:list 99.0pt'><![if !supportLists]><span style='font-family:"Courier New";
mso-bidi-font-family:Tahoma'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>There are some special variables available inside the
PHP definition:</p>
<p class=Texto style='margin-left:135.0pt;text-indent:-18.0pt;mso-list:l0 level3 lfo11;
tab-stops:list 135.0pt'><![if !supportLists]><span style='font-family:Wingdings'>§<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>$FIRST_ITERATION <span style='font-family:Wingdings;
mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
Wingdings'>à</span></span> Is equal to “1” when we are in the first iteration
of an <i>EL FORALL</i> statement. “0” in other case. If the call is made outside
a <i>FORALL </i>is set to “1”.</p>
<p class=Texto style='margin-left:135.0pt;text-indent:-18.0pt;mso-list:l0 level3 lfo11;
tab-stops:list 135.0pt'><![if !supportLists]><span style='font-family:Wingdings'>§<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>$LAST_ITERATION <span style='font-family:Wingdings;
mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-char-type:symbol;
mso-symbol-font-family:Wingdings'><span style='mso-char-type:symbol;mso-symbol-font-family:
Wingdings'>à</span></span> Just the opposite case.</p>
<p class=Texto style='margin-left:99.0pt;text-indent:0cm'>With these two
variables you can define <i>FORALL</i> special functions like a function to
print a separator.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel1><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel1><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc240525"></a><a name="_Toc241013"></a><a
name="_Toc3803671"><span style='mso-bookmark:_Toc241013'><span
style='mso-bookmark:_Toc240525'>9. – Defining links</span></span></a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>As we’ve already said, BibFormat is not only a formatter but it
also provides a link manager but, what do we mean by ‘link manager’? The idea
is to have a set of rules that describe how to generate a link using certain
data; if the link can be generated from those rules, then the link manager can
check different things (i.e. see if the link is valid, if it’s a link to a file
it can check if the file exists and in which formats it exists, etc) and
finally return the solved link. In other words, if you have a set of
bibliographic records that can contain a certain link and that link can be
coded in the link manager rules, you don’t need to store each link in each
bibliographic record, you just use the link manager to generate them
dynamically; like this, you only have to maintain a small set of rules and not
thousands of static links in records.</p>
<p class=Texto>BibFormat allows you to configure different <i>link definitions</i>
each of them identified by a unique name; each of these <i>link definitions</i>
have some associated <i>parameters</i> which are the information passed to the
rules defined for it. Then, when you call the link manager to solve a link
(from an <i>EL</i> statement, for example) you’ll have to specify the
identifier of the <i>link definition</i> you want to be used and the value for
each of the parameters used by that <i>link definition</i> (always string
values). The link manager will retrieve the rules associated to the <i>link
definition</i> specified and will interpret those rules using the given
parameter values, informing you if the link was generated correctly and result
(the solved link). </p>
<p class=Texto>BibFormat provides this mechanism and through the web interface
you can access to the rule repository for having a look at what are the
available <i>link definitions</i>, define new link rules or maintain already
defined ones. When adding or modifying a <i>link definition </i>you’ll have to
specify the parameters, please remember to separate them by using comas.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 10]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><i>Link definitions</i> are structurally quite similar to
behaviors: Although there can be different types of them (as we’ll see later),
a <i>link definition</i> is made up of one or more conditions and each of these
conditions can have one or more actions that tell how the link has to be built
in case its condition is accomplished. In general, link rules (this includes
conditions and actions) have a particular structure and they are described in <i>Evaluation
Language</i> (<i>EL</i>) with one restriction: <i>EL</i> <i>LINK </i>statement
cannot be used. Each group of conditions-actions of a link definition can be of
a different <i>solving type</i> (actually, when you create a new link
definition, its <i>solving type</i> its asked; this is just because all
conditions that will be created for that link definition will have the selected
<i>solving type</i> as default; but you can change it afterwards having a
“mixed” <i>link definition</i>). Their structure and way the link manager interprets
them will depend in their <i>solving type</i>. Currently, there you can define
link conditions of two different <i>solving types</i>: EXTERNAL or INTERNAL. A
more detailed explanation about each type is given later.</p>
<p class=Texto>As we’ve said a link definition is made up of various link
conditions. When a solving for a concrete <i>link definition </i>is asked, the
link manager retrieves all link conditions associated to it. Then it takes the
first of them (following the <i>evaluation order</i> – the lower is the
evaluation order number, the first the condition is considered), it evaluates
its <i>EL </i>code with the parameter values passed and if the result is “TRUE”
associated actions are executed, the link is returned and the solving process
finishes. In case a condition fails, it looks for the next one. If all the
conditions fail then the link manager returns that the link couldn’t be solved.
This is the general behavior of the link manager, but the way of determining if
a link has been solved or not and the link building depends on the condition <i>solving
type</i>.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel2><a name="_Toc3803672">9.1. - EXTERNAL link conditions</a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>This is the simplest way of solving links. It’s intended to be
used when you want to generate a link that points to an external resource
(normally a web page). In this case the link condition is composed by only one
action that will be evaluated if the associated condition is “TRUE”. When a
condition of this type is evaluated “TRUE” and the action is executed, the
result of the action is given as the solved link and the link manager finishes.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 11]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel2><a name="_Toc3803673">9.2. - INTERNAL link conditions</a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>This condition solving type is intended to be used when you want
to link to a document which is a file (inside or outside your file system) and
that can be in different file formats. </p>
<p class=Texto>This case is a bit more complex than the previous one, so we’ll
go step-by-step explaining differences and special features:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>An INTERNAL condition has a <i>base file path</i> and a
<i>base URL </i>associated. The <i>base file path</i> is the string that will
be used as prefix when looking for a file generated by the actions associated
to that condition. On the other hand, the <i>base URL</i> will be a string to
which the link string (resulting from the actions) will be added (i.e. if the <i>base
file path</i> of a condition is <span style='font-family:Courier'>/tmp/docs</span>
and the <i>base URL</i> is <span style='font-family:Courier'>http://doc.cern.ch/</span>,
if the condition is true and the result of the actions is <span
style='font-family:Courier'>test.pdf</span>, the file path the link manager
will have to check will be <span style='font-family:Courier'>/tmp/docs/test.pdf</span>
and, if the file exists, the generated link will be <span style='font-family:
Courier'>http:/doc.cern.ch/test.pdf</span>)</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Any condition of this type can several associated <i>file
formats</i>. This is a new concept that is only used for INTERNAL condition
solving. A <i>file format</i> is simply a set of file extensions that are
grouped under an identifier. Then, you can associate a <i>file format</i>
identifier with a link condition. When the condition is true the link manager
will combine each result from the condition actions with the associated file
formats to check the existence of a file of any format; this means that when an
action is evaluated, the link manager takes the file extensions of each
associated file format identifier and checks if the <i>file base path </i>+
resulting action string + file extension exists in the file system.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>One condition of this type can have more than one
associated action. Each of its actions describes an alternative way of building
the file path. When a condition of this type is evaluated to “TRUE”, the link
manager retrieves its actions (following actions <i>apply order</i>) and
evaluates the first one; with the action result it builds the file path in this
way: <i>file base path </i>+ resulting action string, and then combines this
string with each of the <i>file extensions</i>. If any of the combination
exists in the file system, the link is generated (if there are more than one
file format combination that exist, the link variable will have multiple values
containing the different links); if not, it starts the same process with the
next action. If any of the actions drive to a existing file, the link is not
generated.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l11 level1 lfo14;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>When calling the link manager from a <i>EL</i>
statement (see chapter <i>Evaluation Language Reference</i>), if the link is
solved we’ll be able to access to a special internal variable that contains as
value the resulting link. In the INTERNAL condition links, we have said that
this variable can contain multiple values in case the link manager finds
different file formats. In this case, there’s another extension that consists
in having some special variable fields containing special values for each value
in the <i>LINK </i>variable and to which you can access when the link is solved;
here’s a table detailing the different variable LINK fields which are defined
when a INTERNAL condition link is solved:</p>
<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<table border=1 cellspacing=0 cellpadding=0 style='margin-left:45.0pt;
border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr>
<td width=151 valign=top style='width:4.0cm;border:solid windowtext .5pt;
background:#A6A6A6;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Field
name<o:p></o:p></b></p>
</td>
<td width=439 valign=top style='width:329.4pt;border:solid windowtext .5pt;
border-left:none;mso-border-left-alt:solid windowtext .5pt;background:#A6A6A6;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=center style='text-align:center;text-indent:0cm'><b>Value
that contains<o:p></o:p></b></p>
</td>
</tr>
<tr>
<td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=left style='text-align:left;text-indent:0cm'><b>url<o:p></o:p></b></p>
</td>
<td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
mso-bidi-font-size:12.0pt'>The same value as the LINK variable: The solved
URL.<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=left style='text-align:left;text-indent:0cm'><b>file<o:p></o:p></b></p>
</td>
<td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
mso-bidi-font-size:12.0pt'>Contains the local full path to the file the
solved URL points to.<o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=left style='text-align:left;text-indent:0cm'><b>format_id<o:p></o:p></b></p>
</td>
<td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
mso-bidi-font-size:12.0pt'>Contains the file format id string <o:p></o:p></span></p>
</td>
</tr>
<tr>
<td width=151 style='width:4.0cm;border:solid windowtext .5pt;border-top:
none;mso-border-top-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto align=left style='text-align:left;text-indent:0cm'><b>format_desc<o:p></o:p></b></p>
</td>
<td width=439 valign=top style='width:329.4pt;border-top:none;border-left:
none;border-bottom:solid windowtext .5pt;border-right:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
mso-bidi-font-size:12.0pt'>Contains the file format description string (this
is defined for each file format)<o:p></o:p></span></p>
</td>
</tr>
</table>
<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel2><a name="_Toc3803674">9.3. – Example</a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>As the link generation is quite a complex topic (specially when
talking about INTERNAL linking) we’ll try to illustrate it with a simple
example.</p>
<p class=Texto>Let’s imagine we want to create a new link definition for
generating full-text access to the documents that are archived on a document
server (a file system which contains document’s electronic versions). These
documents are organized systematically depending in three characteristics that
are included in the bibliographic records: BASE, CATEGORY and ID. When the base
corresponds to “CERNREP” then the files are archived below directory <i>/pub/www/home/cernrep/</i>
and can be stored following two different criteria that depend on the CATEGORY
and ID values; the documents are all HTML. However, if the base is “PREPRINT”
and the CATEGORY is either “HEP-TH” or “HEP-PH” they are stored under directory
<i>/archive/electronic|/pub/www/home/</i> following a certain criteria; in this
case the documents can be in several file formats: PDF, Postscript, MS Word. </p>
<p class=Texto>Of course, we want only the link to be created if the files
corresponding to the bibliographic records exist.</p>
<p class=Texto>So we start creating a new link definition that we’ll call <i>FULLTEXT</i>.
It will receive three parameters that are the information we need for
generating this kind of links: BASE, CATEGORY and ID. We select INTERNAL as
solving type as default and then we fill it the base file path and url with
some default values (these values are not important, they will be copied by
default to the conditions we are going to create afterwards).</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 12]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Then we create a condition for the first possibility: when BASE
is “CERNREP”. We select INTERNAL as link condition because we want to link to a
file and we want to check its existence and we fill in the base file path and
URL with the corresponding values. Then we assign the file format types and we
enter the file archiving criteria as different actions.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 13]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>For the other possibility we proceed in the same way by adapting
the definition to the requirements; we’ll have something like this as result:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 14]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>Once we have finished the link definition, we can insert links
of this type from a BibFormat behavior, for example. Let’s imagine we have
included a piece of <i>EL</i> code like this in a behavior because we want to
insert a link to the full-text documents of any record:</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>link(“FULLTEXT”,
$base, $category, $id)<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>{<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
style="mso-spacerun: yes">  </span>“Fulltext: “<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
style="mso-spacerun: yes">  </span>forall($link){<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
style="mso-spacerun: yes">    </span>“&lt;a href=\”” $link.url “\”&gt;”
$link.format_desc “&lt;/a&gt;” <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
style="mso-spacerun: yes">     </span>separator “ – “ <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'><span
style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>}<o:p></o:p></span></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>This <i>EL </i>statement will include the string “Fulltext: “
followed by a link to all the documents found for the values of internal
variables $base, $category, $id separated by “ – “.</p>
<u><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;mso-fareast-language:
EN-US;mso-bidi-language:AR-SA'><br clear=all style='page-break-before:always'>
</span></u>
<p class=Apartadonivel1><a name="_Toc3803675">10. – User management</a></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>The BibFormat web interface (WI) comes with a security mechanism
which allows you to define which users can access the WI. BibFormat doesn’t
have a user management incorporated; instead it uses CDS user schema (as is a
part of CDS). So if you are not registered as CDS user and you want to have
access to BibFormat WI, first thing to do is to register in CDS through the
standard procedure (for example via the CDS Search interface you can access the
CDs account management system). </p>
<p class=Texto>BibFormat WI access policy is rather simple: it keeps a list of
CDS users that can access the WI. Then if someone tries to access any part of
the WI, the system will ask the user to identify him as CDS user. If the CDS
login is successful and the user is in BibFormat’s access list, then the user
will gain access to the WI.</p>
<p class=Texto>There’s a section in the WI which allows you to define which CDS
users will have access to the WI. The use is rather simple: You can add CDS
users to the access list by specifying either their CDS user id or their CDS
login; then you can delete a CDS uses from the access list by simply selecting
the link “delete” for the corresponding user.</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=figuremarker>[Fig. 15]</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>When you install BibFormat for the first time and you access to
the WI you’ll see that no login or password is asked. The security mechanism
doesn’t get activate until at least one user is added to the BibFormat’s access
list. So if you don’t want to limit the access to BibFormat WI keep the access
list without any user in.</p>
<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='mso-special-character:line-break;page-break-before:always'>
</span>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Apartadonivel1><a name="_Toc240526"></a><a name="_Toc241014"></a><a
name="_Toc3803676"><span style='mso-bookmark:_Toc241014'><span
style='mso-bookmark:_Toc240526'>11. - Evaluation Language Reference</span></span></a>
</p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>In this section we’ll present a more or less formal definition
of the <i>Evaluation Language </i>(EL); although we are using some formal
methods to describe it we’ll also make a quick explanation about the elements
that made up the language and how to combine them to arrive to desired results.
</p>
<p class=Texto>Just below you can find the EL definition, expressed in terms of
EBNF (<i>Extended Backus-Naur Form</i>) notation. We have used capital letters
to express non-terminal elements and non-capital/bold characters for the
terminal ones. There’s one remark to make: Whenever you find the mark <span
style='font-size:8.0pt;mso-bidi-font-size:12.0pt;color:maroon'>[REX] </span>after
any definition, it means that we have used a regular expression just before in
order to express a set of non-terminals.</p>
<p class=Texto style='text-indent:0cm'><span style='font-size:10.0pt;
mso-bidi-font-size:12.0pt;font-family:Courier;mso-bidi-font-family:"Courier New"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>SENTENCE ::= TERM {<b>&amp;&amp;</b>
TERM | <b>||</b> TERM}</p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>TERM ::= FACTOR {<b>= </b>FACTOR
| <b>!=</b> FACTOR | FACTOR}</p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FACTOR ::= [<b>!</b>]
BASIC</p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>BASIC ::= VARIABLE |
LITERAL | FUNCTION |<b> ( </b>SENTENCE <b>)</b> | FORALL |</p>
<p class=EBNF style='text-indent:36.0pt;border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>IF | FORMAT | LINK | COUNT
| KB</p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>VARIABLE ::= <b>$</b>
STRING [<b>.</b> STRING]</p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>LITERAL ::= <b><span
style='color:maroon'>“([^”] | \”)*“</span></b><span style="mso-spacerun: yes"> 
</span><span style='font-size:8.0pt;mso-bidi-font-size:12.0pt;color:maroon'>[REX]<o:p></o:p></span></p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FUNCTION ::= STRING <b>(</b>
[ SENTENCE {<b>,</b> SENTENCE} ] <b>)</b><span style='font-size:8.0pt;
mso-bidi-font-size:12.0pt;color:maroon'><o:p></o:p></span></p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FORALL ::=<b> forall ( </b>VARIABLE
[<b>,</b> LITERAL] <b>)</b> <b>{</b> SENTENCE <b>}</b> </p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>IF ::= <b>if( </b>SENTENCE
<b>) { </b>SENTENCE <b>} </b>[<b>else {</b> SENTENCE <b>}</b>] </p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>FORMAT ::= <b>format( </b>SENTENCE
<b>)</b></p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>LINK ::= <b>link( </b>SENTENCE
<b>,</b> [SENTENCE {<b>, </b>SENTENCE}] <b>) { </b>SENTENCE <b>} <o:p></o:p></b></p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><b><span
style="mso-spacerun: yes">        </span></b>[<b>else { </b>SENTENCE <b>}</b>]</p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>COUNT ::= <b>count( </b>VARIABLE
<b>)</b></p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>KB ::= <b>kb(</b> SENTENCE
<b>)</b> </p>
<p class=EBNF style='border:none;mso-border-alt:solid windowtext .5pt;
padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>STRING ::= <b><span
style='color:maroon'>[a-zA-Z0-9_] </span></b><span style='font-size:8.0pt;
mso-bidi-font-size:12.0pt;color:maroon'>[REX]</span><b><o:p></o:p></b></p>
</div>
<p class=Texto><b><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></b></p>
<p class=Texto>This is just a formal way of describing the language, but don’t
worry if you don’t understand it very well because just below these lines we’ll
try to describe it in a more informal way.</p>
<p class=Texto>To begin with, you should know that EL is a language designed to
work with strings (a string is a collection of characters) but it has also some
logic and comparison operations. One important thing you have to be aware of is
that in EL blank spaces, tabulators or carriage returns have no more meaning
than separator for elements of the language; that means that between two basic
elements you can have as many spaces or carriage returns as you want.</p>
<p class=Texto>One of the basic elements of the language is what we call <i>LITERALS</i>.
These things represent constant string values; they are delimited by a pair of
double quote (“) symbols surrounding the string you want to express. Everything
you put inside the double quotes will be considered as it is, so inside a
literal several spaces or carriage have meaning (it’s the only case). If you
want to express a double quote symbol inside a literal you have to <i>escape</i>
it using \.</p>
<p class=Texto>Some examples of literals:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l5 level1 lfo1;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>If you want to represent the string <i>hello</i>,
inside the EL you’ll have to use <span style='font-family:"Courier New"'>“hello”</span>.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l5 level1 lfo1;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>For the string <i>hello “big”<span style="mso-spacerun:
yes">      </span>man</i>, the representation in EL is <span style='font-family:
Courier'>“hello \“big\”<span style="mso-spacerun: yes">      </span>man”</span>
(notice the escape characters and that spaces have meaning).</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l5 level1 lfo1;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]><i>Let’s see \””</i> string has to be expressed in this
way <span style='font-family:"Courier New"'>“Let’s see \\\”\””</span>.</p>
<p class=Texto>Another important basic element of the language is <i>VARIABLES</i>.
These elements represent string data from the input to which you can refer
inside of the language (and is considered also as a string). Variables are defined
in advance by the administrator (or even users) so you have to know which of
them you have access to. Additionally, variables can contain <i>FIELDS</i> that
are simply other input values that are grouped under a variable because they
have some kind of relationship between them (for example, you could have a
variable for the information about the author and fields like name, born place,
etc for it). If you want to know more about variables and their correspondence
with the input you can look at the <i>Mapping the Input</i> section. The way of
expressing a variable in EL is by a dollar symbol followed by any letter,
number or underscore; variables are case-insensitive. To refer to any field of
a variable, you simply put a dot followed by the field name (which is also made
up of any character, number or underscore).</p>
<p class=Texto>Some examples about variables and fields:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo2;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Imagine you have a variable which contains the author
information and which is called <i>author</i>, to represent in EL you would
have to write <span style='font-family:Courier'>$author</span>. In every place
that $author appears BibFormat will consider the value defined for it from the
current input record.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo2;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Then you know that the field <i>name</i> of variable <i>author</i>
contains the author full name and you want to refer to it inside an EL
statement, so you’d write <span style='font-family:Courier'>$author.name</span>.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo2;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>If we speak about CDS configuration, variable and field
names correspond to MARC 21 tag &amp; indicator names; so to refer to the main
title of a bibliographic record we should use variable <i>245</i> field <i>b</i>,
in EL terms: <span style='font-family:Courier;mso-bidi-font-family:"Courier New"'>$245.b</span>.</p>
<p class=Texto>Now that we know basic elements of the language we can start
thinking about how to combine them. The most important (and unique) string
operation is concatenation: adding strings. This operation is implicit to the
language, so we just put language elements one before another, and the representation
result will be the result of the basic elements one after another.</p>
<p class=Texto>Some samples:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo3;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol;
mso-bidi-font-style:italic'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>To represent the constant string <i>Author:</i>
followed by the name of the author of the input record you should write <span
style='font-family:Courier'>“Author: “ $100.a</span> (it’s supposed CDS
configuration in which MARC 21 notation is used; authors correspond to variable
100 field a).<i><o:p></o:p></i></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo3;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol;
mso-bidi-font-style:italic'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>You want to output the title in bold (always HTML
speaking) followed by the author in normal chars separated of the title by char
/: <span style='font-family:Courier'>“&lt;b&gt;” $245.b “&lt;/b&gt;/” $100.a</span><i><o:p></o:p></i></p>
<p class=Texto>These two, literals and variables, are only basic elements of
the EL. You can combine them using concatenation to get new strings. But, of
course, there are some more operations you can apply over strings: UDFs (<i>User
Defined Functions</i>). We’ll also name these elements as functions, because
they are that: functions or operations to be applied over strings; when talking
about strings we include basic elements or resulting string from applying any
operations. A UDF has a name that identifies it uniquely and needs to get some information
that we call <i>parameters</i>. A UDF gives another string as result depending
on the parameter values (always strings). So to represent a function in EL you
need its name followed by an open parenthesis, the parameter values separated
by comas and a closing parenthesis. There’s a list of UDF you can look at
through the interface but this list can be extended to fit your needs (look at <i>UDFs</i>
section of this manual).</p>
<p class=Texto>Some examples:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l12 level1 lfo4;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>You want to ensure that the title of a bibliographic
record is always going to be in capital letters; good, there’s a function
called <i>upper</i> that takes one parameter and gives as result the parameter
transformed in capital letters. You have to write the call like this: <span
style='font-family:Courier'>upper($245.b).</span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l12 level1 lfo4;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>You want only the 3 first chars of an author name to
appear in capital letters. We’ve seen there’s a function for uppercasing a
string but there’s another one, called <i>copy</i> that gets a sub string from
a string passed as first parameter from the char position indicated by the 2<sup>nd</sup>
parameter and with the length given by the 3<sup>rd</sup> one: copy(
upper($100.a), “0”, “3”).</p>
<p class=Texto>As you can see, these UDFs are very powerful because you can
concatenate their result with another element (literal, variable or even
function) and the parameters can be basic elements or expressions. We can
extend this ensuring that any element or expression of the EL that gives as
result a string value can be combined with other EL expressions or elements.</p>
<p class=Texto>Another very useful feature of EL is the possibility to use <i>KWONLEDGE
BASES </i>(KBs). A KB is just a set of key values that map (one-to-one) another
set of values; may be knowledge bases isn’t a very appropriate name because
they are more like translation tables. BibFormat offers tools to create and
maintain KBs that can be used in the EL afterwards (see chapter <i>KBs
management </i>in this manual). You can see KB invocation as a special function
(the syntax for calling it is the same) with name <i>kb</i> and that takes two
parameters: one for indicating the KB name (BibFormat can handle several KBs)
and another one for the key value to translate. The result is the mapped KB
value or an empty string if it doesn’t exist as a key value in the specified
KB. A typical example is when you have months with numbers and you want to
translate them into month names; you could have a KB that maps all the month
numbers to month names and then call it like this <span style='font-family:
Courier'>kb(“MONTH”, $m)</span>.</p>
<p class=Texto>Now let’s move to <i>FORMATS</i>. Formats are some <i>EL</i>
code which is grouped under a label (a name) and that can be used in any other
EL statement. BibFormat allows the user to define as many formats as he wants
and identify each of them with a simple name. In few words, formats allow you
to reuse EL code; within a format you can put any EL code (even other format
calls) and all the variable values are completely available.<span
style="mso-spacerun: yes">  </span>Again, a format call in EL follows the same
convention as functions: the word <i>format</i> followed by the format name (a
string) between parenthesis. When you call a format is like if the EL code
define inside that format was pasted, as it is in the place you make the call.</p>
<p class=Texto>Example: Imagine you have to write the title of a bibliographic
records with a certain format, let’s say in bold and red; but this formatted
title you are going to use it in several places. So can take advantages of EL
formats and define a format called <i>TITLE</i> that contains the code <span
style='font-family:Courier'>“&lt;font color=\”red\”&gt;&lt;b&gt;” $245.b
“&lt;/b&gt;&lt;/font&gt;”</span>. Once this is done, you could use it to format
records by printing their title in that way and their author after it: <span
style='font-family:Courier'>format(“TITLE”) “/” $100.a</span>. The good thing
is that if some day you decide to change the title formatting you’d only need
to modify the <i>TITLE</i> format definition and not all the places where you
show the title.</p>
<p class=Texto>At this point, you have seen basic elements and operations with
EL. You may think that is powerful enough to express your formatting work, but
there are more complex situations that you’ll have to face. We have tried to
design the EL to be easy enough but with the next advanced structures,
sometimes, can arrive to be a bit complex.</p>
<p class=Texto>All these basic elements and operations are quite OK. But there
are sometimes where you want to compare expressions and decide what to do
depending on the result of the comparison. For this purpose, EL has an IF
statement and a few comparison and logic operators built in (don’t forget that
any functionality needed can be achieved by defining new UDFs; EL gives basic
operations to provide this possibility). Let’s go step by step: First let’s
talk about the set of operators that can be used in a comparison:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo5;
tab-stops:list 63.0pt'><![if !supportLists]>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
</span><![endif]>Comparison operators: Equal and non-equal (=, !=). They take
two operators that have to be strings and produce a logic (true or false)
value.</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l4 level1 lfo5;
tab-stops:list 63.0pt'><![if !supportLists]>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;
</span><![endif]>Logical operators: AND, OR and NOT (&amp;&amp;, ||, !). All of
them have to be used over logical values, taking two operators AND and OR, and
one operator NOT.</p>
<p class=Texto>All of them are right associative (except NOT which is unary
left-associative) and their precedence goes like this (more to less): NOT,
(EQUAL, NON-EQUAL), (AND, OR). These operators cannot be used anywhere, only
inside statements that expect a logic value as result, in other words, inside
condition statements. </p>
<p class=Texto>The IF structure is quite easy to learn: First we indicate the
word <i>IF</i> followed by a condition statement surrounded by parenthesis;
then a EL statement into braces can be specified, this statement will be
executed only if the condition was true; optionally, we can add an <i>ELSE</i>
word followed by another EL statement into braces, that will only be triggered
if the IF condition was not true. </p>
<p class=Texto>Let’s have a look at some examples:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>I want the title of a record to appear followed by the
constant <i>Author: </i>and its author afterwards. But it could be nice if the
constant string appeared only if the record has author: </p>
<p class=Texto style='margin-left:36.0pt;text-indent:9.0pt'><span
style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto style='margin-left:36.0pt;text-indent:9.0pt'><span
style='font-family:Courier'>format(“TITLE”) if($100.a!=””) { “Author: “ $100.a
}<o:p></o:p></span></p>
<p class=Texto style='margin-left:36.0pt;text-indent:9.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>BibFormat is not only an EL processor. Among others, it contains
a link solver that contains it’s own rule repository in order to be able to
automatically solve links (see chapter Link solver of this manual). EL has one
special structure for asking the link solver for some links and including them
in the formatted version of the bibliographic record. This way links are easy
to maintain (you modify the rules independently from where the link is being
used) and as re-usable as formats or UDFs. Links are identified by a label and
need some information to be passed as parameters; then an EL statement has to
be specified which will be effective only if the link is solved and inside
which, you’ll have access to an special variable, named <i>LINK</i>, which
contains the solved link among other information (see chapter Link solver for
more information about which values are accessible); additionally, an else
statement can be added (following the same syntax as in the IF construction)
that will be effective only if the link can’t be solved by the Link solver.</p>
<p class=Texto>Example:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>We are with our typical example of the simple format
that contains the title and the author, but now we want the author to be linked
to the search. Supposing that a this kind of link is already defined under the
label “AUTHOR_SEARCH” we should proceed like this:</p>
<p class=Texto style='margin-left:45.0pt;text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto><span style='font-family:Courier'>format(“TITLE”) “/” <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>link(“AUTHOR_SEARCH”, $100.a) <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">     </span>{ “&lt;a href=\””$link “\”&gt;”$100.a”&lt;/a&gt;”}<o:p></o:p></span></p>
<p class=Texto><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
<p class=Texto>The next step when talking about EL components is to deal with
multiple values. Life is no so easy and, of course, and a bibliographic record
can have more than one author or can have a related document which is in more
than one format and that has to be linked. In other words, BibFormat supports
having variables and fields with multiple values (see chapter <i>Mapping input</i>),
consequently a way of applying an EL statement over all the values of a
variable or a field would be quite useful. <i>FORALL</i> is our construction!!
It allows you to specify a variable or a field followed by a EL statement
(between braces) that will be applied for every value of the variable or the
field; any reference to the iteration variable inside the <i>FORALL</i> EL
statement will be related to the current iteration variable value (if you refer
to a variable that has multiple values outside a <i>FORALL</i> the first value
is considered). One limitation is that you shouldn’t nest <i>FORALL</i>
statements, in other words, never put a <i>FORALL</i> inside another one. This
construction let’s you also limit the number of times you want to iterate over
a variable or field by adding a literal with the number of iterations.</p>
<p class=Texto>Some examples:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Let’s continue refining our simple format; now we have
to consider that there can be more than one author for one bibliographic
record, so we want to show all of them with the link included, of course.</p>
<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>format(“TITLE”) “/” <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>forall($100.a)<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>{<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">  </span>link(“AUTHOR_SEARCH”, $100.a) <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">     </span>{ “&lt;a href=\””$link “\”&gt;”$100.a”&lt;/a&gt;”}<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>}<o:p></o:p></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Although this <i>FORALL</i> construction could seem not
very useful, it’s used a lot when defining formats or behaviors. Quite often
you will have the case where you want only some EL piece of code to be
effective if a certain variable or field exist; <i>FORALL</i> can also be used
in that situation and it has to be said that is the most comfortable way of
doing it. Imagine the case you want the title, the constant string “Author: “
followed by the authors of a bibliographic record; but you don’t want the
constant <i>“</i>Author: “ to appear if there’s no author at all. You could use
something like this:<span style='font-family:Courier'><o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>format(“TITLE”) “ - ” <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>forall($100.a)<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>{<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">  </span>rep_prefix(“Author: “) $100.a “ “<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>}<o:p></o:p></span></p>
<p class=Texto style='margin-left:63.0pt;text-indent:0cm'>As you can see we are
using a new function: <i>rep_prefix</i>. In fact this is an UDF which prints
the string passed as parameter only once at the beginning inside a <i>FORALL</i>
statement. But the interesting thing here is the <i>FORALL</i> application.</p>
<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto>Finally, there’s still one EL special function: <i>COUNT</i>.
Due to certain special situations or strange input data in the variables,
sometimes is useful to know how many values contain a variable or a field. So
this function, simply takes a variable or field as argument and returns a
string with the number of values that contains; if the value returned is 0,
that means that no value is in the variable, what means that variable doesn’t
exist or there weren’t any values mapped from the input.</p>
<p class=Texto>Examples:</p>
<p class=Texto style='margin-left:63.0pt;text-indent:-18.0pt;mso-list:l9 level1 lfo7;
tab-stops:list 63.0pt'><![if !supportLists]><span style='font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>As this is the last example, let’s do it a bit more
complicated: Continuing with our very well known simple format, we want all the
authors of the record appear if there are less than 10, in any other case we
want only the first one to appear followed by the string “et al.”. We’ll also
use a function called <i>GT</i> which returns a non-empty string if the first
parameter is greater than the second one.</p>
<p class=Texto><span style='font-family:Courier'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>format(“TITLE”) “/” <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>if(gt(count($100.a),
“10”)!=””)<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>{ $100.a “et al.” }<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>else<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>{<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">  </span>forall($100.a)<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">  </span>{<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">    </span>link(“AUTHOR_SEARCH”, $100.a) <o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">     </span>{ “&lt;a href=\””$link “\”&gt;”$100.a”&lt;/a&gt;”}<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'><span style="mso-spacerun:
yes">  </span>}<o:p></o:p></span></p>
<p class=Texto><span style='font-family:Courier'>}</span></p>
<p class=Texto style='text-indent:0cm'><span style="mso-spacerun: yes"> </span></p>
<span style='font-size:12.0pt;font-family:Tahoma;mso-fareast-font-family:"Times New Roman";
mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'><br
clear=all style='mso-special-character:line-break;page-break-before:always'>
</span>
<p class=Texto style='text-indent:0cm'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
</div>
</body>
</html>

Event Timeline