[sword-devel] Front-ends in which search can find words in the canonical Psalm headings?

Troy A. Griffitts scribe at crosswire.org
Thu Apr 5 08:31:32 MST 2018


On 04/05/2018 08:01 AM, David Haslam wrote:
> Thanks Troy for all this fine detail. 
>
> Is there any way that these special search parameters can be passed to
> diatheke (as is) ?
>

[scribe at localhost diatheke]$ ./diatheke -b KJV -s attribute -k
Heading///Neginoth
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)


> Or would diatheke need further enhancing to support search within
> headings such as Psalm titles?
>
> Best regards, David
>
>
> Sent from ProtonMail Mobile
>
>
> On Wed, Apr 4, 2018 at 23:18, Troy A. Griffitts <scribe at crosswire.org
> <mailto:scribe at crosswire.org>> wrote:
>>
>> 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'.
>>
>> [scribe at localhost cmdline]$ ./search KJV Heading///Neginoth
>> [0=================================50===============================100]
>>  ======================================================================
>> Psalms 4:1
>> Psalms 6:1
>> Psalms 54:1
>> Psalms 55:1
>> Psalms 67:1
>> Psalms 76:1
>>
>> Likewise, in any entry attribute:
>>
>> [scribe at localhost cmdline]$ ./search KJV ///Neginoth
>> [0=================================50===============================100]
>>  ======================================================================
>> Psalms 4:1
>> Psalms 6:1
>> Psalms 54:1
>> Psalms 55:1
>> Psalms 67:1
>> Psalms 76:1
>> Habakkuk 3:19
>>
>> Or very specifically the first preverse heading of a verse:
>>
>> [scribe at localhost cmdline]$ ./search KJV Heading/Preverse/0/Neginoth
>> [0=================================50===============================100]
>>  ======================================================================
>> Psalms 4:1
>> Psalms 6:1
>> Psalms 54:1
>> Psalms 55:1
>> Psalms 67:1
>> Psalms 76:1
>>
>> Here's the entry attribute dump, output from the 'lookup' example,
>> for Ps.4.1 from the KJV:
>>
>> [scribe at localhost cmdline]$ ./lookup KJV Ps.4.1
>> ==Raw=Entry===============
>> Psalms 4:1:
>> <div type="x-milestone" subType="x-preverse" sID="pv2"/><title
>> canonical="true" type="psalm"><w lemma="strong:H05329"
>> morph="strongMorph:TH8764">To the chief Musician</w> <w
>> lemma="strong:H05058">on Neginoth</w>, <w lemma="strong:H04210">A
>> Psalm</w> <w lemma="strong:H01732">of David</w>.</title><div
>> type="x-milestone" subType="x-preverse" eID="pv2"/><w
>> lemma="strong:H06030" morph="strongMorph:TH8798">Hear</w> <w
>> lemma="strong:H07121" morph="strongMorph:TH8800">me when I call</w>,
>> <w lemma="strong:H0430">O God</w> <w lemma="strong:H06664">of my
>> righteousness</w>: <w lemma="strong:H07337"
>> morph="strongMorph:TH8689">thou hast enlarged</w> me <transChange
>> type="added">when I was</transChange> <w lemma="strong:H06862">in
>> distress</w>; <w lemma="strong:H02603"
>> morph="strongMorph:TH8798">have mercy</w> <w lemma="strong:H08085"
>> morph="strongMorph:TH8798">upon me, and hear</w> <w
>> lemma="strong:H08605">my prayer</w>.<note
>> type="study"><catchWord>chief…</catchWord>: or, <rdg
>> type="alternative">overseer</rdg></note><note
>> type="study"><catchWord>have…</catchWord>: or, <rdg
>> type="alternative">be gracious unto me</rdg></note>
>> ==Render=Entry============
>>         .divineName { font-variant: small-caps; }
>>         .wordsOfJesus { color: red; }
>>         .transChange { font-style: italic; }
>>         .transChange.transChange-supplied { font-style: italic; }
>>         .transChange.transChange-added { font-style: italic; }
>>         .transChange.transChange-tenseChange::before { content: '*'; }
>>         .transChange.transChange-tenseChange { font-style: normal; }
>>         .transChange:lang(zh) { font-style: normal; text-decoration:
>> dotted underline; }
>>         .overline { text-decoration: overline; }
>>         .indent1 { margin-left: 1em; }
>>         .indent2 { margin-left: 2em; }
>>         .indent3 { margin-left: 3em; }
>>         .indent4 { margin-left: 4em; }
>>         abbr { &:hover{ &:before{ content: attr(title); } } }
>>         .small-caps { font-variant: small-caps; }
>>         .selah { text-align: right; width: 50%; margin: 0; padding: 0; }
>>         .acrostic { text-align: center; }
>>         .colophon {font-style: italic; font-size: small; display:
>> block; }
>>         .rdg { font-style: italic; }
>>         .catchWord {font-style: bold; }
>>         .x-p-indent {text-indent: 1em; }
>>    
>> Hear me when I call, O God of my righteousness: thou hast enlarged me
>> <span class="transChange transChange-added">when I was</span> in
>> distress; have mercy upon me, and hear my prayer.
>> ==========================
>> Entry Attributes:
>>
>> [ Footnote ]
>>     [ 1 ]
>>         body = <catchWord>chief…</catchWord>: or, <rdg
>> type="alternative">overseer</rdg>
>>         type = study
>>     [ 2 ]
>>         body = <catchWord>have…</catchWord>: or, <rdg
>> type="alternative">be gracious unto me</rdg>
>>         type = study
>> [ Heading ]
>>     [ 0 ]
>>         sID = pv2
>>         subType = x-preverse
>>         type = x-milestone
>>     [ Preverse ]
>>         0 = <title canonical="true" type="psalm"><w
>> savlm="strong:H05329">To the chief Musician</w> <w
>> savlm="strong:H05058">on Neginoth</w>, <w savlm="strong:H04210">A
>> Psalm</w> <w savlm="strong:H01732">of David</w>.</title>
>>         module->renderText(heading[0]) = <h3 class="title psalm
>> canonical">To the chief Musician on Neginoth, A Psalm of David.</h3>
>>
>>
>> [ Word ]
>>     [ 001 ]
>>         Lemma = H05329
>>         LemmaClass = strong
>>         Morph = TH8764
>>         MorphClass = strongMorph
>>         PartCount = 1
>>         Text = To the chief Musician
>>     [ 002 ]
>>         Lemma = H05058
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = on Neginoth
>>     [ 003 ]
>>         Lemma = H04210
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = A Psalm
>>     [ 004 ]
>>         Lemma = H01732
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = of David
>>     [ 005 ]
>>         Lemma = H06030
>>         LemmaClass = strong
>>         Morph = TH8798
>>         MorphClass = strongMorph
>>         PartCount = 1
>>         Text = Hear
>>     [ 006 ]
>>         Lemma = H07121
>>         LemmaClass = strong
>>         Morph = TH8800
>>         MorphClass = strongMorph
>>         PartCount = 1
>>         Text = me when I call
>>     [ 007 ]
>>         Lemma = H0430
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = O God
>>     [ 008 ]
>>         Lemma = H06664
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = of my righteousness
>>     [ 009 ]
>>         Lemma = H07337
>>         LemmaClass = strong
>>         Morph = TH8689
>>         MorphClass = strongMorph
>>         PartCount = 1
>>         Text = thou hast enlarged
>>     [ 010 ]
>>         Lemma = H06862
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = in distress
>>     [ 011 ]
>>         Lemma = H02603
>>         LemmaClass = strong
>>         Morph = TH8798
>>         MorphClass = strongMorph
>>         PartCount = 1
>>         Text = have mercy
>>     [ 012 ]
>>         Lemma = H08085
>>         LemmaClass = strong
>>         Morph = TH8798
>>         MorphClass = strongMorph
>>         PartCount = 1
>>         Text = upon me, and hear
>>     [ 013 ]
>>         Lemma = H08605
>>         LemmaClass = strong
>>         PartCount = 1
>>         Text = my prayer
>>
>> There are very brief comments on this in the doxygen docs for
>> SWModule::search generated from the source headers.
>>
>> 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 <G1234> or morph (5678), but still I would be more precise and use
>> an entry attribute search: Word//Lemma./G1234/
>>
>> Hope this helps.
>>
>> Troy
>>
>>
>>
>> On 04/04/2018 10:42 AM, Karl Kleinpaste wrote:
>>> On 04/04/2018 01:33 PM, Karl Kleinpaste wrote:
>>>> Doesn't appear to be true, headings on notwithstanding. 
>>> On the other hand, a search for lemma:H05058 finds "Neginoth" and
>>> "song" all over the place.
>>> 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
>>>
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20180405/d9fdf538/attachment-0001.html>


More information about the sword-devel mailing list