Open megahirt opened 4 months ago
LfMerge fills in the lexeme field from the LexemeFormOA property and doesn't look at the MorphTypeRA property. Apparently that's not the right thing to do for bound roots. I'll look at the liblcm code and try to figure out what should happen for bound roots, i.e. where the lexeme is stored in a bound root.
Marking size estimate as "Unknown" for now; once I do a bit of research, I'll be able to more properly guess the size of this task.
The docs for the CitationForm field on lex entries say "If this is missing, then this defaults to the lexicalForm but the user has the option of specifying a real citation form especially useful for bound roots." I don't think that means that there might be no LexemeForm value for bound roots, but perhaps that's what it means? I should ask the user whether the entry he changed had a citation form.
One way to see what's going on on the FW side of things would be to:
I just did what Chris suggested in https://github.com/sillsdev/web-languageforge/issues/1830#issuecomment-2210624322 and converted one entry in the rmunn-testlangproj project to a bound root. I then did a Send/Receive from FLEx, and this was the change:
diff -r 5fce5a35cbc5 -r 228260e19993 General/LanguageProject.langproj
--- a/General/LanguageProject.langproj Wed Jul 10 01:37:27 2024 -0700
+++ b/General/LanguageProject.langproj Wed Jul 10 01:42:18 2024 -0700
@@ -24,7 +24,7 @@
<DateCreated
val="2003-07-09 14:59:47.183" />
<DateModified
- val="2011-07-28 16:09:21.659" />
+ val="2024-07-10 08:41:09.021" />
<Description>
<AStr
ws="en">
diff -r 5fce5a35cbc5 -r 228260e19993 Linguistics/Lexicon/Lexicon_02.lexdb
--- a/Linguistics/Lexicon/Lexicon_02.lexdb Wed Jul 10 01:37:27 2024 -0700
+++ b/Linguistics/Lexicon/Lexicon_02.lexdb Wed Jul 10 01:42:18 2024 -0700
@@ -241,6 +243,8 @@
<LexemeForm>
<MoStemAllomorph
guid="207798b5-22a1-40c9-b3ab-e11a4ff1cd57">
+ <Custom
+ name="Cust Allomorph" />
<Form>
<AUni
ws="qaa-fonipa-x-kal">kʰala</AUni>
@@ -251,7 +255,7 @@
val="False" />
<MorphType>
<objsur
- guid="d7f713e8-e8cf-11d3-9764-00c04f186933"
+ guid="d7f713e4-e8cf-11d3-9764-00c04f186933"
t="r" />
</MorphType>
</MoStemAllomorph>
That GUID change is from the GUID for "stem" to the GUID for "bound root". That matches the change that I saw in the user's original FLEx project, where lex entry 10b92aaf-b221-4b50-8980-8e50b4c0f564 (in the original project) just had a MorphType change, from and to the same GUIDs.
So I'm pretty confident that I reproduced the change the user made in FLEx. However, I did not manage to reproduce the LF bug! When I did a Send/Receive in Language Forge, pulling in the bound root change, it did not blank out the lexeme.
So I still have no idea what's causing the bug in the bug reporter's project.
Bug report from an user:
Describe the bug Entries in my flex database which have morph type "bound root" have the Word field blank in language forge.
To Reproduce To reproduce: I observed that the long list of words in language forge that didn't have accompanying word forms (though all had the lexeme form field filled in in flex) were bound roots. To test, I went to flex and changed an entry which was displaying correctly in language forge from a stem to a bound root. I send/received on both flex and language forge, and the Word field became blank in language forge.
Expected behavior Bound-root words should show in LF, not be blank in the lexeme form / word field.