Zum Hauptinhalt springen

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

  1. Datenimport-Zuordnung

    • Semantische Zuordnung von Benutzer-CSV-Spalten zu EOS-Feldern
    • Automatische Felderkennung und -validierung
    • Zero-Configuration-Datenintegration
  2. API-Integration

    • Direkte Zuordnung zu EOS-API-Endpunkten
    • Typsichere Datenstrukturen
    • Schema-Validierung
  3. Lebensmittel-Nachhaltigkeitsbewertung

    • Berechnung der Umweltauswirkungen
    • CO2-Fußabdruck-Analyse
    • Nachhaltigkeitsbewertung
  4. 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 - Produktidentifikation
  • amount - Menge
  • flow_location - Geografische Herkunft
  • glossary_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 Menge
  • raw_processing - Verarbeitungsmethode
  • raw_production - Produktionsmethode
  • raw_conservation - Konservierungsmethode
  • raw_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ät
  • inputs - Eingangsflüsse
  • outputs - 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 Treibhauspotenzial
  • water_use - Wasserverbrauch
  • land_use - Flächennutzung
  • biodiversity_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 - Rezeptbezeichnung
  • ingredients - Liste der Zutatenflüsse
  • preparation_steps - Koch-/Zubereitungsaktivitäten
  • yield - 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 - Ausgangspunkt
  • destination - Endpunkt
  • stages - Liste der Aktivitäten und Flüsse
  • total_impact - Aggregierte Umweltauswirkung

Anwendungsfälle:

  • Vollständige Lieferketten-Ökobilanz
  • Hotspot-Identifikation
  • Transparenzberichterstattung

Hilfsklassen

Weitere Schema-Klassen umfassen:

  • NutrientValues - Nährwertzusammensetzung
  • Producer - Hersteller-/Produzenten-Informationen
  • Supplier - Lieferantendetails
  • Location - Geografische Standortdaten
  • Label - Zertifizierungs- und Label-Informationen
  • ProcessingMethod - Lebensmittelverarbeitungsdetails
  • ProductionMethod - Landwirtschaftliche/Produktionspraktiken
  • ConservationMethod - Lagerung und Konservierung
  • TransportMode - Transportmethoden
  • PackagingInfo - 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.

Prioritätsklassifizierung

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äneEigenschaftenBeispiele
Identifikation2Produktname, GTIN
Messung3Menge, Benötigte Menge, Einheit
Geografie1Herkunftsland
Prozess3Verarbeitung, Produktion, Konservierung
Klassifizierung1Produktkategorie
Ernährung1Nährwerte
Zusammensetzung1Zutaten
Zertifizierung1Labels & Zertifizierungen
Organisation2Hersteller, Lieferant
Zeitlich1Lagerdauer

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

  1. Spezifischste Eigenschaft verwenden

    • Spezifische Eigenschaften gegenüber generischen bevorzugen
    • Domäne mit Ihrem Datentyp abgleichen
    • Datenvalidierungsanforderungen berücksichtigen
  2. Mehrsprachige Header

    • Mehrere Sprachvarianten unterstützen
    • Header vor dem Abgleich normalisieren
    • Groß-/Kleinschreibung ignorieren
  3. 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

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