# Lebensmittel-Datenbank von Renyu — abgeleitete Datenbank unter ODbL 1.0

Dieses Verzeichnis erfuellt die Veroeffentlichungspflichten der Open Database
License (ODbL) v1.0 fuer die Lebensmitteldatenbank, die die App **Renyu**
mitliefert. Rechtlicher Kern in einem Satz: die Datei ist eine *Derivative
Database* von Open Food Facts, wir geben sie oeffentlich weiter (im
App-Bundle), also muss sie unter derselben Lizenz und in maschinenlesbarer
Form frei herunterladbar sein (ODbL 4.4 und 4.6).

Die vollstaendigen Urheber- und Lizenzhinweise stehen in **`LIZENZ.txt`**,
der Lizenztext selbst in **`ODbL-1.0.txt`**.


## Dateien

| Datei | Groesse | Zweck |
|---|---|---|
| `food-de.sqlite.gz` | 18.538.367 Byte (17,7 MiB) | die abgeleitete Datenbank, gzip-komprimiert |
| `ODbL-1.0.txt` | — | vollstaendiger Lizenztext (ODbL 4.2 b) |
| `LIZENZ.txt` | — | Urheber-, Quellen- und Lizenzhinweise (ODbL 4.2 c/d) |
| `SHA256SUMS.txt` | — | Pruefsummen beider Fassungen |

Entpacken und pruefen:

```bash
gunzip -k food-de.sqlite.gz
shasum -a 256 food-de.sqlite
# muss ergeben: b7cfa949763d4f039bb849c077fa69228a99b46c80982fc1edd25d306197d14f
sqlite3 food-de.sqlite "SELECT COUNT(*) FROM food;"
```

Die entpackte Datei ist eine gewoehnliche SQLite-3-Datenbank mit
FTS5-Volltextindex; sie laesst sich mit jedem SQLite-Werkzeug oeffnen.


## Was drin ist

Stand der veroeffentlichten Fassung (**gemessen**, nicht geschaetzt, am
2026-08-16 an genau der Datei, die dieses Paket enthaelt):

* **233.853 Produkte** — davon 224.511 Markenprodukte (`branded`),
  9.113 Grundnahrungsmittel (`generic`), 229 Gerichte (`dish`)
* Naehrwertabdeckung: kcal 232.292 · Protein 230.487 · Fett 230.377 ·
  Kohlenhydrate 230.202 Zeilen; Markenname bei 198.730 Zeilen
* unkomprimiert 46.530.560 Byte (44,4 MiB)

Tabellen:

* `food(barcode PRIMARY KEY, name, brand, country, kind, serving_g, kcal,
  protein, fat, carb, fiber, sugar, salt, caffeine)` — alle Naehrwerte je
  100 g; ein fehlender Wert ist `NULL` ("nicht erfasst"), niemals `0`
* `food_fts` — FTS5-Index ueber `name`/`brand`
  (`tokenize='unicode61 remove_diacritics 2'`, `content='food'`)
* `food_search(food_rowid, text)` — vorgefaltete Suchtexte fuer die
  Teilwortsuche in deutschen Komposita
* `meta(key, value)` — `package`, `generated_at`, `schema_version`,
  `sources`, `license`

**Keine Produktbilder.** Bilder von Open Food Facts stehen unter CC BY-SA 3.0
und wurden bewusst nicht uebernommen.

**Keine Nutzerdaten.** Weder Korrekturen noch selbst angelegte Produkte noch
Ernaehrungs- oder Gesundheitsdaten sind hier enthalten — sie entstehen
ausschliesslich auf dem Geraet und bleiben dort.


## Wie die Datei entstanden ist

Ausgangspunkt ist der oeffentliche Gesamtexport von Open Food Facts
(`openfoodfacts-products.jsonl.gz`, https://static.openfoodfacts.org/data/)
sowie der "Full Download" von USDA FoodData Central (CSV).

Daraus wurde durch ein Python-Skript (`build_food_db.py`, reine
Standardbibliothek) das Paket `de` gebaut. Die Ableitungsschritte:

1. **Auswahl:** nur Produkte mit Laenderbezug Deutschland (`de`).
2. **Filter:** eine Zeile wird nur uebernommen, wenn mindestens ein Makro-
   naehrwert vorhanden ist. Vom Rohbestand `de` (419.291 Zeilen) ueberleben
   rund 53,5 %.
3. **Reduktion der Felder:** uebernommen werden ausschliesslich Barcode,
   Name, Marke, Land, Portionsgroesse und die oben genannten Naehrwerte je
   100 g. Alle uebrigen Felder von Open Food Facts — insbesondere saemtliche
   Bild-URLs — entfallen.
4. **Neues Schema:** die Daten werden in die oben beschriebene Tabelle
   ueberfuehrt und um einen FTS5-Volltextindex ergaenzt.
5. **Ergaenzung:** 9.113 gemeinfreie Grundnahrungsmittel aus USDA FoodData
   Central (CC0) und 229 Gerichte kommen hinzu.
6. **Nachtraeglicher Suchindex:** die veroeffentlichte Fassung enthaelt
   zusaetzlich die Tabelle `food_search` mit vorgefalteten Suchtexten fuer
   deutsche Komposita.

Weil Schritt 6 nach dem Skriptlauf hinzugekommen ist, ist die hier
veroeffentlichte **vollstaendige Datenbank** die verbindliche Fassung
(ODbL 4.6 a) — nicht eine Beschreibung des Herstellungswegs (ODbL 4.6 b).
Der Herstellungsweg steht hier nur zur Nachvollziehbarkeit.

Hinweis zur Versionsangabe: der Schluessel `generated_at` in der Tabelle
`meta` traegt `2026-08-01` und bezeichnet den Skriptlauf, nicht den Stand
dieser Datei. **Verbindlich identifiziert wird eine Fassung ueber ihre
SHA-256-Pruefsumme** (siehe `SHA256SUMS.txt`).


## Welche ODbL-Pflichten dieses Verzeichnis erfuellt

| ODbL | Pflicht | erfuellt durch |
|---|---|---|
| 4.2 a | Weitergabe nur unter dieser Lizenz | `LIZENZ.txt`, Abschnitt 3 |
| 4.2 b | Lizenztext oder URI beilegen | `ODbL-1.0.txt` + URI in `LIZENZ.txt` |
| 4.2 c/d | Urheberhinweise erhalten, notfalls im Verzeichnis | `LIZENZ.txt` |
| 4.3 | Hinweis bei Ausgaben ("Produced Work") | Wortlaut in `LIZENZ.txt`, Abschnitt 4; in der App unter jeder Trefferliste |
| 4.4 a | abgeleitete Datenbank unter ODbL 1.0 | `LIZENZ.txt`, Abschnitt 3 |
| 4.4 d | zusaetzliche Inhalte lizenzvertraeglich | USDA-Zeilen sind CC0 |
| 4.6 a | maschinenlesbare Kopie der gesamten abgeleiteten Datenbank, ueber das Internet kostenlos | `food-de.sqlite.gz`, frei und ohne Anmeldung |
| 4.7 b | Parallelvertrieb neben der DRM-geschuetzten App-Store-Fassung | ebendieser Download |

Zu 4.7 b: die App wird ueber den App Store mit Kopierschutz ausgeliefert,
und die Datenbank steckt in diesem Paket. Erst dieser freie Download stellt
die von ODbL 4.7 b i–iii verlangte "Unrestricted Database" bereit, die
"at least as accessible as a practical matter" sein muss. Der Download darf
deshalb nicht hinter einer Anmeldung, einer Bezahlschranke oder einer
schwer auffindbaren Seite liegen, und die App muss von ihrem Lizenz-
Bildschirm aus hierher verlinken.


## Aeltere Fassungen

Die Pflicht aus ODbL 4.6 richtet sich an die Empfaenger **der jeweiligen**
abgeleiteten Datenbank. Wer eine aeltere App-Version installiert hat, hat
eine aeltere Fassung dieser Datei erhalten. Deshalb bleiben abgeloeste
Fassungen erreichbar, statt ueberschrieben zu werden, und jede Fassung wird
ueber ihre SHA-256-Pruefsumme identifiziert.

| Stand | Datei | SHA-256 (unkomprimiert) |
|---|---|---|
| aktuell (App-Stand 2026-08-08) | `food-de.sqlite.gz` | `b7cfa949763d4f039bb849c077fa69228a99b46c80982fc1edd25d306197d14f` |


## Gewaehrleistung

Keine. Die Daten stammen aus einer offenen, von Freiwilligen gepflegten
Datenbank und koennen Fehler enthalten. Open Food Facts weist in seinen
Nutzungsbedingungen ausdruecklich darauf hin, dass die Daten nur zur
Orientierung dienen und **nicht fuer medizinische Zwecke** verwendet werden
duerfen. Dasselbe gilt fuer diese abgeleitete Fassung.
