Skip to content

feat: add Al-Khatib's New Dictionary of Scientific and Technical Terms (Q12244028) - #61

Merged
forzagreen merged 1 commit into
mainfrom
feat/khatib-scientific-technical
Oct 7, 2026
Merged

forzagreen merged 1 commit into
mainfrom
feat/khatib-scientific-technical

Conversation

@forzagreen

@forzagreen forzagreen commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Adds khatib_scientific_technical: معجم المصطلحات العلمية والفنية والهندسية الجديد (لبنان ناشرون، 2018), the English-Arabic dictionary of Ahmed Shafiq Al-Khatib (Q12244028, the newer "الجديد" edition, not the 6th edition).

Before merging

Stacked on #60 (the Military Dictionary), because the dictionary and term ids follow from it; that is why it is a draft and targets feat/military-dictionary. After #60 is squash-merged, rebase with git rebase --onto main feat/military-dictionary feat/khatib-scientific-technical; the four files then apply as they are. If #60 changes its number of rows, this one has to be rebuilt.

Dumps

Both dumps are regenerated and included.

  • SQLite: sqlite3 3.53.4 (the official build); it reproduces the dump committed on main byte for byte from main's database.
  • MariaDB: dictionary 833 and its terms were added, in committed batches of 2000, to the MariaDB copy built for feat: add the Military Dictionary of Librairie du Liban (Q138767450) #60 (same rows and columns as migrate_to_mariadb.py). The copy was checked against arabterm.db (row counts per dictionary and checksums of every column), and full-text search returns the new terms.
  • The MariaDB dump was written by mariadb-dump 11.8.9 on x86_64 instead of 11.8.5 on aarch64. Compared with feat: add the Military Dictionary of Librairie du Liban (Q138767450) #60's dump, every existing row is unchanged; besides the new rows, only the header comments, the AUTO_INCREMENT values and the autocommit statements around the inserts differ.

What is in it

  • 71561 terms (ids 606402-677962), dictionary id 833, extracted from the voice dictionary on mou3jam.com (dictionary 7: 71525 entries and 6827 sub-entries).
  • Three entries have no Arabic and are left out: areostyle and DVD (pointers to another headword) and shower pan = shower tray (empty on the site).
  • One row per headword. An entry carries its further senses as sub-entries, each with its own part of speech or field; arabic holds the terms of all senses joined with ؛, and ، between synonyms is kept as printed.
  • description is the full text of the senses, numbered (1) (2) when there are several, when it says more than arabic (15847 terms).
  • The 39 sub-entries that have a keyword of their own are rows of their own: abandon a claim, or a form of the parent such as medium (pl. media), ward (with off).
  • Headwords are kept as printed, including X = Y synonyms and inverted forms (pool, oil); medical_terms_* already has both.
  • Superscripts and subscripts are written with Unicode characters (10⁻¹⁹); پ, ڤ and ڠ are kept as in the source.

Repairs of the source

The digitised text is damaged in places. Every repair is keyed by entry id in the assemble script; these are worth a look:

  • 44 definitions whose first letter is missing or that start with a stray vowel mark (ُعاصِر for مُعاصِر under contemporary, َطَل for بَطَل under champion). The letter is supplied from the English headword; these are readings, not source text.
  • 91 entries, 88 of them under B, where the last printed line of the first sense was stored as the headword's own definition (bastard: شاذّ، غيرُ in one place and قِياسيّ. غيرُ مُتناسِق in the other). The two parts are rejoined only where the break is evident (an open parenthesis, a trailing colon or preposition, an explanation in progress); otherwise they stay two senses of the same row.
  • 6 mangled headwords: 0 for center, arءte for arête, Debye-Hدckel, vis-ب-vis, wدstite, Celsiusor.
  • About 20 single typos: two definitions stored with their lines in reverse order (deep, demand), bent and 90° bent swapped, broken <sup> markup, a ? where the site lost λ.

Known limits

  • The longest entries (set, strike, run) keep in arabic only the terms that fit in 255 characters; the description has all of them.
  • Part of speech and the field label (Chem., Elec. Eng., two thirds of the entries) are not mapped to any column.
  • Sense boundaries inside a multi-sense entry are sometimes wrong in the source (a line of one sense attached to its neighbour); since all senses share one row, the terms are still there.

To check

make validate passes locally on the new database.

@forzagreen
forzagreen force-pushed the feat/military-dictionary branch from 7485c54 to 51c9712 Compare October 7, 2026 06:49
@forzagreen
forzagreen force-pushed the feat/khatib-scientific-technical branch from 656b9fa to 50b58d1 Compare October 7, 2026 06:51
…s (Q12244028)

Adds `khatib_scientific_technical`: معجم المصطلحات العلمية والفنية والهندسية
الجديد (لبنان ناشرون، 2018), the English-Arabic dictionary of Ahmed Shafiq
Al-Khatib.

- 71561 terms, extracted from the voice dictionary on mou3jam.com
  (dictionary 7: 71525 entries and 6827 sub-entries). Three entries without
  Arabic are left out.
- One row per headword. `arabic` holds the terms of all its senses joined
  with "؛" ("،" between synonyms is kept as printed); `description` is the
  full text of the senses when it says more (15847 terms). The 39 sub-entries
  that have a keyword of their own ("abandon a claim", "medium (pl. media)")
  are rows of their own.
- Headwords are kept as printed, including "X = Y" synonyms and inverted
  forms ("pool, oil").
- Repairs of the source, each by entry id: 44 definitions whose first letter
  is missing or that start with a stray vowel mark, 91 entries (88 under B)
  where the last printed line of the first sense was stored as the headword's
  own definition, 6 mangled headwords ("0" for "center", "arءte"), about 20
  single typos.
- The longest entries ("set", "strike") keep in `arabic` only the terms that
  fit in 255 characters.
- `dict_type` is `terminology`, `tier` is 2.
@forzagreen
forzagreen changed the base branch from feat/military-dictionary to main October 7, 2026 08:27
@forzagreen
forzagreen force-pushed the feat/khatib-scientific-technical branch from 50b58d1 to f47cd2e Compare October 7, 2026 08:28
@forzagreen
forzagreen marked this pull request as ready for review October 7, 2026 08:30
@forzagreen
forzagreen merged commit 6c176d1 into main Oct 7, 2026
1 check passed
forzagreen added a commit to forzagreen/wikitermbase that referenced this pull request Oct 7, 2026
The refresh-dump workflow could no longer push its branch: with the two
dictionaries added in forzagreen/arabterm#60 and forzagreen/arabterm#61,
db/arabterm.sql is 109.50 MB, over GitHub's limit of 100 MB per file.

The dump is now committed as db/arabterm.sql.gz (about 25 MB), the way
arabterm commits its own database:

- `make download_dump` keeps the downloaded archive and checks it;
  `make fix_dump` applies its two fixes through a pipe and recompresses with
  `gzip -n`, so that an unchanged dump gives an unchanged file.
- `deploy-db` imports with `gunzip -c db/arabterm.sql.gz | mariadb ...`,
  after `gzip -t`.
- GitHub shows no diff of a gzipped file, so the refresh pull request now
  states how many SQL lines were added and removed, next to the data summary
  sent by arabterm.

db/arabterm.sql.gz in this commit is the dump that was already committed,
byte for byte once unpacked: merging re-imports the same data, which
exercises the new import path before any data change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant