sillsdev / TheCombine

This is a tool for supporting the rapid word collection workshop and post workshop clean-up
https://sillsdev.github.io/TheCombine/
MIT License
16 stars 13 forks source link

Add/edit semantic domains #741

Closed imnasnainaec closed 3 months ago

imnasnainaec commented 4 years ago

The existing tree of semantic domains is not a good fit for all languages and cultures. It would be useful for project managers to be able to add new domains and possibly edit/delete existing domains.


Proposal to allow custom semantic domains while (a) using only 1-digit numbers and (b) not conflicting with established domains:

Use a single 0 for custom domains:

  • Standard: 1, 2, 9, 3.1, 4.1.2, etc.
  • Custom: 0, 0.1, 0.2, 0.1.1, 1.0, 1.0.1, 3.4.0.1.1, etc.
  • Invalid: 10, 3.11, 0.0, 4.0.1.0, 0.1.20, etc.

Then imported domains, if designated as custom on import, can be prefixed with 0.. This also allows custom domains created in The Combine to be added under any existing domain. Restricting to 1-digit numbers maintains typing (e.g.) 113 for 1.1.3 and prevents confusion between (e.g.) 11.3 and 1.1.3.


An alternate/additional idea: Allow adding custom questions to existing domains. (By default this would not be exported, but would help with the gathering within The Combine.)

KimB2017 commented 3 years ago

If/when this is done it would be great if the edited domains transferred between FW and Combine. I don't see our added node 1.8 (Animals by local categories rather than scientific taxonomy, in the FLEx project) showing up in Combine, but maybe it's in the LIFT file.

imnasnainaec commented 11 months ago

From a user:

Participatory RWC: It's when the community is asked what domains are important to them and then RWC is done from the emic perspective. The semantic domains in use in The Combine at the moment are from a western perspective and the worldview of many cultures is quite different.

KimB2017 commented 11 months ago

Thanks for all the hard work y'all are doing on Combine! Sounds as if it has matured a lot since 2020.

The ability to add/edit SDs, and recognize custom domains that exist in a FLEx DB, is a critically important need in both FLEx (where one can create extra domain labels) and Combine. Ideally, thinking through emic domains should become a standard pre-RWC task, but if a language team takes on that task it will likely need editing during a RWC and even afterwards.

In our RWC the Western slant to the Domain list was most jarring in the domain of animals/birds/fish: Scientific species taxonomy is unknown and incomprehensible to the local people... (Although our community includes a PhD ecological biologicist who will be happy to add those domains to the local flora/fauna entries!) Birds are categorized by what they eat. Non-human primates and large African mammals are known only by action movies and children's stories. Marsupials are almost the only native mammals. Fish are primarily differentiated by ocean/salt water vs. river/fresh water. Etc.

I've been waiting for Combine to mature in the task of post-editing a FLEx DB that includes a couple thousand pre-RWC lexemes and 8000 messy RWC entries. If Combine can't display our custom domains I can work around that and use it for other cleanup tasks, but if the fix to #1761 does not include preserving existing custom domains Combine won't work for us.

imnasnainaec commented 10 months ago

Dev note: We'll need to make sure the exported .lift-ranges content matches the structure of LIFT. Currently..

FLEx exports:

<range-element id="1.1 Ciel" guid="999581c4-1611-4acb-ae1b-5e6c1dfe6f0c" parent="1 L'univers, la création">
<label>
<form lang="en"><text>Sky</text></form>
<form lang="fr"><text>Ciel</text></form>
</label>
<abbrev>
<form lang="en"><text>1.1</text></form>
<form lang="fr"><text>1.1</text></form>
</abbrev>
<description>
<form lang="en"><text>Use this domain for words related to the sky.</text></form>
<form lang="fr"><text>Classer dans ce champ lexical le vocabulaire associé au ciel.</text></form>
</description>
</range-element>

Combine exports:

    <range-element
      id="1.1 Ciel"
      guid="999581c4-1611-4acb-ae1b-5e6c1dfe6f0c">
      <label
        lang="fr">
        <text>Ciel</text>
      </label>
      <abbrev
        lang="fr">
        <text>1.1</text>
      </abbrev>
    </range-element>
    <range-element
      id="1.1 Sky"
      guid="999581c4-1611-4acb-ae1b-5e6c1dfe6f0c">
      <label
        lang="en">
        <text>Sky</text>
      </label>
      <abbrev
        lang="en">
        <text>1.1</text>
      </abbrev>
    </range-element>
jasonleenaylor commented 8 months ago

Decisions after 1/12 meeting:

  1. We will support custom domains in The Combine
  2. We will import custom domains from Lift and put them in the project (Within reason, should have numbers and fit in the hierarchy)
  3. We will allow the creation of custom domains in The Combine - But they will always be a domain or subdomain '0'.
imnasnainaec commented 3 months ago

Decisions after 1/12 meeting:

  1. We will support custom domains in The Combine
  2. We will import custom domains from Lift and put them in the project (Within reason, should have numbers and fit in the hierarchy)
  3. We will allow the creation of custom domains in The Combine - But they will always be a domain or subdomain '0'.

3081 covers 1&3 and 2 is reserved for #3178