<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:nkjp="http://www.nkjp.pl/ns/1.0"
  xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:f="func"
  xmlns:fn="http://www.w3.org/2005/xpath-functions"
  xmlns:map="http://www.w3.org/2005/xpath-functions/map" exclude-result-prefixes="xs f fn map nkjp tei"
  version="3.0" expand-text="yes">


<!--           PARAMETERS           -->

  <xsl:param name="sourceDir" select="'test/resources/nkjp2korap_sample2'" as="xs:string"/>
  <!-- the directory containing NKJP files, in the form of a collection of text-level dirs
       (that is how we know both the $corpusID and the $docID) -->

  <xsl:param name="targetDir" select="'test/output'" as="xs:string"/>
  <!--  where the corpus/document/text/annotations hierarchy is going to be created -->
  
  <xsl:param name="skip_docID" as="xs:string">
    <xsl:value-of select="'HellerPodgladanie,IsakowiczZaleskiMoje,KolakowskiOco,MysliwskiKamien,WilkWilczy,ZycieWarszawy_Zycie'"/>
  </xsl:param>
  <!--  comma-separated list of document IDs to be skipped from processing
           example: HellerPodgladanie,KOT
          no functionality beyond string identity is supported
          (this is just for testing)  -->
  

<!--          VARIABLES (= constants...)            -->

  <xsl:variable name="corpusID" as="xs:string" select="'NKJP'" static="yes"/>
  <xsl:variable name="docID" as="xs:string" select="'NKJP'" static="yes"/>

  <xsl:variable name="targetCorpusDir_slashed" select="$targetDir || '/' || $corpusID || '/'" as="xs:string"/>

  <xsl:variable name="systemDoctypeI5" as="xs:string"
    select="'http://corpora.ids-mannheim.de/I5/DTD/i5.dtd'" static="true"/>

  <xsl:variable name="publicDoctypeI5" as="xs:string" static="true"
    select="'-//IDS//DTD I5 1.0//EN'"/>

  <xsl:variable name="KorAP_namespace" static="true" as="xs:string"
    select="'http://ids-mannheim.de/ns/KorAP'"/>

  <xsl:variable name="KorAP-XML_version" select="'KorAP-0.4'" as="xs:string" static="true"/>
  <!--  this is only a bit funny -->

  <xsl:variable name="collection_params" as="xs:string" static="yes"
    select="'recurse=yes;validation=strip;select=text.xml;content-type=application/xml;on-error=warning;xinclude=yes'"
  />
  <!-- see https://www.saxonica.com/documentation11/index.html#!sourcedocs/collections/collection-directories -->

  <xsl:variable name="collection_of_text" select="collection($sourceDir || '?' || $collection_params)" as="document-node()+"/>
  
<!-- these two 'flags' are meant to increase the readability of the code
     they are used for the output of the calc_offsets() function, where the 
     returned value is a sequence, (start, end) 
  
  remove together with the function!
  
  --> 
  <xsl:variable name="OFFSET_START" as="xs:integer" static="yes" select="1"/>
  <xsl:variable name="OFFSET_END" as="xs:integer" static="yes" select="2"/>


<!--           MODES               -->

  <xsl:mode name="corpus" on-no-match="deep-skip"/>
  <xsl:mode name="text" on-no-match="deep-skip"/>
  <xsl:mode name="header-text" on-no-match="text-only-copy"/>
  <xsl:mode use-accumulators="#all"/>
  
  <xsl:accumulator name="elem-offset-seq" as="map(xs:string, item())+" initial-value="(map{})">
    <xsl:accumulator-rule match="tei:w[parent::tei:seg[count(@nkjp:rejected) eq 0]]" phase="end">
      <xsl:variable name="previous_index" as="xs:integer">
        <xsl:choose>
          <xsl:when test="count($value) eq 1">
            <xsl:sequence select="0"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:sequence select="map:get(head(reverse($value)),'end')"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      
<!--<xsl:message select="'previous_index:' || $previous_index"></xsl:message>-->
      
      <xsl:sequence select="
          $value,
          map {
            'id': string(parent::tei:seg/@xml:id),
            'start': $previous_index + xs:integer(f:is_preceded_by_ws(parent::tei:seg)),
            'end': string-length()
          }"/>
    </xsl:accumulator-rule>
  </xsl:accumulator>


  <!--           FUNCTIONS             -->

  <xsl:function name="f:compute_nesting" as="xs:integer">
    <xsl:param name="node" as="element()"/>
    <xsl:variable name="rel_depth"
      select="count($node/ancestor-or-self::*[local-name(.) ne 'TEI'][local-name(.) ne 'teiCorpus'])"
      as="xs:integer"/>
    <xsl:sequence select="$rel_depth"/>
  </xsl:function>

<xsl:function name="f:is_preceded_by_ws" as="xs:boolean">
    <xsl:param name="node" as="element()"/>
  <xsl:choose>
    <xsl:when test="local-name($node) eq 'seg'">
        <xsl:sequence
          select="not(exists($node/@nkjp:nps)) and not($node[count(preceding-sibling::tei:seg) eq 0]/ancestor::tei:s[count(preceding-sibling::tei:s) eq 0]/ancestor::tei:p[count(preceding-sibling::tei:p) eq 0])"
        />
      <!--and not($node/ancestor::tei:s[count(preceding-sibling::tei:s) eq 0]/ancestor::tei:p[count(preceding-sibling::tei:p) eq 0])-->
    
    </xsl:when>
    <xsl:when test="local-name($node) eq 's'">
        <xsl:message select="'s - prec s:  ' || $node/preceding-sibling::tei:s"/>
      <xsl:message select="'same s - prec p:  ' || $node/ancestor::tei:p[1]/preceding-sibling::tei:p ||  '&#10;'"/>
      
      <xsl:sequence select="exists($node/preceding-sibling::tei:s) or exists($node/ancestor::tei:p[1]/preceding-sibling::tei:p)"/>
    </xsl:when>
    <xsl:when test="local-name($node) eq 'p'">
      <xsl:message select="'p : ' || $node/preceding-sibling::tei:p"></xsl:message>
      <xsl:sequence select="exists($node/preceding-sibling::tei:p)"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:message terminate="yes" select="'Wrong argument passed to f:is_preceded_by_ws(): ' || local-name($node) || ' Only p, s, seg are allowed.'"></xsl:message>
    </xsl:otherwise>
  </xsl:choose>
</xsl:function>


<!--             UTILITY TEMPLATES              -->

  <xsl:template match="@default" mode="#all"/>
  <!--  this is to delete some auto-inserted attribute throughout -->

  <xsl:template match="tei:w" mode="#all"/> 
<!-- NKJP-SGJP has apparently resigned from standoff representations by adding <w> everywhere;
     for the time being, we'll just stick to the standoff offsets, although that may need to 
     be revisited as the NKJP format has now began to stray from its schemas and assumptions -->

  <!--<xsl:template match="tei:choice" mode="#all"/>-->
<!--  THIS IS ONLY TEMPORARY, 
    because an interesting challenge came up where I will 
    probably have to abandon straightforward mapping because of TOKENIZATION alternatives;
  
  but now, I just want this stylesheet to work, even if it eats some occasional token (which it now does, 'komuś' and 'czym' vanish)
  -->
  
    <!--fall-thru-->
  <xsl:template match="tei:choice" mode="struct">
    <xsl:apply-templates select="descendant::tei:seg"/>
  </xsl:template>

  <!--             MAIN PROCESSING              -->


  <xsl:template name="xsl:initial-template">
    <xsl:variable name="IDs_to_skip" select="tokenize($skip_docID,',')" as="xs:string*"/>

    <!-- we only want to call the template below once, and we process a random NKJP corpus file for that purpose, 
      because all we need is the main corpus header, and we can (should) get to that from any NKJP corpus document -->
    <xsl:call-template name="create_corpus_header">
      <xsl:with-param name="text.xml" select="$collection_of_text[1]" as="document-node()"/>
      <xsl:with-param name="target" select="$targetCorpusDir_slashed || 'header.xml'" as="xs:string"/>
    </xsl:call-template>

    <xsl:for-each select="$collection_of_text">
      <xsl:variable name="my_dir" as="xs:string" select="replace(base-uri(),'/text\.xml','')"/>
      <xsl:variable name="my_textID" as="xs:string" select="tokenize($my_dir,'/')[last()]"/>
      <xsl:variable name="ann_morphosyntax.uri" select="$my_dir || '/ann_morphosyntax.xml'" as="xs:string"/>
      <xsl:variable name="ann_segmentation.uri" select="$my_dir || '/ann_segmentation.xml'" as="xs:string"/>
      
      <xsl:choose>
        <xsl:when test="$my_textID = $IDs_to_skip"/>
        <!--  this is a utility step, for when we want to ignore some texts for any reason (debugging, selective update)     -->
        
        <xsl:otherwise>

          <!--<xsl:message select="f:calc_offsets(doc($ann_segmentation.uri)//tei:body/tei:p[1]/tei:s[2]/tei:seg[1],false())"/>-->
          
<!--          <xsl:message select="doc($ann_segmentation.uri)//tei:body/tei:p[1]/tei:s[1]/tei:seg[1] || f:is_preceded_by_ws(doc($ann_segmentation.uri)//tei:body/tei:p[1]/tei:s[1]/tei:seg[1])"/>
          <xsl:message select="doc($ann_segmentation.uri)//tei:body/tei:p[1]/tei:s[1]/tei:seg[3] || f:is_preceded_by_ws(doc($ann_segmentation.uri)//tei:body/tei:p[1]/tei:s[1]/tei:seg[3])"/>
-->          
          <xsl:call-template name="process_single_sample">
            <xsl:with-param name="text.xml" as="document-node()" select="."/>
            <xsl:with-param name="ann_morphosyntax.xml" as="document-node()"
              select="doc($ann_morphosyntax.uri)"/>
            <xsl:with-param name="ann_segmentation.xml" as="document-node()"
              select="doc($ann_segmentation.uri)"/>
            <xsl:with-param name="my_textID" select="$my_textID" as="xs:string"/>
          </xsl:call-template>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
  </xsl:template>
  
  <xsl:template name="process_single_sample">
    <xsl:param name="text.xml" as="document-node()"/>
    <xsl:param name="ann_morphosyntax.xml" as="document-node()"/>
    <xsl:param name="ann_segmentation.xml" as="document-node()"/>
    <xsl:param name="my_textID" as="xs:string" select="'0-BAD_textID'"/>
    <!-- empty textID should never happen, but if it does, it will be signalled at the top of the output   -->
    
    <xsl:variable name="targetBaseDir" as="xs:string" select="$targetCorpusDir_slashed || $docID || '/' || $my_textID"/>
    
    <xsl:variable name="compoundID" as="xs:string"
      select="$corpusID || '_' || $docID || '.' || $my_textID"/>
    <!--  this is what occurs in the text and data layers as @docid -->
    
<!-- this is space devoted to recalculating word offsets on the basis of ann_segmentation.xml (rather than text.xml).
     The results should be available to all annotation files, so we prepare a map here and send it off to whichever 
     annotation layer needs it. -->
    
<!-- This is done is several steps, because I wanted to be able to look stuff up. There should probably be some 
      idiomatic way to reduce the memory footprint of these variables - I'll be happy to learn about it.  -->

    <!--<xsl:variable name="map_w" as="map(xs:untypedAtomic,item()+)">
      <xsl:variable name="segs" select="$ann_segmentation.xml/tei:teiCorpus/tei:TEI/tei:text/tei:body/tei:p/tei:s//tei:seg[count(@nkjp:rejected) eq 0]" as="element()+"/>
      <xsl:map>
        <xsl:for-each-group select="$segs" group-by="ancestor::tei:p[1]/@xml:id">
          <xsl:variable name="current-p" select="current-grouping-key()"/>
          <xsl:for-each-group select="current-group()" group-by="ancestor::tei:s[1]/@xml:id">
            <xsl:variable name="current-s" select="current-grouping-key()"/>
            <xsl:for-each select="current-group()">
              <xsl:map-entry key="@xml:id" select="$current-p, $current-s, position(), f:is_preceded_by_ws(.), normalize-space(tei:w)"/>  
            </xsl:for-each>
          </xsl:for-each-group>
        </xsl:for-each-group>
      </xsl:map>
    </xsl:variable>-->
    
    <!--<xsl:variable name="map_p-s-w" as="map(xs:untypedAtomic,item()+)">
      <xsl:map>
        <xsl:for-each-group select="map:keys($map_w)" group-by="map:get($map_w, .)[1]">
          <xsl:sort select="xs:integer(substring-before(substring-after(., 'segm_'), '.'))"
            order="ascending"/>
          <xsl:sort select="xs:integer(substring-before(substring-after(., '.'), '-'))"
            order="ascending"/>
          <xsl:variable name="current-p-pos" select="fn:position()" as="xs:integer"/>
          <!-\-  the above is used in the sentence loop, when we check if it's text-initial -\->
          <xsl:variable name="current-p" select="fn:current-grouping-key()" as="xs:string"/>  <!-\-xs:untypedAtomic-\->
          <xsl:variable name="p-length" select="
            sum(for $id in current-group()
            return
            string-length(map:get($map_w, $id)[5])) + count(current-group()) - xs:integer(position() ne 1) -
            count(fn:filter(current-group(), function ($w-id) {
            map:get($map_w, $w-id)[4] eq false()
            }))"/>
          <!-\-        The general algorithm is: 
            * count and sum the lengths of all the words
            * add 'whitespace' for all of them (= count them and add that), and then
            * subtract whitespace for those of them that are not actually preceded by it
            and if the 1st word is_preceded_by_ws then subtract 1
                because identifying that 1st word would require an extra step, we're taking a shortcut via position() - 
                and that strongly depends on the presence of the xsl:sort instructions -\->          
          
          <xsl:message select="'sum: ' || sum( for $id in current-group() return string-length(map:get($map_w, $id)[5]) )"/>
          <!-\-<xsl:message select="for $id in current-group() return (string-length(map:get($map_w, $id)[5]),map:get($map_w, $id)[4] )"/>-\->
          <xsl:message select="'cur-group count: ' || count(fn:current-group())"/>
          <!-\-<xsl:message select="fn:for-each(current-group(), function($w-id) { map:get($map_w,$w-id)[4] eq false() } )"></xsl:message>-\->
          <xsl:message select="'subtract:' || count(fn:filter(current-group(), function($w-id) { map:get($map_w,$w-id)[4] eq false() } ))"></xsl:message>
          <xsl:message select="'position: ' || position() || ', xs:integer(position() ne 1)=' || xs:integer(position() ne 1)"></xsl:message>
          <xsl:message select="'p-length: ' || $p-length"/>
          
          <xsl:map-entry key="current-grouping-key()" select="'p', position(), $p-length"/>
          
          <xsl:message select="'p: ', $current-p || ' pos:' || position(), current-group()"/>
          
          <xsl:for-each-group select="current-group()" group-by="map:get($map_w, .)[2]">
            <xsl:sort select="xs:integer(substring-before(substring-after(., 'segm_'), '.'))"
              order="ascending"/>
            <xsl:sort select="xs:integer(substring-before(substring-after(., '.'), '-'))"
              order="ascending"/>
            <xsl:variable name="current-s" select="fn:current-grouping-key()" as="xs:string"/>  <!-\-xs:untypedAtomic-\->
            <xsl:variable name="s-length" select="
              sum(for $id in current-group()
              return
              string-length(map:get($map_w, $id)[5])) + count(current-group()) - xs:integer($current-p-pos ne 1) -
              count(fn:filter(current-group(), function ($w-id) {
              map:get($map_w, $w-id)[4] eq false()
              }))"/>
            
            
            <xsl:map-entry key="current-grouping-key()" select="'s', position(), $s-length, $current-p"/>
            
            <xsl:message select="'s: ',  position(), current-group()"/>
            
            <xsl:for-each select="current-group()">
              <xsl:sort select="map:get($map_w, .)[3]" order="ascending"/>
              <xsl:map-entry key="." select="'w', position(), string-length(map:get($map_w, .)[5]), $current-s, map:get($map_w, .)[4]"/>
              <!-\-              <xsl:message select="map:get($map_w, .)[5]"/>-\->
            </xsl:for-each>
          </xsl:for-each-group>
        </xsl:for-each-group>
      </xsl:map>
    </xsl:variable>-->
    
    <!--<xsl:variable name="offsets-p" as="map(xs:untypedAtomic,item()+)">
      <xsl:map>
        <xsl:for-each select="
            fn:filter(map:keys($map_p-s-w), function ($ele) {
              map:get($map_p-s-w, $ele)[1] eq 'p'
            })">
          <xsl:sort select="map:get($map_p-s-w, .)[2]"/>

          <xsl:map-entry key="." select="map:get($map_p-s-w, .)[2]"/>


        </xsl:for-each>
      </xsl:map>
    </xsl:variable>-->
    
    

    
 <!--   <xsl:message select="'map_w size: ' || map:size($map_w)"/>
    <xsl:message select="'map_s-p size: ' || map:size($map_p-s-w)"/>
    <xsl:message select="'offsets size: ' || map:size($offsets-p)"/>-->
    
    
    <xsl:call-template name="create_data">
      <!--<xsl:with-param name="text.xml" select="$text.xml" as="document-node()"/>-->
      <xsl:with-param name="ann_segmentation.xml" select="$ann_segmentation.xml" as="document-node()"/>
      <xsl:with-param name="compoundID" select="$compoundID" as="xs:string"/>
      <xsl:with-param name="target" select="$targetBaseDir ||  '/data.xml'" as="xs:string"/>
    </xsl:call-template>

    <xsl:call-template name="create_struct">
      <xsl:with-param name="compoundID" select="$compoundID" as="xs:string"/>
      <xsl:with-param name="ann_segmentation.xml" select="$ann_segmentation.xml"
        as="document-node()"/>
      <xsl:with-param name="target" select="$targetBaseDir ||  '/struct/structure.xml'" as="xs:string"
      />
      <!--<xsl:with-param name="offsets" select="$offsets" as="map(xs:string, xs:integer+)"/>-->
    </xsl:call-template>

<!--    <xsl:call-template name="create_morpho">
      <xsl:with-param name="text.xml" select="$text.xml" as="document-node()"/>
      <xsl:with-param name="compoundID" select="$compoundID" as="xs:string"/>
      <xsl:with-param name="ann_segmentation.xml" select="$ann_segmentation.xml"
        as="document-node()"/>
      <xsl:with-param name="ann_morphosyntax.xml" select="$ann_morphosyntax.xml"
        as="document-node()"/>
      <xsl:with-param name="target" select="$targetBaseDir ||  '/nkjp/morpho.xml'" as="xs:string"/>
    </xsl:call-template>
-->
    <!--<xsl:call-template name="create_text_header">
      <xsl:with-param name="text.xml" select="$text.xml" as="document-node()"/>
      <xsl:with-param name="compoundID" select="$compoundID" as="xs:string"/>
      <xsl:with-param name="target" select="$targetBaseDir ||  '/header.xml'" as="xs:string"/>
    </xsl:call-template>-->

    <!--<xsl:message select="'size of offsets in process_single: ' || map:size($offsets)"/>-->

  </xsl:template>

  <!--   **************************        data.xml       *******************                -->

  <xsl:template name="create_data">
    <!--<xsl:param name="text.xml" as="document-node()"/>-->
    <xsl:param name="ann_segmentation.xml" as="document-node()"/>
    <xsl:param name="compoundID" as="xs:string"/>
    <xsl:param name="target" as="xs:string"/>
    <!-- create the data.xml file -->
    <xsl:result-document encoding="UTF-8" method="xml" indent="yes"
      xpath-default-namespace="{$KorAP_namespace}" href="{$target}">

      <xsl:processing-instruction name="xml-model">href=&quot;text.rng&quot; type=&quot;application/xml&quot; schematypens=&quot;http://relaxng.org/ns/structure/1.0&quot;</xsl:processing-instruction>
      <xsl:element name="raw_text" namespace="{$KorAP_namespace}">
        <xsl:attribute name="docid" select="$compoundID"/>
        <xsl:element name="metadata" namespace="{$KorAP_namespace}">
          <xsl:attribute name="file" select="'metadata.xml'"/>
        </xsl:element>

        <xsl:element name="text" namespace="{$KorAP_namespace}">
          <xsl:variable name="content" as="xs:string+">
            <xsl:for-each select="$ann_segmentation.xml/tei:teiCorpus/tei:TEI/tei:text/tei:body/tei:p/tei:s//tei:seg[count(@nkjp:rejected) eq 0]">
              <xsl:sequence select="
                  if (f:is_preceded_by_ws(.)) then
                    ' '
                  else
                    '', ./tei:w"/>
            </xsl:for-each>
          </xsl:variable>
          <xsl:value-of select="string-join($content)"/>
        </xsl:element>
      </xsl:element>
    </xsl:result-document>
  </xsl:template>

  <!--   **************************        struct      *******************                -->

  <xsl:template name="create_struct">
    <xsl:param name="compoundID" as="xs:string"/>
    <xsl:param name="ann_segmentation.xml" as="document-node()"/>
    <xsl:param name="target" as="xs:string"/>
    <!--<xsl:param name="offsets" as="map(xs:string, xs:integer+)"/>-->
    
    <xsl:result-document encoding="UTF-8" method="xml" indent="yes"
      xpath-default-namespace="http://ids-mannheim.de/ns/KorAP" href="{$target}">
      <xsl:processing-instruction name="xml-model">href=&quot;span.rng&quot; type=&quot;application/xml&quot; schematypens=&quot;http://relaxng.org/ns/structure/1.0&quot;</xsl:processing-instruction>
      <xsl:element name="layer" namespace="{$KorAP_namespace}">
        <xsl:attribute name="docid" select="$compoundID"/>
        <xsl:attribute name="version" select="$KorAP-XML_version"/>
        
        <!--<xsl:message select="'size of offsets in create_struct: ' || map:size($offsets)"/>-->

        <xsl:element name="spanList" namespace="{$KorAP_namespace}">
          <xsl:apply-templates select="$ann_segmentation.xml//tei:text" mode="struct">
            <!--<xsl:with-param name="offsets" as="map(xs:string, xs:integer+)" tunnel="yes">
              <xsl:map>
                <xsl:for-each select="tail(fn:accumulator-after('elem-offset-seq'))">
                  <xsl:map-entry key="map:get(., 'id')" select="map:get(., 'start'), map:get(., 'end')"/>
                </xsl:for-each>
              </xsl:map>
            </xsl:with-param>-->
          </xsl:apply-templates>          
        </xsl:element>
      </xsl:element>
    </xsl:result-document>
  </xsl:template>
  
  <xsl:template match="tei:*" mode="struct">
    <xsl:param name="ini" as="xs:integer" required="no" select="0"/>
    <xsl:param name="fin" as="xs:integer" required="no" select="999999999"/>
    <xsl:param name="index" as="xs:integer" required="no" select="1"/>
    <xsl:param name="offsets" as="map(xs:string, xs:integer+)" tunnel="yes"/>

    <xsl:variable name="offsets" as="map(xs:string, xs:integer+)">
      <xsl:map>
        <xsl:for-each select="tail(fn:accumulator-after('elem-offset-seq'))">
          <xsl:map-entry key="map:get(., 'id')" select="map:get(., 'start'), map:get(., 'end')"/>
        </xsl:for-each>
      </xsl:map>
    </xsl:variable>
    
<!--    <xsl:message select="'size of offsets in tei:* ' || map:size($offsets)"/>-->

    <!-- It's so spread out because I want to make sure to be able to look up the individual 
      constituent values, should anything go wrong; optimization will come when it's worked against a larger dataset   -->
    <xsl:variable name="my_name" select="local-name()" as="xs:string"/>
    <xsl:variable name="preceding" select="preceding-sibling::*[local-name(.) eq $my_name]"/>
    <xsl:variable name="preceding-count" select="count($preceding)"/>

    <xsl:variable name="outside-preceding-count" as="xs:integer">
      <xsl:choose>
        <xsl:when test="self::tei:s or self::tei:p">
          <xsl:choose>
            <xsl:when test="$preceding-count">
              <xsl:sequence select="
                  sum(for $p in $preceding
                  return
                    count($p/descendant::*))"/>       <!--mind @nkjp:rejected -->
            </xsl:when>
            <xsl:otherwise>
              <xsl:sequence select="0"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:sequence select="0"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>

    <xsl:variable name="my_index" select="$index + 1 + $preceding-count + $outside-preceding-count"
      as="xs:integer"/>
    
    
    <!--<xsl:copy select="//tei:seg[count(@nkjp:rejected) ne 0 and @nkjp:rejected ne 'true']"></xsl:copy>-->

    <xsl:variable name="start" as="xs:integer">
      <xsl:choose>
        <xsl:when test="self::tei:text or self::tei:body">
          <xsl:sequence select="0"/>
        </xsl:when>
        <xsl:when test="self::tei:p">
          <xsl:variable name="first_corresp"
            select="descendant::tei:s[1]/descendant::tei:seg[1]/attribute::corresp"
            as="attribute(corresp)"/>
          <xsl:variable name="numbers" select="substring-after(substring-before($first_corresp,')'),',')"/>
          <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
        </xsl:when>
        <xsl:when test="self::tei:s">
          <xsl:variable name="first_corresp"
            select="descendant::tei:seg[1]/attribute::corresp"
            as="attribute(corresp)"/>
          <xsl:variable name="numbers" select="substring-after(substring-before($first_corresp,')'),',')"/>
          <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
        </xsl:when>
        <xsl:when test="self::tei:seg">
          <xsl:variable name="numbers" select="substring-after(substring-before(@corresp,')'),',')"/>
          <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:message terminate="yes" select="'Element not handled: ' || fn:local-name()"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <xsl:variable name="end" as="xs:integer" select="f:calc_content_length(.)">
    </xsl:variable>
    

    
    <xsl:element name="span" namespace="{$KorAP_namespace}">
      <xsl:attribute name="id" select="'s' || $my_index"/>
      <xsl:attribute name="from" select="$start"/>
      <xsl:attribute name="to" select="$end"/>
      <xsl:attribute name="accumulator" select="string-join(map:get($offsets,string(@xml:id)))"/>
      <xsl:attribute name="l" select="f:compute_nesting(.)"/>
      <xsl:element name="fs" namespace="http://www.tei-c.org/ns/1.0">
        <xsl:attribute name="type" select="'struct'"></xsl:attribute>  <!-- STRUCT vs. LEX -->
        <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
          <xsl:attribute name="name" select="'name'"/>
          <xsl:value-of select="local-name()"/>
        </xsl:element>
        <xsl:if test="count(@*)">
          <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
            <xsl:attribute name="name" select="'attr'"/>
            <xsl:element name="fs" namespace="http://www.tei-c.org/ns/1.0">
              <xsl:attribute name="type" select="'attr'"/>
              <xsl:for-each select="@*">
                <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
                  <xsl:attribute name="name" select="local-name(.)"/>
                  <xsl:value-of select="."/>
                </xsl:element>
              </xsl:for-each>
            </xsl:element>
          </xsl:element>
        </xsl:if>
      </xsl:element>
    </xsl:element>
    <xsl:apply-templates mode="struct">
      <xsl:with-param name="ini" select="$start" as="xs:integer"/>
      <xsl:with-param name="fin" select="$end" as="xs:integer"/>
      <xsl:with-param name="index" select="$my_index"/>
    </xsl:apply-templates>
  </xsl:template>

  <!--   **************************        morpho      *******************                -->

  <xsl:template name="create_morpho">
    <xsl:param name="text.xml" as="document-node()"/>
    <xsl:param name="compoundID" as="xs:string"/>
    <xsl:param name="ann_segmentation.xml" as="document-node()"/>
    <xsl:param name="ann_morphosyntax.xml" as="document-node()"/>
    <xsl:param name="target" as="xs:string"/>

    <xsl:result-document encoding="UTF-8" method="xml" indent="yes"
      xpath-default-namespace="http://ids-mannheim.de/ns/KorAP" href="{$target}">
      <xsl:processing-instruction name="xml-model">href=&quot;span.rng&quot; type=&quot;application/xml&quot; schematypens=&quot;http://relaxng.org/ns/structure/1.0&quot;</xsl:processing-instruction>
      <xsl:element name="layer" namespace="{$KorAP_namespace}">
        <xsl:attribute name="docid" select="$compoundID"/>
        <xsl:attribute name="version" select="$KorAP-XML_version"/>
        
        <xsl:element name="spanList" namespace="{$KorAP_namespace}">
          <xsl:apply-templates select="$ann_segmentation.xml//tei:text" mode="morpho">
            <xsl:with-param name="ann_morphosyntax.xml" select="$ann_morphosyntax.xml" as="document-node()"/>
          </xsl:apply-templates>          
        </xsl:element>
      </xsl:element>
    </xsl:result-document>
  </xsl:template>

  <xsl:template match="tei:*" mode="morpho">
    <xsl:param name="ini" as="xs:integer" required="no" select="0"/>
    <xsl:param name="fin" as="xs:integer" required="no" select="999999999"/>
    <xsl:param name="index" as="xs:integer" required="no" select="1"/>
    <xsl:param name="ann_morphosyntax.xml" as="document-node()"/>
    <xsl:variable name="my_name" select="local-name()" as="xs:string"/>
    <xsl:variable name="preceding" select="preceding-sibling::*[local-name(.) eq $my_name]"/>
    <xsl:variable name="preceding-count" select="count($preceding)"/>
    <xsl:variable name="outside-preceding-count" as="xs:integer">
      <xsl:choose>
        <xsl:when test="self::tei:s or self::tei:p">
          <xsl:choose>
            <xsl:when test="$preceding-count">
              <xsl:sequence select="
                sum(for $p in $preceding
                return
                count($p/descendant::*))"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:sequence select="0"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:sequence select="0"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:variable name="my_index" select="$index + 1 + $preceding-count + $outside-preceding-count"
      as="xs:integer"/>
    
    <xsl:variable name="start" as="xs:integer">
      <xsl:choose>
        <xsl:when test="self::tei:text or self::tei:body">
          <xsl:sequence select="0"/>
        </xsl:when>
        <xsl:when test="self::tei:p">
          <xsl:variable name="first_corresp"
            select="descendant::tei:s[1]/descendant::tei:seg[1]/attribute::corresp"
            as="attribute(corresp)"/>
          <xsl:variable name="numbers" select="substring-after(substring-before($first_corresp,')'),',')"/>
          <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
        </xsl:when>
        <xsl:when test="self::tei:s">
          <xsl:variable name="first_corresp"
            select="descendant::tei:seg[1]/attribute::corresp"
            as="attribute(corresp)"/>
          <xsl:variable name="numbers" select="substring-after(substring-before($first_corresp,')'),',')"/>
          <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
        </xsl:when>
        <!--<xsl:when test="self::tei:seg">
          <xsl:variable name="numbers" select="substring-after(substring-before(@corresp,')'),',')"/>
          <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
        </xsl:when>-->
      </xsl:choose>
    </xsl:variable>
    <xsl:variable name="end" as="xs:integer" select="f:calc_content_length(.)">
    </xsl:variable>
    
    <xsl:apply-templates mode="morpho">
      <xsl:with-param name="ini" select="$start" as="xs:integer"/>
      <xsl:with-param name="fin" select="$end" as="xs:integer"/>
      <xsl:with-param name="index" select="$my_index"/>
      <xsl:with-param name="ann_morphosyntax.xml" select="$ann_morphosyntax.xml" as="document-node()"/>
    </xsl:apply-templates>
  </xsl:template>

  <xsl:template match="tei:seg" mode="morpho">
    <xsl:param name="ini" as="xs:integer" required="no" select="0"/>
    <xsl:param name="fin" as="xs:integer" required="no" select="999999999"/>
    <xsl:param name="index" as="xs:integer" required="no" select="1"/>
    <xsl:param name="ann_morphosyntax.xml" as="document-node()"/>
    <!-- I have made a major mess here, but it works... it's so spread out 
      because I wanted to make sure to be able to look up the individual 
      constituent values, should anything go wrong   -->
    <xsl:variable name="my_name" select="local-name()" as="xs:string"/>
    <xsl:variable name="my_id" select="@xml:id" as="xs:string"/>
    <xsl:variable name="my_morph-seg" as="node()" select="$ann_morphosyntax.xml//tei:seg[substring-after(@corresp,'#') eq $my_id]"/>
    <xsl:variable name="my_disamb" select="$my_morph-seg//tei:fs/tei:f[@name eq 'disamb']" as="node()"/>
    <xsl:variable name="my_choice-id" select="substring-after($my_disamb//tei:f[@name eq 'choice']/@fVal,'#')" as="xs:string"/>
    <xsl:variable name="my_choice-lex" select="$my_morph-seg//tei:f[@name eq 'interps']/tei:fs[@type eq 'lex'][descendant::tei:symbol[@xml:id eq $my_choice-id]]" as="node()"/>
    <xsl:variable name="chosen-msd" as="xs:string" select="$my_choice-lex/descendant::tei:symbol[@xml:id eq $my_choice-id]/@value"/>
    <xsl:variable name="preceding" select="preceding-sibling::*[local-name(.) eq $my_name]"/>
    <xsl:variable name="preceding-count" select="count($preceding)"/>
    <!--<xsl:variable name="outside-preceding-count" as="xs:integer">
      <xsl:choose>
        <xsl:when test="self::tei:s or self::tei:p">   <!-\- THIS NEEDS TO BE REVISITED AFTER THIS TEMPLATE HAS BECOME MORE SPECIFIC -\->
          <xsl:choose>
            <xsl:when test="$preceding-count">                            commented out for now
              <xsl:sequence select="
                sum(for $p in $preceding
                return
                count($p/descendant::*))"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:sequence select="0"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:sequence select="0"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>-->
    <xsl:variable name="my_index" select="$index + 1 + $preceding-count" as="xs:integer"/>
    
    <xsl:variable name="start" as="xs:integer">
      <xsl:variable name="numbers" select="substring-after(substring-before(@corresp,')'),',')"/>
      <xsl:sequence select="xs:integer(substring-before($numbers,','))"/>
    </xsl:variable>
    <xsl:variable name="end" as="xs:integer" select="f:calc_content_length(.)">
    </xsl:variable>
    <xsl:element name="span" namespace="{$KorAP_namespace}">
      <xsl:attribute name="id" select="'s' || $my_index"/>
      <xsl:attribute name="from" select="$start"/>
      <xsl:attribute name="to" select="$end"/>
      <xsl:attribute name="l" select="f:compute_nesting(.)"/>
      <xsl:element name="fs" namespace="http://www.tei-c.org/ns/1.0">
        <xsl:attribute name="type" select="'lex'"/>
        <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
          <xsl:attribute name="name" select="'lex'"/>
          <xsl:element name="fs" namespace="http://www.tei-c.org/ns/1.0">
            <xsl:comment select="$my_morph-seg//tei:fs/tei:f[@name eq 'orth']/tei:string"/>
            
            
            <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
              <xsl:attribute name="name" select="'lemma'"/>
              <xsl:value-of select="$my_choice-lex/tei:f[@name eq 'base']/tei:string"/>
            </xsl:element>
            <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
              <xsl:attribute name="name" select="'pos'"/>
              <xsl:value-of select="$my_choice-lex/tei:f[@name eq 'ctag']/tei:symbol/@value"/>
            </xsl:element>
            <xsl:if test="string-length($chosen-msd)">
              <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
                <xsl:attribute name="name" select="'msd'"/>
                <xsl:value-of select="$chosen-msd"/>
              </xsl:element>
            </xsl:if>
            <xsl:if test="$my_morph-seg//tei:fs/tei:f[@name eq 'nps']">
              <xsl:element name="f" namespace="http://www.tei-c.org/ns/1.0">
                <xsl:attribute name="name" select="'join'"/>
                <xsl:value-of select="'left'"/>
              </xsl:element>
            </xsl:if>
          </xsl:element>
        </xsl:element>
      </xsl:element>
    </xsl:element>
      <xsl:apply-templates mode="morpho">
      <xsl:with-param name="ini" select="$start" as="xs:integer"/>
      <xsl:with-param name="fin" select="$end" as="xs:integer"/>
      <xsl:with-param name="index" select="$my_index"/>
      <xsl:with-param name="ann_morphosyntax.xml" select="$ann_morphosyntax.xml" as="document-node()"/>
    </xsl:apply-templates>-->
  </xsl:template>

  <!--   **************************        TEXT header      *******************                -->

  <xsl:template name="create_text_header">
    <xsl:param name="text.xml" as="document-node()"/>
    <xsl:param name="compoundID" as="xs:string"/>
    <xsl:param name="target" as="xs:string"/>

    <!-- create the local header.xml file -->
    <xsl:result-document encoding="UTF-8" method="xml" indent="yes"
      xpath-default-namespace="http://ids-mannheim.de/ns/KorAP" href="{$target}">

      <idsHeader type="document" pattern="text" status="new" version="1.1" TEIform="teiHeader">
        <xsl:apply-templates select="$text.xml//tei:TEI/tei:teiHeader/tei:*" mode="text">
          <xsl:with-param name="compoundID" as="xs:string" select="$compoundID" tunnel="yes"/>
        </xsl:apply-templates>
      </idsHeader>
    </xsl:result-document>
  </xsl:template>

  <xsl:template match="tei:fileDesc" mode="text">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="text"/>
    </xsl:element>
  </xsl:template>

  <xsl:template match="tei:title" mode="text">
    <t.title>
      <xsl:apply-templates/>
    </t.title>
  </xsl:template>

  <xsl:template match="tei:titleStmt" mode="text">
    <xsl:param name="compoundID" as="xs:string" tunnel="yes"/>
    <titleStmt>
      <textSigle>
        <xsl:value-of select="$compoundID"/>
      </textSigle>
      <xsl:apply-templates mode="text"/>
    </titleStmt>
  </xsl:template>

  <xsl:template match="tei:publicationStmt" mode="text">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="text"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:availability" mode="text">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="text" select="@* | *"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:profileDesc" mode="text">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="text"/>
    </xsl:element>
  </xsl:template>

  <xsl:template match="tei:textClass" mode="text">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="text" select="@* | *"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:catRef" mode="text corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="text" select="@* | *"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="@status | @scheme | @target | @type | @xml:id[ancestor::tei:classDecl] | @xml:lang" mode="text corpus">
    <xsl:copy-of select="."/>
  </xsl:template>
  
  <xsl:template match="tei:p" mode="text corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="header-text"/>
    </xsl:element>
  </xsl:template>
  
  
  <!--  OPTIMIZATION has to take modes into account   -->
  <!--   **************************        CORPUS header       *******************                -->
  <xsl:template name="create_corpus_header">
    <xsl:param name="text.xml" as="document-node()"/>
    <xsl:param name="target" as="xs:string"/>

    <!-- create the corpus-level header.xml file -->
    <xsl:result-document encoding="UTF-8" method="xml" indent="yes" href="{$target}">

      <!--doctype-public="{$publicDoctypeI5}"
          doctype-system="{$systemDoctypeI5}">
        these are, sadly, useless
      -->

      <idsHeader type="corpus" pattern="text" status="new" version="1.1" TEIform="teiHeader">
        <xsl:apply-templates select="$text.xml/tei:teiCorpus/tei:teiHeader/tei:*" mode="corpus"/>
      </idsHeader>
    </xsl:result-document>
  </xsl:template>

  <xsl:template match="tei:fileDesc" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus"/>
    </xsl:element>
  </xsl:template>
  

  <xsl:template match="tei:title" mode="corpus">
    <c.title>
      <xsl:apply-templates mode="corpus" select="@*"/>
      <xsl:apply-templates mode="header-text"/>
    </c.title>
  </xsl:template>

  <xsl:template match="tei:titleStmt" mode="corpus">
    <titleStmt>
      <korpusSigle>
        <xsl:value-of select="$corpusID"/>
      </korpusSigle>
      <xsl:apply-templates mode="corpus"/>
    </titleStmt>
  </xsl:template>

  <xsl:template match="tei:publicationStmt" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:availability" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus" select="@* | *"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:encodingDesc" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:classDecl | tei:taxonomy | tei:category | tei:taxonomy/tei:bibl" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus" select="@* | *"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:bibl/tei:title | tei:edition | tei:desc" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus" select="@*"/>
      <xsl:apply-templates mode="header-text"/>
    </xsl:element>
  </xsl:template>
<!--
  <xsl:template match="tei:textClass" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus" select="@* | *"/>
    </xsl:element>
  </xsl:template>
  
  <xsl:template match="tei:catRef" mode="corpus">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates mode="corpus" select="@* | *"/>
    </xsl:element>
  </xsl:template>
-->  



  <!-- this template can be called by the XSPEC test; TODO: find a way to call the main() template directly -->
  <!-- I have not fully handled the param transmission, which would have to be kludged in just for the sake of XSPec,
       because I'm disabling this for now, due to XSpec design issues; relevant links, a.o.:
       
  https://stackoverflow.com/questions/64933277/what-is-the-cause-of-error-cannot-execute-xslresult-document-while-evaluating
  https://www.balisage.net/Proceedings/vol25/html/Galtman01/BalisageVol25-Galtman01.html
  
  In short: the internal design of XSpec forces kludges when one wants to use xsl:result-document in their stylesheets. But I don't
  want to be strangled by kludges at the beginning of work, I've already lost quite a bit of time on this investigation,
  I will therefore "just code" and then can think of externalizing bits of templates if we want to play with tests. For now,
  I don't want to have to handle context items is a special way inside variables, etc., because I'm not sure it's worth it.
  
  -->
  <!--<xsl:template name="test_full">
    <xsl:param name="corpusID"/>
    <xsl:param name="docID"/>
    <xsl:param name="textID"/>
    <xsl:call-template name="xsl:initial-template"/>
  </xsl:template>-->

  <xsl:function name="f:calc_content_length" as="xs:integer">
    <xsl:param name="node" as="node()"/>
    <xsl:choose>
      <xsl:when test="$node/self::tei:text or $node/self::tei:body">
        <xsl:variable name="last_corresp"
          select="$node/descendant::tei:p[last()]/descendant::tei:s[last()]/descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'][last()]/attribute::corresp"
          as="attribute(corresp)"/>
        <xsl:variable name="numbers" select="substring-after(substring-before($last_corresp,')'),',')"/>
        <xsl:sequence select="xs:integer(substring-before($numbers,',')) + xs:integer(substring-after($numbers,','))"/>
      </xsl:when>
      <xsl:when test="$node/self::tei:p">
        <xsl:variable name="last_corresp"
          select="$node/descendant::tei:s[last()]/descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'][last()]/attribute::corresp"
          as="attribute(corresp)"/>
        <xsl:variable name="numbers" select="substring-after(substring-before($last_corresp,')'),',')"/>
        <xsl:sequence select="xs:integer(substring-before($numbers,',')) + xs:integer(substring-after($numbers,','))"/>
      </xsl:when>
      <xsl:when test="$node/self::tei:s">
        <xsl:variable name="last_corresp"
          select="$node/descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'][last()]/attribute::corresp"
          as="attribute(corresp)"/>
        <xsl:variable name="numbers" select="substring-after(substring-before($last_corresp,')'),',')"/>
        <xsl:sequence select="xs:integer(substring-before($numbers,',')) + xs:integer(substring-after($numbers,','))"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:variable name="numbers" select="substring-after(substring-before($node/@corresp,')'),',')"/>
        <xsl:if test="$node/self::tei:seg and count($node/@nkjp:rejected)">
          <!--     REMOVE THIS     -->
          <xsl:message select="$numbers"/>
        </xsl:if>
        <xsl:sequence select="xs:integer(substring-before($numbers,',')) + xs:integer(substring-after($numbers,','))"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:function>

  <xsl:function name="f:calc_offsets" as="xs:integer+">
    <xsl:param name="node" as="element()"/>
    <xsl:param name="skip_start" as="xs:boolean" />
    
    <xsl:variable name="start" as="xs:integer">
      <xsl:choose>
        
        <xsl:when test="$skip_start or $node/self::tei:text or $node/self::tei:body">
          <xsl:sequence select="0"/>
        </xsl:when>
        
        <!--        handle p -->
        
        <xsl:when test="$node/self::tei:p">
          <xsl:variable name="my_pos" as="xs:integer" select="count($node/preceding-sibling::tei:p) + 1"/>
          <xsl:variable name="preceding" as="node()*"
            select="$node/ancestor::tei:body/tei:p[position() lt $my_pos]"/>
          
          <xsl:choose>
            <xsl:when test="count($preceding) eq 0">
              <xsl:sequence select="0"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:sequence select="sum(f:calc_offsets($preceding[last()],true())[$OFFSET_END],1)"/>
              
              <!--  BUG danger: I am not sure if a "1" should rather be added after each p; let me try to handle that in the return value of the $length variable,
              and make it sensitive to the skip_start parameter 
              
              I will then have to remove the ",1" from here!
              
              -->
              
              <!--              <xsl:variable name="last_corresps"
                select="$preceding/descendant::tei:s[last()]/(descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'])[last()]/@corresp"
                as="attribute(corresp)+"/>
              <xsl:variable name="end_offsets" as="xs:integer+">
                <xsl:for-each select="$last_corresps">
                  <xsl:variable name="numbers"
                    select="substring-after(substring-before(., ')'), ',')"/>
                  <xsl:sequence
                    select="xs:integer(substring-before($numbers, ',')) + xs:integer(substring-after($numbers, ','))"
                  />
                </xsl:for-each>
              </xsl:variable>
              <xsl:sequence select="sum($end_offsets, 1)"/>
              
              this is a non-recursive variant that may turn out to be much less cpu-intensive, not sure
              - but if it's plugged in, it will have to be adjusted to the current form of the recursive variant,
                because it hasn't been maintained since it got commented out
              -->
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        
        <!--        handle s -->
        
        <!-- the value for s gets counted since the start of the current p 
        - so we look at the preceding s's
                      + the preceding p's
        -->
        <xsl:when test="$node/self::tei:s">
          <!--<xsl:variable name="last_corresp"
            select="$node/descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'][last()]/attribute::corresp"
            as="attribute(corresp)"/>
          <xsl:variable name="numbers"
            select="substring-after(substring-before($last_corresp, ')'), ',')"/>
          <xsl:sequence
            select="xs:integer(substring-before($numbers, ',')) + xs:integer(substring-after($numbers, ','))"
          />
          -->
          
          <xsl:variable name="internal_start" as="xs:integer">
            <xsl:variable name="my_pos" as="xs:integer" select="count($node/preceding-sibling::tei:s) + 1"/>
            <xsl:variable name="preceding" as="node()*"
              select="$node/ancestor::tei:p[1]/tei:s[position() lt $my_pos]"/>
            
            <xsl:choose>
              <xsl:when test="count($preceding) eq 0">
                <xsl:sequence select="0"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:sequence select="f:calc_offsets($preceding[last()],true())[$OFFSET_END]"/>
                <!--<xsl:sequence select="sum(f:calc_offsets($preceding[last()],true())[$OFFSET_END],1)"/>-->
                <!--   again, CAREFUL ABOUT THE +1, it might need to vanish         -->
              </xsl:otherwise>
            </xsl:choose>
          </xsl:variable>
          
          <xsl:variable name="external_start" as="xs:integer" select="f:calc_offsets($node/ancestor::tei:p[1],false())[$OFFSET_START]"/>
          
          <xsl:sequence select="$internal_start + $external_start"/>
        </xsl:when>
        
        <!--        handle seg -->        
        
        <xsl:when test="$node/self::tei:seg">
          <!--   for segs, the s elements are irrelevant, and the local offset is immediately available on the @corresp       -->
          
          <xsl:variable name="numbers"
            select="substring-after(substring-before($node/@corresp, ')'), ',')"/>
          
          <xsl:variable name="internal_start" select="xs:integer(substring-before($numbers, ','))"
            as="xs:integer"/>
          <xsl:variable name="external_start" as="xs:integer"
            select="f:calc_offsets($node/ancestor::tei:p[1], false())[$OFFSET_START]"/>
          
          <xsl:if test="$node/self::tei:seg and count($node/@nkjp:rejected)">
            
            <xsl:message select="'numbers: ' || $numbers"/>
          </xsl:if>
          <xsl:sequence select="$internal_start + $external_start"/>
        </xsl:when>
      </xsl:choose>
    </xsl:variable>
    
    <xsl:variable name="length" as="xs:integer">
      <xsl:choose>
        
        <xsl:when test="$node/self::tei:text or $node/self::tei:body">
          <xsl:variable name="last_corresps"
            select="$node/descendant::tei:p/descendant::tei:s[last()]/(descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'])[last()]/@corresp"
            as="attribute(corresp)+"/>
          
          <xsl:variable name="end_offsets" as="xs:integer+">
            <xsl:for-each select="$last_corresps">
              <xsl:variable name="numbers" select="substring-after(substring-before(., ')'), ',')"/>
              <xsl:sequence
                select="xs:integer(substring-before($numbers, ',')) + xs:integer(substring-after($numbers, ','))"
              />
            </xsl:for-each>
          </xsl:variable>
          
          <xsl:sequence select="sum($end_offsets)"/>
          
        </xsl:when>
        <xsl:when test="$node/self::tei:p">
          <xsl:variable name="last_corresps"
            select="$node/descendant::tei:s[last()]/(descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'])[last()]/@corresp"
            as="attribute(corresp)+"/>
          <xsl:variable name="end_offsets" as="xs:integer+">
            <xsl:for-each select="$last_corresps">
              <xsl:variable name="numbers" select="substring-after(substring-before(., ')'), ',')"/>
              <xsl:sequence
                select="xs:integer(substring-before($numbers, ',')) + xs:integer(substring-after($numbers, ','))"
              />
            </xsl:for-each>
          </xsl:variable>
          <xsl:sequence select="sum($end_offsets)"/>
        </xsl:when>
        
        
        
        
        <xsl:when test="$node/self::tei:s">
          <xsl:variable name="last_corresp"
            select="$node/descendant::tei:seg[count(@nkjp:rejected) eq 0 or @nkjp:rejected ne 'true'][last()]/attribute::corresp"
            as="attribute(corresp)"/>
          <xsl:variable name="numbers"
            select="substring-after(substring-before($last_corresp, ')'), ',')"/>
          <xsl:sequence
            select="xs:integer(substring-before($numbers, ',')) + xs:integer(substring-after($numbers, ','))"
          />
        </xsl:when>
        <xsl:otherwise>
          <xsl:variable name="numbers"
            select="substring-after(substring-before($node/@corresp, ')'), ',')"/>
          <xsl:if test="$node/self::tei:seg and count($node/@nkjp:rejected)">
            <!--     REMOVE THIS     -->
            <xsl:message select="'rejected: ' || $numbers"/>
          </xsl:if>
          <xsl:sequence
            select="xs:integer(substring-before($numbers, ',')) + xs:integer(substring-after($numbers, ','))"
          />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <xsl:message select="local-name($node) || '[' || count($node/preceding-sibling::*[local-name() eq local-name($node)])+1 || '] length: ' || $length || '    skip_start: ' || $skip_start"/>
    
    <xsl:sequence select="$start, $start + $length -1 + xs:integer($skip_start)"/>
  </xsl:function>


</xsl:stylesheet>

<!--<xsl:message select="('map:',serialize($map, map{'method':'adaptive'}))"/>-->