[osis-core] Proposed <index> syntax

Patrick Durusau osis-core@bibletechnologieswg.org
Wed, 03 Jul 2002 06:57:05 -0400


Harry,

After thinking about the <index> element some more, I think you are 
correct in saying that the intended semantics of TEI for:

<index index="subject" level1="Job" level2="theodicy" level3="parallel 
 literature" level4="Babylonian sufferer">

is:

Job
  theodicy
    parallel literature
      Babylonian sufferer [id]

by careful use of the level1 - level4 terms, the index is essentially 
built before ever finishing the work, being mindful that some sorting 
would have to be done by the application in generating the final index.

To have separate index entries (and I think we need to document this) 
one would simply make a separate <index> entry along side the first one.

See and See also:

Like the idea of the see attribute, that is a string that should (would 
not make much sense otherwise) correspond to a level1 entry (in a print 
index, could not find level2, etc., without knowing the level1), but 
that is a requirement we can make in prose.

Have been going back and forth over more than one level of see and 
related issues. Think one see, attached to level1 is probably enough. If 
you need to make other see entries for other levels of the index, they 
are probably not related to a particular point in the text and can be 
inserted as part of the processing of the index itself.

So, proposed syntax (for the release tonight!):

<xs:element name="index">
		<xs:annotation>
			<xs:documentation>
				<p>The &lt;index&gt; element is an empty element that is used to mark 
index locations in a text. It follows the TEI Guidelines in most respects, with the addition of a 
&quot;see&quot; attribute which is explained below. Note that the level attributes (level1 - level4) 
correspond to a main entry (level1) and nested entries under that entry. Thus, the levels link the 
attribute values together in hierarchy of topics. If you want a separate index entry for a particular
location, use another index element.</p>
                                 <p>The &quot;see&quot: attribute was added to the TEI syntax to enable 
the recording of a see or see also entry in the index. The value of that attribute should be a level1 
entry that occurs in the document instance. Automatic processing should generate a link to the appropriate
 location in the text but use of the string provides a useful fallback to the user by specifying the index
 entry that should be a pointer to the appropriate location.</p>
	                          <p>If it is desired to have see or see also entries at other levels of the
index, separate index tags should be inserted with the appropriate see attributes.</p>
                                  <p>Examples:
Standard usage of this element:

&lt;index id=&quot;1234&quot; index=&quot;subject&quot; key1=&quot;Job&quot; key2=&quot;theodicy&quot; key3=&quot;parallel 
 literature&quot; key4=&quot;Babylonian sufferer&quot; see=&quot;Suffering - Theodicy&quot;/&gt;

would result in an entry in the subject index that looks like this:

Job
  theodicy
    parallel literature
      Babylonian sufferer (pointer to location in text [id])
see: Suffering - Theodicy</p> 
			 </xs:documentation>
		</xs:annotation>
	    <xs:complexType>
                <xs:attribute name="index" type="xs:string" use="required"/>
                <xs:attribute name="level1" type="xs:string" use="required"/> 
                <xs:attribute name="level2" type="xs:string" use="optional"/>
                <xs:attribute name="level3" type="xs:string" use="optional"/>
                <xs:attribute name="level4" type="xs:string" use="optional"/>
                <xs:attribute name="see" type="xs:string" use="optional"/>
		<xs:attributeGroup ref="globalAttributes"/>
		<xs:attribute name="TEIform" fixed="index"/>
	    </xs:complexType>
</xs:element>  

Does this complete the index element discussion?

Thanks!

Patrick

-- 
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu