<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 04/05/2018 08:01 AM, David Haslam wrote:<br>
    <blockquote type="cite"
cite="mid:pdA4e0XCTVMF3XRAAxYrXgUVn3uGnmB19RB0WqfuXlYaPKdNyhhvL7PQ0LAezZF-9Awz3LVDb3azq5ZI7McEUPTiHkaeAGySaart3jirBqE=@protonmail.com">
      <div>Thanks Troy for all this fine detail. </div>
      <div> <br>
      </div>
      <div>Is there any way that these special search parameters can be
        passed to diatheke (as is) ?</div>
      <div> <br>
      </div>
    </blockquote>
    <br>
    [scribe@localhost diatheke]$ ./diatheke -b KJV -s attribute -k
    Heading///Neginoth<br>
    Entries containing "Heading///Neginoth"-- Psalms 4:1Psalms 6:1 ;
    Psalms 54:1 ; Psalms 55:1 ; Psalms 67:1 ; Psalms 76:1 ;  -- 6
    matches total (KJV)<br>
    <br>
    <br>
    <blockquote type="cite"
cite="mid:pdA4e0XCTVMF3XRAAxYrXgUVn3uGnmB19RB0WqfuXlYaPKdNyhhvL7PQ0LAezZF-9Awz3LVDb3azq5ZI7McEUPTiHkaeAGySaart3jirBqE=@protonmail.com">
      <div>
      </div>
      <div>Or would diatheke need further enhancing to support search
        within headings such as Psalm titles?</div>
      <div> <br>
      </div>
      <div class="protonmail_signature_block">Best regards, David
      </div>
      <div> <br>
      </div>
      <div> <br>
      </div>
      <div id="protonmail_mobile_signature_block">Sent from ProtonMail
        Mobile</div>
      <div> <br>
        <div>
          <div> <br>
          </div>
          On Wed, Apr 4, 2018 at 23:18, Troy A. Griffitts &lt;<a
            href="mailto:scribe@crosswire.org" class=""
            moz-do-not-send="true">scribe@crosswire.org</a>&gt; wrote:</div>
        <blockquote class="protonmail_quote" type="cite">
          <p>Here's a quick command.  The entry attributes path / search
            syntax might not be obvious.    Entry attributes key paths
            are always 3 levels deep + the final segment the value of
            the attribute.  Empty path segments mean 'any'.  This means
            find 'Neginoth' in the value of any entry attribute under
            'Heading'.</p>
          <p>[scribe@localhost cmdline]$ ./search KJV Heading///Neginoth
            <br>
[0=================================50===============================100]
            <br>
 ======================================================================
            <br>
            Psalms 4:1 <br>
            Psalms 6:1 <br>
            Psalms 54:1 <br>
            Psalms 55:1 <br>
            Psalms 67:1 <br>
            Psalms 76:1 <br>
          </p>
          <p>Likewise, in any entry attribute:</p>
          <p>[scribe@localhost cmdline]$ ./search KJV ///Neginoth <br>
[0=================================50===============================100]
            <br>
 ======================================================================
            <br>
            Psalms 4:1 <br>
            Psalms 6:1 <br>
            Psalms 54:1 <br>
            Psalms 55:1 <br>
            Psalms 67:1 <br>
            Psalms 76:1 <br>
            Habakkuk 3:19</p>
          <p>Or very specifically the first preverse heading of a verse:</p>
          <p>[scribe@localhost cmdline]$ ./search KJV
            Heading/Preverse/0/Neginoth <br>
[0=================================50===============================100]
            <br>
 ======================================================================
            <br>
            Psalms 4:1 <br>
            Psalms 6:1 <br>
            Psalms 54:1 <br>
            Psalms 55:1 <br>
            Psalms 67:1 <br>
            Psalms 76:1 <br>
            <br>
          </p>
          <p>Here's the entry attribute dump, output from the 'lookup'
            example, for Ps.4.1 from the KJV:</p>
          <p>[scribe@localhost cmdline]$ ./lookup KJV Ps.4.1 <br>
            ==Raw=Entry=============== <br>
            Psalms 4:1: <br>
            &lt;div type="x-milestone" subType="x-preverse"
            sID="pv2"/&gt;&lt;title canonical="true"
            type="psalm"&gt;&lt;w lemma="strong:H05329"
            morph="strongMorph:TH8764"&gt;To the chief
            Musician&lt;/w&gt; &lt;w lemma="strong:H05058"&gt;on
            Neginoth&lt;/w&gt;, &lt;w lemma="strong:H04210"&gt;A
            Psalm&lt;/w&gt; &lt;w lemma="strong:H01732"&gt;of
            David&lt;/w&gt;.&lt;/title&gt;&lt;div type="x-milestone"
            subType="x-preverse" eID="pv2"/&gt;&lt;w
            lemma="strong:H06030"
            morph="strongMorph:TH8798"&gt;Hear&lt;/w&gt; &lt;w
            lemma="strong:H07121" morph="strongMorph:TH8800"&gt;me when
            I call&lt;/w&gt;, &lt;w lemma="strong:H0430"&gt;O
            God&lt;/w&gt; &lt;w lemma="strong:H06664"&gt;of my
            righteousness&lt;/w&gt;: &lt;w lemma="strong:H07337"
            morph="strongMorph:TH8689"&gt;thou hast enlarged&lt;/w&gt;
            me &lt;transChange type="added"&gt;when I
            was&lt;/transChange&gt; &lt;w lemma="strong:H06862"&gt;in
            distress&lt;/w&gt;; &lt;w lemma="strong:H02603"
            morph="strongMorph:TH8798"&gt;have mercy&lt;/w&gt; &lt;w
            lemma="strong:H08085" morph="strongMorph:TH8798"&gt;upon me,
            and hear&lt;/w&gt; &lt;w lemma="strong:H08605"&gt;my
            prayer&lt;/w&gt;.&lt;note
            type="study"&gt;&lt;catchWord&gt;chief…&lt;/catchWord&gt;:
            or, &lt;rdg
            type="alternative"&gt;overseer&lt;/rdg&gt;&lt;/note&gt;&lt;note
            type="study"&gt;&lt;catchWord&gt;have…&lt;/catchWord&gt;:
            or, &lt;rdg type="alternative"&gt;be gracious unto
            me&lt;/rdg&gt;&lt;/note&gt; <br>
            ==Render=Entry============ <br>
                    .divineName { font-variant: small-caps; } <br>
                    .wordsOfJesus { color: red; } <br>
                    .transChange { font-style: italic; } <br>
                    .transChange.transChange-supplied { font-style:
            italic; } <br>
                    .transChange.transChange-added { font-style: italic;
            } <br>
                    .transChange.transChange-tenseChange::before {
            content: '*'; } <br>
                    .transChange.transChange-tenseChange { font-style:
            normal; } <br>
                    .transChange:lang(zh) { font-style: normal;
            text-decoration: dotted underline; } <br>
                    .overline { text-decoration: overline; } <br>
                    .indent1 { margin-left: 1em; } <br>
                    .indent2 { margin-left: 2em; } <br>
                    .indent3 { margin-left: 3em; } <br>
                    .indent4 { margin-left: 4em; } <br>
                    abbr { &amp;:hover{ &amp;:before{ content:
            attr(title); } } } <br>
                    .small-caps { font-variant: small-caps; } <br>
                    .selah { text-align: right; width: 50%; margin: 0;
            padding: 0; } <br>
                    .acrostic { text-align: center; } <br>
                    .colophon {font-style: italic; font-size: small;
            display: block; } <br>
                    .rdg { font-style: italic; } <br>
                    .catchWord {font-style: bold; } <br>
                    .x-p-indent {text-indent: 1em; } <br>
                <br>
            Hear me when I call, O God of my righteousness: thou hast
            enlarged me &lt;span class="transChange
            transChange-added"&gt;when I was&lt;/span&gt; in distress;
            have mercy upon me, and hear my prayer. <br>
            ========================== <br>
            Entry Attributes: <br>
            <br>
            [ Footnote ] <br>
                [ 1 ] <br>
                    body = &lt;catchWord&gt;chief…&lt;/catchWord&gt;:
            or, &lt;rdg type="alternative"&gt;overseer&lt;/rdg&gt; <br>
                    type = study <br>
                [ 2 ] <br>
                    body = &lt;catchWord&gt;have…&lt;/catchWord&gt;: or,
            &lt;rdg type="alternative"&gt;be gracious unto
            me&lt;/rdg&gt; <br>
                    type = study <br>
            [ Heading ] <br>
                [ 0 ] <br>
                    sID = pv2 <br>
                    subType = x-preverse <br>
                    type = x-milestone <br>
                [ Preverse ] <br>
                    0 = &lt;title canonical="true" type="psalm"&gt;&lt;w
            savlm="strong:H05329"&gt;To the chief Musician&lt;/w&gt;
            &lt;w savlm="strong:H05058"&gt;on Neginoth&lt;/w&gt;, &lt;w
            savlm="strong:H04210"&gt;A Psalm&lt;/w&gt; &lt;w
            savlm="strong:H01732"&gt;of David&lt;/w&gt;.&lt;/title&gt; <br>
                    module-&gt;renderText(heading[0]) = &lt;h3
            class="title psalm canonical"&gt;To the chief Musician on
            Neginoth, A Psalm of David.&lt;/h3&gt; <br>
            <br>
            <br>
            [ Word ] <br>
                [ 001 ] <br>
                    Lemma = H05329 <br>
                    LemmaClass = strong <br>
                    Morph = TH8764 <br>
                    MorphClass = strongMorph <br>
                    PartCount = 1 <br>
                    Text = To the chief Musician <br>
                [ 002 ] <br>
                    Lemma = H05058 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = on Neginoth <br>
                [ 003 ] <br>
                    Lemma = H04210 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = A Psalm <br>
                [ 004 ] <br>
                    Lemma = H01732 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = of David <br>
                [ 005 ] <br>
                    Lemma = H06030 <br>
                    LemmaClass = strong <br>
                    Morph = TH8798 <br>
                    MorphClass = strongMorph <br>
                    PartCount = 1 <br>
                    Text = Hear <br>
                [ 006 ] <br>
                    Lemma = H07121 <br>
                    LemmaClass = strong <br>
                    Morph = TH8800 <br>
                    MorphClass = strongMorph <br>
                    PartCount = 1 <br>
                    Text = me when I call <br>
                [ 007 ] <br>
                    Lemma = H0430 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = O God <br>
                [ 008 ] <br>
                    Lemma = H06664 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = of my righteousness <br>
                [ 009 ] <br>
                    Lemma = H07337 <br>
                    LemmaClass = strong <br>
                    Morph = TH8689 <br>
                    MorphClass = strongMorph <br>
                    PartCount = 1 <br>
                    Text = thou hast enlarged <br>
                [ 010 ] <br>
                    Lemma = H06862 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = in distress <br>
                [ 011 ] <br>
                    Lemma = H02603 <br>
                    LemmaClass = strong <br>
                    Morph = TH8798 <br>
                    MorphClass = strongMorph <br>
                    PartCount = 1 <br>
                    Text = have mercy <br>
                [ 012 ] <br>
                    Lemma = H08085 <br>
                    LemmaClass = strong <br>
                    Morph = TH8798 <br>
                    MorphClass = strongMorph <br>
                    PartCount = 1 <br>
                    Text = upon me, and hear <br>
                [ 013 ] <br>
                    Lemma = H08605 <br>
                    LemmaClass = strong <br>
                    PartCount = 1 <br>
                    Text = my prayer <br>
          </p>
          <p>There are very brief comments on this in the doxygen docs
            for SWModule::search generated from the source headers.</p>
          <p>Experimenting with multiword search on the verse body with
            SWMgr::setGlobalOption("Headings", "On"), didn't produce the
            output I would have expected from preverse headings.  Karl
            is certainly correct here.  This is likely specific to this
            one special entry attribute type "Preverse".  We strip this
            out from the rest of the body of the verse and are probably
            moving it out of the way before we perform the search of the
            body so an entry attribute search is the best way to find
            these.  However, other options like Strongs, if they are
            turned on should return hits from the body of the verse. 
            Generally speaking, anything that you get from the plaintext
            output for you options settings is what is searched by the
            verse body search facility, so with Strongs on, you should
            be able to search for lemmas as &lt;G1234&gt; or morph
            (5678), but still I would be more precise and use an entry
            attribute search: Word//Lemma./G1234/</p>
          <p>Hope this helps. </p>
          <p>Troy <br>
          </p>
          <p> <br>
          </p>
          <br>
          <div class="moz-cite-prefix">On 04/04/2018 10:42 AM, Karl
            Kleinpaste wrote: <br>
          </div>
          <blockquote type="cite"
            cite="mid:07d09f15-fa01-cee6-f068-73e97ee0caf1@kleinpaste.org">
            <div class="moz-cite-prefix"><font face="FreeSerif">On
                04/04/2018 01:33 PM, Karl Kleinpaste wrote:<br>
              </font> </div>
            <blockquote type="cite"
              cite="mid:8b5e20aa-2b0d-a524-c7b6-1d9bf9bba656@kleinpaste.org"><font
                face="FreeSerif">Doesn't appear to be true, headings on
                notwithstanding.</font> </blockquote>
            <font face="FreeSerif">On the other hand, a search for
              lemma:H05058 finds "Neginoth" and "song" all over the
              place.<br>
              Job 30:9; Psalms 4:1; Psalms 6:1; Psalms 54:1; Psalms
              55:1; Psalms 61:1; Psalms 67:1; Psalms 69:12; Psalms 76:1;
              Psalms 77:6; Isaiah 38:20; Lamentations 3:14; Lamentations
              5:14; Habakkuk 3:19<br>
            </font> <br>
            <fieldset class="mimeAttachmentHeader"></fieldset>
            <br>
            <pre wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
          </blockquote>
          <br>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <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://www.crosswire.org/mailman/listinfo/sword-devel">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
    <br>
  </body>
</html>