[sword-devel] Parsing Strong's to support more flexible layout in user interface
Tobias Klein
contact at tklein.info
Sun Nov 10 16:36:24 EST 2019
Hi Troy,
Thanks for your response on this! There's still a lot for me to learn
regarding the Sword engine.
Never heard about TEI before, I need to read up on this!
Is there any other Sword frontend as of today that is working with the
Entry Attributes for any dictionaries?
Best regards,
Tobias
On 11/9/19 10:54 PM, Troy A. Griffitts wrote:
>
> Dear Tobias,
>
> Yes, our StrongsGreek and StrongsHebrew modules need work. I know the
> Xiphos repo has improved Strongs modules. I was actually surprised to
> see that our Strongs modules are still not using any SourceType entry
> in the .conf file. They should be updated to use TEI, as this is what
> we decided to use for lexicon markup, but I guess never updated our
> modules.
>
> Regarding your use case. In SWORD, the common way for parsing out and
> making available useful information which might be found in a module
> entry is the EntryAttributes mechanism. This would allow requests like:
>
> module.getEntryAttributes()["Word"]["Transcription"]["Main"];
> module.getEntryAttributes()["Word"]["Transcription"]["Phonetic"];
> module.getEntryAttributes()["Definition"]["Body"]["Text"];
> module.getEntryAttributes()["Reference"]["000"]["Text"];
> module.getEntryAttributes()["Reference"]["000"]["EntryKey"];
> module.getEntryAttributes()["Reference"]["001"]["Text"];
> module.getEntryAttributes()["Reference"]["001"]["EntryKey"];
>
>
> If you haven't used EntryAttributes in SWORD yet, have a look at
> something like the KJV with the tool: sword/examples/cmdline/lookup.
> This utility prints out all the entry attributes associated with an
> entry (among other things).
>
> You may have noticed, above, one quirk with SWORD Entry Attributes in
> that they are always referenced by a 3 level key. Searches are done
> using / notation with empty segments and trailing '.' designating
> wildcards, e.g., Word//Lemma./G1234/. This would find any entry in the
> KJV with an EntryAttribute having strongs G1234 in the "Lemma.*"
> entries for any Word number.
>
> So, to implement what you want, I would suggest we update our
> StrongsGreek and StrongsHebrew with markup and use info from a source
> we know we can designate the copyright information (this is my concern
> from other lexicon data out there). We could talk with Tyndale about
> the pedigree of their data for their Greek and Hebrew Strong
> definitions and possibly finalize a module we could share, or improve
> on ours with data from various sources we can cite, like
> http://crosswire.org/svn/sword-tools/trunk/flashtools/ for adding
> "RealGreek" and "RealHebrew" word headings to our current lexica.
>
> What we should really start with is a TEI markup of our current
> lexica, if we decide to improve our current modules.
>
> THEN, with markup in place, parsing the entries into entry attributes
> would be really simple by adding a filter... in fact, looking for an
> example, I strangely found:
>
> http://crosswire.org/svn/sword/trunk/src/modules/filters/greeklexattribs.cpp
>
> I wonder if we use this filter on any module, currently...
>
> Troy
>
>
>
>
> On 11/9/19 3:31 AM, Tobias Klein wrote:
>>
>> Hi,
>>
>> I'm currently working on Strong's support for Ezra Project.
>>
>> I've been implementing a Strong's parsing functionality that enables
>> flexible formatting of the Strong's definitions (from StrongsGreek
>> and StrongsHebrew) in my frontend.
>> Without this functionality the frontend would have to "dump" the
>> definition of a Strong's key and it wouldn't have freedom in how the
>> definition is formatted / layed out.
>> Having this functionality available, the frontend can work with
>> individual parts of the Strong's definition and apply specific
>> formatting and layout.
>> The parsing divides a Strong's entry into:
>> - Transcription
>> - Phonetic transcription
>> - Definition
>> - List of references
>>
>> In case of Ezra Project the formatting looks like this now:
>> https://raw.githubusercontent.com/tobias-klein/ezra-project/master/screenshots/strongs_formatting_example.png
>>
>> I'm pasting the definition of my StrongsEntry class below, which is
>> the base for this implementation (see
>> https://github.com/tobias-klein/node-sword-interface/blob/master/src/strongs_entry.hpp):
>>
>> classStrongsEntry
>> {
>> public:
>> StrongsEntry(std::stringkey, std::stringrawEntry);
>> virtual~StrongsEntry(){}
>> staticStrongsEntry*getStrongsEntry(sword::SWModule*module,
>> std::stringkey);
>> std::string rawEntry;
>> std::string key;
>> std::string transcription;
>> std::string phoneticTranscription;
>> std::string definition;
>> std::vector<StrongsReference> references;
>> private:
>> voidparseFromRawEntry(std::stringrawEntry);
>> voidparseFirstLine(std::stringfirstLine);
>> voideraseEmptyLines(std::vector<std::string>&lines);
>> voidparseDefinitionAndReferences(std::vector<std::string>&lines);
>> };
>>
>> Now I'm wondering whether something like this could actually be
>> useful as part of the Sword engine, since the use case of "flexible
>> Strong's formatting" may also be relevant for other frontends.
>>
>> Best regards,
>> Tobias
>>
>>
>> _______________________________________________
>> 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/20191110/5c6a909e/attachment.html>
More information about the sword-devel
mailing list