Athanasios Velios wrote:
> 1) What is the tool used to store the definitions of the TEI elements and
> how does it handle relations between the different elements?
Sebastian and James have covered the essentials; but since I have bits of
ODD and Roma spread out, metaphorically speaking, all over my study floor at
the moment, I will also wade in, albeit highly unofficially (and maybe
occasionally, in some quarters, offensively).
First off, a brief word about ODD: both the original ODD and the radically
new and revised ODD used for P5 are based on the Knuth's notion of "literate
programming". The expansion to One Document Does it All (which is another
way of saying what "literate programming" means) indicates where the
"storage" takes place.
A single document, the ODD source, contains both the formal specifications
of the classes and modules that make up the element and attribute
repertoire, and the discursive descriptions of those elements and
attributes, their uses and values. Note that I deliberately avoid using
"definition" there, since in this context it can be misleadingly ambiguous.
From one and the same document it is possible to create expressions of those
formal specifications in a DTD, or a Schema, either W3C or RelaxNG, or a
complete or selected documentation of any desired elements or attributes. In
P5 that document is an "ordinary" TEI XML document, where "ordinary" means
it can be created, perused and updated by any tool, whether user-driven or
automated, that can edit valid XML. So that is the basic, and possibly
slightly unexpected, answer to the question about where the definitions are
"stored" and what "the tool" is. The repository is no more or less than the
ODD source document, and the tool is anything that can handle that document.
Roma is actually a bundle of tools. Its core is a set of scripts and XSLT
sheets which perform what in literate programming parlance are called
"tangling" and "weaving" on that single ODD document. "Tangling" (in the
case of the TEI ODD) produces DTDs or Schemas: "weaving" produces discursive
Guidelines. In addition, Roma can also read XML documents specifying
modifications to the canonical ODD document, which can be either to the
specifications or the documentation, and can involve deletion, addition or
modification of parts of either, and then tangle or weave them with the
source to produce modified DTDs, schemas and/or documentation. Or it can
simply be fed a set of pre-existing modules, which it will then tangle
and/or weave into a ready-to use DTD or Schema and accompanying
documentation. So all roads to a production "scheme" (the term preferred in
P5 discourse to cover either a DTD or a schema) go via Roma, and all such
"schemes", even plain vanilla ones with no user modifications, are in this
sense a "customization". Some P4 and P3-ers may take some time to get used
to this, though in essence it has also always held good for earlier
That core functionality of Roma can be accessed from the command line (with
documents specifying modifications for Roma to work on being created by hand
in any XML editor). But it can also be accessed by the Web front end which,
maybe a little confusingly, is also called simply "Roma". A user can create
a document specifying a desired combination of modules with or without
modifications (option "Upload an existing customisation") and feed it to the
Web interface, which will send back a DTD or a schema of the user's choice.
Or the user can start from scratch (Option "Create a new customization") and
specify which modules are required, as well as carrying out a considerable
range of alterations and additions to what the standard modules provide
(though for technical reasons not everything that core Roma can do can be
done via the Web interface). As the user points, clicks and occasionally
types, the server-side code actually turns the user's input into an ODD
modifications document, which the user can get to see and squirrel away for
inspection or further modification (maybe of a kind beyond Web Roma's
current scope) if they so desire via the "Save" button. But there is no
need for the user to be exposed to any part of ODD at all: pressing the
"Schema" button after all the choices have been made will cause the server
to apply the ODD modification document it has created in the background to
the ODD sources, and output the ensuing DTD or schema, with or without
documentation in any supported language, in the format requested by the
user, with no ODD as such ever being espied. It does this by invoking the
core Roma scripts server side and packaging the output for Web delivery back
to the user.
> In other words,
> when Roma compiles a new schema, where does it look up the definitions?
As I hope I have now explained, in the abstract terms at which this question
really needs to be tackled, Roma gets both specifications and documentation
from the ODD source, and beyond the fact that that source is a single valid
TEI XML document there's nothing more that must be said. But, construing the
question about "look up" more concretely, another component in the overall
Roma package is the eXist native XML database. It so happens that Roma
stores the ODD source document in an eXist "collection", which it allows it
to access targetted portions of it (using eXist's implementation of the
XQuery language) much more efficiently than if it had to, say, apply an XSLT
transform or an sgrep scan to the whole ODD source document. This is also
how the query field at the foot of most Roma pages (and the bookmarklet
tools James provided recently) are able to pull out bits of documentation
from the ODD source so quickly. (As currently shipped, a limitation in
eXist's indexation scheme means that the ODD source has to be chopped up by
a script included in the Roma package before storing it in eXist: however
imminently forthcoming changes to eXist will remove the necessity for this
step). But there is no specific need for eXist or any other XML datbase in
the system: it just happens to be probably the handiest tool available at
the moment for getting hold of specific bits of ODD source quickly using XML
standards-conformant Open Source technology.
> easy is it for inexperienced users to add/modify TEI elements on that
Well, given that the repository is the ODD source document, it would be
pretty easy for anyone who can drive a basic editing application and who
understands ODD system to add or modify elements therein. But anyone who
attempts to do that, with or without ease, will find that no-one on this
list will ever speak to them again, their cats will run away, their dogs
will bite them and whatever team they are supporting in Germany at the
moment will be humiliatingly beaten. The ODD document itself is sacred and
is to be handled only by The Editors in their Sublime Persons (though they
deliberate lengthily with Council before entering the sanctum to do so).
> What about the people who actually produce the core definitions?
> For example, bookbinders who ideally would contribute to our
> glossary almost certainly will not have TEI expertise.
In such cases, Council appoints WGs with co-opted members on whose
terminological and other expertise the Editors rely when drafting the
material. But even then, only the Editors edit the canonical text.
> Can images be inserted as visual examples of what the elements
> describe in the repository?
The ODD source (in the P5 universe) is a TEI-XML document like any other. So
the incorporated documentation can contain anything for which TEI provides
an inclusion or linkage mechanism. Linking in such items via the Web Roma
interface might prove somewhat challenging, though.
> 2) Are the TEI elements translated in other languages? If yes, how is it
> done? How is the correspondence of the same element in different languages
The links have now been provided in other replies. The promised offensive
bit is my view that, while i18n and l10n of the documentation components is
splendid and can only be to the good of all concerned, pseudo-localization
of element and attribute names is lunacy. I call it pseudo-localization
because I don't believe these items are tokens in a natural language anyway,
though some of them look as though they might be to professional
anglophobes. I generally support this view with references to Air Traffic
Control, but since quite a few readers of this list will have booked flights
which will take them in a few weeks time into an ATC area where air and
ground controllers persistently, in proud defiance of international
regulations, apply l10n in their communications with aircraft, with
frequently disqueting and occasionally tragic consequences, I will refrain
from broaching that analogy on this occasion.