Dear all,
I am developing a MODS application for the eXist native XML database <http://exist.svn.sourceforge.net/viewvc/exist/apps/tamboti/> and have come across a number of issues related to the MODS schema, both semantic issues concerning adequacy and consistency of representation and issues concerning processability, and I would like to present a number of proposals for discussion.
Since we catalogue many Asian materials, a number of proposals have to do with transliteration/translation, so I bring them up first.
(Actually, sometimes Western names are rendered in Asian scripts that do not use letters, and here use of the word "transliteration" is not apposite and "transcription" would be a happier choice, but I do not feel this is important enough to argue for a change of the name of this attribute.)
There are two places where one can specify language and script globally, in the top-level <language> (for recording the language of the resource) and <languageOfCataloging> under <recordInfo> (for recording the language of cataloging).
With MODS 3.4, the places in which one can specify @xml:lang, @lang, @script, and @transliteration are too many to list. Having to set these attributes in so many places is obviously a burden for the cataloguer. For processing a MODS record, it also presents quite a challenge, since forms have to provide for entry of these four attributes in so many places (including some where their use is hard to see).
I interpret setting the resource language in <languageTerm> under <language> to, say, Chinese, as meaning that the default language for <titleInfo>, <name>, and <originInfo> is Chinese, i.e. that there is no need to specify the language on these elements, unless it is different from Chinese. The same goes for <scriptTerm>. Presumably <languageOfCataloging> supplies default values for the language and script of the rest of the MODS top-level elements.
## I propose to add the element <transliterationScheme> under <language>, with values such as "pinyin" and "ja-alalc97".
## As a follow-up to this, I propose to add the value "transliteration" to @type on <titleInfo>.
As it is now, we have to use the value "translation" for @type on <titleInfo> even in the case of transliterations. This is obviously not correct semantically and it requires checking whether there is a @transliteration set on the same element that is of @type "translation". This is not complicated, but should not be required.
If <language> could supply default values for all language attributes on <titleInfo> and one could note with @type that transliteration is performed, both semantics and processing would be a lot simpler.
(One might ask, why not include <languageOfTranslation>? I would say that <languageOfCataloging> covers this, i.e. if it is set to "English" and one translates a title, this is assumed to be in English, but I am not sure.)
According to my understanding, the basic semantics of <name> is simple: a <name> represents a name.
(Under <name> we find <role> and persons have roles, not names, so there is some unclarity here, but in practice this does not seem to cause difficulties.)
If we have a name with transliteration, we encode it at present in our catalogue as:
<name type="personal">
<namePart type="given" lang="chi" transliteration="chi-alalc97">Han</namePart>
<namePart type="family" lang="chi" transliteration="chi-alalc97">Ye</namePart>
<namePart type="given" lang="chi" script="Hant">瀚</namePart>
<namePart type="family" lang="chi" script="Hant">葉</namePart>
</name>
(Of course, have set the resource language as Chinese, I could do without lang="chi", and setting the script to Traditional Chinese, I could with script="Hant", but this does not alter the situation.)
This contains one name with two representations, one in native script and one in transliteration. This is messy, because two different things are thrown into one bag. I don't even know if this is acceptable MODS.
The way out of this chosen in MODS 3.4 is to undermine the basic XML rule that one element instance represents one entity. The two kinds of renderings of the name are packed into two <name>s and the "one <name> = one name" semantics is subsequently cancelled by using @altRepGroup.
<name type="personal" lang="chi" transliteration="chi-alalc97" altRepGroup="1">
<namePart type="given">Han</namePart>
<namePart type="family">Ye</namePart>
</name>
<name lang="chi" script="Hant" altRepGroup="1">
<namePart type="given">瀚</namePart>
<namePart type="family">葉</namePart>
</name>
I believe that this is simply not good XML.
If @altRepGroup was absent, we would have a representation of two distinct names, but with @altRepGroup, we have a representation of one name with two distinct name representations.
The consequences for processability are considerable. With standard semantics, I know that if I have four <name>s, I have four names. With @altRepGroup, I may have one, two, three or four names. There are moreover no rules governing the values assigned to this attribute. Processing the MODS schema is already quite demanding and adding this layer of complication does not add information - it just makes things look a little neater. Processing the "messy format" is in comparison quite easy.
The obvious way to express this in XML would be something like
<name type="personal">
<nameRepresentation lang="chi" transliteration="chi-alalc97">
<namePart type="given">Han</namePart>
<namePart type="family">Ye</namePart>
</nameRepresentation>
<nameRepresentation lang="chi" script="Hant">
<namePart type="given">瀚</namePart>
<namePart type="family">葉</namePart>
</nameRepresentation>
</name>
This expands (and complicates) the schema, so there will naturally be some resistance to this. To introduce a format like this should not require "ordinary Western names" to have <nameRepresentation>s, but I believe that this is the only consistent way of expressing what is sought expressed by @altRepGroup.
## I propose that it is made possible to record different renderings of a <name> inside an element like <nameRepresentation>, but that having <namePart> directly inside <name> is also possible. It will probably not do to remove @altRepGroup, but I see no use for this attribute at all.
In <originInfo>, there is also an issue with transliteration/translation. Let us again take a Chinese publication:
<originInfo lang="chi">
<place>
<placeTerm type="text" script="Hant">武昌</placeTerm>
<placeTerm type="text" transliteration="chi-alalc97">Wuchang</placeTerm>
</place>
<publisher script="Hant">商務印書館</publisher>
<publisher transliteration="chi-alalc97">Shangwu yinshuguan</publisher>
</originInfo>
(I am leaving out date information, since this raises separate problems.)
This looks like there are two publishers. How do I record that the two names are different renderings of the same name?
I would also (sometimes) want to translate the name of the publisher, but I don't see how to do that in MODS.
I note that, semantically speaking, <publisher> contains a <name>, usually the name of a corporation, but possibly of a person. Translating the name of a person makes little sense, except in cases like "William the Conqueror"/"Guillaume le Conquérant", but it makes good sense, in many cases, to translate the name of a corporation.
<originInfo lang="chi">
<place>
<placeTerm type="text" script="Hant">武昌</placeTerm>
<placeTerm type="text" transliteration="chi-alalc97">Wuchang</placeTerm>
</place>
<publisher>
<name type="corporate">
<nameRepresentation lang="chi" script="Hant">
<namePart>商務印書館</namePart>
</nameRepresentation>
<nameRepresentation type="transliteration" lang="chi" transliteration="chi-alalc97">
<namePart>Shangwu yinshuguan</namePart>
</nameRepresentation>
<nameRepresentation type="translation" lang="eng">
<namePart>Commercial Press</namePart>
</nameRepresentation>
</name>
</publisher>
</originInfo>
## I propose that it is made possible to employ <name> directly inside <publisher>. As above, in the case of "ordinary Westerns publishers", one could skip this.
## I propose that @type can be set on <nameRepresentation>, with similar semantics to @type set on <titleInfo>.
I recognize that nesting elements as deep as this creates problems for processability. Also, the <placeTerm> is obviously a name as well, but I see no need for expanding it.
I have more proposals on other parts of the schema, but they can wait.
Best,
Jens
Jens Østergaard Petersen
University of Heidelberg
Cluster of Excellence "Asia and Europe"
IT Department
Karl Jaspers Centre
Voßstraße 2, Gebäude 4400, Raum 005a
69115 Heidelberg
Germany
web: http://www.asia-europe.uni-heidelberg.de
|