[sword-devel] Morphology codes relation

Manfred Bergmann manfred.bergmann at me.com
Sat Feb 20 02:37:12 MST 2010


Well, thanks Nic.
I was testing this with the KJV and Packard and Robinson modules.
I've posted in this forum thread myself but I couldn't remember.
If this is so then I will also return a information message as you suggested.
I'm wondering however why the SWORD API returns a valid result while the error flag is unset if this key doesn't exist in the module?


Cheers,
Manfred

Am 20.02.2010 um 05:49 schrieb Nic Carter:

> 
> Hi Manfred,
> 
> I'm curious as to what module you are using to look up these keys?  I'm under the understanding that looking up values like "TH8804" won't return a valid result, as we don't have a lexicon containing these keys?
> 
> I'm using this forum thread to justify my answer:  http://www.crosswire.org/forums/mvnforum/viewthread_thread,772
> 
> On this note, I'm going to show an error message in PocketSword when someone tries to look up one of these Morphology codes, and the error message will be:
> 
> "Unfortunately, Morphological Analysis Codes are only currently available for Greek words.  If you have the language ability and are willing to help bring this feature to PocketSword, please take a look at <br /> openscriptures.org<br />and join the discussion group there."
> 
> Is anyone who is active with openscriptures.org able to comment on this?  :)  I don't want to use this text if it's not correct, but if I'm able to refer some possible volunteers to help with the work there, I'm hoping that would be constructive?  :)
> 
> Thanks all, ybic
> 	nic...  :)
> 
> ps: Manfred, I'll check in my code to SVN later today & you can check out how I'm going to do Morph stuff.  :)
> 
> pps:  Thanks for your reply, Troy, it helps with what I'm doing  :)
> 
> ----
> Nic Carter
> PocketSword Developer - an iPhone Bible Study app
> http://crosswire.org/pocketsword
> http://itunes.apple.com/app/Pocketsword/id341046078
> 
> On 18/02/2010, at 11:05 PM, Manfred Bergmann wrote:
> 
>> Hi guys.
>> 
>> Now, I stumbled over an issue regarding morphs while working on MacSword:
>> 
>> The morph value code in the link URL data is something like this:
>> value=TH8804
>> When I set this as a key in SWModule with setKey() the correlating text is:
>> "Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine"
>> 
>> In the Packard module when I do an index search for this I get:
>> Ra Nsm: 
>> Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine 
>> Rd Nsm: 
>> Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine 
>> Ri Nsm: 
>> Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine 
>> Rp Nsm: 
>> Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine 
>> Rr Nsm: 
>> Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine 
>> Rx Nsm: 
>> Part of speech: pronoun, relative Case: nominative Number: singular Gender: masculine 
>> 
>> Those "Rs Nsm" etc. kind of codes are in fact the keys that we collect in order to display them as a table of content for the user to choose from or click on in the a dictionary view.
>> Now the problem is that I can't actually find a relation other than the text itself of the key ("Ra Nsm") for the morph code of TH8804.
>> How do I get to "Ra Nsm" etc. for a code of TH8804 via SWORD API?
>> 
>> 
>> 
>> Cheers,
>> Manfred
>> 
>> 
>> Am 17.02.2010 um 18:13 schrieb Troy A. Griffitts:
>> 
>>> Nic,
>>> 
>>> There are currently 2 primary ways frontends have implemented strongs/morph functionality:
>>> 
>>> 1) show the numbers in the text as clickable links;
>>> 2) have the word itself be a clickable link which has both strongs/morph/other data attached.
>>> 
>>> These 2 methods usually dictate, at a lower level, 2 different methods:
>>> 
>>> 1) have the lookup information embedded directly in the link, e.g., action=showMorph&type=Greek&value=5589
>>> 
>>> 2) have the word id embedded in the link, and then do an entry attributes lookup to obtain the relevant information, e.g.,
>>> 
>>> <span onclick="showWordData(1)">In</span>
>>> 
>>> To see the data you can obtain from entry attributes once you have the word id, have a look at sword/examples/cmdline/lookup, e.g.,
>>> 
>>> ./lookup KJV jn.1.1
>>> 
>>> 
>>> Basically, what it comes down to is WHERE you want the work to happen. All of this information comes out of entry attributes at some point: either the filter obtains it and puts it in the link, or your app obtains it and does what it sees fit with it.
>>> 
>>> You can see code which implement the lemma/morph/interlinear lookups in a filter, located under sword/bindings/corba/orbitcpp/webmgr.hpp.  This Word Javascript filter set does the lookup from entry attributes and adds a tag around words with linguistic markup.  Here is the pertinent line of code from the filter:
>>> 
>>> text.appendFormatted("<span class=\"clk\" onclick=\"p('%s','%s','%s','%s','%s','%s');\" >", lexName.c_str(), lemma.c_str(), wordID.c_str(), morph.c_str(), page.c_str(), modName.c_str());
>>> 
>>> This is how swordweb does word-click lookups and shows strongs, morph, interlinear data, etc. (page, is the image page number for the Tregelles GNT scans).
>>> 
>>> I know this doesn't answer all of your questions, but hope it gets you started.
>>> 
>>> Troy.
>>> 
>>> 
>>> Nic Carter wrote:
>>>> Hi team  :)
>>>> I'm currently implementing morphology tags at the same time as Strong's in PocketSword & I have a question about the HTML filters.
>>>> for THML (thmlhtmlhref.cpp)
>>>> 	we have "passagestudy.jsp?action=showMorph&type=Greek&value=%s" (line 178)
>>>> 	so, the "type" is hardcoded to "Greek".
>>>> for GBF (gbfhtmlhref.cpp)
>>>> 	we have "passagestudy.jsp?action=showMorph&type=Greek&value=" (line 207)
>>>> 	so, the "type" is hardcoded to "Greek".
>>>> for OSIS (the one we're mostly interested in now-a-days: osishtmlhref.cpp)
>>>> 	we have "passagestudy.jsp?action=showMorph&type=%s&value=%s" (line 150)
>>>> 	so, the "type" is variable, with an example from the KJV being: "passagestudy.jsp?action=showMorph&type=robinson%3AN-ASN&value=N-ASN"
>>>> 	[note: %3A is the URL encoding of the ":" character, as this is coming from the OSIS w tag, where morph="robinson:N-ASN" is found, so we are simply passing through the "morph" attribute to the "type" attribute in this html link, after running it through URL::encode().]
>>>> http://www.crosswire.org/wiki/OSIS_Bibles#Marking_with_Morphology is also a good place to read up on this, from an OSIS point of view.
>>>> http://n4.nabble.com/new-morphology-td354696.html#a354696 has a previous thread about Morphology tags
>>>> http://n4.nabble.com/KJV-OT-morphology-td351093.html#a351093 mentions OT Morph tags & how they were broken back then (are they still?  if the situation is still the same today, then that may help answer question #1 & some of #2!)
>>>> http://n4.nabble.com/Fwd-GnomeSword-developers-Hebrew-WLC-Text-with-Strongs-numbers-and-Morphology-td358831.html#a358831 mentions that there was no Hebrew Morphological Analysis Codes module as of March 2009, is that still the case?  (that may also help answer question #1?)
>>>> Given all of the above:
>>>> 1) do we only support Morphology of Greek words?  Looking in the KJV (OSIS), it seems they appear in the OT (hence, also for Hebrew words), and the "type" attribute is "strongMorph".  For example, "passagestudy.jsp?action=showMorph&type=strongMorph%3ATH8804&value=TH8804" from Micah 1:16 (from the word "captivity", with the Strong's Hebrew Number of 01540).
>>>> 2) should the OSIS version, above, have the "type" attribute actually being "robinson" (in the KJV example above) rather than "robinson%3AN-ASN"?  or should it instead be hard-coded to be "Greek" like with the THML & GBF versions?  I'm assuming it should be "robinson", given that's what the OSIS module says...  so I'm guessing that the "strongMorph", found in question #1 is actually referring to a non-public (or non-existing?) module that has the Hebrew Morphology.
>>>> 3) do other front-ends simply assume that we only call the "showMorph" action on Greek words & hence ignore the "type" attribute?  Or do they (as I am currently thinking of doing) treat "Greek" to use a module with "Feature=GreekParse" & showMorph actions that start with "robinson" or "packard" to also be Greek & anything else to be Hebrew?  Or do they treat "Greek" as Greek & anything else they parse the "type" attribute until they get to the ":" & then try to use that module, falling back to an error dialogue if that module isn't installed?
>>>> 4) I am assuming that any module with "Feature=GreekParse" in it is able to handle Greek Morphology codes, so when we encounter a "showMorph" with a "type" containing "robinson", do we NEED to use the "robinson" module (which is the technically correct thing to do) or can I allow the user to select any module they have installed which has the "GreekParse" feature in it (the same as we do with Strong's Numbers)?  But, then, linking with question #1, there is no equivalent for "Feature=HebrewParse"?  at least, I can't find any modules from the CrossWire or CrossWire Beta repos with that in it?
>>>> ok, I think that's about it!  I enjoy trying to figure out fun SWORD things (well, now I do -- at first it was overwhelming, but I was learning the SWORD APIs & the CocoaTouch APIs & Obj-C all at the same time!), but I'd love clarification on this before I code it :)
>>>> Thanks heaps for even reading this far.  If you have read this far and can actually understand it all, you deserve a medal & you're probably also equipped enough to answer all my questions!  ;)  :)
>>>> ybic
>>>> 	nic...  :)
>>>> ----
>>>> Nic Carter
>>>> PocketSword Developer - an iPhone Bible Study app
>>>> http://crosswire.org/pocketsword
>>>> _______________________________________________
>>>> 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
>> 
>> 
>> _______________________________________________
>> 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




More information about the sword-devel mailing list