Re: Efficiently extracting section + chapter headers

"Troy A. Griffitts" <[email protected]>
Newsgroups gmane.comp.literature.sword.devel
Message-ID <[email protected]>
Sorry Tobias,

Yes, I incorrectly told you to call setIntros on SWModule instead of VerseKey.

- module->setIntros(true);
+ ((VerseKey *)module->getKey())->setIntros(true);

That's a bit ugly typed from my phone, with no check to be sure the cast succeeds, but should get the point across.

I should actually have some time this weekend to try some of these suggestions before emailing you 🙂

Troy

On January 8, 2022 1:15:18 AM MST, Tobias Klein <[email protected]> wrote:
>Hi Troy,
>
>Thank you so much for looking into this!
>
>setIntros is not available on SWModule, but only on SWKey.
>
>I suppose the setIntros must be used like this?
>
>SWKey*key= module->getKey();
>VerseKey*verseKey= SWDYNAMIC_CAST(VerseKey, key);
>*verseKey**->**setIntros**(**true**);*
>ListKeyscope= verseKey->parseVerseList(bookCode, *verseKey, true);
>ListKeyresultKey= module->search("/Heading", 
>SWModule::SEARCHTYPE_ENTRYATTR, 0, &scope);
>
>When I did that I still did not get the chapter headings, though.
>
>Best regards,
>Tobias
>
>On 1/7/22 3:44 PM, Troy A. Griffitts wrote:
>> Dear Tobias,
>>
>> I haven't had a chance to dig into this yet, but my first guess is 
>> that you may be missing the intro slots from the module.
>>
>> VerseKey modules have intro entries:
>>
>> for the chapter if you set verse to 0
>> for the book, if you set chapter to 0
>> for the testament, if you set book to 0
>> for the module, if you set testament to 0
>>
>> You'll need to module->setIntros(true) if you want to access these.
>>
>> Actually, maybe even just try setIntros(true) before your headings 
>> search. The content in these entries is likely marked up as headings, 
>> as well. For your purposes, you'll need to decide if you want anything 
>> in these entries. They might be a long book introduction. The presence 
>> of intro entries, length, and type of content varies greatly between 
>> modules.
>>
>> Hope this give something to try,
>>
>> Troy
>>
>> On January 6, 2022 9:41:31 AM MST, Tobias Klein <[email protected]> 
>> wrote:
>>
>>     Hi Troy,
>>
>>     I have started looking again into extracting book headings, so that I
>>     can generate a book outline in Ezra Bible App even when looking at
>>     individual chapters only. I had stopped looking at it when I was not
>>     successfully generating a Windows build any longer last year - but I
>>     could fix that, so now the work continues.
>>
>>     I based my code on your example findHeadings.cpp.
>>
>>     It seems like the list of extracted headings is not complete, though.
>>
>>     When running this with the module GerNeUe and the book Acts I find that
>>     the headers returned are only section headers, but not chapter headers.
>>     Could you have another look based on the example and GerNeUe/Acts and
>>     advise?
>>
>>     I have attached a list of headers that I get from the Bible text of
>>     GerNeUe/Acts - just for reference.
>>
>>     Best regards,
>>     Tobias
>>
>>     On 4/12/21 9:07 PM, Troy A. Griffitts wrote:
>>
>>         Sure Tobias, module->getEntryAttributes() will allow you to
>>         pull the headings from a verse, and an Entry Attributes search
>>         for '/Heading' will give you only the verses with Heading
>>         entries attributes. I've thrown together a quick example here,
>>         which you can use with something like: ./showHeadings NASB
>>         Matt-John which will give you the headings from the Gospels.
>>         https://crosswire.org/svn/sword/trunk/examples/tasks/findHeadings.cpp
>>         <https://crosswire.org/svn/sword/trunk/examples/tasks/findHeadings.cpp>
>>         Creating this example, I found I needed to fix a bug in the
>>         engine.  The engine Entry Attributes search lets you search
>>         for values in the entry attributes (e.g., a Strong's number
>>         1234).  In your use case, when searching, you don't care about
>>         the value; you only care about presence.  This wasn't working,
>>         but simple presence can now be searched for with my latest
>>         commit. Hope this helps, Troy On 4/12/21 9:31 AM, Tobias Klein
>>         wrote:
>>
>>             Hi, I have been getting a request from a user to render
>>             section headings independently of the currently opened
>>             bible translation module. So for example when opening the
>>             KJV still using the section/chapter headers of the NASB.
>>             This would be useful in those cases when the respective
>>             bible translation module does not come with
>>             section/chapter headers, but another one does. A
>>             requirement would be to efficiently extract
>>             section/chapter headers from a module using the SWORD API.
>>             As of now I only see that you can iterate over the verses
>>             of a book and individually scan each verse for the
>>             headers. Is there a more efficient way of doing that?
>>             Another use case could be to render a book outline. This
>>             is what I am already doing now in Ezra, but in a way that
>>             is not so clean (I am traversing the DOM looking for all
>>             section header elements of the current book). Best
>>             regards, Tobias
>>             ------------------------------------------------------------------------
>>             sword-devel mailing list: [email protected]
>>             http://crosswire.org/mailman/listinfo/sword-devel
>>             <http://crosswire.org/mailman/listinfo/sword-devel>
>>             Instructions to unsubscribe/change your settings at above
>>             page 
>>
>>         ------------------------------------------------------------------------
>>         sword-devel mailing list: [email protected]
>>         http://crosswire.org/mailman/listinfo/sword-devel
>>         <http://crosswire.org/mailman/listinfo/sword-devel>
>>         Instructions to unsubscribe/change your settings at above page 
>>
>> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

_______________________________________________
sword-devel mailing list: [email protected]
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.