-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.html
executable file
·270 lines (268 loc) · 26 KB
/
README.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>doc</title>
<style>
/*github.com style (c) Vasily Polovnyov <[email protected]>*/
pre code {
display: block; padding: 0.5em;
color: #333;
background: #f8f8ff
}
pre .comment,
pre .template_comment,
pre .diff .header,
pre .javadoc {
color: #998;
font-style: italic
}
pre .keyword,
pre .css .rule .keyword,
pre .winutils,
pre .javascript .title,
pre .nginx .title,
pre .subst,
pre .request,
pre .status {
color: #333;
font-weight: bold
}
pre .number,
pre .hexcolor,
pre .ruby .constant {
color: #099;
}
pre .string,
pre .tag .value,
pre .phpdoc,
pre .tex .formula {
color: #d14
}
pre .title,
pre .id {
color: #900;
font-weight: bold
}
pre .javascript .title,
pre .lisp .title,
pre .clojure .title,
pre .subst {
font-weight: normal
}
pre .class .title,
pre .haskell .type,
pre .vhdl .literal,
pre .tex .command {
color: #458;
font-weight: bold
}
pre .tag,
pre .tag .title,
pre .rules .property,
pre .django .tag .keyword {
color: #000080;
font-weight: normal
}
pre .attribute,
pre .variable,
pre .lisp .body {
color: #008080
}
pre .regexp {
color: #009926
}
pre .class {
color: #458;
font-weight: bold
}
pre .symbol,
pre .ruby .symbol .string,
pre .lisp .keyword,
pre .tex .special,
pre .prompt {
color: #990073
}
pre .built_in,
pre .lisp .title,
pre .clojure .built_in {
color: #0086b3
}
pre .preprocessor,
pre .pi,
pre .doctype,
pre .shebang,
pre .cdata {
color: #999;
font-weight: bold
}
pre .deletion {
background: #fdd
}
pre .addition {
background: #dfd
}
pre .diff .change {
background: #0086b3
}
pre .chunk {
color: #aaa
}
</style>
</head>
<body>
<h1 id="evt-2-0-evt-viewer-">EVT 2.0 (evt-viewer)</h1>
<h2 id="1-introduction">1 - Introduction</h2>
<h3 id="1-1-about-evt">1.1 - About EVT</h3>
<p><a href="http://evt.labcd.unipi.it/">EVT (Edition Visualization Technology)</a> is a light-weight, open source tool specifically designed to create digital editions from texts encoded according to the <a href="http://www.tei-c.org/Guidelines/P5/">TEI XML schemas and Guidelines</a>, freeing the scholars from the burden of web programming and enabling the final users to browse, explore and study digital editions by means of a user-friendly interface.</p>
<p>This tool was born in the context of the <a href="http://vbd.humnet.unipi.it/">Digital Vercelli Book</a> project, in order to allow the creation of a digital edition (which has been available in beta form for more than two years) of the Vercelli Book, a parchment codex of the late tenth century, now preserved in the Archivio e Biblioteca Capitolare of Vercelli and regarded as one of the four most important manuscripts of the Anglo-Saxon period as it regards the transmission of poetic texts in the Old English language.
However it has evolved into a tool suitable to fit different texts and needs. For example, it is now being used to publish the digital edition of the <a href="http://pelavicino.labcd.unipi.it">Codice Pelavicino manuscript</a>, a medieval codex preserving charters dating back to the XIII century. The continuous development and need to adapt it to different types of documents and TEI-encoded texts has shifted the development focus towards the creation of a more general tool for the web publication of TEI-based digital editions, able to cater for multiple use cases.</p>
<p>The entire structure of the software has been remodeled, in order to make it lighter, more usable and more adaptable; we decided to use the Model View Controller (MVC) approach, that is a very common architectural pattern in object-oriented programming, that allows to separate the logical presentation of the data, from the application logic and the processing core.
Wanting to maintain the original feature of EVT, and therefore do not give up the client only approach, we decided to use <a href="https://angularjs.org/">AngularJS</a>, a JavaScript framework inspired by the MVC programming logic, especially suitable for the development of client-side Web applications; among other things, this framework allows to define custom HTML components and use the data-binding mechanism to associate the model of the data to the UI elements, and manage the updates of the latter avoiding the direct DOM manipulation.</p>
<h3 id="1-2-how-it-works">1.2 - How it works</h3>
<p>Before the refactoring, EVT was composed of two main units: EVT Builder, for the transformation of the encoded text using special XSLT 2.0 templates, and EVT Viewer, for the visualization into a browser of the results of the transformations and the interaction with them. The idea under the new version of EVT is instead to leave to EVT Viewer the task of reading and parsing with JavaScript functions the encoded text, and “save” as much as possible within a data model, that persists in the client main memory, and is organized in a way that allows a very quick access to the data in case of need. This has obviously led to the elimination of the EVT Builder level, and therefore it allows to open a digital edition directly in the browser without any previous XSLT transformation.</p>
<h3 id="1-3-main-features">1.3 - Main features</h3>
<p>At the present moment EVT can be used to create critical editions with multiple levels of apparatuses, encoded using [the TEI Parallel Segmentation Method] (<a href="http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TC.html#TCAPPS">http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TC.html#TCAPPS</a>). This means that a transcription encoded according to the Guidelines should already be compatible with EVT 2, or require only minor changes to be made compatible.</p>
<p>Among the main features you will find:</p>
<ul>
<li>Critical edition support. Enlarged critical apparatus, sources apparatus and analogues apparatus, variant heat map, witnesses collation and variant filtering are some of the main features developed for the critical edition support.</li>
<li>Bookmark. Direct reference to the current view of the web application, considering view mode, current document, page and edition level, eventual collated witnesses and selected apparatus entry.</li>
<li>Named entities and lists of entities.</li>
<li>Interactive bibliography. User can visualize the bibliography of the edition and reorder the entries by author, publisher or publishing date.</li>
<li>High level of customization. The editor can customize both the user interface layout and the appearance of the graphical components.</li>
</ul>
<h2 id="2-a-short-guide-to-evt">2 - A short guide to EVT</h2>
<p>EVT 2 can be used to prepare an edition right away, immediately after installing it on your hard drive: see the <em>Installation and use</em> section first, then <em>Configuration</em>, to understand how EVT works and how you can use it to publish your editions. A more detailed guide will be published separately, as a reference manual, and will also include instructions about customization.</p>
<p>If, on the other hand, you are interested in <strong>developing</strong> a specific functionality in EVT 2, or in modifying an existing one, we suggest that you download and install the <a href="https://github.com/evt-project/evt-viewer"><em>Development framework</em></a>. The <code>README.md</code> contained in it explains how to install and configure the development framework needed for this purpose. This step is only needed if you want to start working with EVT’s source code, so it is in no way necessary for basic users.</p>
<h3 id="2-1-installation-and-use">2.1 - Installation and use</h3>
<p>Installation is quite simple, download the compressed archive from EVT’s home page, unzip it in a suitable location on your hard drive, and you are ready to use it:</p>
<ul>
<li><p>your encoded edition document must be copied in the <code>data/text</code> directory: EVT comes with a default directory structure, distinguishing between images, text and other types of data, but you can modify it as desired, provided that the appropriate paths are specified in the configuration file (<code>config.json</code>, see below);</p>
</li>
<li><p>to have it parsed and loaded by EVT you have to point to it explicitly modifying the <code>config.json</code> file in the <code>config</code> directory: <code>"dataUrl": "data/My edition.xml",</code>;
note that there are several other configuration options available in that file, so that you can customize the layout and appearance of your edition;
also note that some configuration options may be necessary to make desired features available, for instance to add the required edition level, so make sure you read the following section and check the default configuration file.</p>
</li>
<li><p>optionally, you can add your own CSS instructions to modify the appearance of specific TEI elements by editing the <code>config-style.css</code> file in the <code>config</code> directory. The customization of generic and linear TEI element is very simple, even if EVT does not yet consider them in the default visualization: in fact, the TEI elements which are not handled in any particular way by EVT are always transformed in HTML elements with the TEI tag name as class name. In this way, the customization is very easy: just add a rule that match the tag name of the TEI element to style. F.i., a deletion encoded with <code>del</code> element, can be displayed with a line through the text just by adding the rule <code>.del { text-decoration: line-through; }</code>.</p>
</li>
</ul>
<h3 id="2-2-configuration">2.2 - Configuration</h3>
<p>There are several configuration options, ranging from the folders where edition data is stored to User Interface layout and available tools, that can be set by editing the <code>config.json</code> file in the <code>config</code> directory. Below you will find a detailed list of the available options: in the file you will see a list of options on the left, to configure EVT you will have to insert the appropriate values in the textual fields on the right. Sometimes those values will consist of boolean strings (“true” or “false”), sometimes they will be simple character strings (e.g. "Interpretative edition"), in other cases you will have to enter TEI XML elements (e.g. "<listWit>, <listChange>"); for colors it will be necessary to specify the correct RGB values (e.g. "rgb(108, 145, 207)").</p>
<p>If you find this file difficult to read and/or change you can try out the beta EVT2-Config-Generator](<a href="http://evt.labcd.unipi.it/evt2-config/">http://evt.labcd.unipi.it/evt2-config/</a>): upload the current config.json, change the parameters you need to change and download the new config.json. Note that this is the first version of the EVT2 Config tool, so there may be glitches and/or problems, please report them to us.</p>
<h4 id="main-data">Main Data</h4>
<h5 id="edition-main-information">Edition Main information</h5>
<ul>
<li><code>indexTitle</code>. Choose a title for your edition. If you leave it blank the default 'EVT Viewer' title will be shown.</li>
<li><code>webSite</code>. If you specify an external web site there will be a link pointing to it.</li>
<li><code>logoUrl</code>. You can also add a custom logo that will appear before the edition title: just indicate the path to it; it can be a URL or a relative path: we suggest that you put it into <code>data</code> and point to it (f.i. <code>data/icons/myLogo.jpg</code>).</li>
</ul>
<h5 id="source-file-s-">Source file(s)</h5>
<ul>
<li><code>dataUrl</code>. Indicate the file name of the XML file of your encoded edition. It can point either to an internal folder or to an external online resource.</li>
<li><code>sourcesUrl</code>. Indicate the file name of the XML file encoding the list of all the bibliographic references for the sources apparatus. It can point either to an internal folder or to an external online resource.</li>
<li><code>analoguesUrl</code>. Indicate the file name of the XML file encoding the list of all the bibliographic references for the analogues apparatus. It can point either to an internal folder or to an external online resource.</li>
<li><code>sourcesTextsUrl</code>. Indicate the folder where you intend to put the XML containing the texts of external sources (if you have any).</li>
<li><code>enableXMLdownload</code>. Decide if you want to enable the XML download (<code>true</code>) or not (<code>false</code>).</li>
</ul>
<h5 id="edition-levels">Edition levels</h5>
<ul>
<li><code>availableEditionLevel</code>. Select which edition levels you want to be available in your edition. You can deactivate a view mode both by deleting it and by setting to <code>false</code> the property <code>visible</code> (the latter being the suggested method). If you select just one edition level you can choose either to display the selector (with just one item) or not by setting <code>showEditionLevelSelector</code> respectively to <code>true</code> or <code>false</code>.</li>
<li><code>defaultEdition</code>. Select which edition level you want to your edition to open on. Note that it must be an active edition level!</li>
<li><code>showEditionLevelSelector</code>. Decide if you want to display the edition level selector (<code>true</code>) or not <code>false</code>. This parameter is considered only if you select just one edition level: if there are two or more edition levels available, the edition selector will be always visible.</li>
</ul>
<h4 id="generic-tools">Generic Tools</h4>
<h5 id="view-modes">View Modes</h5>
<ul>
<li><code>availableViewModes</code>. Select which view modes you want to be available in your edition. You can deactivate a view mode either by deleting it or by setting the property <code>visible</code> to <code>false</code> (suggested method).</li>
<li><code>defaultViewMode</code>. Select which view mode you want to your edition to open on. Note that it must be an active mode!</li>
</ul>
<h5 id="bibliography">Bibliography</h5>
<ul>
<li><code>allowedBibliographicStyles</code>. Select which bibliographic style you want to enable. Bibliographic styles will work properly if the system will find all needed information encoded in you XML file. You can deactivate a bibliographic style either by deleting it or by setting the property <code>enabled</code> to <code>false</code> (suggested method).</li>
<li><code>defaultBibliographicStyle</code>. Select which bibliographic style you want to your edition to open on. Note that it must be an active bibliographic style!</li>
</ul>
<h5 id="tools">Tools</h5>
<ul>
<li><code>toolPinAppEntries</code>. Select if you want to activate (<code>true</code>) or not (<code>false</code>) the PIN tool, which allows the user to “save” apparatus entries or (named) entities in order to reach them more quickly when you need them.</li>
<li><code>toolImageTextLinking</code>. Select if you want to activate (<code>true</code>) or not (<code>false</code>) the Image-Text Linking tool, which allow the user to connect line by line the facsimile to the transcription. You will need to properly encode the <code>zone</code> and their coordinates and have Image-Text among the available view modes. Note that this is still a work-in-progress feature since we are still implementing the EVT 2 image viewer.</li>
<li><code>namedEntitiesSelector</code>. Select if you want to activate (<code>true</code>) or not (<code>false</code>) the (named) entities selector, which allow the user to highlight on the text one or more specific (named) entitie(s).</li>
<li><code>namedEntitiesToHandle</code>. Customize the list of available named entities to be highlighted and to be shown among entities lists, by adding a new element in this list: for each element you should define a <code>tagName</code>, which is the XML tag that identify the entity and a <code>label</code> that will be shown in the selector. If you don’t need an entity that is already inserted in this list you can delete it or just use the property <code>available</code> set to <code>false</code> (suggested choice). Note that EVT can work properly only with <code>persName</code>, <code>placeName</code> and <code>orgName</code>; any other type of entity might cause problems (hopefully not!). If you need a new kind of named entity to be handled just notify the <a href="[email protected]">EVT Development Team</a>.</li>
<li><code>otherEntitiesToHandle</code>. Customize the list of available entities to be highlighted by adding a new element in this list: for each element you should define a <code>tagName</code>, which is the XML tag that identify the entity, a <code>label</code> that will be shown in the selector and a <code>color</code> that will be used to highlight the entity within the text. If you don’t need an entity that is already inserted in this list you can delete it or just use the property <code>available</code> set to <code>false</code> (suggested choice).</li>
</ul>
<h5 id="languages">Languages</h5>
<ul>
<li><code>languages</code>. Customize the languages you want to set as available for the translation of the User Interface (just the UI!) by adding their codes in this list. At the moment we support just english (<code>'en'</code>) and italian (<code>'it'</code>). If you want to add the support for a new language, just add a new <code>*new_language_code*.json</code> inside the <code>i18n</code> directory and a <code>*new_language_code*.png</code> image inside the <code>images</code> folder.</li>
</ul>
<h4 id="critical-edition">Critical Edition</h4>
<h5 id="witnesses">Witnesses</h5>
<ul>
<li><code>preferredWitness</code>. Indicate the sigla of your preferred witness; this will be used everywhere if you forgot to encode the lemma for a particular variation of the text.</li>
<li><code>skipWitnesses</code>. Indicate the siglas (divided by commas) of witnesses you want to exclude from visualization.</li>
</ul>
<h5 id="witnesses-group-s-">Witnesses Group(s)</h5>
<ul>
<li><code>witnessesGroups</code>. If you want, you can divide the readings of all critical apparatus entries into groups. Each group should have a <code>witnesses</code> property (mandatory) that indicates the siglas of witnesses within the group and a <code>groupName</code> (optional) that indicates the name of group to be displayed (f.i. <code>{ “groupName”: “Group 1”, “witnesses”: “A, B, B1” }</code>).</li>
</ul>
<h5 id="apparatuses">Apparatuses</h5>
<p>EVT 2 is able to handle multiple levels of apparatuses: critical entries apparatus, sources apparatus and analogues apparatus. In "Reading view", all of them can be available both in inline mode (the apparatus will appear within the text, right after the portion of text to which it is connected) or in a separate box (there will be a container next to the main text where all the entries will be shown and aligned to the text, whenever the user clicks on an entry). By default, all the apparatuses will appear separately from the main text, but you can choose which mode you prefer by setting to <code>true</code> (inline) or <code>false</code> (separate box) the following parameters:</p>
<ul>
<li><code>showInlineCriticalApparatus</code>, for critical apparatus entries;</li>
<li><code>showInlineSources</code>, for apparatus of sources;</li>
<li><code>showInlineAnalogues</code>, for apparatus of analogues.</li>
</ul>
<h5 id="tools">Tools</h5>
<ul>
<li><code>showReadingExponent</code>. Indicate if you want to use alphabetic exponent for critical entries (<code>true</code>) or not (<code>false</code>).</li>
<li><code>toolHeatMap</code>. Indicate if you want to include the Heat Map tool within the Critical Edition box (<code>true</code>) or not (<code>false</code>). This tool gives the user an overview about text variance.</li>
</ul>
<h5 id="advanced-settings">Advanced Settings</h5>
<p>Tell the system how to recognize the data: indicate which XML tag you used for the encoding of the different objects.</p>
<p><strong>XML Tag usage configuration</strong></p>
<ul>
<li><code>listDef</code>. List of Witnesses: element(s) you used to encode the lists of all the witnesses or changes referred to by the critical apparatus (f.i. <code><listWit></code> or <code><listChange></code>). Please divide values using commas.</li>
<li><code>versionDef</code>. Single witness: element(s) you used to encode a single witness or change referred to within the critical apparatus (f.i. <code><witness></code> or <code><change></code>). Please divide values using commas.</li>
<li><code>fragmentMilestone</code>. Fragment milestones: element(s) you used to indicate the beginning (or resumption) and the end (or suspension) of the text of a fragmentary witness (f.i. <code><witStart></code> or <code><witEnd></code>). Please divide values using commas.</li>
<li><code>lacunaMilestone</code>. Lacuna milestones: element(s) you used to indicate the beginning and the end of a lacuna in the text of a mostly complete textual witness (f.i. <code><lacunaStart></code> or <code><lacunaEnd></code>). Please divide values using commas.</li>
<li><code>notSignificantVariant</code>. Not significant variants: element(s) of attribute(s) you used to encode variants that are not significant and you do not want to appear in the main critical apparatus (f.i. <code><orig></code>, <code><sic></code> or <code>@type=orthographic</code>). Please divide values using commas.</li>
<li><code>quoteDef</code>. Quotes: element(s) used within the XML file to encode quotes for the sources apparatus (f.i. <code><quote></code>). Please divide values using commas.</li>
<li><code>analogueDef</code>. Analogues: element(s) used within the XML file to encode passages for the analogues apparatus. (f.i. <code><seg></code> or <code><ref[type=parallelPassage]></code>). Please divide values using commas.</li>
</ul>
<p><strong>Filters</strong></p>
<ul>
<li><code>possibleLemmaFilters</code>. Possible lemma filters: attribute(s), divided by commas, you want to consider as possible filters for lemmas (f.i. <code>resp</code> or <code>cert</code>). If you want, you can customize the color of each filter value in the tab "Colors" (otherwise random colors will be used).</li>
<li><code>possibleVariantFilters</code>. Possible variant filters: attribute(s), divided by commas, you want to consider as possible filters for variants (f.i. <code>type</code>, <code>cause</code> or <code>hand</code>). If you want, you can customize the color of each filter value in the tab "Colors" (otherwise random colors will be used).</li>
</ul>
<p><strong>Colors</strong></p>
<ul>
<li><code>variantColorLight</code> and <code>variantColorDark</code>. Generic variant Colors: customize the highlight colors (both dark and light for selected and unselected entries) for generic variants that do not have any specific metadata (or have metadata that are not considered as filters). Default colors are <code>rgb(208, 220, 255)</code> (light) and <code>rgb(101, 138, 255)</code> (dark).</li>
<li><code>heatmapColor</code>. Heat Map Color: customize the highlight color for variants when the heat map tool is activated (this will be the darkest color possible, that means the color of entries with the highest variance level). Default color is <code>rgb(255, 108, 63)</code>.</li>
<li><code>variantColors</code>. Specific Variant Colors: customize the highlight color for each value of each lemma filter you defined in <code>possibleLemmaFilters</code> and each reading filter you defined in <code>possibleVariantFilters</code>. If you do not define a specific color, the system will use a random one.</li>
</ul>
<h2 id="3-examples">3 - Examples</h2>
<p>There are 3 ready-to-use examples. The one used by default is n. 1.</p>
<p>If you want to explore the other two you will just have to open the corresponding config.json file (f.i. config_ex2.json), copy its content and paste it into the main config.json file overwriting the existing configuration. Then go to the index.html opened in your browser and reload the page!</p>
<ul>
<li><p>EXAMPLE 1: avicenna.xml -
Short extract of Edizione Logica Avicennae, changed by CM for EVT testing purposes. It presents multiple levels of apparatuses (critical entries, sources and analogues), displayed in a separate dedicated frame.
Configurations for this edition: config_avicenna.json</p>
</li>
<li><p>EXAMPLE 2: pseudoEdition.xml -
Pseudo edition for demonstration and testing purposes only, originally encoded by Marjorie Burghart for her TEI Critical Toolbox software, and modified in order to cover the highest number of possible use cases. It presents just the critical apparatus entry, displayed inline, within the main text.
Configurations for this edition: config_pseudoEdition.json</p>
</li>
<li><p>EXAMPLE 3: pelavicino.xml -
Short extract of the Codice Pelavicino edition, which presents the encoding of named entities, in particular person, place and organization names.
Configurations for this edition: config_pelavicino.json
NB: Note that at this time EVT 2 can support diplomatic editions only in a limited way, feature parity with the previous version will come next year.</p>
</li>
<li><p>EXAMPLE 4 : marlowe.xml -
Short extract of <em>The Tragedie of Doctor Faustus</em> (B text) by Christopher Marlowe. Text provided by Perseus Digital Library, with funding from Tufts University. Original version available for viewing and download at <a href="http://www.perseus.tufts.edu/hopper/">http://www.perseus.tufts.edu/hopper/</a>.
Configurations for this edition: config_marlowe.json</p>
</li>
</ul>
<h2 id="4-evt-manual">4 - EVT Manual</h2>
<p>Work in progress... stay in touch!</p>
<h2 id="5-feedback">5 - Feedback</h2>
<p>User feedback is very much appreciated: please send all comments, suggestions, bug reports, etc. to [email protected].</p>
</body>
</html>