<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>The way I've been dealing with this (the dynamic
      translation-dependent 0 prefix in Hebrew Strong's) in
      node-sword-interface is prefixing the search term for H***
      strong's searches only if the corresponding translation has those
      0 prefixes.</p>
    <p>I simply have this piece of code in my search function:</p>
    <div style="color: #d4d4d4;background-color: #1e1e1e;font-family: 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback';font-weight: normal;font-size: 14px;line-height: 19px;white-space: pre;"><div><span style="color: #6a9955;">            // If the Strong's key is OT we need to insert a zero in front of the key</span></div><div><span style="color: #6a9955;">            // This is necessary because the Sword modules with Strong's have a zero in front of the Hebrew Strong's numbers</span></div><div><span style="color: #d4d4d4;">            </span><span style="color: #c586c0;">if</span><span style="color: #d4d4d4;"> (</span><span style="color: #9cdcfe;">searchTerm</span><span style="color: #dcdcaa;">[</span><span style="color: #b5cea8;">0</span><span style="color: #dcdcaa;">]</span><span style="color: #d4d4d4;"> == </span><span style="color: #ce9178;">'H'</span><span style="color: #d4d4d4;"> && </span><span style="color: #569cd6;">this</span><span style="color: #d4d4d4;">-></span><span style="color: #9cdcfe;">_textProcessor</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">moduleHasStrongsZeroPrefixes</span><span style="color: #d4d4d4;">(</span><span style="color: #9cdcfe;">module</span><span style="color: #d4d4d4;">)) {</span></div><div><span style="color: #6a9955;">                // Cut out the number from the Strong's key (starting at index 1 until end of string)</span></div><div><span style="color: #d4d4d4;">                </span><span style="color: #4ec9b0;">string</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">strongsKey</span><span style="color: #d4d4d4;"> = </span><span style="color: #9cdcfe;">searchTerm</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">substr</span><span style="color: #d4d4d4;">(</span><span style="color: #b5cea8;">1</span><span style="color: #d4d4d4;">, </span><span style="color: #9cdcfe;">searchTerm</span><span style="color: #d4d4d4;">.</span><span style="color: #dcdcaa;">size</span><span style="color: #d4d4d4;">());</span></div><div><span style="color: #6a9955;">                // Overwrite the searchTerm with an inserted 0</span></div><div><span style="color: #d4d4d4;">                </span><span style="color: #9cdcfe;">searchTerm</span><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">=</span><span style="color: #d4d4d4;"> </span><span style="color: #ce9178;">"H0"</span><span style="color: #d4d4d4;"> </span><span style="color: #dcdcaa;">+</span><span style="color: #d4d4d4;"> </span><span style="color: #9cdcfe;">strongsKey</span><span style="color: #d4d4d4;">;</span></div><div><span style="color: #d4d4d4;">            }</span></div></div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">The helper function
      moduleHasStrongsZeroPrefixes simply searches for "strong:H0" in
      the markup of Genesis 1:1.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">This approach has been working decently
      well for me.</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Best regards,<br>
      Tobias<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 1/27/22 2:27 PM, Karl Kleinpaste
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:6d3df4fc-7fd0-f9df-fdd3-3efad66e64d5@kleinpaste.org">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <font face="FreeSerif">I have a <a moz-do-not-send="true"
          href="https://github.com/crosswire/xiphos/issues/1107">Xiphos
          bug</a> in which the facility to take a Strong's dict entry
        and search the Bible module for all its occurrences sometimes
        works and sometimes doesn't.<br>
        <br>
        The mechanism is straightforward: Take the key from the dict
        pane, note whether this is Heb or Grk, construct e.g.
        lemma:Hxxxxx, stuff that into the sidebar search, and execute
        the search. No sweat.<br>
        <br>
        The problem is with Heb refs. Because of the ancient habit that
        Heb Strong's refs are given a leading zero prefix (e.g. "07225")
        as a weak discriminant from Grk refs in the same number space, I
        actually handle this case explicitly. Strong's module keys are
        fixed, 5-digit strings, and the dict pane always shows this.
        When that key is taken to build the lemma search, I specifically
        include the last leading zero in the Heb case.<br>
        <br>
        This works in KJV and ESV where we find "<w
        savlm="strong:H07225">In the beginning</w>".<br>
        This fails in NASB and OSHB where we find "<w
        savlm="strong:H7225">In the beginning</w>".<br>
        Note H07225 vs H7225.<br>
        <br>
        The question revolves around what a Strong's ref ontologically
        is. Seriously, what is it?<br>
        Is it a number, written naturally with minimal required digits,
        stored for convenience in a character string?<br>
        Or is it a specific and fixed string of characters?<br>
        <br>
        In terms of module keys, it's a string of characters.<br>
        In terms of Bible markup, well... Opinion varies. As we see in
        this case, some Bibles encode as a natural number, occupying the
        normal (minimal) digits needed, but others take the fixed string
        approach so as to include a leading zero, but note that it's not
        a full, fixed, 5-digit string to match a dict key; it's just one
        leading zero, no matter how many natural digits follow. KJV
        encodes the 1st Heb ref as "01". Not "1" (natural number) and
        not "00001" (module key); just "01".<br>
        <br>
        Result is that, by constructing zero-prefixed searches, such
        searches always fail in Bibles using natural/minimal digits
        because there's never a zero-prefixed match.<br>
        <br>
        This is different from Grk refs, which are stored in dict
        modules the same as Heb dict keys -- fixed 5-digit -- but are
        always marked up as natural numbers using minimal digits.<br>
        <br>
        As matters stand, I have no <i>a priori</i> means by which to
        determine what to expect in a Bible's Heb Strong's markup. The
        dict pane's key from which to construct the search is fixed 5
        digits. That is at first trimmed to natural, minimal
        digits...and then the trouble starts because I don't have
        anything like a module conf directive to tell me whether the
        module uses zero-prefixed Heb refs or not. I'm also not aware
        that we have any standard for such markup to which I can point
        to say, "NASB's markup is wrong because it lacks zero-prefixing
        on Heb refs."<br>
        <br>
        Help.<br>
      </font> <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>