Concurrent hierarchies

From Open Siddur Project Development Wiki

Jump to: navigation, search

The text repository contains an unordered set of text segments. A selection incorporates segments from the text repository by reference and imposes an order on them.

A view represents a single structural hierarchy. Each view is attached to a selection by being contained within the same j:concurrent element.

Contents

Defining a selection

The j:selection element defines a selection, which is simply a collection of references into the text repository. The references are made using tei:ptr elements, whose @target attributes reference the segments. If an external resource has to be included in a specific place, it must be referenced using a tei:ptr whose @target attribute references the external resource. Each pointer in the selection list must have its own identifier.

Example

The example is the selection from the Dayyenu example cited above:

<j:selection>
  <tei:ptr xml:id="se1" target="#d14e3207"/>
  <tei:ptr xml:id="se2" target="#d14e3214"/>
  <tei:ptr xml:id="se3" target="#d14e3223"/>
  <tei:ptr xml:id="se4" target="#d14e3232"/>
  <tei:ptr xml:id="se5" target="#d14e3244"/>
  <tei:ptr xml:id="se6" target="#d14e3251"/>
  <tei:ptr xml:id="se7" target="#d14e3262"/>
  <tei:ptr xml:id="se8" target="#d14e3244"/>
  <tei:ptr xml:id="se9" target="#d14e3273"/>
  <tei:ptr xml:id="se10" target="#d14e3283"/>
  <tei:ptr xml:id="se11" target="#d14e3244"/>
  <tei:ptr xml:id="se12" target="#d14e3295"/>
  <tei:ptr xml:id="se13" target="#d14e3304"/>
  <tei:ptr xml:id="se14" target="#d14e3244"/>
  <tei:ptr xml:id="se15" target="#d14e3321"/>
  <tei:ptr xml:id="se16" target="#d14e3334"/>
  <tei:ptr xml:id="se17" target="#d14e3244"/>
  <tei:ptr xml:id="se18" target="#d14e3350"/>
  <tei:ptr xml:id="se19" target="#d14e3363"/>
  <tei:ptr xml:id="se20" target="#d14e3244"/>
  <tei:ptr xml:id="se21" target="#d14e3378"/>
  <tei:ptr xml:id="se22" target="#d14e3389"/>
  <tei:ptr xml:id="se23" target="#d14e3244"/>
  <tei:ptr xml:id="se24" target="#d14e3403"/>
  <tei:ptr xml:id="se25" target="#d14e3414"/>
  <tei:ptr xml:id="se26" target="#d14e3244"/>
  <tei:ptr xml:id="se27" target="#d14e3433"/>
  <tei:ptr xml:id="se28" target="#d14e3448"/>
  <tei:ptr xml:id="se29" target="#d14e3244"/>
  <tei:ptr xml:id="se30" target="#d14e3462"/>
  <tei:ptr xml:id="se31" target="#d14e3473"/>
  <tei:ptr xml:id="se32" target="#d14e3244"/>
  <tei:ptr xml:id="se33" target="#d14e3490"/>
  <tei:ptr xml:id="se34" target="#d14e3503"/>
  <tei:ptr xml:id="se35" target="#d14e3244"/>
  <tei:ptr xml:id="se36" target="#d14e3519"/>
  <tei:ptr xml:id="se37" target="#d14e3532"/>
  <tei:ptr xml:id="se38" target="#d14e3244"/>
  <tei:ptr xml:id="se39" target="#d14e3549"/>
  <tei:ptr xml:id="se40" target="#d14e3562"/>
  <tei:ptr xml:id="se41" target="#d14e3244"/>
  <tei:ptr xml:id="se42" target="#d14e3576"/>
  <tei:ptr xml:id="se43" target="#d14e3588"/>
  <tei:ptr xml:id="se44" target="#d14e3244"/>
  <!-- al ahat...-->
  <tei:ptr xml:id="se45" target="#d14e3608"/>
  <tei:ptr xml:id="se46" target="#d14e3617"/>
  <tei:ptr xml:id="se47" target="#d14e3624"/>
  <tei:ptr xml:id="se48" target="#d14e3631"/>
  <tei:ptr xml:id="se49" target="#d14e3639"/>
  <tei:ptr xml:id="se50" target="#d14e3648"/>
  <tei:ptr xml:id="se51" target="#d14e3655"/>
  <tei:ptr xml:id="se52" target="#d14e3662"/>
  <tei:ptr xml:id="se53" target="#d14e3673"/>
  <tei:ptr xml:id="se54" target="#d14e3684"/>
  <tei:ptr xml:id="se55" target="#d14e3693"/>
  <tei:ptr xml:id="se56" target="#d14e3702"/>
  <tei:ptr xml:id="se57" target="#d14e3715"/>
  <tei:ptr xml:id="se58" target="#d14e3724"/>
  <tei:ptr xml:id="se59" target="#d14e3735"/>
  <tei:ptr xml:id="se60" target="#d14e3747"/>
  <tei:ptr xml:id="se61" target="#d14e3758"/>
  <tei:ptr xml:id="se62" target="#d14e3767"/>
  <tei:ptr xml:id="se63" target="#d14e3778"/>
</j:selection>

Defining a view

A view represents a single hierarchy that is defined over a selection. Structural hierarchies include paragraphs, sentences, verse line groups, verse lines, lists and items, choices with options, and translation linkages.

Each view is represented by a j:view element inside the same j:concurrent containing its own j:selection. The @type attribute on the j:view element specifies what type of hierarchy is represented inside. Valid values include:

  • p (paragraph, possibly with sentences)
  • s (sentences)
  • lg (line group with lines)
  • list (lists with items)
  • choice (choices with options)

Each element inside the view references pointers in the j:selection. If these references refer to sequential targets in the selection, the TEI-defined XPointer range scheme may be used.

Only the parts of the selection that can be represented by the view must have pointers.

When the selection includes pointers to external resources, it is important to ensure that the external resource's hierarchy makes sense in whatever place it is given in the view. If the external resource cannot be represented in the view, its pointer should be omitted from the view.

Example

In the Dayyenu example, there are three hierarchies: a paragraph-sentence hierarchy, a line group-line hierarchy (the song), and a list-item hierarchy (the paragraph "על אחת כמה וכמה"). The prose (paragraph-sentence) hierarchy overlaps the remaining two.

In the example below, the sentence hierarchy is represented as a separate view from the paragraph hierarchy. The paragraph hierarchy references the sentence view.

<j:concurrent>
  <!-- selection goes here -->
  <j:view type="p">
    <p xml:id="p1"><ptr target="#s1"/></p>
    <p xml:id="p2"><ptr target="#range(s2, s15)"/></p>
    <p xml:id="p3"><ptr target="#range(s16,s31)"/></p>
  </j:view>
  <j:view type="s">
    <s xml:id="s1"><ptr target="#se1 #se2"/></s>
    <s xml:id="s2"><ptr target="#range(se3, se5)"/></s>
    <s xml:id="s3"><ptr target="#range(se6, se8)"/></s>
    <s xml:id="s4"><ptr target="#range(se9, se11)"/></s>
    <s xml:id="s5"><ptr target="#range(se12, se14)"/></s>
    <s xml:id="s6"><ptr target="#range(se15, se17)"/></s>
    <s xml:id="s7"><ptr target="#range(se18, se20)"/></s>
    <s xml:id="s8"><ptr target="#range(se21, se23)"/></s>
    <s xml:id="s9"><ptr target="#range(se24, se26)"/></s>
    <s xml:id="s10"><ptr target="#range(se27, se29)"/></s>
    <s xml:id="s11"><ptr target="#range(se30, se32)"/></s>
    <s xml:id="s12"><ptr target="#range(se33, se35)"/></s>
    <s xml:id="s13"><ptr target="#range(se36, se38)"/></s>
    <s xml:id="s14"><ptr target="#range(se39, se41)"/></s>
    <s xml:id="s15"><ptr target="#range(se42, se44)"/></s>
    <!-- al ahat -->
    <s xml:id="s16"><ptr target="#range(se45, se47)"/></s>
    <s xml:id="s17"><ptr target="#se48"/></s>
    <s xml:id="s18"><ptr target="#se49"/></s>
    <s xml:id="s19"><ptr target="#se50"/></s>
    <s xml:id="s20"><ptr target="#se51"/></s>
    <s xml:id="s21"><ptr target="#se52"/></s>
    <s xml:id="s22"><ptr target="#se53"/></s>
    <s xml:id="s23"><ptr target="#se54"/></s>
    <s xml:id="s24"><ptr target="#se55"/></s>
    <s xml:id="s25"><ptr target="#se56"/></s>
    <s xml:id="s26"><ptr target="#se57"/></s>
    <s xml:id="s27"><ptr target="#se58"/></s>
    <s xml:id="s28"><ptr target="#se59"/></s>
    <s xml:id="s29"><ptr target="#se60"/></s>
    <s xml:id="s30"><ptr target="#se61"/></s>
    <s xml:id="s31"><ptr target="#se62 #se63"/></s>
  </j:view>
  <j:view type="lg">
    <lg xml:id="lg1">
      <l xml:id="l1"><ptr target="#se3"/></l>
      <l xml:id="l2"><ptr target="#se4"/></l>
      <l xml:id="l3"><ptr target="#se5"/></l>
    </lg>
    <lg xml:id="lg2">
      <l xml:id="l4"><ptr target="#se6"/></l>
      <l xml:id="l5"><ptr target="#se7"/></l>
      <l xml:id="l6"><ptr target="#se8"/></l>
    </lg>
    <lg xml:id="lg3">
      <l xml:id="l7"><ptr target="#se9"/></l>
      <l xml:id="l8"><ptr target="#se10"/></l>
      <l xml:id="l9"><ptr target="#se11"/></l>
    </lg>
    <lg xml:id="lg4">
      <l xml:id="l10"><ptr target="#se12"/></l>
      <l xml:id="l11"><ptr target="#se13"/></l>
      <l xml:id="l12"><ptr target="#se14"/></l>
    </lg>
    <lg xml:id="lg5">
      <l xml:id="l13"><ptr target="#se15"/></l>
      <l xml:id="l14"><ptr target="#se16"/></l>
      <l xml:id="l15"><ptr target="#se17"/></l>
    </lg>
    <lg xml:id="lg6">
      <l xml:id="l16"><ptr target="#se18"/></l>
      <l xml:id="l17"><ptr target="#se19"/></l>
      <l xml:id="l18"><ptr target="#se20"/></l>
    </lg>
    <lg xml:id="lg7">
      <l xml:id="l19"><ptr target="#se21"/></l>
      <l xml:id="l20"><ptr target="#se22"/></l>
      <l xml:id="l21"><ptr target="#se23"/></l>
    </lg>
    <lg xml:id="lg8">
      <l xml:id="l22"><ptr target="#se24"/></l>
      <l xml:id="l23"><ptr target="#se25"/></l>
      <l xml:id="l24"><ptr target="#se26"/></l>
    </lg>
    <lg xml:id="lg9">
      <l xml:id="l25"><ptr target="#se27"/></l>
      <l xml:id="l26"><ptr target="#se28"/></l>
      <l xml:id="l27"><ptr target="#se29"/></l>
    </lg>
    <lg xml:id="lg10">
      <l xml:id="l28"><ptr target="#se30"/></l>
      <l xml:id="l29"><ptr target="#se31"/></l>
      <l xml:id="l30"><ptr target="#se32"/></l>
    </lg>
    <lg xml:id="lg11">
      <l xml:id="l31"><ptr target="#se33"/></l>
      <l xml:id="l32"><ptr target="#se34"/></l>
      <l xml:id="l33"><ptr target="#se35"/></l>
    </lg>
    <lg xml:id="lg12">
      <l xml:id="l34"><ptr target="#se36"/></l>
      <l xml:id="l35"><ptr target="#se37"/></l>
      <l xml:id="l36"><ptr target="#se38"/></l>
    </lg>
    <lg xml:id="lg13">
      <l xml:id="l37"><ptr target="#se39"/></l>
      <l xml:id="l38"><ptr target="#se40"/></l>
      <l xml:id="l39"><ptr target="#se41"/></l>
    </lg>
    <lg xml:id="lg14">
      <l xml:id="l40"><ptr target="#se42"/></l>
      <l xml:id="l41"><ptr target="#se43"/></l>
      <l xml:id="l42"><ptr target="#se44"/></l>
    </lg>
  </j:view>
  <j:view type="list">
    <list xml:id="list1">
      <item xml:id="item1"><ptr target="#se48"/></item>
      <item xml:id="item2"><ptr target="#se49"/></item>
      <item xml:id="item3"><ptr target="#se50"/></item>
      <item xml:id="item4"><ptr target="#se51"/></item>
      <item xml:id="item5"><ptr target="#se52"/></item>
      <item xml:id="item6"><ptr target="#se53"/></item>
      <item xml:id="item7"><ptr target="#se54"/></item>
      <item xml:id="item8"><ptr target="#se55"/></item>
      <item xml:id="item9"><ptr target="#se56"/></item>
      <item xml:id="item10"><ptr target="#se57"/></item>
      <item xml:id="item11"><ptr target="#se58"/></item>
      <item xml:id="item12"><ptr target="#se59"/></item>
      <item xml:id="item13"><ptr target="#se60"/></item>
      <item xml:id="item14"><ptr target="#se61"/></item>
      <item xml:id="item15"><ptr target="#se62 #se63"/></item>
    </list>
  </j:view>
</j:concurrent>


The Contributors to the Open Siddur Project, the copyright holder of this work, has published or hereby publishes it under the following licenses:
GNU head This work is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version. This work is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See version 3 of the GNU General Public License for more details.

Deutsch | Deutsch (Sie-Form) | English | Français | +/−

Creative Commons license
Creative Commons Attribution Creative Commons Share Alike
This file is licensed under the Creative Commons Attribution ShareAlike 3.0 License. In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it, and that you distribute it only under a license identical to this one. Official license

العربية | Български | Català | Česky | Dansk | Deutsch | Ελληνικά | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | עברית | Hrvatski | Magyar | Italiano | 日本語 | 한국어 | Македонски | Plattdüütsch | Nederlands | Polski | Português | Русский | Slovenčina | Svenska | తెలుగు | ไทย | Tiếng Việt | Українська | ‪中文(简体)‬ | ‪中文(繁體)‬ | +/−

You may select the license of your choice.
Personal tools
NAVIGATION