ganjoorandroid/licenses/README.md
Anas Rashid c0cb6a8ab6 Add the Urdu dictionaries, and suggest near words when nothing matches
Two Urdu sources join the Persian ones. Wiktionary's Urdu extract gives Urdu
headwords glossed in English, and Urdu Wiktionary itself gives definitions
written in Urdu — the only source here that does. The latter is thin, about
3,100 usable entries out of 31,000 pages since many are stubs, but for a word
it carries an Urdu reader is better served by it than by a translation into
English: عشق comes back as شدید جذبۂ محبت، گہری چاہت، محبت، پریم، پیار.

Every definition now names the dictionary and its language pair, and lays out
in the direction its own script reads, so an Urdu definition is right-aligned
beside a left-aligned English one.

When nothing matches, the sheet offers near words ranked by how many letters
they share with what was looked up, drawn from an index range scan on the
leading letters rather than a scan of the whole table. خودکامی, which has no
entry, offers خودکامه — the lemma it wants.

Measured honestly: the Urdu sources add little coverage over Persian — nine
words from the English-glossed extract, two from Urdu Wiktionary, against
1,285 from thirteen poems. They are here because an Urdu reader wants Urdu,
not because they widen the net.

The suggestion ranking is verified against the built database rather than only
on device: خودکامی → خودکامه, شیرازی → شیراز, مشکلها → مشکل. On an API 36
emulator all four sources answer عشق with their labels.

Known rough edge: affix stripping across four languages can mislead. ناولها
reaches ناول, the Urdu for "novel", which is not what Hafez meant. The matched
headword is always shown, so it is visible rather than silent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-04 17:29:38 +02:00

76 lines
3.6 KiB
Markdown

# Licences
Everything this app is built from, and the terms it comes under. The app itself is MIT; see
[`../LICENSE`](../LICENSE).
The full text of each licence below also ships **inside the APK**, under
`assets/licenses/`, and is readable in the app at **Reading settings → About & licences**. The
SIL Open Font License requires the licence to travel with the software, so the font licences are
bundled rather than merely linked.
## Content
| What | Source | Terms |
|---|---|---|
| The poems | [ganjoor.net](https://ganjoor.net) | Classical Persian verse, long out of copyright |
| The data export | [ganjoor-data](https://github.com/anas-rashid/ganjoor-data) | **No licence file.** Worth asking upstream to add one |
| Poem search, first lines | `api.ganjoor.net` | A public web service. Its implementation, [GanjoorService](https://github.com/ganjoor/GanjoorService), is GPL-3.0 — this app uses none of that code, only data over HTTPS, so it is not a derivative work |
| AI summaries | Ganjoor's own feature, shown only when enabled | Labelled in the app as AI-generated |
Nothing in Ganjoor's repositories restricts AI-assisted use.
## Dictionary
Four sources, each row in the database tagged with the one it came from so the app can name it
and so any of them can be dropped without rebuilding the others.
| Source | Direction | Licence |
|---|---|---|
| [Wiktionary](https://en.wiktionary.org) | Persian → English | CC BY-SA 3.0 |
| [Wiktionary](https://en.wiktionary.org) | Urdu → English | CC BY-SA 3.0 |
| [Urdu Wiktionary](https://ur.wiktionary.org) | Urdu → Urdu | CC BY-SA 3.0 |
| [Daneshjoo](https://github.com/0xdolan/Daneshjoo) | Persian → English | Repository states MIT |
Because three of the four are CC BY-SA 3.0, **the generated `dictionary.db` is CC BY-SA 3.0**.
Attribution is shown in the app beside every definition. See [`../tools/README.md`](../tools/README.md)
to rebuild it.
The Daneshjoo entry is worth a caveat: the repository states MIT, but the underlying lexicon is
a published Iranian dictionary, so that relicensing is worth verifying before relying on it.
## Fonts
| Font | Copyright | Licence | File |
|---|---|---|---|
| Noto Naskh Arabic | The Noto Project Authors | SIL OFL 1.1 | [`OFL-NotoNaskhArabic.txt`](OFL-NotoNaskhArabic.txt) |
| Noto Nastaliq Urdu | The Noto Project Authors | SIL OFL 1.1 | [`OFL-NotoNastaliqUrdu.txt`](OFL-NotoNastaliqUrdu.txt) |
| [Libron](https://github.com/nicoverbruggen/libron) | Nico Verbruggen, after Readerly and Newsreader (Production Type) | SIL OFL 1.1 | [`OFL-Libron.txt`](OFL-Libron.txt) |
## Libraries
Every dependency is Apache-2.0. The full text is in
[`../app/src/main/assets/licenses/apache-2.0.txt`](../app/src/main/assets/licenses/apache-2.0.txt).
| Library | Copyright |
|---|---|
| Jetpack Compose, AndroidX (core, activity, lifecycle, navigation) | The Android Open Source Project |
| Material Components / Material icons | The Android Open Source Project |
| Accompanist (drawablepainter, pulled in by Coil) | The Android Open Source Project |
| Kotlin standard library, kotlinx.serialization, kotlinx.coroutines | JetBrains |
| OkHttp, Okio | Square, Inc. |
| Coil 3 | Coil Contributors |
No Google Play Services, Firebase, analytics or tracking of any kind. The only Android
permission requested is `INTERNET`.
## Artwork
The launcher icon — an eight-point *shamsa* — is original work for this project, MIT like the
rest of the code. Ganjoor's own app icons are unlicensed and are their mark; they are not used
here.
## Poet portraits
Fetched at runtime from `api.ganjoor.net`. They are Ganjoor's own illustrations of
long-dead poets, displayed as served and never redistributed in the APK.