“Apa yang tercatat?”
GTIN, nama, varian, harga, menu item, status aktif, dan stok yang disediakan oleh pemilik sistem masing-masing.
Hubungkan identitas produk/menu dengan konteks tenant, sumber, aturan, waktu, dan keputusan manusia—agar API Navv dapat menjelaskan bukan hanya apa yang cocok, tetapi juga mengapa, untuk siapa, dan seberapa pasti.
Database tetap menyimpan golden record dan katalog operasional. Context graph menjadi lapisan relasi dan bukti yang menjelaskan bagaimana satu rekaman terhubung ke SKU lokal, menu aktif, modifier, sumber, aturan, dan koreksi.
GTIN, nama, varian, harga, menu item, status aktif, dan stok yang disediakan oleh pemilik sistem masing-masing.
Relasi apa yang menghubungkan input ke entitas, sumber mana yang mendukungnya, scope tenant/outlet mana yang berlaku, aturan mana yang disetujui, dan konflik apa yang belum selesai.
Gunakan satu pola graph, tetapi jangan melebur produk kemasan, listing retailer, menu merchant, dan transaksi menjadi satu objek. Identitas global dan data operasional tenant punya pemilik serta izin yang berbeda.
Identitas lintas channel, hanya dari sumber yang boleh digunakan.
SKU, listing, harga, ketersediaan, menu dan modifier milik retailer/restoran.
Simpan klaim, asal data, resolusi, aturan, persetujuan, dan koreksi sebagai objek tersendiri.
| Edge bernama | Makna di Navv | Bukti minimum yang melekat |
|---|---|---|
has_gtin, variant_of, pack_contains | Identitas dan hierarki varian/unit dagang. | Identifier/sumber, jenis kemasan, tanggal dan status verifikasi. |
merchant_sku_for, listed_at | SKU/listing lokal menunjuk produk tertentu di tenant dan outlet tertentu. | Import atau konfirmasi retailer, tenant scope, masa berlaku. |
alias_of, canonicalizes_to | Nama lokal, alias lisan, atau variasi ejaan mengarah ke kandidat entitas. | Contoh asal, bahasa/channel, metode ekstraksi, confidence, keputusan reviewer. |
menu_item_of, offers_modifier, active_at | Item dan pilihan hanya berlaku pada menu/outlet/channel yang ditetapkan. | Merchant/POS, versi menu, periode aktif, harga dan batas pilihan. |
supports, contradicts, supersedes | Bukti mendukung/menyangkal klaim; revisi menggantikan aturan lama tanpa menghapus jejak. | Dokumen/record asal, pointer field/halaman/baris, waktu, reviewer, versi. |
same_as atau resolves_to yang dipakai untuk tindakan perlu status yang jelas—candidate, reviewed, atau verified—beserta bukti dan siapa yang menyetujuinya.Jangan cari “teks yang mirip” di seluruh korpus. Resolve dulu tenant, outlet, channel, dan entitas kandidat; kemudian ikuti edge bernama yang diizinkan untuk jenis permintaan itu.
Foto, barcode, suara, teks, atau katalog enterprise.
Tenant, outlet, channel, waktu, locale, tujuan dan hak akses.
Alias, GTIN, SKU, merchant, menu, atau source record.
Ambil hanya entitas, bukti, dan aturan yang berhubungan.
Scope, otoritas sumber, freshness, confidence dan konflik.
Hasil beralasan; jika ambigu, klarifikasi atau minta review.
Aturan outlet/tenant yang tepat mengalahkan ontology global untuk harga, opsi, dan availability.
Relasi lebih pendek dan sudah diverifikasi biasanya lebih kuat daripada inferensi lewat banyak edge.
Approved dan masih berlaku lebih kuat daripada kandidat, sumber usang, atau menu yang sudah diganti.
Brand/manufacturer untuk spesifikasi, retailer untuk listing/harga toko, restoran untuk menu dan modifier.
Bukti sejalan menambah dukungan; kontradiksi ditandai dan dijelaskan, bukan dirata-ratakan.
Jika bukti atau edge penting hilang, kembalikan gap dan minta klarifikasi/review.
Bobot dan ambang keputusan harus dipelajari dari pilot per use case; confidence adalah dukungan untuk kasus ini, bukan angka akurasi universal.
Konteks awal adalah restoran/outlet yang dipilih pengguna. Graph membatasi resolusi ke menu aktif tenant itu; ontology membantu alias hidangan dan modifier, tetapi harga dan opsi valid hanya datang dari menu merchant.
Resolver mencari identitas global dan listing tenant sebagai dua keputusan terpisah. Product identity tidak membuktikan harga atau stok toko.
GTIN exact, brand+title, unit, dan kemasan membentuk bukti berlapis. Konflik tidak dirata-ratakan menjadi satu confidence yang tampak pasti.
Sumber terbaru tidak otomatis menang. Tenant, otoritas field, status persetujuan, tanggal berlaku, dan kontradiksi menentukan apakah sebuah klaim boleh dipakai.
source_id dan pointer ke record, halaman, baris, foto, atau event asal.tenant_id/namespace, sumber pemilik data, tujuan dan batas penggunaan.observed_at, valid_from/to, versi dan status: proposed/approved/rejected/superseded.Cross-tenant alias, transaksi, harga, dan audio tidak ikut query tenant lain. Shared ontology hanya memuat data yang sah untuk dipakai bersama.
Correction event menyimpan run, input, jalur graph, hasil, dan perubahan manusia. Ia menjadi proposal; approval manusia diperlukan sebelum pemetaan aktif berubah.
Dua sumber berbeda tetap tercatat bersama scope dan waktu. Jangan overwrite diam-diam; versi lama perlu tetap dapat direkonstruksi. Perubahan sumber menjadi proposal revisi untuk ditinjau.
Pemakai API tidak perlu menerima seluruh graph. Mereka memerlukan jawaban ringkas, jalur relasi yang relevan, bukti, dan status tindakan berikutnya.
| Field respons | Isi | Contoh makna |
|---|---|---|
status | matched, candidate, needs_review, clarify, not_found | Jangan menyamakan kandidat fuzzy dengan keputusan final. |
entity / candidate_ids | Identitas dan tipe entitas yang ditemukan. | ProductVariant, MerchantMenuItem, retailer listing. |
evidence[] | Field, nilai, source pointer, otoritas, freshness, status persetujuan. | Alasan audit/koreksi; bukan hanya “model bilang cocok”. |
path[] | Edge bernama yang menghubungkan input ke hasil. | alias_of → MenuItem → active_at Outlet. |
confidence, conflicts[] | Penilaian per kasus dan hal yang bertentangan/tidak diketahui. | Score perlu dikalibrasi terhadap data pilot; bukan janji akurasi. |
considered[], excluded[] | Ringkasan kandidat/bukti yang dipertimbangkan dan yang dikeluarkan karena scope, status, atau aturan. | Reviewer dapat memahami batas hasil tanpa menerima seluruh graph. |
next_action | confirm, ask_user, review, atau proceed. | Menjaga batas sebelum order, merge, atau publish. |
/resolve/product, /resolve/menu, /catalogs/compare, /feedback. Context graph menjadi mekanisme di balik responsnya, bukan API graph mentah yang memaksa pelanggan memahami skema internal Navv.Untuk tim kecil, context graph dapat dimulai sebagai model data relasional dengan entity ID, edge bernama, bukti, versi, dan scope tenant. Jangan membeli kompleksitas graph platform sebelum traversal nyata membutuhkannya.
Bangun: entity/evidence/edge minimum untuk satu kategori retail dan satu design-partner restoran; skema sumber, tenant, waktu, dan persetujuan.
Bukti: kasus nyata, contoh konflik, baseline koreksi, sumber dan izin tertulis.
Bangun: jalur bounded untuk product dan menu; filter tenant/outlet sebelum pencarian; respons evidence/path/status.
Bukti: hasil matching benar, abstain saat ragu, tidak ada kebocoran lintas tenant.
Bangun: run log, human review queue, feedback proposal, approval, konflik dan versioning.
Bukti: koreksi berulang memperbaiki resolusi dan setiap perubahan bisa dijelaskan.
Bangun: satu catalog reconciliation pilot dengan file/master yang diizinkan dan audit output.
Bukti: dipakai ulang, hasil diakui pelanggan, dan ada jalur nilai berbayar sebelum syndication/measurement.
entities, edges, evidence, rules, resolution_runs, dan feedback_proposals dapat mencukupi untuk graph kecil serta traversal terbatas. Pertimbangkan graph engine hanya jika pengukuran menunjukkan traversal multi-hop, query lintas domain, atau pengelolaan relasi makin sulit dipelihara di model tersebut.Graph berharga jika meningkatkan keputusan atau auditability tanpa menambah risiko dan kerja operator.
Precision per status, duplicate merge salah, variasi GTIN/unit yang keliru.
Item dan modifier tepat, klarifikasi, cart correction, harga/availability freshness.
Field penting dengan sumber, coverage provenance, konflik tertangani, usia bukti.
Review rate, waktu sampai keputusan, koreksi berulang, perubahan yang ditolak.
Guardrail: nol tindakan lintas tenant; nol merge/publish/order otomatis saat status masih candidate atau konflik belum diputuskan. Uji terhadap baseline resolver/katalog sederhana sebelum mengklaim context graph lebih akurat.
Model terbaik untuk Navv bukan graph yang memuat semuanya; melainkan graph yang menghubungkan data yang memang dibutuhkan untuk menyelesaikan permintaan pelanggan, dengan bukti dan batas akses yang ikut terbawa.
GTIN/varian, SKU/listing, alias/menu item, source, waktu, dan status review.
Aturan scope tenant, modifier aktif, otoritas field, konflik, dan ambang abstain.
Jaringan resep, distributor, demand, harga pasar, dan supply chain lintas perusahaan hingga data dan haknya nyata.
Rancangan ini mengadaptasi pola build → serve → learn dari penjelasan TrailHQ tentang Context Graph ke kasus Navv. Ini usulan arsitektur produk, bukan klaim bahwa Navv sudah mengimplementasikannya atau bahwa kinerja komersial Trail berlaku langsung untuk Navv.
TrailHQ — How the Context Graph Works · dibaca 23 September 2026.
Konsisten dengan data playbook, arsitektur shared core, dan dua dokumen riset CPG/menu.