ᬲᭂᬲᬦ

OPEN KNOWLEDGE FROM BALI

Rooted in Bali.
Ready for the world.

Bali’s rules, culture, and safety. Traceable sources. Context that stays intact. An open corpus for apps, assistants, and AI agents.

Traceable sources · local context · CC BY 4.0

  • 177entries
  • 3scopes
  • 2languages
SESANA / CONTEXT ATLAS
01
desaplace
02
kalatime
03
patrasituation
Every rule belongs somewhere.
Scroll to discover Sesana

01Why Sesana exists

AI answers sound fluent.
The context is what goes missing.

Rules in Bali apply in a particular place, time, and situation. Summarise a rule without those, and it does not become simpler. It becomes wrong.

A sentence that is right in one place and wrong in another

"Tourists may not enter temples" is not a short version of the actual rule. The rule forbids entering the inner and middle courtyards, with an exception for prayer. The short version stops people at a gate that is open to them.

A rule cut off from place, time, and situation

Balinese custom is applied by desa (place), kala (time), and patra (situation). The same rule can differ between two neighbouring villages, change before a holy day, and differ for someone who comes to pray or to photograph. All of them are right.

No human at the moment that matters

What goes missing from an assistant's answer is not the fact. It is where the fact applies, when it was last checked, and who approved it. Sesana keeps all three on every entry.

03One entry, full context

Every entry carries its own context.

Not just the rule. Its legal basis, who issued it, where it applies, sources you can open, when it was last checked, and whether a human has approved it.

  • idFixed ID, never reused
  • isi_id · isi_enShort text, three sentences at most
  • dasar · penerbitLegal basis and issuing body
  • konteks_lokasiWhere this rule applies
  • sumberLinks you can open and check
  • status_verifikasi · verifikator · tanggal_cekWho approved it and when it was last checked
entries/budaya/BUD-01.md
id: BUD-01 Culture and Etiquette
isi_en:
dasar:
konteks_lokasi:
sumber:
status_verifikasi: tanggal_cek:

04Explore the corpus

Search, filter, open the source.

Explore 177 entries from the same corpus your application uses. All are research drafts. Authority notes and legal references retain their source language.

Loading the corpus…

05For developers

Open knowledge.
Ready to connect.

Download the JSON from this site, read the schema, and carry its sources and context into your application. GitHub access requires permission while the repository is private.

Download corpus JSON ↓
{
  "id": "BUD-01",
  "kategori": "Budaya dan Etika",
  "subkategori": "Etika Umum Pura",
  "topik": "Larangan masuk Utamaning/Madyaning Mandala pura bagi wisatawan asing",
  "isi_id": "Wisatawan asing dilarang memasuki Utamaning Mandala dan Madyaning Mandala pura ...",
  "isi_en": "Foreign visitors may not enter the inner and middle courtyards of a temple ...",
  "dasar": "Surat Edaran Gubernur Bali No. 7 Tahun 2025",
  "penerbit": "Gubernur Bali",
  "konteks_lokasi": ["pura (umum)"],
  "sumber": ["https://bmc.baliprov.go.id/news/..."],
  "status_riset": "VERIFIED",
  "status_verifikasi": "Draf riset (sumber primer)",
  "verifikator": "",
  "tanggal_cek": "2026-09-04",
  "bahasa": ["id", "en"]
}
# Python 3.9+, standard library only
import json
from pathlib import Path

entries = json.loads(Path("data/korpus.json").read_text(encoding="utf-8"))

# Separate human-approved entries from research drafts
approved = [
    e for e in entries
    if e["status_verifikasi"] == "Terverifikasi" and e["verifikator"].strip()
]
print(len(entries), "entries;", len(approved), "human-approved")

# Read all Nyepi entries in English
for e in entries:
    if e["subkategori"] == "Nyepi":
        print(e["id"], e["isi_en"])
// Fetch the corpus from this website on your own domain
const url = new URL("data/korpus.json", window.location.href);
const entries = await fetch(url).then(r => r.json());

// Context for a hotel assistant near the beach
const beach = entries.filter(e =>
  (Array.isArray(e.konteks_lokasi) ? e.konteks_lokasi : [e.konteks_lokasi])
    .some(k => String(k).includes("pantai"))
);
const context = beach.map(e => `[${e.id}] ${e.isi_en} (checked ${e.tanggal_cek})`).join("\n");
# entries/budaya/BUD-01.md, one file per entry
---
id: BUD-01
kategori: Budaya dan Etika
subkategori: Etika Umum Pura
status_verifikasi: Draf riset (sumber primer)
tanggal_cek: 2026-09-04
sumber:
  - https://bmc.baliprov.go.id/news/...
---

## id
Wisatawan asing dilarang memasuki Utamaning Mandala dan Madyaning Mandala ...

## en
Foreign visitors may not enter the inner and middle courtyards ...
# For coding agents and LLMs: start here (repository access required)
https://github.com/ariefpriyono007/sesana/blob/main/llms.txt
https://github.com/ariefpriyono007/sesana/blob/main/AGENTS.md
https://github.com/ariefpriyono007/sesana/blob/main/SCHEMA.md

# Usage rules:
1. Include id, tanggal_cek, and sumber when citing an entry.
2. status_riset VERIFIED = primary source, not human approval.
3. Keep the context of place and time when quoting.
4. Credit "Sesana, Yayasan De Gadjah, CC BY 4.0" in your product.
01Hotel and villa assistants

Answer guests about Nyepi, temples, and beaches from the same basis across every property.

02Guide and travel agent apps

Rule cards per location, ready to translate, with a check date.

03AI agents and chatbots

Traceable context for RAG, not a model's guess.

04Official information channels

Airports, tourism villages, and agencies can share one reference.

06Status and verification

Trust, built into
every entry.

Two levels: Research draft and Verified. A primary source describes the evidence. Human approval requires two independent reviewers.

Numbers are read from the data. Repository snapshot at page load.

  1. DRAFT

    Research draft

    Entries retain their sources and check dates. A primary source does not mean the entry has been approved by a person.

    Current corpus status
  2. REVIEWED

    Verified

    Two reviewers, neither the author, check independently. Their names and fields are recorded. Relevant practitioners take part as reviewers.

    Two independent reviewers

Fixed rules: an author never approves their own entry. When a source changes, the status drops until it is rechecked. Additional languages (Mandarin, Korean, Japanese) are translated after an entry passes verification, not before.

SourcesHuman reviewSesana corpusApps & agents
Planned maintenance flow. Automation is not yet active.

07The language roadmap

Bali’s knowledge.
In more of the world’s languages.

English and Indonesian are the starting point. The next languages follow Bali’s visitors, beginning with Simplified Chinese.

  1. EN / ID

    English & Indonesian

    177 research entries in two languages. English opens first; Indonesian is one switch away.

    Available now
  2. ZH

    Simplified Chinese

    The next language, alongside field review of priority safety and sacred-site entries.

    Target · Feb–Apr 2027
  3. KO / JA

    Korean & Japanese

    The next expansion, with language partners and independent native-speaker review.

    Target · May–Aug 2027
  4. FR / DE / RU

    French, German & Russian

    Further language coverage as the corpus grows and its annual review cycle develops.

    Planned · Sep 2027 onward

Verify first, then translate. New languages are added only to verified entries. Machine translation is edited by a human, then checked by a different native speaker.

Planned milestones from the September 2026 partnership proposal. Timing depends on verification progress and participating partners.

08Name and philosophy

Sesana: the duty that comes with a role.

In Balinese, sesana is not a rule for everyone. It is what a person is expected to do because of the position they stand in. A temple priest's duty is not a tourist's duty. Both stand in the same temple courtyard, and are not bound by the same rules.

That is not a complication to be simplified away. That is the shape of the rule. So every Sesana entry keeps the place, time, and situation where it applies.

Read the full philosophy ↗
desaᬤᬾᬲplace

The same rule can differ between one customary village and its neighbour.

kalaᬓᬮtime

It changes before a holy day, during Nyepi, or when a ceremony is under way.

patraᬧᬢ᭄ᬭsituation

It differs for someone who comes to pray and someone who comes to photograph.

09Who is behind it

From Bali.
For shared knowledge.

Sesana is a program of Yayasan De Gadjah Bali. Born from research into AI adoption in tourism communication, it keeps Bali’s knowledge connected to its sources and context.

  • Verification partnersGuide associations, lifeguards, customary villages, universities, hotel operators.
  • Developer partnersTeams building apps, assistants, or agents who want to use Sesana.
  • Language partnersTranslators and native speakers for Mandarin, Korean, and Japanese.
Yayasan De Gadjah Bali
corpusCC BY 4.0Free to use and adapt, credit the source.
codeMITBuild, validation, and sync scripts.
name · logoYayasan De GadjahThe Sesana name, monogram, and wordmark sit outside both licences.
Requested attribution: Sesana, Yayasan De Gadjah, CC BY 4.0, github.com/ariefpriyono007/sesana