Eaternity-Schema-Referenz
Das Eaternity-Schema definiert das Datenmodell für das Environmental Operating System (EOS), Eaternityss Plattform für Lebensmittel-Nachhaltigkeitsbewertung. Das ESFC-Glossar enthält 40 Eaternity-Begriffe: 24 Schema-Klassen und 16 Eigenschaftsbegriffe.
Überblick
Eaternity-Schema-Begriffe bieten eine direkte Zuordnung zwischen Benutzerdaten und der EOS-API. Dies ermöglicht die semantische Zuordnung von CSV-Spalten zu Schema-Feldern und unterstützt die Zero-Configuration-Datenimportierung.
Wichtige Kennzahlen:
- Schema-Klassen: 24 Begriffe
- Eigenschaftsbegriffe: 16 Begriffe
- Gesamtanzahl Begriffe: 40
- Format: LinkML YAML mit JSON-LD-Kontext
- Quelle: gitlab.com/eaternity/eos
Zweck und Anwendungen
Hauptanwendungsfälle
-
Datenimport-Zuordnung
- Semantische Zuordnung von Benutzer-CSV-Spalten zu EOS-Feldern
- Automatische Felderkennung und -validierung
- Zero-Configuration-Datenintegration
-
API-Integration
- Direkte Zuordnung zu EOS-API-Endpunkten
- Typsichere Datenstrukturen
- Schema-Validierung
-
Lebensmittel-Nachhaltigkeitsbewertung
- Berechnung der Umweltauswirkungen
- CO2-Fußabdruck-Analyse
- Nachhaltigkeitsbewertung
-
Forschung und Analyse
- Lebensmittelsystemmodellierung
- Lieferkettenanalyse
- Entwicklung von Nachhaltigkeitskennzahlen
Schema-Klassen (24 Begriffe)
Kern-Flow-Klassen
FlowNode
Beschreibung: Repräsentiert Materialflüsse im Lebensmittelsystem.
Wichtige Eigenschaften:
product_name- Produktidentifikationamount- Mengeflow_location- Geografische Herkunftglossary_tags- Produktkategorisierung
Anwendungsfälle:
- Zutatenverfolgung
- Materialflussrechnung
- Lieferkettenzuordnung
Beispiel:
'@type': FlowNode
product_name: "Bio-Weizenmehl"
amount: 500
unit: "kg"
flow_location: "CH"
glossary_tags: ["grain", "wheat", "organic"]
FoodProductFlowNode
Beschreibung: Spezialisierter Flow-Node für Lebensmittelprodukte mit zusätzlichen lebensmittelspezifischen Eigenschaften.
Erweitert: FlowNode
Zusätzliche Eigenschaften:
amount_per_category_required_for_flow- Erforderliche Mengeraw_processing- Verarbeitungsmethoderaw_production- Produktionsmethoderaw_conservation- Konservierungsmethoderaw_labels- Zertifizierungen und Label
Anwendungsfälle:
- Lebensmittelprodukt-Ökobilanz
- Umweltauswirkungen von Rezepten
- Nachhaltigkeitsbewertung von Zutaten
Beispiel:
'@type': FoodProductFlowNode
product_name: "Weidefleisch Rind"
amount: 1000
raw_production: "extensive-pasture"
raw_labels: ["organic", "grass-fed"]
flow_location: "CH"
ActivityNode
Beschreibung: Repräsentiert Produktions- und Verarbeitungsaktivitäten im Lebensmittelsystem.
Wichtige Eigenschaften:
activity_type- Art der Aktivität (Produktion, Verarbeitung, Transport)activity_location- Ort der Aktivitätinputs- Eingangsflüsseoutputs- Ausgangsflüsse
Anwendungsfälle:
- Prozessmodellierung
- Aktivitätsbasierte Kostenrechnung
- Lieferkettenanalyse
Beispiel:
'@type': ActivityNode
activity_type: "wheat-milling"
activity_location: "CH"
inputs: [wheat-grain-flow]
outputs: [wheat-flour-flow]
Wirkungsabschätzungs-Klassen
ImpactAssessment
Beschreibung: Ergebnisse der Umweltauswirkungsberechnung.
Wichtige Eigenschaften:
gwp_total- Gesamtes Treibhauspotenzialwater_use- Wasserverbrauchland_use- Flächennutzungbiodiversity_impact- Auswirkungen auf die Biodiversität
Anwendungsfälle:
- CO2-Fußabdruck-Berichterstattung
- Offenlegung von Umweltauswirkungen
- Nachhaltigkeitsbewertung
Beispiel:
'@type': ImpactAssessment
gwp_total: 2.5 # kg CO₂-Äq
water_use: 150 # Liter
land_use: 0.5 # m²
Datenverwaltungs-Klassen
Recipe
Beschreibung: Mehrkomponenten-Lebensmittelprodukte mit Zubereitungsmethoden.
Wichtige Eigenschaften:
recipe_name- Rezeptbezeichnungingredients- Liste der Zutatenflüssepreparation_steps- Koch-/Zubereitungsaktivitätenyield- Rezeptausgabemenge
Anwendungsfälle:
- CO2-Fußabdruck von Menüs
- Rezeptoptimierung
- Nachhaltigkeitsplanung von Mahlzeiten
SupplyChain
Beschreibung: Vollständige Lieferkette vom Feld bis zum Teller.
Wichtige Eigenschaften:
origin- Ausgangspunktdestination- Endpunktstages- Liste der Aktivitäten und Flüssetotal_impact- Aggregierte Umweltauswirkung
Anwendungsfälle:
- Vollständige Lieferketten-Ökobilanz
- Hotspot-Identifikation
- Transparenzberichterstattung
Hilfsklassen
Weitere Schema-Klassen umfassen:
NutrientValues- NährwertzusammensetzungProducer- Hersteller-/Produzenten-InformationenSupplier- LieferantendetailsLocation- Geografische StandortdatenLabel- Zertifizierungs- und Label-InformationenProcessingMethod- LebensmittelverarbeitungsdetailsProductionMethod- Landwirtschaftliche/ProduktionspraktikenConservationMethod- Lagerung und KonservierungTransportMode- TransportmethodenPackagingInfo- Verpackungsdetails- Und 8+ weitere spezialisierte Klassen
Eigenschaftsbegriffe (16 Begriffe)
Eigenschaftsbegriffe repräsentieren einzelne Felder innerhalb von Schema-Klassen und ermöglichen eine granulare semantische Zuordnung.
Eigenschaften werden nach ihrer Bedeutung für die Berechnungsgenauigkeit klassifiziert:
- Hochpriorität: Erforderliche Felder, die die Umweltberechnungen erheblich beeinflussen (Produktidentität, Menge, Herkunft)
- Standardeigenschaften: Zusätzliche Felder, die Berechnungen verfeinern, aber sinnvolle Standardwerte haben
Hochprioritäts-Eigenschaften (6 Begriffe)
Diese Eigenschaften sind wesentlich für genaue Umweltauswirkungsberechnungen:
1. Produktname
ID: eaternity-property-productname
Python-Feld: product_name
Übergeordnetes Schema: FlowNode
Datentyp: String
Domäne: Identifikation
Verwendungsbeispiele:
- Product Name
- Product
- Item Name
- Food Name
- Name
- Produktname (Deutsch)
Wertbeispiele:
- "Bio-Weizenmehl"
- "Weidefleisch Rind"
- "Tomatensauce"
2. Menge
ID: eaternity-property-amount
Python-Feld: amount
Übergeordnetes Schema: FlowNode
Datentyp: Numerisch (mit Einheit)
Domäne: Messung
Verwendungsbeispiele:
- Quantity
- Amount
- Weight
- Mass
- Volume
- Menge (Deutsch)
Wertbeispiele:
- 500 (kg)
- 1.5 (L)
- 250 (g)
3. Benötigte Menge
ID: eaternity-property-amountpercategoryrequiredforflow
Python-Feld: amount_per_category_required_for_flow
Übergeordnetes Schema: FoodProductFlowNode
Datentyp: Numerisch
Domäne: Messung
Verwendungsbeispiele:
- Required Amount
- Required Quantity
- Flow Amount
- Benötigte Menge (Deutsch)
4. Herkunftsland
ID: eaternity-property-flowlocation
Python-Feld: flow_location
Übergeordnetes Schema: FlowNode
Datentyp: Kategorisch (Ländercodes)
Domäne: Geografie
Verwendungsbeispiele:
- Origin Country
- Origin
- Country
- Location
- Herkunftsland (Deutsch)
Wertbeispiele:
- "CH" (Schweiz)
- "DE" (Deutschland)
- "IT" (Italien)
5. Verarbeitungsmethode
ID: eaternity-property-rawprocessing
Python-Feld: raw_processing
Übergeordnetes Schema: FoodProductFlowNode
Datentyp: Kategorisch
Domäne: Prozess
Verwendungsbeispiele:
- Processing
- Processing Method
- Processing Type
- Verarbeitung (Deutsch)
Wertbeispiele:
- "fresh"
- "frozen"
- "canned"
- "dried"
6. Produktkategorie
ID: eaternity-property-glossarytags
Python-Feld: glossary_tags
Übergeordnetes Schema: FlowNode
Datentyp: Array von Strings
Domäne: Klassifizierung
Verwendungsbeispiele:
- Category
- Type
- Classification
- Product Category
- Kategorie (Deutsch)
Wertbeispiele:
- ["grain", "wheat", "organic"]
- ["dairy", "cheese", "hard"]
- ["meat", "beef", "fresh"]
Mittlere Prioritäts-Eigenschaften (10 Begriffe)
7. Nährwerte
ID: eaternity-property-nutrientvalues
Python-Feld: nutrient_values
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Ernährung
Verwendungsbeispiele:
- Nutritional Values
- Nutrients
- Nutrition Facts
- Nährwerte (Deutsch)
8. Zutaten
ID: eaternity-property-ingredientsdeclaration
Python-Feld: ingredients_declaration
Übergeordnetes Schema: Recipe/FoodProductFlowNode
Domäne: Zusammensetzung
Verwendungsbeispiele:
- Ingredients
- Ingredient List
- Components
- Zutaten (Deutsch)
9. Produktionsmethode
ID: eaternity-property-rawproduction
Python-Feld: raw_production
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Prozess
Verwendungsbeispiele:
- Production
- Production Method
- Growing Method
- Produktion (Deutsch)
Wertbeispiele:
- "organic"
- "conventional"
- "greenhouse"
- "grass-fed"
10. Konservierungsmethode
ID: eaternity-property-rawconservation
Python-Feld: raw_conservation
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Prozess
Verwendungsbeispiele:
- Conservation
- Storage Method
- Preservation
- Konservierung (Deutsch)
Wertbeispiele:
- "fresh"
- "frozen"
- "refrigerated"
- "ambient"
11. Labels & Zertifizierungen
ID: eaternity-property-rawlabels
Python-Feld: raw_labels
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Zertifizierung
Verwendungsbeispiele:
- Labels
- Certifications
- Quality Marks
- Label (Deutsch)
Wertbeispiele:
- ["organic", "fair-trade"]
- ["bio-suisse"]
- ["eu-organic", "carbon-neutral"]
12. Hersteller
ID: eaternity-property-producer
Python-Feld: producer
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Organisation
13. Lieferant
ID: eaternity-property-supplier
Python-Feld: supplier
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Organisation
14. Produktcode (GTIN)
ID: eaternity-property-gtin
Python-Feld: gtin
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Identifikation
Wertbeispiele:
- "7610200078753"
- "4260123456789"
15. Lagerdauer
ID: eaternity-property-storagetime
Python-Feld: storage_time
Übergeordnetes Schema: FoodProductFlowNode
Domäne: Zeitlich
16. Einheit
ID: eaternity-property-unit
Python-Feld: unit
Übergeordnetes Schema: FlowNode
Domäne: Messung
Wertbeispiele:
- "kg"
- "L"
- "piece"
Semantischer Zuordnungs-Workflow
Von Benutzer-CSV zur EOS-API
Die Eaternity-Eigenschaftsbegriffe ermöglichen die automatische Zuordnung:
Schritt 1: Benutzer-CSV-Spaltenkopf
"Product Name" oder "Produktname" oder "Item Name"
↓
Schritt 2: Semantische Suche im ESFC-Glossar
Findet: eaternity-property-productname
↓
Schritt 3: Python-Feldnamen extrahieren
pythonFieldName: "product_name"
↓
Schritt 4: Zuordnung zum EOS-API-Feld
FlowNode.product_name
↓
Schritt 5: Validieren und Übermitteln
Daten gegen Schema validiert
Beispiel CSV-Import
Benutzer-CSV:
Product Name,Weight,Origin Country,Processing
Organic Tomatoes,500,IT,fresh
Wheat Flour,1000,CH,milled
Semantische Zuordnung:
"Product Name" → eaternity-property-productname → FlowNode.product_name
"Weight" → eaternity-property-amount → FlowNode.amount
"Origin Country" → eaternity-property-flowlocation → FlowNode.flow_location
"Processing" → eaternity-property-rawprocessing → FoodProductFlowNode.raw_processing
EOS-API-Payload:
{
"@type": "FoodProductFlowNode",
"product_name": "Organic Tomatoes",
"amount": 500,
"unit": "kg",
"flow_location": "IT",
"raw_processing": "fresh"
}
Integrationsbeispiele
TypeScript mit EOS-API
import { Glossary, Term } from './glossary.types'
// Glossar laden
const glossary: Glossary = await fetch('/glossary.json')
.then(r => r.json())
// Eaternity-Eigenschaftsbegriffe abrufen
const eosProperties = glossary.terms.filter(t =>
t.source === 'eaternity' &&
t.id.startsWith('eaternity-property-')
)
// CSV-Header zu EOS-Feld zuordnen
function mapHeaderToEOSField(header: string): string | null {
const normalized = header.toLowerCase().trim()
for (const property of eosProperties) {
const usageExamples = property.properties?.usageExamples || []
if (usageExamples.some(ex =>
ex.toLowerCase() === normalized
)) {
return property.properties?.pythonFieldName || null
}
}
return null
}
// Beispielverwendung
const headers = ['Product Name', 'Produktname', 'Weight', 'Menge']
headers.forEach(header => {
const field = mapHeaderToEOSField(header)
console.log(`${header} → ${field}`)
})
// Ausgabe:
// Product Name → product_name
// Produktname → product_name
// Weight → amount
// Menge → amount
Python-Datenimport
import json
import pandas as pd
# Glossar laden
with open('glossary.json') as f:
glossary = json.load(f)
# EOS-Eigenschaftsbegriffe abrufen
eos_properties = [
t for t in glossary['terms']
if t['source'] == 'eaternity' and
t['id'].startswith('eaternity-property-')
]
# Zuordnungswörterbuch erstellen
header_to_field = {}
for prop in eos_properties:
python_field = prop.get('properties', {}).get('pythonFieldName')
if python_field:
examples = prop.get('properties', {}).get('usageExamples', [])
for example in examples:
header_to_field[example.lower()] = python_field
# Benutzer-CSV zuordnen
user_df = pd.read_csv('user_data.csv')
mapped_columns = {}
for col in user_df.columns:
eos_field = header_to_field.get(col.lower())
if eos_field:
mapped_columns[col] = eos_field
print(f"Zugeordnet: {col} → {eos_field}")
# Spalten für EOS-API umbenennen
eos_df = user_df.rename(columns=mapped_columns)
SQL-Abfragen
-- Alle Eaternity-Eigenschaftsbegriffe abrufen
SELECT id, name, properties->>'pythonFieldName' as python_field,
properties->>'domain' as domain,
properties->>'priority' as priority
FROM terms
WHERE source = 'eaternity'
AND id LIKE 'eaternity-property-%'
ORDER BY priority, domain;
-- Eigenschaft nach Verwendungsbeispiel finden
SELECT id, name, properties->>'pythonFieldName' as python_field
FROM terms
WHERE source = 'eaternity'
AND properties->>'usageExamples' LIKE '%Weight%'
OR properties->>'usageExamples' LIKE '%Menge%';
-- Hochprioritäts-Eigenschaften abrufen
SELECT id, name, properties
FROM terms
WHERE source = 'eaternity'
AND id LIKE 'eaternity-property-%'
AND properties->>'priority' = 'high';
Eigenschaftsdomänen
Eigenschaften sind nach Domäne für bessere Kategorisierung organisiert:
| Domäne | Eigenschaften | Beispiele |
|---|---|---|
| Identifikation | 2 | Produktname, GTIN |
| Messung | 3 | Menge, Benötigte Menge, Einheit |
| Geografie | 1 | Herkunftsland |
| Prozess | 3 | Verarbeitung, Produktion, Konservierung |
| Klassifizierung | 1 | Produktkategorie |
| Ernährung | 1 | Nährwerte |
| Zusammensetzung | 1 | Zutaten |
| Zertifizierung | 1 | Labels & Zertifizierungen |
| Organisation | 2 | Hersteller, Lieferant |
| Zeitlich | 1 | Lagerdauer |
Mehrsprachige Unterstützung
Eigenschaftsbegriffe enthalten Verwendungsbeispiele in mehreren Sprachen:
Englisch:
- Product Name
- Quantity
- Origin Country
Deutsch:
- Produktname
- Menge
- Herkunftsland
Zukünftige Erweiterung:
- Französisch (Nom du produit, Quantité, Pays d'origine)
- Italienisch (Nome prodotto, Quantità, Paese di origine)
- Spanisch (Nombre del producto, Cantidad, País de origen)
Best Practices
Eigenschaftsauswahl
-
Spezifischste Eigenschaft verwenden
- Spezifische Eigenschaften gegenüber generischen bevorzugen
- Domäne mit Ihrem Datentyp abgleichen
- Datenvalidierungsanforderungen berücksichtigen
-
Mehrsprachige Header
- Mehrere Sprachvarianten unterstützen
- Header vor dem Abgleich normalisieren
- Groß-/Kleinschreibung ignorieren
-
Validierung
- Erwartete Datentypen prüfen
- Kategorische Werte validieren
- Einheitenkonsistenz sicherstellen
Datenqualität
Vollständigkeit:
- Alle erforderlichen Eigenschaften einbeziehen
- Optionale Eigenschaften bereitstellen, wenn verfügbar
- Fehlende Daten dokumentieren
Konsistenz:
- Standardisierte Werte für kategorische Felder verwenden
- Einheitliche Einheiten anwenden
- EOS-Datenqualitätsrichtlinien befolgen
Rückverfolgbarkeit:
- Zuordnungsentscheidungen dokumentieren
- Verknüpfung zu Quelldaten herstellen
- Transformationen dokumentieren
Version und Aktualisierungen
Aktuelle Version: Synchronisiert mit EOS-Release Aktualisierungsmethode: Manuelle Extraktion aus EOS-Schema Aktualisierungshäufigkeit: Mit jedem EOS-Hauptrelease
Extraktionsprozess
# Eaternity-Schema parsen
npm run parse:eaternity
# Generiert:
# - output/eaternity/processed/terms.yaml (24 Schema-Klassen)
# - output/eaternity/processed/property-terms.yaml (16 Eigenschaften)
# Vollständiges Glossar erstellen
npm run build
Ressourcen
EOS-Schema-Ressourcen
- GitLab-Repository: gitlab.com/eaternity/eos
- Schema-Definition: Python-Klassendefinitionen
- API-Dokumentation: EOS-API-Referenz
- Feldbeschreibungen: Inline-Dokumentation
ESFC-Glossar-Ressourcen
- 40 Eaternity-Begriffe (24 Klassen + 16 Eigenschaften)
- Semantische Zuordnung für CSV-Import
- Direkte API-Zuordnung über pythonFieldName
- TypeScript-Typen für Integration
Zukünftige Erweiterungen
Phase-3-Erweiterung
Zusätzliche Eigenschaften (50-100+ Begriffe):
- Alle verbleibenden FlowNode-Felder (~10 weitere)
- Vollständige ActivityNode-Eigenschaften (~20 weitere)
- Verschachtelte Eigenschaftsfelder (Nährwert-Unterfelder)
- Wirkungsabschätzungs-Eigenschaften
Erweiterte Beschreibungen:
- Mehr mehrsprachige Variationen (FR, IT, ES)
- Datenvalidierungsregeln
- Erwartete Wertebereiche
- Links zu FoodEx2/Hestia-Zuordnungen
API-Integration:
- OpenAPI-Schema-Generierung
- Request-Validatoren
- Formularfeld-Generatoren
- Auto-Dokumentation
Verwandte Dokumentation
- Datenquellen - Übersicht aller 10 Quellen
- Semantische Zuordnung - KI-gestützte Zuordnung
- Datenformate - Exportformate
- Hestia-Referenz - Umweltauswirkungsdaten
- FoodEx2-Referenz - Lebensmittelklassifizierung
Lizenz
Lizenz: Proprietär (Eaternity) Verwendung: EOS-Schema-Begriffe zur Referenz verfügbar Integration: Kostenlos für EOS-API-Nutzer Vollständiges Schema: Erfordert EOS-Lizenz