This is the fulltext version of my thesis in the PDF format.
Chapter 5 still needs some revision.
</subfield>
</datafield>
</record>
</pre>
</p>
<p>The FFT tag can be repetitive, so one can pass along another FFT
tag instance containing a pointer to e.g. the thesis defence slides.
The subfields of an FFT tag are non-repetitive.
</p>
<p>When more than one FFT tag is specified for the same document
(e.g. for adding more than one format at a time), if $t (docfile
type), $m (new desired docfile name), $r (restriction), $v (version),
$x (url/path for an icon), are specified, they should be identically
specified for each single entry of FFT. E.g. if you want to specify
an icon for a document with two formats (say .pdf and .doc), you'll
write two FFT tags, both containing the same $x subfield.</p>
<p>The bibupload process, when it encounters FFT tags, will
automatically populate fulltext storage space
(<code>/opt/cds-invenio/var/data/files</code>) and metadata record
associated tables (<code>bibrec_bibdoc</code>, <code>bibdoc</code>) as
appropriate. It will also enrich the 856 tags (URL tags) of the MARC
metadata of the record in question with references to the latest
versions of each file.
</p>
<p>Note that for $a and $x subfields filesystem paths must be absolute
(e.g. <code>/tmp/icon.gif</code> is valid,
while <code>Destkop/icon.gif</code> is not) and they must be readable
by the user/group of the bibupload process that will handle the FFT.
</p>
<p>The bibupload process supports the usual modes correct, append,
replace, insert with a semantic that is somewhat similar to the
semantic of the metadata upload:
<blockquote>
<table border="1">
<thead>
<tr>
<th></th><th>Metadata</th> <th>Fulltext</th>
</tr>
</thead>
<tbody>
<tr>
<td>objects being uploaded</td><td> MARC field instances characterized by tags (010-999) </td> <td> fulltext files characterized by unique file names (FFT $n)</td>
</tr>
<tr>
<td> insert </td><td> insert new record; must not exist </td><td> insert new files; must not exist </td>
</tr>
<tr>
<td> append </td><td> append new tag instances for the given tag XXX, regardless of existing tag instances</td><td> append new files, if filename (i.e. new format) not already present </td>
</tr>
<tr>
<td> correct </td><td> correct tag instances for the given tag XXX; delete existing ones and replace with given ones </td><td> correct files with the given filename; add new revision or delete file</td>
</tr>
<tr>
<td> replace </td><td> replace all tags, whatever XXX are</td><td> replace all files, whatever filenames are </td>
</tr>
</tbody>
</table>
</blockquote>
</p>
<p>Note, in append and insert mode, <pre>$m</pre> is ignored.
<p>In order to rename a document just use the the correct mode specifing in the
$n subfield the original docname that should be renamed and in $m the new name.
</p>
<p>In order to purge previous file revisions (i.e. in order to keep
only the latest file version), please use the correct mode with $n
docname and $t PURGE as the special keyword.
</p>
<p>In order to delete all existing versions of a file, making it
effectively hidden, please use the correct mode with $n docname
and $t DELETE as the special keyword.
</p>
<p>In order to expunge (i.e. remove completely, also from the
filesystem) all existing versions of a file, making it effectively
disappear, please use the correct mode with $n docname and $t EXPUNGE
as the special keyword.
</p>
<p>In order to synchronize MARC to the bibrec/bibdoc structure
(e.g. after an update or a tweak in the database), please use the
correct mode with $n docname and $t FIX-MARC as the special keyword.
<p>In order to fix a record (i.e. put all its linked documents in a
coherent state) and synchronize the MARC to the table, please use the
correct mode with $n docname and $t FIX-ALL as the special keyword.
</p>
<p>In order to revert to a previous file revision (i.e. to create a
new revision with the same content as some previous revision had),
please use the correct mode with $n docname, $t REVERT as the special
keyword and $v the number corresponding to the desired version.</p>
<p>In order to delete a particular file added by mistake, please use
the correct mode with $n docname, $t DELETE-FILE, specifing $v version
and $f format. Note that this operation is not reversible. Note that
if you don't spcify a version, the last version will be used.</p>
<p>In order to preserve previous comments and descriptions when
correcting, please use the KEEP-OLD-VALUE special keyword with the
desired $d and $z subfield.
</p>
<p>In order to add an icon representing a document, you must use a $x
subfields. All the FFT for different format of the document must have
then the same $x subfield. You can use KEEP-OLD-VALUE in order to keep
the previous icon when correcting.
</p>
<p>The $r subfield can contain a keyword that can be use to restrict
the given document. The same keyword must be specified for all the
format of a given document. The keyword will be used as the status
parameter for the "viewrestrdoc" action, which can be used to give
access right/restriction to desired user. e.g. if you set the keyword
"thesis", you can the connect the "thesisviewer" to the action
"viewrestrdoc" with parameter "status" set to "thesis". Then all the
user which are linked with the "thesisviewer" role will be able to
download the document. Instead any other user will not be
allowed. Note, if you use the keyword "KEEP-OLD-VALUE" the previous
restrictions if applicable will be kept.
</p>
<p>Note that each time bibupload is called on a record, the 8564 tags
pointing to locally stored files are recreated on the basis of the
full-text files connected to the record. Thus, if you whish to update
some 8564 tag pointing to a locally managed file, the only way to
perform this is through the FFT tag, not by editing 8564 directly.<p>