Standard / core

OGS Core Specification

Open Gastronomy Standard — Core v0.2


1. Scope

1.1 What OGS Covers (v0.2)

The Open Gastronomy Standard (OGS) provides a machine-readable, JSON-based vocabulary for describing:

v0.2 also introduces a full internationalization layer (LString, BCP 47, multilingual thesauri, translation provenance). See ogs-i18n.md. The i18n additions are fully backwards-compatible with v0.1 documents: bare strings remain valid as LString Form 1.

1.2 What OGS Does NOT Cover (v0.2)


2. Design Principles

Principle Description
JSON-first All OGS documents are valid JSON. Human-readable Markdown specifications define the semantics; JSON Schema enforces structure.
Controlled vocabularies Sensory terms, component roles, cooking methods, and match types use finite, versioned term lists.
Explainability Every pairing score is accompanied by structured explanation codes that articulate why a pairing works or fails.
Extensibility Producers MAY include additional properties prefixed with x- without breaking conformance.
Ontology-compatible ID formats and vocabulary structures are designed to map cleanly to RDF/OWL ontologies in future versions.
Provenance-aware Data points carry source, confidence, and method metadata so consumers can assess reliability.

3. Versioning

OGS uses Semantic Versioning:

Every OGS document MUST include a top-level field:

"ogs_version": "0.2.0"

Schemas currently accept 0.1.x and 0.2.x versions. Consumers SHOULD reject documents whose MAJOR version they do not support.

v0.2 is a MINOR release relative to v0.1: every v0.1 document remains valid against v0.2 schemas.


4. Entity Types

OGS v0.2 defines five entity types:

Type Schema Description
ingredient ingredient.schema.json A single culinary ingredient with sensory profile
dish dish.schema.json A composed dish with components and overall profile
beverage beverage.schema.json A wine, beer, spirit, or other beverage
pairing pairing.schema.json A scored, explained match between a dish and a beverage
cuisine cuisine.schema.json A culinary tradition with endonym-first naming (new in v0.2)

5. Identifier Format

All OGS entities use a namespaced URI-style identifier:

ogs:<namespace>:<type>:<id>
Segment Description Examples
ogs Fixed protocol prefix
<namespace> Publisher namespace core, michelin, wset, user
<type> Entity type ingredient, dish, beverage, pairing
<id> Kebab-case unique identifier black-truffle, seared-wagyu-truffle

Examples:

5.1 ID Rules


6. Provenance Model

Any data point in OGS MAY carry provenance metadata:

Field Type Description
source string Origin of the data (e.g., "WSET Level 4 tasting note", "instrumental GC-MS analysis")
confidence number Value between 0.0 (no confidence) and 1.0 (absolute certainty)
method string One of: expert_panel, instrumental, computed, estimated, user_submitted

When provenance is not specified, consumers SHOULD treat the data as estimated with confidence: 0.5.


7. Conformance Levels

OGS defines three conformance levels so that producers can adopt the standard incrementally:

Level 1 — Structural (L1)

Level 2 — Vocabulary (L2)

Level 3 — Semantic (L3)


8. Document Structure

Every OGS document shares a common envelope:

{
  "id": "ogs:<namespace>:<type>:<id>",
  "ogs_version": "0.1.0",
  "name": "Human-readable name",
  "description": "Optional longer description",
  "metadata": {
    "created": "ISO-8601 datetime",
    "updated": "ISO-8601 datetime",
    "source": "Origin description",
    "license": "Apache-2.0"
  }
}

Entity-specific fields are defined in their respective specifications:


9. Extension Mechanism

Producers MAY add custom fields to any OGS document by prefixing the field name with x-:

{
  "id": "ogs:mycompany:ingredient:custom-spice",
  "ogs_version": "0.1.0",
  "name": "Custom Spice Blend",
  "x-internal-sku": "SPB-2024-001",
  "x-supplier-rating": 4.5
}

Conformance validators MUST ignore x- prefixed fields. Consumers SHOULD NOT rely on x- fields for interoperability.


10. References