Clear-Bible / macula-hebrew

Syntax trees, morphology, and linguistic annotations for the Hebrew Bible
Other
36 stars 10 forks source link

Consistency check: syntax and morphology #15

Open jonathanrobie opened 2 years ago

jonathanrobie commented 2 years ago

This is more of an epic than an individual issue.

When merging existing syntax trees with morphology, we have probably created instances where the morphological interpretation does not agree with the syntactic interpretation. We need to do a survey of instances where the OSHB morphological interpretation disagrees with the interpretation used to build the original Groves trees by comparing the two morphologies. Most of these differences will probably fall into categories that we can enumerate. This will include both differences in interpretation and clear bugs.

This task involves:

  1. Comparing morphologies and creating a list of differences
  2. As far as possible, automatically categorizing these differences into categories
  3. Creating a representation of these differences that is easy for a Hebrew expert to assess efficiently and make decisions.
jonathanrobie commented 2 years ago

We can also use the @Rule attributes to identify possible discrepancies with the morphology.

rkjtan commented 2 years ago

Note that the categories used in the Westminster Hebrew Syntax are divided up differently than the Westminster Hebrew Morph. If you look at A Reference Guide to the Westminster Hebrew Morphology Database Document Release 4.20 (which is the version the Westminster Hebrew Syntax was built upon), there are only six categories: particle, pronoun, noun, adjective or numeral, verb, and suffixes. Definite article, object marker, conjunction, adverb, interjection, preposition, and relative particles belong within the category of particle. In the trees, these types have been separated out. Likewise, numerals have been separated out from adjectives. These differences account for the trees having 14 Cat vs. 6 categories in the Westminster morph originally.

Here's a list of the 14 Cat in the trees & how they correspond to the OSHB morph categories: adj (maps directly to OSHB adj) adv (maps directly to OSHB adv) om (maps to OSHB ptcl & particle type direct object marker) cj (maps directly to OSHB conj) art (maps to OSHB ptcl & particle type definite article) ij (maps to OSHB ptcl & particle type interjection) rel (maps to OSHB ptcl & particle type relative) noun (maps directly to OSHB noun) ptcl (maps directly to OSHB ptcl) prep (maps directly to OSHB prep) pron (maps directly to OSHB pron) verb (maps directly to OSHB verb) num (maps to OSHB adj & 2 adjectives types of Cardinal & Ordinal numbers) x (maps directly to OSHB sfx)

Be sure to look at my comments in https://github.com/Clear-Bible/macula-hebrew/tree/main/doc about the kind of systematic & frequent inconsistencies & mismatches I initially expect to see.

klosoter commented 2 years ago

Just checking, these are the mismatches/inconsistencies you are looking for?

Screenshot 2022-04-05 at 12 27 30

Or are we also looking at other attributes/features?

klosoter commented 2 years ago

See here for a more insightful (but less readable) table. The index column consists of the OSHB "pos" and "type" attributed, joined by "_". It seems that there are a lot of exceptions and mismatches. Only "x" and "suffix" match perfectly.

Would it help if I:

cross_mapping.xlsx

jonathanrobie commented 2 years ago

Nice - this works great for part of speech. We will also need this kind of display for other attributes shown in m elements (gender, number, state, etc.)

And a way to drill down to instances.

Randall may have other ideas ...

Jonathan

On Tue, Apr 5, 2022 at 6:31 AM klosoter @.***> wrote:

Just checking, these are the mismatches/inconsistencies you are looking for?

[image: Screenshot 2022-04-05 at 12 27 30] https://user-images.githubusercontent.com/61023061/161735160-7b37e9ee-5460-42af-a82d-b5944b648370.png

— Reply to this email directly, view it on GitHub https://github.com/Clear-Bible/macula-hebrew/issues/15#issuecomment-1088536820, or unsubscribe https://github.com/notifications/unsubscribe-auth/AANPTPMQPGLDEVS7HE7D4RTVDQJBZANCNFSM5SLDGONA . You are receiving this because you authored the thread.Message ID: @.***>

jonathanrobie commented 2 years ago

Also helpful.

We should talk with Randall about workflows for using this kind of display to correct errors and to decide which differences are just fine. We want to make sure we have tooling to do whatever curation is needed efficiently.

Jonathan

On Tue, Apr 5, 2022 at 8:33 AM klosoter @.***> wrote:

See here for a more insightful (but less readable) table. The index column consists of the OSHB "pos" and "type" attributed, joined by "_". It seems that there are a lot of exceptions and mismatches. Only "x" and "suffix" match perfectly.

Would it help if I:

  • created a list of word ids for each combination of OSHB & Trees?
  • find a way to categorize them further (using "rule", perhaps?)

cross_mapping.xlsx https://github.com/Clear-Bible/macula-hebrew/files/8418058/cross_mapping.xlsx

— Reply to this email directly, view it on GitHub https://github.com/Clear-Bible/macula-hebrew/issues/15#issuecomment-1088648280, or unsubscribe https://github.com/notifications/unsubscribe-auth/AANPTPPER5OHBAVVU3NXWQ3VDQXJNANCNFSM5SLDGONA . You are receiving this because you authored the thread.Message ID: @.***>

rkjtan commented 2 years ago

Both of these are useful. Thank you, @klosoter. I agree with Jonathan's comments above. The volume of mismatches is higher than I'd like, but most of them don't surprise me at first glance. We'll want to curate these efficiently.

klosoter commented 2 years ago

I categorized them further using the "Rule" attribute of the first parent node. Now, the differences are neatly categorized. Most combinations of "pos_rule_type" match exactly ONE "Cat". At first glance, the differences seem more logical now. See attached.

pos-rule-type.xlsx

klosoter commented 2 years ago

I've also put all mismatches in an XML file. They are structured like this:

Cat --> oshb pos --> oshb type --> Tree Node --> oshb m element (or c in case of compounds)

<mismatches>
  <adj>
    <pronoun>
      <demonstrative>
        <Node n="370010020072" Cat="adj" morphId="370010020072" Unicode="זֶּה֙" nodeId="3700100200720010" Rule="Adj2Adjp">
          <m n="370010020072" morph="Pdxms" lang="H" lemma="2088" after=" " pos="pronoun" type="demonstrative" person="unknown: x" gender="masculine" number="singular">זֶּה֙</m>
        </Node>
        <Node>
          <c>
            <m/>
            <m/>
          </c>
        </Node>
      </demonstrative>
    </pronoun>
  </adj>
  <adv>
    <particle>
      <negative/>
    </particle>
  </adv>
</mismatches>

Does something like this help drill down to instances? The XML file is too large to attach here, but you get the idea.

klosoter commented 2 years ago

The other features, such as number, gender, and person, are not present in the current trees. They are in the trees-groves-full under /trees-oshb but I can't seem to figure out an easy way to map these two trees to each other. The morphId's and the nodeId's are different.

Is there an easy way to map the full attributes to the OSHB attributes that I overlooked?

jonathanrobie commented 2 years ago

The morphId's and the nodeId's are different.

Is there an easy way to map the full attributes to the OSHB attributes that I overlooked?

I think we need the mapping between Groves morphIds and our own added to the mapping file to do this comparison.

klosoter commented 2 years ago

I've created new mappings, which can be found in trees-oshb/py/mappings. Please see that same folder for documentation of the mismatches in part of speech between the trees and OSHB along with an explaining note. (this might need to be moved to a different directory/repo).

The new mappings can now be used to compare the grammatical categories between the Full Trees and OSHB.