-
-
{syntax type="markdown" editor="plain"}
It's worth emphasizing that this LIFT import will create custom fields in your FieldWorks project.
As such, in the context of Send/Receive, it's important to follow the "Recommended procedure" for adding custom fields as described in the dialog that is shown before configuring custom fields in FieldWorks. At the time of writing that dialog states:
This project is set up for Send/Receive Project (with other FLEX
users). If there are already other users in your team. it is VERY
important to coordinate custom field changes. FLEX currently
has only limited ability to Send/Receive custom field changes.
It is possible to get into a situation where some team
members cannot merge their changes and must Get the
project again.
Recommended procedure:
1. All team members do send/Receive and STOP WORK until
they have done step 3.
2. One team member does a final Send/Receive, makes the
custom field changes, and does another Send/Receive.
3. All other team members do another Send/Receive to get the
new field.
If you are going to CHANGE THE TYPE Of a field (e.g., delete or
rename a text field and add a list-reference field wth the same
name), we recommend that steps 2 and 3 be repeated, once to
delete or rename the old field, and once to add the new one.
Adding custom fields can safety be done with less trouble. The
important thing is to avoid two people adding custom fields
with the same name. We recommend that teams agree on one
person who will make all custom field changes.
If you are not the one designated user who adds fields, or
you are making some other kind of change and have not yet
had your team do step I, PLEASE do not continue!
(There is one other special case. If you are adding a temporary
custom field for a special purpose and will delete it before
you next Send/Receive, you may proceed safelyJ
The reason for the problem is that SILCAWL.lift contained sense ids of the old format: gloss_idnumber. Contemporary LIFT processes do not support this old format.
Example:
<sense id="decorate_00126bca-a7c7-48c5-919c-e45db40ae6bf">
<grammatical-info value="Verb"></grammatical-info>
When this gets imported into FieldWorks 9.0.x or greater, FieldWorks creates a <LIFTResidue> element that contains this id in the fwdata file.
<rt class="LexSense" guid="00126bca-a7c7-48c5-919c-e45db40ae6bf" ownerguid="1354e30c-b8f8-46fe-9bf8-639835282fe6">
<Gloss>
<AUni ws="en">decorate</AUni>
<AUni ws="fr">décorer</AUni>
<AUni ws="ha-x-cl">ado</AUni>
<AUni ws="swh">=pamba</AUni>
</Gloss>
<LiftResidue>
<Uni><lift-residue id="decorate_00126bca-a7c7-48c5-919c-e45db40ae6bf" dateCreated="2022-01-26T17:59:31Z" dateModified="2022-01-26T17:59:31Z"></lift-residue></Uni>
</LiftResidue>
When a LIFT file is exported from FieldWorks 9.0 or greater, it uses the information in the LIFTResidue element, creating senses with ids of the old gloss_idnumber format. This old format causes problems.
If you have fwdata with old LIFTResidue elements and you are running into issues in LIFT related processes, you can remove the <LIFTResidue> elements from your fwdata file using Notepad++ and regular expression search and replace. MAKE A BACKUP OF YOUR FIELDWORKS PROJECT FIRST!
Use this expression in the Search and replace and it will get rid of all the LIFTResidue elements. Note that I have seen projects that have <LIFTResidue> and others with <LiftResidue> (lowercase on LIFT). So make changes as needed. Note that are replacing with nothing.
Find: <LIFTResidue>.*?</LIFTResidue>\r\n
Replace:
In the Search and Replace dialog, be sure to turn on regular expressions, and . matches newline.
(The ? means that the regular expression is "not greedy". Without it, the Search will match against the very first <LIFTResidue> and everything in-between to the very last </LIFTResidue>)
(The \r\n matches a paragraph return).