FYI, here&#39;s something TEI says about Stand-off Markup:<br><br>
<blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">It has been 
noted that stand-off markup has several
               advantages over embedded annotations.  In particular, it 
is
               possible to produce annotations of a text even when the 
source
               document is read-only. Furthermore, annotation files can 
be
               distributed without distributing the source text. Further
               advantages mentioned in the literature are that 
discontinuous
               segments of text can be combined in a single annotation, 
that
               independent parallel coders can produce independent
               annotations, and that different annotation files can 
contain
               different layers of information. Lastly, it has also been
               noted that this approach is elegant.
            
  <p><span id="d31e158401">
                  </span>But there are also several 
drawbacks. First, new stand-off
               annotated layers require a separate interpretation, and 
the
               layers — although separate — depend on each other.  
Moreover,
               although all of the information of the multiple 
hierarchies is
               included, the information may be difficult to access 
using
               generic methods.
            </p>
</blockquote>

            
            
<a href="http://www.tei-c.org/release/doc/tei-p5-doc/en/html/NH.html#NHSO">http://www.tei-c.org/release/doc/tei-p5-doc/en/html/NH.html#NHSO</a><br><br><div class="gmail_quote">On Sun, Jan 24, 2010 at 1:53 PM, Weston Ruter <span dir="ltr">&lt;<a href="mailto:westonruter@gmail.com">westonruter@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">To follow up again, here is the Open Siddur project&#39;s writeup on the XML schema their came up with (JLPTEI) and why they didn&#39;t go with OSIS. The problem of concurrent hierarchies was a major concern:<br>

<blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">

<p>The primary question then becomes: which structure should be encoded?
  Prose can be divided into paragraphs and sentences, poetic text can be
 divided into line groups and verse lines, lists into items and lists, 
etc. Many parts of the <i>siddur</i> have more than one structure on the
 same text!  XML assumes that a document has a pure hierarchical tree 
structure.  This suggests that XML is not an appropriate encoding 
technology for the <i>siddur</i>.  At the same time, XML encoding is 
nearly universally standard and more software tools support XML-based 
formats than other encoding formats.  One of the primary innovations of 
JLPTEI is its particular encoding of concurrent structural hierarchies. 
 While the idea is not novel, the implementation is.  The potential for 
the existence of concurrent structure is a guiding force in JLPTEI 
design.
</p><p>The disadvantage of JLPTEI&#39;s encoding solutions is that the 
archival form of the text is not immediately consumable by humans. We 
are forced to rely extensively on processing software to make the format
 editable and displayable.  The disadvantage, however, is balanced by 
the encoding format&#39;s extensibility and conservation of human labor.
</p><p>The Open Siddur intends to work within open standards whenever 
possible.  In choosing a basis for our encoding, we searched for 
available encoding standards that would suit our purposes.  We seriously
 considered using <a href="http://bibletechnologies.net/" title="http://bibletechnologies.net/" rel="nofollow" target="_blank">Open Scripture Information Standard</a> (OSIS), an XML 
format used for encoding bibles.  It was quickly discovered that 
representations of some of the more advanced features required to encode
 the liturgy (such as those discussed above) would have to be &quot;hacked&quot; 
on top of the standard.  The <a href="http://www.tei-c.org/" title="http://www.tei-c.org" rel="nofollow" target="_blank">Text 
Encoding Initiative</a> (TEI) XML format is a de-facto standard within 
the digital humanities community.  It is also is specified in 
well-documented texts, is actively supported by tools, and has a large 
community built around its use and development.  Further, the standard 
is deliberately extensible using a relatively simple mechanism.  The TEI
 was therefore a natural choice as a basis for our encoding.
</p></blockquote>From &lt;<a href="http://wiki.jewishliturgy.org/JLPTEI" target="_blank">http://wiki.jewishliturgy.org/JLPTEI</a>&gt;<div><div></div><div class="h5"><br><br><div class="gmail_quote">On Sun, Jan 24, 2010 at 12:37 AM, Weston Ruter <span dir="ltr">&lt;<a href="mailto:westonruter@gmail.com" target="_blank">westonruter@gmail.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Attached is an example of what the ESV could look like as the result of a web service API response for 1 John 5:7-8, including virtual elements and stand-off markup. The relevant fragment:<br>



<br><span style="font-family: courier new,monospace;">&lt;concurrent&gt;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">    &lt;!--</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    @virtual can be &quot;start&quot;, &quot;end&quot;, &quot;both&quot;, or &quot;none&quot; (default)</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    target attribute used by Open Siddur; Efraim Feinstein notes range()</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    is a TEI-defined XPointer scheme:</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    <a href="http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATS" target="_blank">http://www.tei-c.org/release/doc/tei-p5-doc/en/html/SA.html#SATS</a></span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    Alternative would be to use @sID and @eID</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    --&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;p virtual=&quot;both&quot; target=&quot;#range(w6200500701, w6200500812)&quot; /&gt;&lt;!--sID=&quot;w6200500701&quot; eID=&quot;w6200500706b&quot;--&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;verse osisID=&quot;1John.5.7&quot; target=&quot;#range(h6200500601, p6200500706)&quot; /&gt;&lt;!--sID=&quot;w6200500701&quot; eID=&quot;p6200500706&quot;--&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;verse osisID=&quot;1John.5.8&quot; target=&quot;#range(w6200500801, p6200500812)&quot; /&gt;&lt;!--sID=&quot;w6200500801&quot; eID=&quot;p6200500812&quot;--&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">&lt;/concurrent&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">&lt;content&gt;&lt;!-- isn&#39;t @scope=&quot;1John.5.7-1John.5.8&quot; redundant here? --&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;title ID=&quot;h6200500601&quot; canonical=&quot;false&quot; virtual=&quot;true&quot;&gt;Testimony Concerning the Son of God&lt;/title&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500701&quot;&gt;For&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500702&quot;&gt;there&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500703&quot;&gt;are&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500704&quot;&gt;three&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500705&quot;&gt;that&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500706&quot;&gt;testify&lt;/w&gt;&lt;w ID=&quot;p6200500706&quot;&gt;:&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500801&quot;&gt;the&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500802&quot;&gt;Spirit&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500803&quot;&gt;and&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500804&quot;&gt;the&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500805&quot;&gt;water&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500806&quot;&gt;and&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500807&quot;&gt;the&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500808&quot;&gt;blood&lt;/w&gt;&lt;w ID=&quot;p6200500808&quot;&gt;;&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500809&quot;&gt;and&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500810&quot;&gt;these&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500811&quot;&gt;three&lt;/w&gt;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">    &lt;w ID=&quot;w6200500812&quot;&gt;agree&lt;/w&gt;&lt;w ID=&quot;w6200500812&quot;&gt;.&lt;/w&gt;</span><br style="font-family: courier new,monospace;">




<span style="font-family: courier new,monospace;">&lt;/content&gt;</span><div><div></div><div><br><br><br><br><div class="gmail_quote">On Thu, Jan 21, 2010 at 9:40 AM, Weston Ruter <span dir="ltr">&lt;<a href="mailto:westonruter@gmail.com" target="_blank">westonruter@gmail.com</a>&gt;</span> wrote:<br>




<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Troy:<div><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">




I did say that since OSIS allows different ways to mark the same
structure, we have an importer which attempts to accept any valid OSIS
doc and _normalizes_ that doc into a form of OSIS we find easiest for
our engine to process.  It is still OSIS, just a form of OSIS with all
structures represented in a single way.<br></blockquote></div><div><br>Thank you for clarifying this, and also for sharing some of this history behind the development of OSIS.<br><br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">





[We chose to] augment the specification with a &#39;best practices&#39; doc which recommends
a single specific method for encoding OSIS.<br></blockquote> <br>I don&#39;t think I have seen this best practices doc. Is this something you use internally at CrossWire as part of your importer script? Could you direct me to it? I like the approach you took, allowing varying OSIS encodings but recommending only one of them. This is similar to the development of XHTML 1.0 dialects, where you are allowed to use the Transitional doctype, but the Strict doctype is recommended. Doing this for OSIS could answer the need for an unambiguous single markup language. The best practices document would need to contain the practices that are endorsed by at least the majority of players; the others could abstain and still use their preferred (deprecated) dialect of OSIS. Along with this best practices doc, an official normalizer script that translates OSIS into the recommended encoding would be great.<br>





<br>I look forward to your thoughts about stand-off markup encoding of OSIS, especially how well it might serve as the new recommended way to unambiguously encode OSIS.<br><br>Thanks!<br>Weston<br><br></div><br><div class="gmail_quote">





2010/1/19 Troy A. Griffitts <span dir="ltr">&lt;<a href="mailto:scribe@crosswire.org" target="_blank">scribe@crosswire.org</a>&gt;</span><div><div></div><div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">





Weston Ruter wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
... Troy, as you&#39;ve said before, you can&#39;t actually use OSIS as your raw data format at CrossWire because an OSIS document can be authored in many different ways and so there is much more programming logic that is needed to handle all of the possible OSIS styles.<br>






</blockquote>
<br>
Hey Weston,<br>
<br>
Hope to have time for a thoughtful response to more of your suggestions, but just wanted to clear a couple things up first:<br>
<br>
I hope I never implied that we can&#39;t/don&#39;t use OSIS internally as our primary markup standard.<br>
<br>
I did say that since OSIS allows different ways to mark the same structure, we have an importer which attempts to accept any valid OSIS doc and _normalizes_ that doc into a form of OSIS we find easiest for our engine to process.  It is still OSIS, just a form of OSIS with all structures represented in a single way.<br>






<br>
Even so, we still don&#39;t use any plain text format as our &quot;raw data format&quot;.  We typically compress and index documents when they are imported into our engine.  You can ask our engine for OSIS, HTML, RTF, GBF, ThML, or plaintext and it will do its best to give you the data in the requested format.<br>






<br>
None of this to argue against your point: OSIS has multiple ways to encode a single structure in a document.<br>
<br>
The real answer to this is not technical.  I too am frustrated with this.  But many people working at many organizations were consulted when developing the OSIS specification.  They gave great insights to how they work.  Sometimes they even made demands with an ultimatum that they would absolutely not use the specification if a certain feature was not added to the spec.<br>






<br>
OSIS could have been technically finished in less than a year.  It took us 3 years to get buy-in from all the participating organizations.<br>
<br>
In the end, the purpose of OSIS was to build collaboration between organizations.  We could have developed a much easier to use technical specification which no one would have used, or conceded to demands to gain buy-in, and augment the specification with a &#39;best practices&#39; doc which recommends a single specific method for encoding OSIS.  We chose the later.<br>






<br>
Implementing code against the spec now, it makes our importer a pain in the butt to write, but in the end, we get what we want: a single OSIS style that our engine knows how to work with, and multiple supporting organizations producing OSIS documents.<br>





<font color="#888888">
<br>
<br>
Troy.</font><div><div></div><div><br>
<br>
<br>
<br>
If we could define a single document structure, however, one<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
that is a subset of the freedom that OSIS provides (perhaps taking cues from OXES), we could then have an XML format for scripture that would be suited for efficient interchange and application traversal.<br>
<br>
Currently we have the problem of two overlapping hierarchies: BSP and BCV. However, there could be potentially multiple versification systems, so there could be even more than two overlapping hierarchies, probably why the &lt;p&gt; element isn&#39;t currently milestonable. To get around the problem of overlapping hierarchies, what if we introduced stand-off markup into the equation? The words of scripture themselves could all be located in a flat structure as siblings; then in the header there could be multiple CONCUR sections (views) that list out the elements which belong to the various parts of the hierarchies<br>






<br>
For example, the current approach:<br>
<br>
&lt;p&gt;<br>
    &lt;verse osisID=&quot;Example.1.1&quot; sID=&quot;Example.1.1&quot; /&gt;<br>
    &lt;w id=&quot;w1&quot;&gt;Then&lt;/w&gt;<br>
    &lt;w id=&quot;w2&quot;&gt;he&lt;/w&gt;<br>
    &lt;w id=&quot;w3&quot;&gt;said&lt;/w&gt;&lt;w id=&quot;p1&quot;&gt;,&lt;/w&gt;<br>
    &lt;q marker=&quot;“&quot; sID=&quot;Example.1.1.q1&quot; /&gt;<br>
        &lt;w id=&quot;w4&quot;&gt;Let&lt;/w&gt;<br>
        &lt;w id=&quot;w5&quot;&gt;us&lt;/w&gt;<br>
        &lt;w id=&quot;w6&quot;&gt;go&lt;/w&gt;&lt;w id=&quot;p2&quot;&gt;...&lt;/w&gt;<br>
&lt;/p&gt;<br>
&lt;p&gt;<br>
    &lt;w id=&quot;w7&quot;&gt;but&lt;/w&gt;<br>
    &lt;verse eID=&quot;Example.1.1&quot; /&gt;<br>
    &lt;verse osisID=&quot;Example.1.2&quot; sID=&quot;Example.1.2&quot;/&gt;<br>
    &lt;w id=&quot;w8&quot;&gt;don&#39;t&lt;/w&gt;<br>
    &lt;w id=&quot;w9&quot;&gt;forget&lt;/w&gt;<br>
    &lt;w id=&quot;w10&quot;&gt;your&lt;/w&gt;<br>
    &lt;w id=&quot;w11&quot;&gt;backpack&lt;/w&gt;&lt;w id=&quot;p3&quot;&gt;.&lt;/w&gt;<br>
    &lt;q marker=&quot;”&quot; eID=&quot;Example.1.1.q1&quot; /&gt;<br>
    &lt;verse eID=&quot;Example.1.2&quot; /&gt;<br>
&lt;/p&gt;<br>
<br>
<br>
<br>
Could instead appear as (I&#39;m making up these element names):<br>
<br>
&lt;concur&gt;<br>
    &lt;view type=&quot;verse&quot; osisID=&quot;Example.1.1&quot; xpointer=&quot;range(#w1, #w7)&quot; /&gt;<br>
    &lt;view type=&quot;verse&quot; osisID=&quot;Example.1.2&quot; xpointer=&quot;range(#w8, #q2)&quot; /&gt;<br>
    &lt;view type=&quot;quote&quot; xpointer=&quot;range(#q1, #q2)&quot; /&gt;<br>
    &lt;view type=&quot;para&quot;  xpointer=&quot;range(#w1, #p2)&quot; /&gt;<br>
    &lt;view type=&quot;para&quot;  xpointer=&quot;range(#w7, #q2)&quot; /&gt;<br>
&lt;/concur&gt;<br>
&lt;content&gt;<br>
    &lt;w id=&quot;w1&quot;&gt;Then&lt;/w&gt;<br>
    &lt;w id=&quot;w2&quot;&gt;he&lt;/w&gt;<br>
    &lt;w id=&quot;w3&quot;&gt;said&lt;/w&gt;&lt;w id=&quot;p1&quot;&gt;,&lt;/w&gt;<br>
    &lt;w id=&quot;q1&quot;&gt;“&lt;/w&gt;&lt;w id=&quot;w4&quot;&gt;Let&lt;/w&gt;<br>
    &lt;w id=&quot;w5&quot;&gt;us&lt;/w&gt;<br>
    &lt;w id=&quot;w6&quot;&gt;go&lt;/w&gt;&lt;w id=&quot;p2&quot;&gt;...&lt;/w&gt;<br>
    &lt;w id=&quot;w7&quot;&gt;but&lt;/w&gt;<br>
    &lt;w id=&quot;w8&quot;&gt;don&#39;t&lt;/w&gt;<br>
    &lt;w id=&quot;w9&quot;&gt;forget&lt;/w&gt;<br>
    &lt;w id=&quot;w10&quot;&gt;your&lt;/w&gt;<br>
    &lt;w id=&quot;w11&quot;&gt;backpack&lt;/w&gt;&lt;w id=&quot;p3&quot;&gt;.&lt;/w&gt;&lt;w id=&quot;q2&quot;&gt;”&lt;/w&gt;<br>
&lt;/content&gt;   <br>
By structuring a document like this, multiple overlapping hierarchies can be cleanly defined, although they are separated from the underlying content: this however, provides the benefit of clearing up the confusion as to where the &lt;verse&gt;, &lt;p&gt;, and &lt;q&gt; elements should be placed: in the concur section, they each can share references to the same content elements and so their boundaries are specified at the exact same location. This means that XML processors would be able to consistently handle each of the hierarchies as they interweave throughout the content data.<br>






<br>
Efraim Feinstein and James Tauber introduced me to this approach to structuring markup. See also: <a href="http://www.tei-c.org/Guidelines/P4/html/NH.html#NHCO" target="_blank">http://www.tei-c.org/Guidelines/P4/html/NH.html#NHCO</a><br>






<br>
Weston<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div></div></div><br>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>