[osis-core] Sorry for the silence, latest draft attached!
Patrick Durusau
osis-core@bibletechnologieswg.org
Thu, 02 May 2002 19:52:22 -0400
This is a multi-part message in MIME format.
--------------030806010007010004000501
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Guys,
Sorry for the long silence! Substantial revisions in Rome and more on
the way. Steve is supposed to be sending his notes from our last day of
meetings (after the actual OSIS meeting).
The attached schema I am fairly sure is invalid and does not contain a
new key/keyref mechanism that I am supposed to be inserting.
Troy will be in Europe for another couple of weeks but he seemed fairly
pleased with the revisions.
I hope Steve will send the notes fairly soon as I leave for Europe again
on the 16th of May (XML Europe).
The conference was very successful! Everyone was very impressed and I
think (no promises) that we are going to get all the minority language
Bibles for conversion into OSIS markup!
Hope this finds one and all in good health and spirits!
Patrick
--
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu
--------------030806010007010004000501
Content-Type: text/plain;
name="OSISCore_1.0.6.xsd"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="OSISCore_1.0.6.xsd"
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
<xs:annotation>
<xs:documentation> OSISCore.1.0.xsd <p>
<date>2002-04-27</date>
<version>1.0</version>
This is version 1.0 of the OSIS (Open Scriptural Information Standard) schema for Bible and biblical texts. While it will produce valid XML documents on its own, it is intended for use with the OSISScripture1.0.xsd and other schemas to be released by the OSIS Initiative. These additional schemas incorporate the core schema and provide validation for references and other extensions that may be required for more complex uses, such as by translators, publishers and scholars.</p>
<p>This schema did not spring full blown into existence but was heavily influenced by prior efforts such as XSEM (SIL), LGM (Logos), ThML (Harry Plantiga), SFM (UBS), and CCML (Hosanna Foundation). Unlike these prior efforts, OSIS has focused on producing the minimal encoding necessary to markup simple Bible texts and will be placing in additional modules the markup needed for more sophisticated users. The primary purpose behind that design was to allow users an easy learning curve for applying markup to biblical texts. All the element names that they learn for the core schema, can be applied, with additional abilities in the following modules. Despite our reliance on the pioneering efforts of others, any errors in substance or style in this schema remain the responsibility of the editors and contributors.</p>
<p>The work on this schema was made possible by the generous support of the American Bible Society, American Bible Society Interactive, and the Society of Biblical Literature. Contributions of prior encoding efforts, texts (the sample texts from the Good News Today translation are used in the documentation with the kind permission of the American Bible Society), and suggestions and comments from the participants in OSIS public meetings and mailing list were instrumental in the formation of this release.</p>
<p>The principal editors for this core module and the companion scripture schema are Steve DeRose (sderose@speakeasy.net), and Patrick Durusau (Society of Biblical Literature, pdurusau@emory.edu). Technical contributors (who often turned around sample encodings of the Book of Matthew on the same day as schema revisions!) were Troy Griffiths (scribe@crosswire.org), Chris Little (chrislit@crosswire.org), and Todd Tillinghast (todd@contentframeworks.com).</p>
</xs:documentation>
</xs:annotation>
<!-- attribute declarations and restrictions -->
<xs:simpleType name="attributeExtension">
<xs:annotation>
<xs:documentation>
<p>Where attribute values are declared, users can extend the allowed values by prepending the string "x-" to the values they desire to use. Attribute values are declared as the union of an enumerated set of values and this attributeExtension type.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="x-([^\s]+)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="calendar">
<xs:restriction base="xs:string">
<xs:enumeration value="Chinese"/>
<xs:enumeration value="Gregorian"/>
<xs:enumeration value="Islamic"/>
<xs:enumeration value="ISO"/>
<xs:enumeration value="Jewish"/>
<xs:enumeration value="Julian"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="changesOSIS">
<xs:restriction base="xs:string">
<xs:enumeration value="added"/>
<xs:enumeration value="amplified"/>
<xs:enumeration value="changed"/>
<xs:enumeration value="deleted"/>
<xs:enumeration value="moved"/>
<xs:restriction>
</xs:simpleType>
<xs:simpleType name="changeType">
<xs:union memberTypes="changesOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name="divsOSIS">
<xs:annotation>
<xs:documentation>
<p>Enumerated list of types of div elements in an OSIS text. Note that users can add types of divs using the x- extension prefix on their type names.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="appendix"/>
<xs:enumeration value="book"/>
<xs:enumeration value="chapter"/>
<xs:enumeration value="concordance"/>
<xs:enumeration value="glossary"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="divType">
<xs:union memberTypes="divsOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name="languageType">
<xs:annotation>
<xs:documentation>
<p>A regex to validate ISO and Ethnologue language codes.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="(x|i|[A-Za-z]{2,3})(-[A-Za-z0-9]{2,8}){0,}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="namesOSIS">
<xs:annotation>
<xs:documentation>
<p>Enumerated list of name types commonly found in biblical texts.</p>
<p>The attribute nonhuman was inserted to allow the marking of names that are not encoded with the element divineName. The divineName element was introduced to treat name occurences that are treated differently, i.e., the setting of Lord in small caps, to represent a name in the original text. Rather than attempt to enumerate all the varying traditions for such practices, the divineName element simply recognizes it and allows encoders to follow that practice (or not) as they desire.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="geographic"/>
<xs:enumeration value="holiday"/>
<xs:enumeration value="nonhuman"/>
<xs:enumeration value="person"/>
<xs:enumeration value="ritual"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="nameType">
<xs:union memberTypes="namesOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name="noteType">
<xs:union memberTypes="notesOSIS attributeExtension"/>
</xs:simpleType>
<xs:simpleType name="notesOSIS">
<xs:annotation>
<xs:documentation>
<p>Enumerated list of note types for biblical texts. This list can be extended using the <x-> extension in front of other note types added by users.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="allusion"/>
<xs:enumeration value="alternative"/>
<xs:enumeration value="background"/>
<xs:enumeration value="citation"/>
<xs:enumeration value="devotional"/>
<xs:enumeration value="exegesis"/>
<xs:enumeration value="explanation"/>
<xs:enumeration value="study"/>
<xs:enumeration value="translation"/>
<xs:enumeration value="variant"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="refType">
<xs:restriction base="xs:string"/>
<!-- need to add regex to validate two nmtokens (and no more) for refs -->
</xs:simpleType>
<xs:simpleType name="role">
<xs:annotation>
<xs:documentation>
<p>This is a selected set of the most common role names likely to be needed for basic encoding. The full set of relator codes on which this listing (and the descriptions are based, was taken from: MARC Code List: Relator Codes -- Term Sequence (http://lcweb.loc.gov/marc/relators/re0002r1.html). This listing will be followed for later OSIS modules.</p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="art">
<xs:annotation>
<xs:documentation>Artist: Use for a person (e.g., a painter) who conceives, and perhaps also implements, an original graphic design or work of art, </xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="aut">
<xs:annotation>
<xs:documentation>Author: Use for a person or corporate body chiefly responsiblefor the intellectual or artistic content of a work, usually printed text. This term may also be used when more than one person or body bears such responsibility.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="aft">
<xs:annotation>
<xs:documentation>Author of afterword, colophon, etc.: Use for a person or corporate body responsible for an afterword, postface, colophon, etc. but who is not the chief author of a work.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="aui">
<xs:annotation>
<xs:documentation>Author of introduction, etc.: Use for a person or corporate body responsible for an introduction, preface, foreword, or other critical introductory matter, but who is not the chief author.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="clb">
<xs:annotation>
<xs:documentation>Collaborator: Use for a person or corporate body that takes a limited part in the elaboration of a work of another person or corporate body that brings complements (e.g., appendices, notes) to the work.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="cwt">
<xs:annotation>
<xs:documentation>Commentator for written text: Use for a person or corporate body responsible for the commentary or explanatory notes about a text.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="com">
<xs:annotation>
<xs:documentation>Compiler: Use for a person who produces a work or publication by selecting and putting together material from the works of various persons or bodies.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ctb">
<xs:annotation>
<xs:documentation>Contributor: Use for one whose work has been contributed to a larger work, such as an anthology, serial publication, or other compilation of individual works. Do not use for someone whose sole function in relation to a work is as author, editor, compiler or translator.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="edt">
<xs:annotation>
<xs:documentation>Editor: Use for a person who prepares for publication a work not primarily his/her own, such as by elucidating text, adding introductory or other critical matter, or technically directing an editorial staff.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="trl">
<xs:annotation>
<xs:documentation>Translator: Use for a person who renders a text from one language into another, or from an older form of a language into the modern form.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<!-- add datatypes of key and keyref to point to certain element type, cat refSys plus ref to be unique, allows us to pitch underscore. -->
<!-- global attributes -->
<xs:attributeGroup name="globalAttributes">
<xs:attribute name="ews" type="xs:key" use="optional"/>
<xs:attribute name="ID" type="xs:ID" use="optional"/>
<xs:attribute name="lang" type="languageType" use="optional"/>
<xs:attribute name="type" type="xs:string" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="inReferenceAttributes">
<xs:attribute name="ref" type="Define" use="required"/>
<xs:attribute name="refSys" type="Define" use="optional"/>
<xs:attribute name="work" type="Define" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="outReferenceAttributes">
<xs:attribute name="ref" type="refType" use="optional"/>
</xs:attributeGroup>
<!-- elementGroup declarations -->
<xs:group name="phraseGroup">
<xs:annotation>
<xs:documentation>
<p>A group for common annotations recorded on a text.</p>
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="blockQuote" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="divineName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="foreign" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="inscription" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="lineGroup" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="list" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="mentioned" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="milestones" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="name" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="reference" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="title" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="w" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
<xs:group name="milestones">
<xs:annotation>
<xs:documentation>
<p>Milestones are used to mark the traditional book, chapter, verse divisions, which are the most likely to cross other divisions commonly used in translations. In addition to these milestones, there is a generic milestone marker for cases not forseen by the encoding team. Note that the segStart and segEnd milestones are the generic form of the milestone marker.</p>
<p>The attributes of the milestone markers require some comment for proper use. Note that all milestones have MID and MIDREF attributes but on a starting milestone, such as verseStart, the MID is required. That is a requirement because at the closing milestone for that verse, verseEnd, the attribute MIDREF is required. The MID and MIDREF serve to bind the two milestones together and provide some degree of validation for the use of milestones. If I properly note the MID on a starting milestone as: Matt.1.1 and then on the closing milestone enter: Mat.1.1 (Hard to see when typing but lost the second "t" in the abbreviation for Matthew, any XML parser will catch the error and tell me where the error has occurred.</p>
<p>Markup theorists will note that the named milestones are syntactic sugar for the more generic segStart and segStop milestones. While a departure from the overall simplicity of the schema, it is hoped that this naming of milestones will make it easier for beginning users to orient themselves to the use of such elements.</p>
</xs:documentation>
</xs:annotation>
<xs:choice>
<xs:element name="bookStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="bookEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="chapterStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="chapterEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="lineStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="lineEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="osisPoint">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="qStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="who" type="xs:keyRef" use="optional"/>
<!-- add key place holder for castList -->
</xs:complexType>
</xs:element>
<xs:element name="qEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="refStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="refEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="segStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="segEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="verseStart">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="verseEnd">
<xs:complexType>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<!-- element declarations -->
<xs:element name="osis">
<xs:complexType>
<xs:annotation>
<xs:documentation>
<p>Front and body element are required and in that sequence. This is implied by the sequence content model. Note that back is optional, but if occurs, only once.</p>
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="front"/>
<xs:element ref="body"/>
<xs:element ref="back" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="work" type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="refSys" type="xs:NMTOKEN" use="optional"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="front">
<xs:annotation>
<xs:documentation>
<p>This will be greatly expanded for the publications module (Fall, 2002) but should be sufficient to encode the basic front matter found in most Bible translations.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="dc:Contributor" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Title" minOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Creator" minOccurs="0" maxOccurs="0">
<!-- add key, role attribute points to roleType, resp attribute has keyRef that points to key on creator -->
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Subject" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Description" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Publisher" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Date" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Type" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Format" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Identifier" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Source" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Language" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Relation" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Coverage" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="dc:Rights" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="revisionDesc" minOccurs="0" maxOccurs="unbounded"/>
<xs:complexType>
<!-- add resp and date as attributes on revisionDesc, resp keyRef points to creator -->
<xs:sequence>
<xs:element ref="date" minOccurs="1"/>
<xs:element ref="resp" minOccurs="1"/>
<xs:group ref="phraseGroup" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="TEIform" fixed="revisionDesc"/>
</xs:complexType>
</xs:element>
<xs:element ref="div" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="body">
<xs:annotation>
<xs:documentation>
<p>It should be noted at the outset that OSIS has followed XSEM in treating verses with milestone markers in a text. This is in large part because versification varies across editions and the use of milestones is the simplest way to allow varying encoding of verses and yet retain usuability of the text. This does not affect the presentation to the ultimate reader or its usefulness in electronic versions. If none of the foregoing was meaningful, do not be troubled. See the OSIS User documentation and simply follow the examples for marking verses. This is an issue now largely due to technical decisions made decades ago that still affect markup systems today.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="title" minOccurs="0"/>
<xs:element ref="div" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="TEIform" fixed="body"/>
</xs:complexType>
</xs:element>
<xs:element name="back">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="div" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="TEIform" fixed="back"/>
</xs:complexType>
</xs:element>
<xs:element name="blockQuote">
<xs:complexType>
<xs:sequence>
<!-- salute note,p,phrase close-salute-signed -->
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="catchWord">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="date">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="calendar" type="calendar" use="optional" default="ISO"/>
<xs:attribute name="value" use="optional"/>
<xs:attribute name="TEIform" fixed="date"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="div">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref=lineGroup" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="div" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="figure" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="speech" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="lang" type="languageType" use="optional"/>
<xs:attribute name="type" type="divType" use="optional"/>
<xs:attribute name="divTitle" type="xs:string" use="optional"/>
<xs:attributeGroup ref="inReferenceAttributes"/>
<xs:attribute name="TEIform" fixed="div"/>
</xs:complexType>
</xs:element>
<xs:element name="divineName">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="figure">
<xs:complexType>
<xs:sequence>
<xs:element name="caption" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="src" type="xs:string" use="required"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="foreign">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="head">
<xs:complexType>
<xs:sequence>
<xs:element ref="head" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="inscription">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="label" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="label">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="line">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="lineGroup">
<xs:complexType>
<xs:sequence>
<xs:element ref="line" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="lineGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="list">
<xs:complexType>
<xs:sequence>
<xs:element ref="head" minOccurs="0"/>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="mentioned">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="name">
<xs:annotation>
<xs:documentation>
<p>An element with an attribute simiar to role that allows a semi-open attribute for specifying what type of name is being recorded in the markup. Examples include person, geographic, etc. Note the general format for enumerated values: a list is declared as a simpleType and then followed by a union statement combining that list with the attributeExtension simpleType which contains a regular expression constraining additions to the OSIS enumerated list to begin with the string "x-". This allows OSIS to speify a list of values and yet allow users to extend that list.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="nameType" type="nameType" use="required"/>
<xs:attribute name="regular" type="xs:string" use="optional"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="note">
<xs:annotation>
<xs:documentation>
<p>Has enumerated list of note types.</p>
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:element ref="catchWord" minOccurs="0" maxOccurs="1"/>
<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="p" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="reading" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="ID" type="xs:ID" use="optional"/>
<xs:attribute name="lang" type="languageType" use="optional"/>
<xs:attribute name="n" type="xs:string" use="optional"/>
<xs:attribute name="resp" type="xs:string" use=optional"/>
<xs:attribute name="type" type="noteType" use="required"/>
<xs:attribute name="TEIform" fixed="note"/>
</xs:complexType>
</xs:element>
<xs:element name="p">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="reading">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded">
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="reference">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="speech">
<xs:complexType>
<xs:sequence>
<xs:element ref="speaker" minOccurs="0" maxOccurs="1"/>
<xs:group ref="phraseGroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
</xs:complexType>
</xs:element>
<xs:element name="speaker">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="who" type="xs:string"/>
<xs:attributeGroup ref="globalAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="title">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="phraseGroup minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="TEIform" fixed="title"/>
</xs:complexType>
</xs:element>
<xs:element name="transChange">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="changeType"/>
<xs:attribute ref="globalAttributes"/>
<xs:attribute ref="resp" type="xs:string" use="optional"/>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="w">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="POS" type="attributeExtension" use="optional"/>
<xs:attribute name="morph" type="attributeExtension" use="optional"/>
<xs:attribute name="lemma" type="attributeExtension" use="optional"/>
<xs:attribute name="gloss" type="xs:string" use="optional"/>
<xs:attribute name="xlit" type="xs:string" use="optional"/>
<xs:attribute name="TEIform" fixed="w"/>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attributeGroup ref="outReferenceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
--------------030806010007010004000501
Content-Type: text/plain;
name="RomeIssueList.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="RomeIssueList.txt"
<html>
<front>
<stylesheet type="text/css">
issue { border-top:2px;
</stylesheet>
</front>
<body>
<h1>Rome issues list</h1>
<p>Prepared by Steven J. DeRose</p>
<p>Started Sat 2002-04-27</p>
<p>Last modified Sun 2002-04-28</p>
<p>The status shown below is one of ACCEPTED, AIP (accepted in principle, or already fixed), or REJECTED. Unmarked ones are not decided yet.</p>
<issue date='';>
<raised-by>Bob P</raised-by>
<status>AIP</status>
<p>Suggestion re. shadow milstones -- used to mark where to scroll to when it's not the very start of the verse. For example you may want to go to before introductory material. This should be done with segStart type='loc' ref=''
</p>
</issue>
Drop otPassage and NTquotation: ot/nt offensive. Could use more general 'inter-textual-reference' instead, and process via work atribute. We drop them and propose using types on ref.
AIP.
>From USFM meeting: Do we want a tag to mark where book titles occur, such as in some translations' intro materials? Some editions italicize them. We could also make them references of some type.
Eric, ___: Genaology: Maybe just lists? Break down internals?
<gen>
<genEntry>And Abraam was the father of Jacob</genEntry>...</gen>
Other lists: Prov.22-Prov.23; 6 things the Lord hates; lists of gifts by tribe and clan in Numbers; groups of generations in Matthew.
Bob P: Dublin-core: add as front-matter object? Copy from OEB (uses same role-set, and standard element/attribute names). Maybe pitch the whole TEI docTitle/titlePart thing in consequence (since we're not quite compatible with it anyway.
Steve D: Should we distinguish Psalm prescriptions from generic heads? These seem to be the only headings that are part of the source texts.
Troy: Need easy way to distinguish the text from editorial stuff. Troy uses verseStart/verseEnd for this -- which means unmarked pairs for Psalm prescriptions. Does this mean you don't use verse markers in the Apocrypha? If Troy's convention in Psalms isn't required, you can't count on this anyway. Could introduce <psalm-header> or, better, <original-header> (as opposed to head, which can be editorial. <head resp=''> or <head type=''>.
Cantillation markup, for levels-of-break, not just the marks as glyphs.
Morphology: How much should it be broken down into structure? How much should be validated? How should annotations be attached to the places they apply?
Bob P: Collapse Start/End -- In non-linear media (e.g. maps, VRML models, etc.) there's no reason for "2" ends -- or 'start/end' at all. Combine. Big reason: refStart/refEnd is NOT currently parallel to verseStart/verseEnd etc. Also this lets our syntax go straight into being an XPointer scheme if we want, or being used otherwise in a URI.
ACCEPTED.
Eric: Generalize supplied/changedTense. Will want to mark other kinds of deviations from your general translation philosophy; changedTense is Anglocentric. Perhaps nonLit? Not a very good name. Discussion of whether to try to enumerate a bunch more types, or to collapse into one element with subtypes. Subtypes get extensibility, though we also want validation. Make semi-open.
ACCEPTED
Subtype nonLit as added, deleted, amplified, changed, moved. Not to include generic/specific, or from/to attributes for linking source and target texts. Lose supplied, changedTense, ampRead. cf TEI set. This is a container. sourceComparison? sourceTrace? sourceMatch? translationChange? transChange? Should allow note and w inside.
Troy, Eric: should divineName be collapsed into here too? Is name misleading re. non-G-d divinities?
Bob P, Steve D: Make front matter metadata mostly optional.
ACCEPTED.
Add distinction in references, of the refsys of this pointer, vs. the document to be sought.
Distinguish language and version fields in work, so updated editions, dialect editions like American vs. British English NIV, can be detected as being editions of the same work.
Need to document the detailed algorithm for resolving a reference. Priority of work fields, fallback sequence.
How do we mark up things like the alternate ending of Mark?
Eric, Steve, Patrick, Troy: Make lists nested. Note also need in introductory material. Need a label element (not attribute, so you can get internal structure) -- inside the item. Lets us have one list type by making label optional.
ACCEPTED
ESPT: Should we distinguish genaology, inventory, etc?
REJECTED
Should we have 2 versions of the schema, one that prevents extending semi-open attributes, etc, and one that allows it?
Should we enumerate DIV types? front and back matter?
What about divineName? Seems very special, unique. Would need its own subtype if combined with nonLit anyway. Do we want to use it for qualified forms such as yhwh elohim too? Enumerate and subtype them? Closed set? Yes unless Talmud, etc. use additional qualified forms. But if we close the set, isn't it redundant with the content? Don't want to omit content since it would be a training anomaly. Wouldn't be fully redundant because the content may be inflected or not absolutely consistently translated, so trivial programs can't check for consistency. Messy. divineName enclose the tetragrammaton phrase, but has no type attribute.
ACCEPTED.
Added roles: Should we validate? No. Add list from Bob Batzinger: stylists, copyeditors, typographers,... Leave set semi-open. Should we limit to "x-" for extensions and validate for it? To do so, we should include the whole USMARC relator codes list -- unwieldy, but do it. Put top few in doc, tell them where to look for the rest (in the schema).
ACCEPTED
Add resp to note, revisionhistory, and in dublin core. Charge Patrick to review all elements for applicability and report to list.
ACCEPTED
Add date to revision history. Explain practice that you have at least one revDesc to each cohesive set of changes done (in effect, each checkin). Should we have p in revDescs? Could just make separate revDescs; and the p level seems a waste. Instead, lose p but give revDesc the same content as p.
ACCEPTED
Do we need notePart? Is mainly a place to hang a reference, but would enclose not just the reference, but the part of the note that relates to it. Instead do a recursive note.
ACCEPTED.
Kees: catchWord in notes: Add markup for catchphrase/referencedText; don't conflict with TEI dictionary useage (headWord).
ACCEPTED
Eric: Reading (cf XSEM): just in notes, to show alternate reading ("Some manuscripts read '...', but the Hebrew reads '...'). Also refText? Reading's meaning inherits from note-type (translation, text-critical, exegetical).
ACCEPTED
Eric: Add mentioned -- happens in notes and in source text (Dorcas, Tabitha, etc), and everywhere (not worth trying to exclude syntactically). In translation: sometimes rendered specially. Could add (may have been accidentally omitted to start with); or could put just in note. Allow in general content; try to simplify the soup model.
ACCEPTED
Eric: Do references have content? Currently they're basically like HTML A. Given the normalized reference in the ref attr, can we generate the rendered content from it? Eric: parsing process to get it is difficult. S: ? But then you can't
Eric: shouldn't have to havce special parser for references (even though it's easy, it's not easy enough). Wants to process with XSLT. Shouildn't have non-XML markup in there. S: but we already do have non-XML stuff -- dates, etc. Also how would we define an unbounded number of (extra-biblical) ref schemes? Eric: Privilege just us; extra-biblicals can be done generically. E: Against "having two syntaxes in same thing" Troy: Would you make outreferences not contain their content? E: Yes; and you always auto-generate the content for display. P: Is the real problem how we generate the display text given the complicated reference string? E: Yes. S: after all the lookup of language-specific expansion of booknames, etc., breaking it at single-character punctuation isn't hard. E: basic principle of not having non-XML substructures within XML.
REJECTED
Specify way to transform punctuation of references, in a reference system declaration document.
Kees: Why are we using 4-char abbreviations for book names instead of SIL/UBS 3-character bookNames? Patrick: Because they're SBL. Could of course override by tweaking the schema. S: Yech. There are two big communities; one will need software. SIL never displays the 3-letter forms, though everybody has them memorized; originate in days of very constrained memory. What of Jewish forms? SBL has alternate forms for these. Everybody: not so big a deal. Consensus to go with 4-letter.
ACCEPTED
Steve: Underscore issue: To be ID/IDREF, we'd need initial letter, hence KNG1 instead of 1KNG etc. E: Can use schema? P: Can't guarantee uniqueness resolved between milestones, only within some ancestor's scope. E: key is no worse than ID for validation, so go with key and pitch the underscore. Can do this with compound key (refSys + ref).
ACCEPTED WITH LOUD APPLAUSE
Need spec to talk about controlled vocabulary being English. Define blind-interchange to be English.
ACCEPTED
Eric: Poetry: no poem tag. lg meant to be recursive to cover this. fix in spec.
type is open, so can handle Philippian & other hymns.
ACCEPTED
Patrick: Should we ever enumerate types? E: Yes, it's useful to have semi-open. If you go beyond it, is you can hope for a generic fallback.
Bob Batzinger: Consider whole letter included within paragraph, such as Ezra. XSEM would use blockquote (which includes salutation) for this, for prayers, peter's speech in acts, lord's prayer, liturgical formulae; other standalone blocks. P: combine quote and blockquote, adding these types? E: 1. author's decision is a statement that it can stand alone -- not just about length. 2. if use quote, you're back at milestones -- hard to format. S: Maybe get block format via making both milestones blocks, though it's ugly. E: Tried that, can do in one version of IE, not elsewhere. Consensus: add this.
ACCEPTED
P: Can it recurse? E checks whether there are examples. Include linegroup, but don't recurse.
ACCEPTED
E: Add salute to div for Pauline corpus? Also convenient to include salute, signed, and closer (as in TEI). If you have the container.
ACCEPTED
E: Lose q and qStart/qEnd? P: It's merely there to annoy Eric. Consensus: lose q.
ACCEPTED
E: What's groupLine -- gone, was error for lg.
AIP
Daud: aramaic issue: In NRSV, 3 different renderings for mentioned: Mark 5:41 ('which mean'), Matthew 27:33 ('[which means]'), 1C 16:22 maranatha -- come our lord'. These are all foreign, not mentioned.
AIP
Patrick, Steve: Define a namespace and namespace URI for us.
Steve: Make sure we have outRef attributes are on div, for use in extra-Biblical works. Yes, we do.
AIP.
---------------
Produce real lists and declarations for:
SBL style guide items
Bible versions
Person and place names (by canons?)
Front and back matter div types
---------------
Marketing, admin, organization:
Re-organize web-site. Make it easy to find download area. Create areas for archiving texts, schemas, authority lists, namespaces, tools, etc.
Clean up old email lists. Start a general 'osis-l' for discussing biblical text encoding and OSIS issues.
Get IP agreements from all WG members -- to public domain or to BTG with GPL, or something like that.
Develop liaison with USFM group to make sure mapping works well.
Set up training for key people; set up training workshops for users. Piggyback onto SBL, CBA, ACH?, CTC,....
Complete basic manual/tutorial. Online and print, with manual interconnected with passages. Index of problem passages.
---------------
Software issues:
Config Open Office for OSIS and make distribution
Work out Unicode font development project
XSLT to turn into HTML
Convertors to/from other formats: XSEM, ThML, LGM, HTML, Word
Develop Word styles and export macros to make easy.
Emacs PSGML mode for editing
Tweak Wendell's xslt into svg code to
Write CSS style sheets to load OSIS in IE and Mozilla; instruction sheet
Chapter and verse checker. Settable to choose canon. Check order, completeness, and non-duplication of references; check that chapters and books are also tagged. Confirm best-practices like enclosing chapters and books as divs, having the div tags just outside the matching milestones, etc.
Vocabulary correlation checker (cf Resnick's work) -- make sure lengths of verses mostly correspond across source/target (find sigma by checking many translations, and maybe weighting by language family); make sure key word occurrencess correlate (stats to be able to ignore inflection). Extract thesaurus by similar method.
--------------030806010007010004000501--