[sword-devel] Morphology codes relation

Troy A. Griffitts scribe at crosswire.org
Sat Feb 20 09:02:22 MST 2010


This thread might take a little time to get a full answer from Chris as 
he is GETTING MARRIED this week and might be a little preoccupied for a 
while.

But what I know is:

Strongs numbers above the standard max number were added as a system 
created in the OLB era and are verb parse codes.  I think just maybe we 
might have created a module a long while ago to give a basic parse code 
for each of these, but I really don't remember.  It would have been made 
by Chris, so we'll have to wait a bit to find out.





Daniel Owens wrote:
> I am active (sometimes) at openscriptures.org, especially working on the 
> MorphHB. We plan to tag it morphologically, but I don't expect we will 
> use codes like those in the KJV. I have no idea what they stand for, and 
> I have no idea where they come from.
> 
> Looking at kjvfull.xml from CrossWire, I see that there are morphology 
> codes like this: morph="strongMorph:TH8804", but a quick look at Genesis 
> 1:1-2 suggest that they are only attached to verbs. If they stand for 
> something meaningful, which is a reasonable assumption, you could likely 
> get someone to go through and try to guess what they stand for by 
> comparing Hebrew words with the same code and then create a morphology 
> module from that, but that would take time. I wonder if DM has any idea 
> where these come from. He is the last to work on the KJV module.
> 
> Daniel
> 
> On 2/19/2010 11:49 PM, Nic Carter wrote:
>> 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
>>
>>    
> 
> _______________________________________________
> 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